на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Конструирование программ и языки программирования
p align="left">3) совершен выход из программы

4) программа была вновь открыта : добавленные данные присутствовали.

Вывод : данные были успешно сохранены в файле(при просмотре директории файл присутствовал).

5) испытание было повторено

В)

1) После запуска программы были открыты данные для корректировки и изменены некоторые из них.

2) Потом некоторые записи были удалены.

3) Во время просмотра удалённые записи отсутствовали, а корректировавшиеся были изменены.

4) Был совершен выход из программы и повторный запуск.

5) Все ранее внесённые изменения присутствовали.

Вывод : программа успешно корректирует и удаляет данные, а потом сохраняет изменения в файле.

С)

1) Программа была загружена.

2) В структуру данных внесены изменения.

3) Совершён нестандартный выход.

4) Программа вновь загружена.

При просмотре сделан вывод: нестандартный выход имеющийся файл данных не повредил, однако новые изменения внесены небыли.

Вывод по всем испытаниям:

С возложенной задачей программа успешно справляется, не требуя при этом большого количества ресурсов системы.

6. Описание применения

Написанная мною программа является СУБД и предназначена для хранения данных об поступивших на склад объектах. Она может найти применение на различного рода хранилищах и складах или в процессах использующих те же принципы хранения и обработки информации.

Программа сконфигурирована под MS DOS и установка Windows ей не требуется.

Минимальные требования: CPU--Pentium 100 m, и ОЗУ--8Мв, наличие стандартных устройств ввода-вывода.

Данный программный продукт обладает дружелюбным интерфейсом, и легкость управления работой.

Для упрощения доступа к данным реализован поиск, сходный по применению с поиском в справочной системе компилятора BorlandC++3.0.

Программа проста в использовании и не требует никаких дополнительных программных и технических средств от ЭВМ, и специальной квалификации от пользователя.

Её системные требования довольно низкие, поэтому программу можно использовать даже на старых моделях компьютеров.

Заключение

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

В связи с тем, что программа не получит коммерческого распространения и новые её версии разрабатываться не будут, я не использовал многие возможности предлагаемые объектно-ориентированным подходом в программировании, чтобы не увеличивать время разработки программы и не ухудшать её читабельность.

Литература

Гилберт Шилдт "Borland C++"

2. Гради Буч "Объектно-ориентированный анализ и проектирование".

Приложение А

Листинг программы

#include <conio.h>

#include <stdio.h>

#include <graphics.h>

#include <iostream.h>

#include <dir.h>

#include <PROCESS.H>

#include <IO.h>

#include <dos.h>

#include <time.h>

#include <FSTREAM.H>

void append();

void Mousebut(int *cbb,int *xx,int *yy);

void HideMouse();

void ShowMouse();

char Conv(int);

void Correct(void);

int Find();

void DrawMain(int);

void Timeout();

int nzap=0,regim;

int exitp;

char userprg[15]=" ";

time_t lt;

char *mch;

class DataF {

public:

char datep[10];

char name[20];

char col_vo[10];

char ed_ism[5];

char inform[200];

char user[15];

char GetPole(char *str,int nb,int rzc)

{

int i;

if(rzc==0)

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

{

str[i]=' ';

};

int ic;

char chr;

int nb1=nb,nb2=nb;

if(rzc!=0){if(nb>100)nb2=30; for(i=0;i<nb2-2;i++)cout<<str[i];nb1=nb1-2; cout<<"_"; };

for(i=((rzc!=0)?nb1:0);i<nb-1;i++)

{

ic=getch();

if(ic==13)break;

if(ic==27){nzap--;i=nb;};

if(ic==8){str[i-1]=' ';i=i-2;gotoxy(wherex()-2, wherey()); cout<<"_"; cout<<" "; gotoxy(wherex()-1,wherey());}

else{

chr=Conv(ic);

str[i]=chr;

gotoxy(wherex()-1,wherey());

cout<<chr;

cout<<"_"; };

};

gotoxy(wherex()-1,wherey());

cout<<" ";

str[nb-1]='\0';

};

void NewZap(int rzc) //rzc: 0-new 1-correct

{

HideMouse();

cleardevice();

if(rzc!=0){gotoxy(20,9); cout<<"корректировка :";};

gotoxy(20,10);

cout<<"наименование : ";

GetPole(&name[0],20,rzc);

gotoxy(20,11);

cout<<"единицы измерений : ";

GetPole(&ed_ism[0],5,rzc);

gotoxy(20,12);

cout<<"количество : ";

GetPole(&col_vo[0],10,rzc);

gotoxy(20,13);

cout<<"дата поступления : ";

GetPole(&datep[0],10,rzc);

gotoxy(20,14);

cout<<"дополнительные данные: ";

GetPole(&inform[0],200,rzc);

for(int i=0; i<15; i++) user[i]=userprg[i];

};

};

DataF Zap[125];

void LoadZap()

{

clrscr();

gotoxy(10,10);

cout<<" введите своё имя: ";

cin>>userprg;

FILE *f;

f=fopen("ttt.cfg","r");

nzap=1;

while (!feof(f))

{

fread(&Zap[nzap],sizeof(DataF),1,f);

nzap++;

};

nzap--;

fclose(f);

};

void SaveZap()

{

FILE *f;

f=fopen("ttt.cfg","w");

for (int i=1;i<nzap;i++) fwrite(&Zap[i],sizeof(DataF),1,f);

fclose(f);

};

void append()

{

FILE *f;

f=fopen("ttt.cfg","a");

fwrite(&Zap[nzap],sizeof(DataF),1,f);

fclose(f);

};

void MouseStatus(int *x,int *y,int *button)

{

int bb,xx,yy;

asm {

mov ax,03;

int 33h;

mov bb,bx;

mov xx,cx;

mov yy,dx;

};

*button=bb;

*x=xx;

*y=yy;

};

void Information()

{

HideMouse();

char ch;

int exitInf=0;

cleardevice();

gotoxy(18,9);

cout<<"разработано Можайко А.С.";

ch=getch();

DrawMain(regim);

ShowMouse();

};

void DrawMain(int regim)

{

cleardevice();

const char MenuItem[6][16]={" ",

" „добавить ",

" просмотр ",

" корректировка ",

" удалить ",

" выход "};

setcolor(1);

setbkcolor(1);

for (int i=1;i<=5;i++)

{

setfillstyle(1,i==regim?9:10);

fillellipse(300,55+i*60,90,20);

outtextxy(238,50+i*60,MenuItem[i]);

}; Timeout(); ShowMouse();

};

void ShowMouse(void)

{

asm { mov ax,01h

int 33h

}

};

void HideMouse(void)

{

asm{

mov ax,02

int 33h

}

};

void Nadpis(int n1,int coln)

{

setbkcolor(3);

struct viewporttype SaveWin;

getviewsettings(&SaveWin);

setviewport(9,9,631,260,SaveWin.clip);

clearviewport();

setviewport(9,279,598,434,SaveWin.clip);

clearviewport();

setviewport(SaveWin.left,SaveWin.top,SaveWin.right,SaveWin.bottom,SaveWin.clip);

char *st,*st1,*st2,*st3,*st4,*st5,stm[100],stm2[100];

int i;

if((n1)<125)

for (i=1;i<9;i++)

{

if(i==coln) setcolor(1);

else setcolor(4);

gotoxy(3,2*i);

cout<<n1+i-1;

st=Zap[n1+i-1].datep;

outtextxy(40,i*32-12,st);

st1=Zap[n1+i-1].name;

outtextxy(150,i*32-12,st1);

st2=Zap[n1+i-1].col_vo;

outtextxy(380,i*32-12,st2);

st3=Zap[n1+i-1].ed_ism;

outtextxy(500,i*32-12,st3);

setcolor(4);

if(i!=8)line(8,i*32+5,632,i*32+5);

};

st4=Zap[n1+coln-1].inform;

outtextxy(50,320,st4);

st5=Zap[n1+coln-1].user;

outtextxy(550,420,st5);

};

int Find()

{

char ch,rf,*zapm,word[20];

int mflag[125];

for(int f=1;f<nzap;f++)

mflag[f]=1;

setbkcolor(5);

bar(100,100,500,250);

rf=getch();

int k=-1,ret,fpk;

ch=getch();

while(3)

{

k++;

fpk=0;

for(int i=1;i<nzap-1;i++)

{

if(mflag[i]!=0){

if(rf==50){

if(ch==Zap[i].name[k]){ mflag[i]=1;fpk=1;};

if(ch!=Zap[i].name[k]) mflag[i]=0;

};

if(rf==49){

if(ch!=Zap[i].datep[k]) mflag[i]=0;

if(ch==Zap[i].datep[k]){ mflag[i]=1;fpk=1;};

};

};

};

if(fpk==0){ ch=getch(); fpk=7; };

do {

for(i=1;i<nzap-1;i++)

if(mflag[i]==1)

{

Nadpis(i,1);

ret=i;

ch=getch();

if((ch!=9)) i=nzap;

};

if(ch==9)ch=getch();}

while(ch==9);

if(ch==13)break;

};

return ret;

};//*/

int View(int corr)

{

HideMouse();

setfillstyle(1,1);

bar(0,0,getmaxx(),getmaxy());

setcolor(4);

line(0,270,640,270);

line(0,0,7,7);

line(633,7,640,0);

line(0,270,7,263);

line(633,263,640,270);

line(0,270,7,277);

line(633,277,640,270);

line(0,480,7,473);

line(633,473,640,480);

rectangle(7,7,633,263);

rectangle(7,277,633,473);

setfillstyle(1,2);

bar(601,279,631,471);

settextstyle(0,0,3);

outtextxy(608,290,"F");

outtextxy(608,335,"I");

outtextxy(608,380,"N");

outtextxy(608,425,"D");

settextstyle(0,0,0);

rectangle(600,278,632,472);

rectangle(601,277,633,473);

setfillstyle(1,3);

bar(8,8,632,261);

bar(8,278,599,472);

bar(8,435,599,472);

setcolor(4);

int exitPrg=0,ret=0;

char cr;

int i=1,newi=1,botton, x, y;

Nadpis(1,1);

ShowMouse();

line(8,450,599,450);

while(exitPrg==0){

while(!kbhit()){Mousebut(&botton, &x, &y);

if(botton>0)

if((x>601)&&(x<631))

if((y>279)&&(y<471)){

i=Find();newi=i;i=1;};

};

cr=getch(); HideMouse();

switch(cr){

case 72:{i--;

if(i<1) {

i=1;

if(newi>1){newi--;};

};

Nadpis(newi,i);

break;};

case 80:{i++;if(i>8){i=8;newi++;};

Nadpis(newi,i);

break; };

case 62:i=Find();newi=i;i=1;break;

case 27:exitPrg=1;ret=-1;break;

case 13:{delay(300);ret=(newi+i-1);exitPrg=1;

break;};

};

textbackground(2); setfillstyle(1,10); ShowMouse();

};

HideMouse();

settextstyle(0,0,0);

return ret;

};

void deleteZap(void)

{

int exitdel=0;

char ch;

while (exitdel==0)

{

int t=View(2);

if(t==-1)break;

setbkcolor(1);

bar(100,100,500,200);

ch=getch();

if(ch==13){

for(int i=t; i<=nzap; i++){ Zap[i]=Zap[i+1];exitdel=1;};

};

};

}; //*/

void Correct(void)

{

int t=View(1);

setbkcolor(1);

if((t!=0)&&(t!=-1))

Zap[t].NewZap(1,t);

};

void EnterHandle(int regim)

{

cleardevice();

switch (regim)

{

case 1: Zap[nzap].NewZap(0,nzap);nzap++; break;

case 2: View(0); break;

case 3: Correct();break;

case 4: deleteZap();nzap--; break;

case 5: exitp=1; break;

};

cleardevice();

DrawMain(regim);

};

void Timeout()

{

setcolor(1);

lt=time(NULL);

outtextxy(445,460,mch);

mch=ctime(&lt);

setcolor(11);

outtextxy(445,460,mch);

setcolor(1);

};

int main()

{

int driver,mode,r;

int regim=1;

driver=DETECT;

mode=0;

LoadZap();

initgraph(&driver,&mode,"c:\\borlandc\\bgi");

setbkcolor(8);

DrawMain(regim);

ShowMouse();

exitp=0;

int x,y,button,timeR=0;

Mousebut(&button,&x,&y);

while (exitp==0)

{

timeR++;

if(timeR==-10) { Timeout();timeR=0; };

if (kbhit()) switch (getch())

{

case 27: exitp=1;

break;

case 80:regim=regim % 5 +1; DrawMain(regim);

break;

case 72:regim=regim==1?5:regim-1; DrawMain(regim);

break;

case 13:EnterHandle(regim);

};

Mousebut(&button,&x,&y);

if (button>0)

if ((x>555)&&(x<630))

if ((y>0)&&(y<80)) Information();

if (button>0)

{

if((x>255)&&(x<340))

{

if((y>100)&&(y<125))regim=1;

if((y>165)&&(y<185))regim=2;

if((y>225)&&(y<245))regim=3;

if((y>285)&&(y<305))regim=4;

if((y>345)&&(y<365))regim=5;

EnterHandle(regim);

};

};

};

SaveZap();

HideMouse();

restorecrtmode();

return 0;

};

void Mousebut(int *cbb,int *xx,int *yy)

{

int cb,x,y;

asm{

mov ax,05h

mov bx,0

int 33h

mov cb,bx

mov x,cx

mov y,dx

};

*xx=x;*yy=y;*cbb=cb;

};

Приложение В

Блок-схема

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.