- •Пояснительная записка
- •Содержание
- •Введение
- •Постановка задачи
- •Выбор решения Определение необходимых модулей программы.
- •Определение структуры файла базы данных.
- •Описание разработки программы
- •Отладка и тестирование
- •Описание программы Разработка приложения database.Exe
- •Разработка меню
- •Разработка функции на языке Assembler
- •Руководство пользователя
- •Заключение
- •Список используемых источников
- •Приложение а Листинг программы Файл «my.H»
- •Файл «main.C»
- •Файл «data.C»
- •Файл «mainmenu.C»
- •Файл «submenu.C»
- •Файл «dialog.C»
- •Файл «message.C»
- •Файл «sort.C»
- •Приложение b
Файл «sort.C»
#include "my.h"
unsigned char sorttag() { // Запрос выбора критерия сортировки
line = 4; // Количество критериев сортировки
pos = 1;
sortupdate(pos); // Обновление окна
do {
key = getch();
switch(key) {
case 72: { // Нажата стрелка вверх
/*
pos = pos - 1;
if(pos == 0)
pos = line;
*/
__asm {
mov al, pos;
mov bl, line;
sub al, 1; // pos = pos - 1
cmp al, 0;
je equally; // если al = 0, перейти по метке equally
jmp assignment; // безусловный переход по метке assignment
equally:
mov al, bl; // pos = line
assignment: // Значение из регистра al в переменную pos
mov pos, al;
}
sortupdate(pos);
break;
}
case 80: { // Нажата стрелка вниз
pos++;
if(pos == (line + 1))
pos = 1;
sortupdate(pos);
break;
}
case 13: { // Нажат ввод
key = 0;
break;
}
}
} while(key != 0);
return pos;
}
void sortupdate(unsigned char pos) { // Обновление запроса критерия сортировки
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n%27c", 201);
for(i = 1; i <= 22; i++)
printf("%c", 205);
if(pos == 1) {
printf("%c\n%27c * product name %c\n%27c", 187, 186, 186, 204);
} else
printf("%c\n%27c product name %c\n%27c", 187, 186, 186, 204);
for(i = 1; i <= 22; i++)
printf("%c", 205);
if(pos == 2) {
printf("%c\n%27c * product code %c\n%27c", 185, 186, 186, 204);
} else
printf("%c\n%27c product code %c\n%27c", 185, 186, 186, 204);
for(i = 1; i <= 22; i++)
printf("%c", 205);
if(pos == 3) {
printf("%c\n%27c * number of products %c\n%27c", 185, 186, 186, 204);
} else
printf("%c\n%27c number of products %c\n%27c", 185, 186, 186, 204);
for(i = 1; i <= 22; i++)
printf("%c", 205);
if(pos == 4) {
printf("%c\n%27c * product cost %c\n%27c", 185, 186, 186, 200);
} else
printf("%c\n%27c product cost %c\n%27c", 185, 186, 186, 200);
for(i = 1; i <= 22; i++)
printf("%c", 205);
printf("%c\n", 188);
}
Приложение b
Снимки экрана
Заставка
Главное меню
Меню сортировки
Таблица товаров
Приложение С
Результат работы программы
Файлdata.txt:
13
Paper*00111*500*199
Pan*abccc*950*25
Battery "Panasonic"*192md*300*49
Notebook*01111*1200*2
Pan (Gel)*abddd*400*50
Chair*888abc*75*900
Notebook (18 pages)*01113*500*3
Clock "Fossil"*ch2564*33*4360
Toaster "Philips"*ff45hj*125*2190
Notebook (96 pages)*01112*87*45
Dishes*dufhhf*42*420
Clock "Casio"*110ts*13*7490
Whatman Paper*002222*140*20