Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2017, 22:25   #1
woodlik
Новичок
Джуниор
 
Регистрация: 01.11.2016
Сообщений: 2
По умолчанию Помогите дополнить код - с#

Помогите добавить данный пункт при покупке товаров клиентом: На все товары имеется скидка.На одни товары скидка задана в процентах, на другие предоставлена фиксированная скидка.

Код:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/*Предметная область: Интернет магазин.В информационной системе хранятся данные о товарах. Клиент звонит в магазин и оставляет заказ на товар.
	На все товары имеется скидка.На одни товары скидка задана в процентах, на другие предоставлена фиксированная скидка.

Система должна позволять выполнять следующие задачи:
•	ввод информации о товарах;
•	регистрация заказа клиента на покупку определенного товара;
•	после ввода фамилии покупателя вывод списка заказанных им товаров;
•	вычислять среднюю стоимость товара.

Добавить обработку исключительных ситуаций:
•	наименование товара менее трех символов.
•	стоимость с учетом скидки более 1 млн.руб.
Добавить перегруженный бинарный оператор для увеличения стоимости товара. */


namespace ConsoleInternetShop
{
	class Product
	{
		public string Title; //название продука
		public double Price; //стоимость товара

		public Product(string Title, double Price)
		{
			this.Title = Title;
			this.Price = Price;
		}

		public static Product operator +(Product x, double plus)
		{
			x.Price = x.Price + plus;
			return x;
		}

		public void AddProduct()
		{
			File.AppendAllText("Product.txt", Title + " " + Price + Environment.NewLine);

			Console.WriteLine("Продукт успешно добавлено!");
		}
	}

	class Client
	{
		public string Name;
		public string SecondName;
		public int[] NumberProduct;
		public Client(string Name, string SecondName, int[] NumberProduct)
		{
			this.Name = Name;
			this.SecondName = SecondName;
			this.NumberProduct = NumberProduct;
		}

		public void AddClient()
		{
			string[] arr = File.ReadLines("Product.txt").ToArray();
			string product = "";

			int sum = 0;


			for (int i = 0; i < NumberProduct.Length; i++)
			{
				product += " " + arr[NumberProduct[i] - 1].Split(' ')[0] + ";";
				sum += Convert.ToInt32(arr[NumberProduct[i] - 1].Split(' ')[1]);
			}

			File.AppendAllText("Client.txt", Name + " " + SecondName + " - " + sum + " : " + product + Environment.NewLine);

			Console.WriteLine("Клиент успешно добавлен!");
		}

		public void Stoimost()
		{
			Console.WriteLine("Покупатель приобрел - " + NumberProduct.Length + " товар:");

			string[] arr = File.ReadLines("Product.txt").ToArray();

			int sum = 0;

			for (int i = 0; i < NumberProduct.Length; i++)
			{
				Console.WriteLine((i + 1) + "." + arr[NumberProduct[i] - 1].Split(' ')[0]);
				sum += Convert.ToInt32(arr[NumberProduct[i] - 1].Split(' ')[1]);
			}


			Console.WriteLine("Общая сумма: " + sum);
		}
		
	}

	class Program
	{
		static void View()
		{
			string[] arr = File.ReadLines("Product.txt").ToArray();
			Console.WriteLine("Список продуктов:");
			int number = 1;
			foreach (string s in arr)
			{
				Console.WriteLine(number + "." + s);
				number++;
			}
		}

		static void ViewClient()
		{
			string[] arr = File.ReadLines("Client.txt").ToArray();
			Console.WriteLine("Список клиентов:");
			int number = 1;
			foreach (string s in arr)
			{
				Console.WriteLine(number + "." + s);
				number++;
			}
		}

		static void Main(string[] args)
		{
			while (true)
			{
				Console.Write("\nВыберите действие:\n1-Ввод продукта\n2-Вывод существующих товаров\n3-Покупка товара клиентом\n4-Поиск клиента\n5-Увеличение стоимости товара\n0-Выход\nВвод: ");
				try
				{
					int n = int.Parse(Console.ReadLine());

					Console.Clear();

					switch (n)
					{
						case 1:
							{
								string Title;
								while (true)
								{
									Console.Write("Введиет название продукта: ");
									Title = Console.ReadLine();
									if (Title.Length < 3)//длина поля наименования продукта меньше 3 символов.
										Console.WriteLine("Поле наименования продукта не может быть меньше 3 символов!");
									else
										break;
								}
								Console.Write("Введите цену продукта: ");
								double Price = double.Parse(Console.ReadLine());
								Product a = new Product(Title, Price);
								a.AddProduct();
							}
							break;
						case 2:
							{
								View();
							}
							break;
						case 3:
							{
								string Name, SecondName, NumberProduct;
								List<int> price;

								Console.WriteLine("Введите данные о покупателе");

								while (true)
								{
									Console.Write("Введите имя: ");
									Name = Console.ReadLine();
									if (string.IsNullOrWhiteSpace(Name))
										Console.WriteLine("Имя покупателя не может быть пустым!");
									else
										break;
								}
								while (true)
								{
									Console.Write("Введите фамилию: ");
									SecondName = Console.ReadLine();
									if (string.IsNullOrWhiteSpace(SecondName))
										Console.WriteLine("Фамилия покупателя не может быть пустой!");
									else
										break;
								}
								while (true)
								{
									Console.WriteLine("Выберите товар: ");
									View();
									Console.Write("Введите номер (через пробел): ");
									NumberProduct = Console.ReadLine();

									try
									{
										string[] arr = NumberProduct.Split(' ');
										price = new List<int>();
										for (int i = 0; i < arr.Length; i++)
										{
											price.Add(Int32.Parse(arr[i]));
										}
										break;
									}
									catch
									{
										Console.WriteLine("Неверный формат данных!\n");
									}
								}
								Client cl = new Client(Name, SecondName, price.ToArray());
								cl.AddClient();
								cl.Stoimost();
								
							}
							break;
						case 4:
							{
								string SecondName;
								while (true)
								{
									Console.Write("Введите фамилию: ");
									SecondName = Console.ReadLine();
									if (string.IsNullOrWhiteSpace(SecondName))
										Console.WriteLine("Фамилия покупателя не может быть пустой!");
									else
										break;
								}

								List<string> array = File.ReadAllLines("Client.txt").ToList();

								foreach (var a in array)
								{
									if (a.Split('-')[0].Split(' ')[1].Equals(SecondName))
									{
										Console.WriteLine(a);
									}
								}
								}
							break;
						case 5:
							{
								string[] arr = File.ReadLines("Product.txt").ToArray();
								Console.WriteLine("Введите сумму на которую необходимо увеличить все введенные товары");
								double plus = double.Parse(Console.ReadLine());
								string Title = null;
								double Price = 0;
								File.Delete(@"Product.txt");
								foreach (string s in arr)
								{
									string[] mas = s.Split(' ');
									Title = string.Copy(mas[0]);
									Price = double.Parse(mas[1]);
									Product b = new Product(Title, Price) + plus;
									b.AddProduct();
								}
								break;
							}
						case 0: return;
						default: Console.WriteLine("Нет такой команды!"); break;
					}
				}
				catch (FileNotFoundException)
				{ Console.WriteLine("Файл невозможно открыть по причине его отсутствия"); }
				catch (IOException)
				{ Console.WriteLine("Файл невозможно открыть из-за ошибки ввода-вывода"); }
				catch (ArgumentNullException)
				{ Console.WriteLine("Имя файла представляет собой null-значение"); }
				catch (FormatException)
				{ Console.WriteLine("Неверный формат ввода данных"); }
			}
		}
	}
}
woodlik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дополнить код Samon C# (си шарп) 0 04.11.2016 13:01
не получаеться дополнить код! mishammm Помощь студентам 1 29.10.2013 05:41
паскаль. дополнить код mishammm Помощь студентам 4 25.09.2013 12:08
Дополнить код fanofinter Паскаль, Turbo Pascal, PascalABC.NET 1 07.11.2011 11:09
Помогите дополнить задачу Driver_09 Помощь студентам 4 23.12.2009 18:33