Создание базы данных для аптечного киоска

Автор работы: Пользователь скрыл имя, 15 Мая 2013 в 20:55, курсовая работа

Краткое описание

В курсовой работе необходимо разработать программу на языке C++ для обработки данных типа структура под названием «Аптечный киоск», содержащей поля: наименование товара, отпускается по рецепту или нет, срок годности, цена.
Обеспечить выполнение следующих операций:
• Создание нового массива;
• Организация меню, состоящее из двух пунктов: Вывод имеющегося товара и Выход;

Содержание

Введение 3
1. Описание программы 6
2. Описание функциональности программы 13
Выводы 19
Список литературы 20
Приложения 21

Вложенные файлы: 1 файл

Готовая курсовая Аптечный киоск2.doc

— 410.50 Кб (Скачать файл)

 

 

 

 

 

 

Скриншот №4

Остальные сортировки проходят по тому же принципу, поэтому  показывать остальные скриншоты  не будем.

Следующее наше действие это распродажа. Они происходят в обычных магазинах довольно часто, а в аптеках немного реже. Мы решили установить скидку 10%. Результат увидим на скриншоте №5.

 

Скриншот №5

Далее мы хотим  узнать какое количество лекарств превосходит  цену в 100 рублей. По скриншоту №6 видно, что 16 лекарств имеет цену превышающую 100 рублей.

 

Скриншот №6

При нажатии  на 0 окно программы закрывается.

 

Выводы

 

  1. В ходе работы мы объявили структуру, содержащую четыре поля: название лекарственного средства, отпускается по рецепту или нет, срок годности и цена. Массив содержит 20 таких структур.
  2. Было организовано меню, состоящее из двух пунктов: Вывод всех лекарств и Выход.
  3. Добавлен пункт меню Выбор определенного лекарства. Пользователю необходимо ввести название лекарства, а программа выведет все лекарства имеющих такое название.
  4. Добавлен пункт меню Запись информации в файл. Пользователю необходимо ввести имя файла, и программа запишет содержимое массива в этот файл.
  5. Добавлен пункт меню Сортировка лекарств по заданному полю. Пользователь сообщает поле, по которому отсортировать лекарства (по названию, по необходимости рецепта, по сроку годности или по цене), и после этого программа выполняет сортировку.
  6. Добавлен пункт меню Распродажа. Пользователь вводит число процентов, на которое нужно уценить все лекарства, и программа снижает цену у всех товаров на эту величину.
  7. Добавлен пункт меню Количество лекарств, цена которых превосходит … . Пользователь вводит цену, а программа выводит все товары, цена которых превосходит введенное значение.

 

Список литературы

 

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 - Выбор определенного лекарства\n");

    printf("3 - Запись в файл\n");

    printf("4 - Сортировка по названию\n");

    printf("5 - Сортировка по необходимости  рецепта\n");

    printf("6 - Сортировка по сроку годности\n");

    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;

}

 


Информация о работе Создание базы данных для аптечного киоска