Автор работы: Пользователь скрыл имя, 15 Мая 2013 в 20:55, курсовая работа
В курсовой работе необходимо разработать программу на языке C++ для обработки данных типа структура под названием «Аптечный киоск», содержащей поля: наименование товара, отпускается по рецепту или нет, срок годности, цена.
Обеспечить выполнение следующих операций:
• Создание нового массива;
• Организация меню, состоящее из двух пунктов: Вывод имеющегося товара и Выход;
Введение 3
1. Описание программы 6
2. Описание функциональности программы 13
Выводы 19
Список литературы 20
Приложения 21
Скриншот №4
Остальные сортировки проходят по тому же принципу, поэтому показывать остальные скриншоты не будем.
Следующее наше действие это распродажа. Они происходят в обычных магазинах довольно часто, а в аптеках немного реже. Мы решили установить скидку 10%. Результат увидим на скриншоте №5.
Скриншот №5
Далее мы хотим узнать какое количество лекарств превосходит цену в 100 рублей. По скриншоту №6 видно, что 16 лекарств имеет цену превышающую 100 рублей.
Скриншот №6
При нажатии на 0 окно программы закрывается.
Выводы
Список литературы
1. Керниган Б., Ритчи Д., Фьюер А. Язык программирования Си. Задачи по языку Си: Пер. с англ. – М.: Финанасы и статистика, 1985.
2.Трой Д. Программирование на языке Си для персонального компьютера IBM PC: Пер. с англ. – М.: Радио и связь, 1991. – 432 с., ил.
3. Подбельский В.В., Фомин С.С. Программирование на языке Си. – М: Финансы и статистика, 1998.
4.Бочков С.О., Субботин Д.М. Язык программирования Си для персонального компьютера. – М.: Радио и связь, 1990.
5. Пестунов, А. И. Структуры данных и алгоритмы : курс лекций / А. И. Пестунов; Новосиб. гос. ун-т экономики и управления. — Новосибирск: НГУЭУ, 2006. — 43 с.
Приложения
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Drugstore_items
{
char title [50];
char recipe [7];
int shelf_life;
float price;
};
const int n=20;
Drugstore_items drugs[n] = {
{"Анаферон взрослый", "да", 11012014, 135.00},
{"Эссливер форте", "нет", 11102013, 298.00},
{"АЦЦ ЛОНГ", "да", 11062013, 403.50},
{"Магне В6", "нет", 13062013, 549.00},
{"Линекс", "да", 24062013, 569.00},
{"Тера Флю взрослый", "нет", 16062013, 354.00},
{"Тера Флю детский", "нет", 16082013, 254.00},
{"Но-шпа", "да", 16092013, 112.00},
{"Найз", "нет", 16092013, 147.50},
{"Тигацил", "да", 11062013, 1403.50},
{"Макмирор", "нет", 26102013, 550.00},
{"Сафоцид", "да", 24062013, 541.00},
{"Тержинан", "нет", 16062013, 441.00},
{"Эрселюферил", "да", 16072013, 433.50},
{"Розекс", "нет", 16082013, 414.00},
{"Аскорбиновая кислота", "да", 16092013, 18.00},
{"Шалфей", "нет", 16062013, 83.00},
{"Боярышник плоды", "нет", 16062013, 58.00},
{"Сбор грудной", "нет", 16062013, 59.50},
{"Лазолван", "нет", 15062013, 444.00}
};
void printDrugs() {
printf("%-25s %-20s %-15s %-10s\n", "Название",
"Отпуск по рецепту","Срок годности", "Цена");
for (int i=0; i<20; i++) {
printf("%-25s %-20s %-15d %-10.2f\n",
drugs[i].title, drugs[i].recipe,
drugs[i].shelf_life, drugs[i].price);
}
}
void selectDrugs() {
char selectSpecificDrugs;
cout << "Введите название:";
cin >> selectSpecificDrugs;
for (int i=0; i<n; i++) {
if (selectSpecificDrugs <= drugs[i].title)
{printf("%-25s %-20s %-15s %-10s\n", "Название",
"Отпуск по рецепту", "Срок годности", "Цена");
for (int i=0; i<20; i++) {
printf("%-25s %-20s %-15d %-10.2f\n",
drugs[i].title, drugs[i].recipe,
drugs[i].shelf_life, drugs[i].price);}}
}
#define TITLE 1
#define RECIPE 2
#define SHELF_LIFE 3
#define PRICE 4
bool isGreater(Drugstore_items b1, Drugstore_items b2, int field) {
switch(field) {
case TITLE : return strcmp(b1.title, b2.title) > 0;
case RECIPE : return strcmp(b1.recipe, b2.recipe) > 0;
case SHELF_LIFE : return b1.shelf_life > b2.shelf_life;
case PRICE : return b1.price > b2.price;
default : return true;
}
}
void sortDrugs(int field) {
for (int i=0; i<n-1; i++) {
int max = i;
for (int j=i+1; j<n; j++) {
if (isGreater(drugs[max], drugs[j], field)) {
max = j;
}
}
Drugstore_items temp = drugs[max];
drugs[max] = drugs[i];
drugs[i] = temp;
}
}
void saleDrugs() {
int m;
cout << "Введите скидку:";
cin >> m;
printf("%-25s %-20s %-15s %-10s\n", "Название",
"Отпуск по рецепту","Срок годности", "Цена");
for (int i=0; i<n; i++) {
int j=i;
float price;
m = m/100;
price = drugs[i].price - m*drugs[i].price;
printf("%-25s %-20s %-15d %-10.2f\n",
drugs[i].title, drugs[i].recipe,
drugs[i].shelf_life, price);
}
}
void selectPriceDrugs() {
float specified_price;
cout << "Введите цену:";
cin >> specified_price;
int c=0;
for (int i=0; i<n; i++) {
if (specified_price <= drugs[i].price)
{c = c+1;}}
cout << c;
}
void intoFile() {
FILE* dataFile = fopen("drugs.txt", "w");
for (int i=0; i<20; i++) {
fprintf(dataFile, "%s\n%s\n%d\n%f\n",
drugs[i].title, drugs[i].recipe, drugs[i].shelf_life,
drugs[i].price);
}
fclose(dataFile);
}
int main() {
setlocale(LC_ALL, "Russian");
while (true) {
system("cls");
printf("1 - Вывод всех лекарств\n");
printf("2
- Выбор определенного лекарства\
printf("3 - Запись в файл\n");
printf("4 - Сортировка по названию\n");
printf("5 - Сортировка по необходимости рецепта\n");
printf("6
- Сортировка по сроку годности\
printf("7 - Сортировка по цене\n");
printf("8 - Распродажа\n");
printf("9 - Количество лекарств, цена которых превосходит\n");
printf("0 - Выход\n");
int choice;
cin >> choice;
switch (choice) {
case 1 : printDrugs();break;
case 2 : selectDrugs();break;
case 3 : intoFile();break;
case 4 : sortDrugs(TITLE);break;
case 5 : sortDrugs(RECIPE);break;
case 6 : sortDrugs(SHELF_LIFE);break;
case 7 : sortDrugs(PRICE);break;
case 8 : saleDrugs();break;
case 9 : selectPriceDrugs();break;
case 0 : exit(EXIT_SUCCESS);break;
default : printf("Ошибка\n");
}
system("pause");
}
return 0;
}
Информация о работе Создание базы данных для аптечного киоска