沈阳工程学院课程设计报告 第4章
{
p=p->next; if(p==NULL) {
if((strcmp(q->n,n)==0)||(strcmp(q->m,n)==0)) {
sm++; }
break; }
if((strcmp(p->n,n)==0)||(strcmp(p->m,n)==0))
{
sm++; } }
if(sm==0) cout<<\查无次车(-_-)\ cout<<\统计车次数目为:\ } };
基类和派生类之间的关系如下图所示:
weihulei+p : NODE = NULL+q : NODE+gongneng(in n : char) : void+gongneng() : void+weihulei() : void+del(in k : char) : void+del() : void+gongneng(in n[20] : char) : void+xianshi() : voidNODE+n[20] : char+m[20] : char+num[20] : char+time : char+*next : NODEtongjilei+tongjilei() : void+gongneng() : voidchaxunlei+gongneng() : void+chaxunlei() : void+xianshi() : void 图3.1类图关系
13
沈阳工程学院课程设计报告 第4章
3.2数据结构
自定义数据类型:定义了struct node结构体类型,其中在weihulei中定义了p和q两个结构体,用这两个指针类型来进行结点的定位和对头指针的操作。
typedef struct node {
char n[20]; char m[20]; char num[20]; char time[20]; struct node *next; }NODE;
3.3界面设计
菜单显示函数,是通过cout输出流来实现的,通过cout分别输出输入、删除、查询、修改、显示、统计、排序和保存车次信息及退出系统的功能界面,具体功能代码如下所示:
1.系统开始界面 void welcome() {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
FOREGROUND_GREEN);
cout<<\ cout<<\ cout<<\欢迎进入车次信息管理系统 ** |\ cout<<\ cout<<\ cout<<\按任意键进入\ getch(); }
2.操作人员类型选择界面代码如下所示:
void mainmenu() {
cout<<\管理员\ cout<<\乘客\
cout<<\退出本系统\}
14
沈阳工程学院课程设计报告 第4章
3.乘客进入界面代码如下所示:
void xianshi() {
cout<<\*******\
cout<<\查找车次!\ cout<<\显示车次信息!\ cout<<\列车统计\
cout<<\退出!\
cout<<\*******\
cout<<\请输入菜单选项:\ } };
4.管理员进入界面代码如下所示:
void display() {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
FOREGROUND_RED);
cout<<\*******\
cout<<\增加车次信息!\ cout<<\修改车次信息!\ cout<<\查找车次!\ cout<<\显示车次信息!\ cout<<\删除车次信息!\ cout<<\删除所有车次信息!\ cout<<\列车统计\
cout<<\退出!\
cout<<\
15
沈阳工程学院课程设计报告 第4章
*******\
cout<<\请输入菜单选项:\
3.4主函数的设计
在这次程序的设计中,我们主要进行模块化程序,构造主函数,将各个模块进行用类串连,相互嵌套,主函数中循环调用类的对象,在主菜单中再调用子函数,从而来实现各自不同的功能。子功能完成后回到主菜单选择功能键进行下一项操作。
在主函数中,程序运行后进入主菜单后,进行的第一个操作是进行功能的选择,因为本程序没有应用文件对数据进行保存。其主要代码如下:
void main()
{
char i; char c;
char n[20]; welcome();
weihulei a,*w=NULL; NODE *k=NULL; do{
mainmenu(); cin>>c; switch(c) {
case'1': {
w=&a; w->xianshi();
do {
display(); i=getch(); switch(i) {
case'1':{a.gongneng(k);break;} case'2':{a.gongneng(n);break;}
case'3': {chaxunlei b(a);b.gongneng();break;} case'4':{a.gongneng();break;} case'5':{a.del(k);break;} case'6':{a.del();break;}
case'7': {tongjilei c(a);c.gongneng();break;}
case'8':{cout<<\谢谢使用本系统!\
16
沈阳工程学院课程设计报告 第4章
default:{cout<<\输入错误(-_-)!\
}
} while(i!='8');break; } case'2': {
chaxunlei l(a); w=&l;
do {
w->xianshi();
i=getch(); switch(i) {
case'1': {chaxunlei b(a);b.gongneng();break;} case'2':{a.gongneng();break;}
case'3':{tongjilei c(a);c.gongneng();break;} case'4':{cout<<\谢谢使用本系统!\ default:{cout<<\输入错误(-_-)!\ }
} while(i!='4');break;
}
case'3':{cout<<\谢谢使用本系统!\ default:{cout<<\输入错误(-_-)!\ }
}while(c!='3'); }
在这次程序的设计中,我主要负责模块化程序,构造主函数,将各个模块进行串连,以此来实现各种功能的融合。在主函数中,我要设计程序运行的流程,其简单流程图如图3-3下:
17