Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

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

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

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

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 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить url brownb Общие вопросы Delphi 11 20.10.2016 22:58
Вывести информацию о покупателях, имеющих 10 %-ную скидку в магазине ITZver Общие вопросы C/C++ 0 12.11.2015 18:49
добавить ресурс Михаил Юрьевич Общие вопросы Delphi 11 30.08.2011 22:47
к элементам первой половины массива добавить минимум, а к элементам второй - добавить максимум specialist Паскаль 3 08.05.2011 01:46
добавить пробел Olya1985 Microsoft Office Excel 8 17.02.2011 19:30




20:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru