Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach_var_46.doc
Скачиваний:
14
Добавлен:
18.11.2018
Размер:
922.62 Кб
Скачать

6.4.1. Выполнение функции открытия (загрузки) существующих данных

Выполнение указанной функции возможно нажатием клавиши «6» клавиатуры.

6.4.2. Выполнение функции записи (сохранения) существующих данных

Выполнение указанной функции возможно нажатием клавиши «7» клавиатуры.

6.4.3. Выполнение функции дополнения данных.

Выполнение вышеуказанной функции программы осуществляется нажатием клавиши «1» на клавиатуре и последующим вводом информации о результатах студента, а также его ФИО и проходном балле.

6.4.4. Выполнение функции сортировки данных по заданным атрибутам.

При выполнении данной функции следует нажать клавишу «3» для перехода в подменю сортировки, и выбрать признак, по которому следует сортировать записи.

6.4.5. Выполнение функции вывода данных на экран.

Для выполнения данной функции программы следует нажать клавишу «5» клавиатуры.

6.4.6. Выполнение функции удаления данных.

Указанная функция выполняется при помощи нажатия клавиши «4» клавиатуры и последующего ввода ФИО студента с тем чтобы удалить запись о его результатах тестирования – для удаления записи.

6.4.7. Выполнение функции поиска данных.

Указанная функция выполняется при помощи нажатия клавиши «2» клавиатуры и последующего ввода ФИО студента с тем чтобы найти запись о его результатах тестирования.

6.5 Сообщения программы

Сообщения, выводимые в ходе работы программы, находятся в таблице 2.

Сообщения программы

Тип сообщения

Действия оператора

Oshibka chteniya

Информационное

Не требуется

Fail prochitan

Информационное

Не требуется

Oshibka zapisi

Информационное

Не требуется

Fail zapisan

Информационное

Не требуется

Vvedite fio:

Запрос данных

Ввод ФИО студента

Vvedite prohodnoi ball:

Запрос данных

Ввод проходного балла

Student dobavlen

Информационное

Не требуется

Takogo studenta net

Информационное

Не требуется

Vvedite method sortirovki:

Запрос данных

Ввод номера метода сортировки подменю сортировки

Student udalen

Информационное

Не требуется

Dannye otsortirovani

Информационное

Не требуется

Vvedite komandu

Запрос данных

Ввод номера действия главного меню

Таблица 4 – Сообщения программы

6.6 Завершения работы программы

Для завершения работы с программой, нажмите на клавиатуре ‘8’ – выход. Программа завершит работу, и все несохраненные данные будут стерты.

ЗАКЛЮЧЕНИЕ

В результате проделанной курсовой работы была разработана программа управления данными автопарка, которая позволяет вести статистику, сортировать данные, искать данные по любому атрибуту, выводить таблицу. Пользователь самостоятельно может редактировать данные, удалять и дополнять их. Все данные пользователь может записывать в файл. Были выполнены все основные этапы программирования, задачи, а именно: был оценен метод решения поставленной задачи, проанализированы необходимые данные и результаты, разработан алгоритм и составлена его блок-схема, написана, отлажена и проверена на работоспособность программа, по вычисляемому полю (расстояние, преодолеваемое между заправками).

В ходе курсового проектирования все поставленные задачи успешно выполнены.

ЛИТЕРАТУРА

  1. Романов В.Ю., Программирование на языке СИ, Москва: 1993;

  2. Microsoft Developers Network (http://msdn.microsoft.com)

  3. ГОСТ 2.105–95. Общие требования к текстовым документам;

  4. ГОСТ 19.701-90. Схема алгоритмов, программ данных и систем;

  5. ГОСТ 19.101-77. Схема алгоритмов, программ данных и систем;

  6. ГОСТ 34.601-90. Автоматизированные системы, стадии создания;

  7. ГОСТ 19.103-78. Обозначение программ и программных документов;

  8. ГОСТ 19.402-78. Описание программы;

  9. ГОСТ 19.505-79. Руководство оператора. Требования к содержанию и оформлению.

ПРИЛОЖЕНИЕ А

(обязательное)

Текст программы

#include <stdio.h>

#include <tchar.h>

#include <malloc.h>

#include <string.h>

FILE*file;

struct student{

char fio[15];

int ball;

int prohodnoi_ball;

int result;

};

void readfile (struct student **mas,int *kolvo){

if((file=fopen("text.txt","r+"))==0){

printf("Oshibka chteniya\n");

}else {

while(!feof(file)){

*kolvo=*kolvo+1;

if(*kolvo!=1)

{realloc(*mas,*kolvo*sizeof(struct student));}

mas[*kolvo-1]=(struct student *)malloc(sizeof(struct student));

fscanf(file,"%s\t", &mas[*kolvo-1]->fio);

fscanf(file,"%d\t", &mas[*kolvo-1]->ball);

fscanf(file,"%d\t", &mas[*kolvo-1]->prohodnoi_ball);

fscanf(file,"%d\n", &mas[*kolvo-1]->result);

}

fclose(file);

printf("Fail prochitan\n");

}

}

void writefile(struct student **mas,int *kolvo){

if((file=fopen("text.txt","w+"))==0){

printf("Oshibka zapisi\n");

}else{

for(int i = 0;i < *kolvo; i++){

fprintf(file,"%s\t", mas[i]->fio);

fprintf(file,"%d\t", mas[i]->ball);

fprintf(file,"%d\t", mas[i]->prohodnoi_ball);

fprintf(file,"%d\n", mas[i]->result);

}

fclose(file);

printf("Fail zapisan\n");

}

}

void dobav(struct student **mas,int *kolvo){

*kolvo=*kolvo+1;

if(*kolvo!=1)

{realloc(*mas,*kolvo*sizeof(struct student));}

mas[*kolvo-1]=(struct student *)malloc(sizeof(struct student));

char fio[15];

printf("Vvedite fio:");

scanf("%s", &fio);

strcpy(mas[*kolvo-1]->fio, fio);

printf("Vvedite fio:");

scanf("%d", &mas[*kolvo-1]->ball);

printf("Vvedite prohodnoi ball:");

scanf("%d", &mas[*kolvo-1]->prohodnoi_ball);

if(mas[*kolvo-1]->ball >=mas[*kolvo-1]->prohodnoi_ball){

mas[*kolvo-1]->result=1;

}else{

mas[*kolvo-1]->result=0;

}

printf("Student dobavlen\n");

}

int poisk(struct student **mas,int *kolvo){

char fio[15];

printf("Vvedite fio studenta:");

scanf("%s", &fio);

int i;

for(i=0;i<*kolvo;i++){

if(strcmp(mas[i]->fio,fio)==0){

printf("%s\t%d\t%d\t%d\n", mas[i]->fio, mas[i]->ball, mas[i]->prohodnoi_ball,mas[i]->result);

return i;

}

}

printf("Takogo studenta net\n");

return -1;

}

void swap_students(struct student **mas, int i, int j){

struct student *temp;

temp=mas[i];

mas[i]=mas[j];

mas[j]=temp;

}

void sort(struct student **mas,int *kolvo){

int i,j,sort_type;

printf("Vvedite method sortirovki:");

printf("1. FIO");

printf("2. Ball");

printf("3. Prohodnoi ball");

printf("4. Result");

scanf("%d", &sort_type);

for(i=0; i<*kolvo; i++){

for(j=0; j<*kolvo; j++){

if(sort_type==1 && strcmp(mas[i]->fio,mas[j]->fio)<0){

swap_students(mas,i,j);

}

if(sort_type==2 && mas[i]->ball<mas[j]->ball){

swap_students(mas,i,j);

}

if(sort_type==3 && mas[i]->prohodnoi_ball<mas[j]->prohodnoi_ball){

swap_students(mas,i,j);

}

if(sort_type==4 && mas[i]->result==0 && mas[j]->result==1){

swap_students(mas,i,j);

}

}

}

printf("Dannye otsortirovani\n");

}

void udal(struct student **mas,int *kolvo){

int udal1;

udal1=poisk(mas,kolvo);

if(udal1>0){

for(int i=udal1; i<*kolvo-1; i++){

strcpy(mas[i]->fio,mas[i+1]->fio);

mas[i]->ball=mas[i+1]->ball;

mas[i]->prohodnoi_ball=mas[i+1]->prohodnoi_ball;

mas[i]->result=mas[i+1]->result;

}

free(mas[*kolvo-1]);

*kolvo-=1;

}else{

free(mas[0]);

*kolvo=0;

}

printf("Student udalen\n");

}

void print(struct student **mas,int *kolvo){

int i;

printf("FIO\tBall\tProhodnoi ball\tResult\n");

for(i=0;i<*kolvo;i++){

printf("%s\t%d\t%d\t%d\n", mas[i]->fio, mas[i]->ball, mas[i]->prohodnoi_ball,mas[i]->result);

}

}

int main(){

int *kolvo=(int*)malloc(sizeof(int));

*kolvo=0;

struct student **mas=(struct student **)malloc(sizeof(struct student));

int a=1;

printf(" ----------------------- \n");

printf("|\tMenu:\t\t|\n");

printf("| 1. Dobavit studenta\t\t|\n");

printf("| 2. Poisk studenta\t\t|\n");

printf("| 3. Sortirovat' studentov\t|\n");

printf("| 4. Udalit studenta\t\t|\n");

printf("| 5. Print studentov\t\t|\n");

printf("| 6. Zagruzit' iz faila\t\t|\n");

printf("| 7. Sohranit' v fail\t\t|\n");

printf("| 8. Exit\t\t|\n");

printf(" ------------------------ \n");

while(a!=8)

{

printf("\n Vvedite komandu: ");

scanf("%d", &a);

switch(a){

case 1:

dobav(mas,kolvo);

break;

case 2:

poisk(mas,kolvo);

break;

case 3:

sort(mas,kolvo);

break;

case 4:

udal(mas, kolvo);

break;

case 5:

print(mas,kolvo);

break;

case 6:

readfile(mas,kolvo);

break;

case 7:

writefile(mas,kolvo);

}

}

return 0;

ПРИЛОЖЕНИЕ Б

Схема программы

ПРИЛОЖЕНИЕ В

Схемы алгоритмов

Схема подпрограммы добавления данных о студенте

Схема подпрограммы удаления данных о студенте

Схема подпрограммы вывода списка студентов

Схема подпрограммы загрузки данных из файла

Схема подпрограммы сохранения данных в файл

Схема подпрограммы сортировки

Схема подпрограммы поиска данных

ПРИЛОЖЕНИЕ Г

Схема данных

ПРИЛОЖЕНИЕ Д

Иллюстрации

31

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