Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RKR.docx
Скачиваний:
4
Добавлен:
11.05.2015
Размер:
190.01 Кб
Скачать

3. Руководство пользователя

Описание работы меню

Для того, чтобы отдать программу на выполнение, необходимо первоначально ввести структуру.

После этого на экране появляется меню пользователя. Выглядит оно следующим образом:

Необходимо ввести цифру выбранного действия.

Если пользователь выбирает цифру 1, то программа потребует ввести данные о новой записи и добавит её в файла.

Если будет введена цифра 2, программа будет выполнять корректировку данных. Для этого необходимо ввести существующий номер записи. После чего можно будет изменить любые данные этой записи.

При нажатии цифры 3, программа должна удалить элемент. Для этого необходимо ввести номер удаляемой записи (нумерация при этом идёт с 1,а не с 0 ).

При выборе пункта 4, программа рассчитывает процента выхода годных изделий на основе актов приёма ОТК, если данные существуют, и вывод их на экран.

Если пользователь введет цифру 5, программа выдаст на экран таблицу с данными.

При нажатии пользователем цифры 6 в режиме меню осуществляется действие «выход из программы»

Заключение

В результате работы была создана программа, которая рассчитывает процента выхода годных изделий на основе актов приёма ОТК.

  1. программа вводит необходимые величины.

  2. все данные могут считываться из файла и записываться в файл при закрытии программы.

  3. при необходимости все данные изделия могут быть изменены.

  4. программа максимально упрощает работу пользователя, позволяя автоматизировать расчеты и хранение данных, а также выводя подсказки для пользователя.

Список использованной литературы

  1. «Начальный курс Си и Си++» Б.И. Березин, С.Б. Березин; - М., Диалог-МИФИ, 2001г.

  2. «Основы алгоритмизации и программирования. Язык СИ.» / Е.М.Демидович; - Мн., Бестпринт, 2001г.

  3. «Программирование на языке Си» Подбельский В.В., Фомин С.С.

  4. «Программирование С и С++» Г.Шилдт.

Листинг программы Приложение 1

#include "stdafx.h"

#include "conio.h"

#include <iostream>

#include <windows.h>

using namespace std;

FILE *g;

struct dannue

{

char name[30];

int vsego;

int brak;

float otk;

};

struct dannue m[30];

struct dannue t;

int sch=0,er,i;

int menu();

void addFile();

void editFile();

void deleterecord();

void otk();

void viewFile();

void main()

{

setlocale(LC_ALL,"Russian");

int i;

g=fopen("prom.txt","w+b");

for(i=1;sch<30 && i==1;sch++)

{

cout<<"\nВведите название изделия:\n";

cin>>m[sch].name;

fprintf(g,"%10s ",m[sch].name);

cout<<"Введите размер партии: \n";

cin>>m[sch].vsego;

fprintf(g,"%10d ",m[sch].vsego);

cout<<"Введите кол-во бракованых изделий:\n";

cin>>m[sch].brak;

fprintf(g,"%10d ",m[sch].brak);

cout<<"Хотите продолжить? (если да то нажмите 1 ,если нет то 0)";

scanf("%d",&i);

}

fclose(g);

while(1)

{

switch(menu())

{

case 1:addFile();break;

case 2:editFile();break;

case 3: deleterecord(); break;

case 4:otk();break;

case 5:viewFile();break;

case 6:return 0;

default: cout<<"Не верный выбор\n";

}

}

}

int menu()

{

system ("cls");

cout<<"Введите:\n";

cout<<"1-для ввода новой записи\n";

cout<<"2-для изменения записей \n";

cout<<"3-для удаления записей\n";

cout<<"4-для нахождения процента выхода\n";

cout<<"5-для чтения структуры из файла\n";

cout<<"6-для выхода\n";

cin>>er;

return er;

}

void addFile()

{

g=fopen("prom.txt","ab");

system("cls");

if(sch<30)

{

cout<<"Запись номер"<<sch+1;

cout<<"\nВведите название изделия:\n";

cin>>m[sch].name;

fprintf(g,"%10s ",m[sch].name);

cout<<"Введите размер партии: \n";

cin>>m[sch].vsego;

fprintf(g,"%10d ",m[sch].vsego);

cout<<"Введите кол-во бракованых изделий:\n";

cin>>m[sch].brak;

fprintf(g,"%10d ",m[sch].brak);

sch++;

fclose(g);

}

else cout<<"Введено максимальное кол-во записей";

}

void editFile()

{

int per;

system("cls");

g=fopen("prom.txt","wb");

cout<<"\nВведите номер записи\n";

cin>> i;

while(1)

{

cout<<"Введите: \n";

cout<<"1-для изменения названия изделия\n";

cout<<"2-для изменения кол-ва изделий\n";

cout<<"3-для изменения кол-ва бракованых изделий\n";

cout<<"4-для прекращения\n";

cin>>per;

switch (per)

{

case 1:

cout<<"\nВведите новое название изделия\n";

cin>>m[i-1].name;

fprintf(g,"%10s ",m[i-1].name);break;

case 2:

cout<<"\nВведите новое кол-во изделий\n";

cin>>m[i-1].vsego;

fprintf(g,"%10s ",m[i-1].vsego);break;

case 3:

cout<<"Введите новое кол-во бракованых изделий \n";

cin>>m[i-1].brak;

fprintf(g,"%10s ",m[i-1].brak);break;

case 4:fclose(g); return;

}

}

}

void deleterecord()

{

int b;

printf("Введите номер записи которую нужно удалить:\n");

scanf("%d",&b);

g=fopen("prom.txt","wb");

for(i=0;i<(b-1);i++)

{

fprintf(g,"%10s%10d%14d ",m[i].name,m[i].vsego,m[i].brak);

}

for(i=b;i<sch;i++)

{

fprintf(g,"%10s%10d%14d ",m[i].name,m[i].vsego,m[i].brak);

}

sch=sch-1;

fclose(g);

}

void otk()

{

g = fopen("prom.txt", "rb");

system("cls");

cout<<"-----------------------------------------\n";

cout<<" Название| Процент выхода годных изделий\n";

cout<<" изделия | на основе актов приёма ОТК \n";

cout<<"-----------------------------------------\n";

if(sch!=0)

for(int i=0;i<sch;i++)

{

fscanf(g,"%s%18d%15d\n",m[i].name,&m[i].vsego,&m[i].brak);

m[i].otk=(m[i].vsego-m[i].brak)*100/m[i].vsego;

printf("%s%12.2f\n",m[i].name,m[i].otk);

}

else printf("Данных нет!");

getch();

}

void viewFile()

{

system("cls");

if ((g = fopen("prom.txt", "rb")) == NULL)

printf ("File could not be opened\n");

else {

cout<<"--------------------------------------------------\n";

cout<<" | Изделие | Размер партии |Бракованых изделий |\n";

cout<<"--------------------------------------------------\n";

for(i=0;i<sch;i++)

{

fscanf(g,"%s%18d%15d\n",m[i].name,&m[i].vsego,&m[i].brak);

printf("%s%18d%15d\n",m[i].name,m[i].vsego,m[i].brak);

}

fclose (g);

}

getch();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]