- •Пояснительная записка
- •Содержание
- •Введение
- •Постановка задачи
- •Выбор решения Определение необходимых модулей программы.
- •Определение структуры файла базы данных.
- •Описание разработки программы
- •Отладка и тестирование
- •Описание программы Разработка приложения database.Exe
- •Разработка меню
- •Разработка функции на языке Assembler
- •Руководство пользователя
- •Заключение
- •Список используемых источников
- •Приложение а Листинг программы Файл «my.H»
- •Файл «main.C»
- •Файл «data.C»
- •Файл «mainmenu.C»
- •Файл «submenu.C»
- •Файл «dialog.C»
- •Файл «message.C»
- •Файл «sort.C»
- •Приложение b
Файл «submenu.C»
#include "my.h"
void smenu() { // Показ подменю
line = 6; // Количество строк в подменю
system("cls");
pos = 1;
updatesm(pos); // Обновление подменю
do {
key = getch();
switch(key) {
case 75: { // Нажата стрелка влево
pos--;
if(pos == 0)
pos = line;
updatesm(pos);
break;
}
case 77: { // Нажата стрелка вправо
pos++;
if(pos == (line + 1))
pos = 1;
updatesm(pos);
break;
}
case 13: { // Нажат ввод
key = 0;
break;
}
}
} while(key != 0);
makesm(pos); // Выполнение выбранной опции в подменю
}
void updatesm(unsigned char pos) { // Обновление подменю
char itemMenu[80]; // Главное меню
char itemAdd[80]; // Добавить запись
char itemRemove[80]; // Удалить запись
char itemEdit[80]; // Редактировать запись
char itemFind[80]; // Поиск записи
char itemSort[80]; // Сортировка записей
strcpy(itemMenu, "");
strcpy(itemAdd, "");
strcpy(itemRemove, "");
strcpy(itemEdit, "");
strcpy(itemFind, "");
strcpy(itemSort, "");
switch(pos) { // Выбор позиции в подменю
case 1: { // Перейти в главное меню
strcpy(itemMenu, "+=============+-------------------------------------------------------+");
break;
}
case 2: { // Добавить новую запись
strcpy(itemAdd, "+-------------+==========+--------------------------------------------+");
break;
}
case 3: { // Удалить запись
strcpy(itemRemove, "+------------------------+==========+---------------------------------+");
break;
}
case 4: { // Редактировать запись
strcpy(itemEdit, "+-----------------------------------+==========+----------------------+");
break;
}
case 5: { // Найти запись
strcpy(itemFind, "+----------------------------------------------+==========+-----------+");
break;
}
case 6: { // Сортировать записи
strcpy(itemSort, "+---------------------------------------------------------+===========+");
break;
}
}
system("cls");
printf("\n %s%s%s%s%s%s\n", itemMenu, itemAdd, itemRemove, itemEdit, itemFind, itemSort);
printf(" | Main Menu | Add | Remove | Edit | Find | Sort |\n");
printf(" %s%s%s%s%s%s\n", itemMenu, itemAdd, itemRemove, itemEdit, itemFind, itemSort);
viewdata(); // Вывод всех записей
}
void makesm(unsigned char pos) { // Выполнение выбранной опции в подменю
switch(pos) {
case 1: { // Вернутся в главное меню
mmenu();
break;
}
case 2: { // Добавить новую запись
inputdata();
break;
}
case 3: { // Удалить запись
removerecord();
break;
}
case 4: { // Редактировать запись
editrecord();
break;
}
case 5: { // Искать запись
findrecord();
break;
}
case 6: { // Сортировать записи
sortdata();
break;
}
}
}
Файл «dialog.C»
#include "my.h"
unsigned char dialog(char message[30], char button1[20], char button2[20]) { // Окно диалога
pos = 1;
updatedialog(message, button1, button2, pos); // Обновление окна
do {
key = getch();
switch(key) {
case 75: { // Нажата стрелка влево
pos--;
if(pos == 0)
pos = 2;
updatedialog(message, button1, button2, pos);
break;
}
case 77: { // Нажата стрелка вправо
pos++;
if(pos == 3)
pos = 1;
updatedialog(message, button1, button2, pos);
break;
}
case 13: { // Нажат ввод
key = 0;
break;
}
}
} while(key != 0);
return pos;
}
void updatedialog(char message[30], char button1[20], char button2[20], unsigned char pos) { // Обновление окна диалога
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n%21c", 201);
for(i = 1; i <= 37; i++)
printf("%c", 205);
printf("%c", 187);
printf("\n%21c%38c", 186, 186);
printf("\n%21c%38c", 186, 186);
printf("\n%21c%33s%5c", 186, message, 186); // Сообщение
printf("\n%21c%38c", 186, 186);
printf("\n%21c%38c", 186, 186);
switch(pos) {
case 1: // Кнопка 1
{
printf("\n%21c%4c", 186, 201);
for(i = 1; i <= 12; i++)
printf("%c", 205);
printf("%c%21c\n%21c%4c%11s%2c%15s%6c\n%21c%4c",
187, 186, 186, 186, button1, 186, button2, 186, 186, 200);
for(i = 1; i <= 12; i++) {
printf("%c", 205);
}
printf("%c%21c", 188, 186);
break;
}
case 2: // Кнопка 2
{
printf("\n%21c%21c", 186, 201);
for(i = 1; i <= 12; i++)
printf("%c", 205);
printf("%c%4c\n%21c%15s%6c%11s%2c%4c\n%21c%21c",
187, 186, 186, button1, 186, button2, 186, 186, 186, 200);
for(i = 1; i <= 12; i++)
printf("%c", 205);
printf("%c%4c", 188, 186);
break;
}
}
printf("\n%21c%38c\n%21c", 186, 186, 200);
for(i = 1; i <= 37; i++)
printf("%c", 205);
printf("%c\n", 188);
}