PriceList / курсовая
.docМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ
НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
Кафедра “мониторинга и логистики”
КУРСОВАЯ РОБОТА
На тему:
«Модель прайс-листа»
Руководитель работы:
Карпенко Вячеслав Васильевич
Выполнил:
Болюх В.О.
Харьков – 2013
Содержание:
Задание 3
Листинг программы 4
Копии экранов работающей программы 6
Вывод 7
Задание
Модель прайс-листа
Показывается список товаров с ценами. Пользователь выбирает несколько товаров. Для них предлагается ввести количество единиц. Программа отображает список выбранных товаров с ценой за единицу товара, количеством, стоимостью, суммарной стоимостью.
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace PriceList
{
public partial class Form1 : Form
{
List<Good> goods; //список товаров
public Form1()
{
InitializeComponent();
goods = new List<Good>(); //создание нового списка
//добавление тестовых данных
goods.Add(new Good("Вода питьевая", 100, 9));
goods.Add(new Good("Мыло", 174, 5));
goods.Add(new Good("Порошок", 27, 18));
goods.Add(new Good("Пена для бритья", 53, 15));
goods.Add(new Good("Бумага туалетная", 18, 3));
goods.Add(new Good("Полотенце", 10, 25));
goods.Add(new Good("Гитара", 3, 700));
//вывод в таблицу
dgv_Goods.DataSource = goods;
}
private void btn_Exit_Click(object sender, EventArgs e)
{
Application.Exit(); //выход по нажатию на соответствующую кнопку
}
//после завршения изменения данных
private void dgv_Goods_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
int Selected = 0;
//проверка, число должно быть целым
if (int.TryParse(dgv_Goods[e.ColumnIndex, e.RowIndex].Value.ToString(), out Selected))
{
//смотрим общее количество
int Total = int.Parse(dgv_Goods[e.ColumnIndex - 3, e.RowIndex].Value.ToString());
//если ввели больше чем есть, то устанавливаем значение сколько есть
if (Selected > Total) dgv_Goods[e.ColumnIndex, e.RowIndex].Value = Total;
//если отрицательное - то устанавливаем 0
if (Selected < 0) dgv_Goods[e.ColumnIndex, e.RowIndex].Value = 0;
}
}
private void btn_Calculate_Click(object sender, EventArgs e)
{
string result = "";
int sum = 0;
//для всех товаров
foreach (var item in goods)
{
//если он выбран
if (item.IsChecked)
{
//добавляем в строку результата данные о товаре
result += string.Format("{0}, {1}шт. Цена: {2}\n", item.Title, item.SelectedCount, item.TotalPrice);
//добавляем стоимость выбранных товаров к общей стоимости
sum += item.TotalPrice;
}
}
result += "Итого: " + sum;
//если сумма больше 0, то выводим инфо
if (sum > 0)
MessageBox.Show(result);
//иначе выводим сообщение, что ничего не выбрано
else
MessageBox.Show("Товары не выбраны!");
}
}
//класс для описания товара
class Good
{
//наименование
public string Title { get; set; }
//количество
public int Count { get; set; }
//цена за штуку
public int Price { get; set; }
//выбран ли товар
public bool IsChecked { get; set; }
//какое количество выбрано
public int SelectedCount { get; set; }
//стоимость выбранных
public int TotalPrice { get { return Price * SelectedCount; } }
//конструктор
public Good(string title, int count, int price)
{
Title = title;
Count = count;
Price = price;
IsChecked = false;
}
}
}
Копии экранов работающей программы
1. При запуске программы программа имеет вид, приведенный ниже. С левой стороны видим список доступных товаров. Следующий столбец количество товаров, за тем их стоимость.
2. Здесь мы выбираем нужные товары.
3.Вводим их количество.
4. Получаем ответ.
Выводы:
В этой программе добавляем новые знания к изученным весной классам, вспоминаем методы, еще зимой изученные оператор if . Комбинируя эти знания мы получаем программу которая весьма полезна в биту. Это особенно полезная программа для продавцов в больших супермаркетах, когда покупатель берет много одинакового товара. Она проста в использовании и почти не замеина на экране манитора.