飞机订票管理系统C语言课程设计.docx
- 文档编号:11309190
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:19
- 大小:36.83KB
飞机订票管理系统C语言课程设计.docx
《飞机订票管理系统C语言课程设计.docx》由会员分享,可在线阅读,更多相关《飞机订票管理系统C语言课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
飞机订票管理系统C语言课程设计
飞机订票管理系统-C语言课程设计
设计报告
题目:
飞机订票管理系统
学院:
工商管理学院
专业:
信息管理与信息系统专业
班级:
050507
姓名:
赵伟宏
指导教师:
张守伟
设计日期:
2006年12月14日——12月17日
题目:
飞机订票管理系统
一、选题背景:
问题提出:
在以往的机订票系统过程中~由于订票系统过于复杂~往往给订票工作人员带来了很多的不便~工作人员要知道是否还有多余的空座以及航班都十分困难~依次也给乘客带来了很多的麻烦~飞机订票系统提供的功能过于烦琐~而且有些程序并不提供订票的功能。
为此,这里用C语言编制了几个函数,用于程序中时,可达到让工作人员准确订票的目的.
二、设计思路:
飞机订票系统是对中国民航订票系统的管理~即对为的方便乘客~对工作人员输入和删除航班信息~乘客浏览和查找航班信息以及订票和退票的系统管理。
本程序是通过简单的C语言的基本函数来管理运行的~来实现飞机订票系统管理的基本功能。
在实现过程中~应用循环来判断运行相应的函数~即可达到方便查找和管理的功能。
三:
设计分析:
应用技术点及主要解决问题阐述
通过飞机订票系统管理函数~来实现对飞机订票的管理~通过调用输入模块~调用打印模块~调用修改模块~调用查找模块~调用删除模块~调用订票模块~调用退票模块~来输出飞机订票系统的程序~从而来是工作人员和乘客方便的打印和查询飞机航班的系统。
技术关键
飞机订票系统管理主要运用了调用函数~其中包括输入函数,voidinput()),输出函数,voidprint()),保存函数,voidsave()),读取函数,voidread()),查找函数,void
search()),删除函数,voidshanchu()),订票函数,voiddingpiao()),退票函数~voidtuipiao(),
修改(voidxiugai())。
四:
程序流程图
主函数
输入函数修改函数函数函数函数函数输出查找订票删除
voidinput()voidprint()xiugai()search()dingpiao()shuanch()
((()
shanchu()vo
idshanchu()
退票函数tuipiao()
开始
do
while
输出管理的
程序(1-7)
关于调用函数
I
输入j的计算值
选择
j=7j=5j=6j=1j=2j=3j=4
dingpiao()input()print()xiugai()search()Shunchu()dingpiao()tuipiao()
dingpiao()breakbreakbreakbreakbreakbreakbreak
五、程序清单:
一,
二(
#include
#defineN1000
structair/*定义结构体数组*/{
intnum;
charstart[20];
charover[20];
chartime[10];
intcount;
}s[N];
inti;
intm=0;
#definePRINT"%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count
/*定义输出格式*/
voidinput();/*输入航班信息*/
voidprint();/*输出航班信息*/
voidsave();/*保存航班信息*/
voidread();/*读取航班信息*/
voidsearch();/*查找航班信息*/
voidshanchu();/*删除航班信息*/
voiddingpiao();/*订票信息*/
voidtuipiao();/*退票信息*/
voidxiugai();/*修改信息*/
voidmain()
{
intj;
printf("?
---您好,欢迎进入中国民航管理系统~---?
\n");
printf("================================================================
================\n");
do
{
printf("--------?
1.输入航班信息?
--------\n\n"
"--------?
2.浏览航班信息?
--------\n\n"
"--------?
3.修改航班信息?
--------\n\n"
"--------?
4.查找航班信息?
--------\n\n"
"--------?
5.删除航班信息?
--------\n\n"
"--------?
6.订票信息?
--------\n\n"
"--------?
7.退票信息?
--------\n\n"
"--------?
0.退出?
--------\n\n");
printf("================================================================
================\n");
printf("请在0-7中选择以回车键结束:
\n\n");
scanf("%d",&j);
switch(j)
{
case1:
input();/*调用输入模块*/
break;
case2:
print();/*调用打印模块*/
break;
case3:
xiugai();/*调用修改模块*/
break;
case4:
search();/*调用查找模块*/
break;
case5:
shanchu();/*调用删除模块*/
break;
case6:
dingpiao();/*调用订票模块*/
break;
case7:
tuipiao();/*调用退票模块*/
break;
case0:
;
break;
}
}while(j!
=0);/*判断结束*/
printf("谢谢使用,再见~\n");
}/*主函数结束*/
voidinput()/*打印模块程序*/
{
charf[]="2008china";/*设置密码*/
inty;
printf("请输入密码并以回车键结束:
\n\n");
scanf("%s",f);/*读取密码*/
if(strcmp(f,"2008china")==0)
{
printf("请依次输入航班信息(机票数位0结束输入):
\n\n"
"完成输入信息请键入w以回车键结束\n\n");/*打印提示信息*/
printf("--------------------------------------------------------------------------\n");
for(i=0;i { printf("请输入航班号: \n"); scanf("%d",&s[i].num);/*读取航班号*/ printf("请输入起始站: \n"); scanf("%s",s[i].start);/*读取起始站*/ printf("请输入终点站: \n"); scanf("%s",s[i].over);/*读取终点站*/ printf("请输入时间: \n"); scanf("%s",s[i].time);/*读取时间*/ printf("请输入机票数(机票数为0结束输入): \n",m); scanf("%d",&s[i].count);/*读取机票数*/ m++; printf("第%d个信息已经输完是否继续? 按任意键继续,按0结束",m); scanf("%d",&y); if(y==0) { save();/*将结构体信息存盘*/ print();/*输出输入的航班信息*/ break; } } } else printf("输入密码错误! 请检查您的密码是否正确! 谢谢! 再见! \n\n"); } voidsave()/*保存模块程序*/ { FILE*fp,*fp1;/*定义文件指针*/ if((fp=fopen("chen.dat","wb"))==NULL)/*打开文件并判断是否出错*/ { printf("创建文件失败! \n\n");/*打印出错提示*/ getchar(); return; } if((fp1=fopen("hao.dat","wb"))==NULL)/*打开文件并判断是否出错*/ { printf("创建文件失败! \n\n");/*打印出错提示*/ getchar(); return; } for(i=0;i if(fwrite(&s[i],sizeof(structair),1,fp)==0)/*向文件写入数据,并判断是否出错*/ printf("向文件输入数据失败! \n\n"); fprintf(fp1,"%d",m); fclose(fp);/*关闭文件*/ fclose(fp1);/*关闭文件*/ } voidread()/*从文件读取信息模块*/ { FILE*fp,*fp1;/*定义文件指针*/ if((fp=fopen("chen.dat","rb"))==NULL)/*打开文件,并判断是否出错*/ { printf("出错,请检查文件是否存在,按任意键返回住菜单");/*打印出错提示*/ getchar(); } if((fp1=fopen("hao.dat","rb"))==NULL)/*打开文件并判断是否出错*/ { printf("创建文件失败! \n\n");/*打印出错提示*/ getchar(); return; } fscanf(fp1,"%d",&m); fclose(fp1);/*关闭文件*/ for(i=0;i { fread(&s[i],sizeof('air'),1,fp);/*从文件中读取信息*/ } fclose(fp);/*关闭文件*/ } voidprint()/*打印模块*/ { charw[10]; read();/*调用读取文件函数*/ printf("航班号起始站终点站时间机票数\n"); for(i=0;i { printf(PRINT);/*打印信息*/ } printf("请按任意键回车键结束返回上层菜单以: \n"); scanf("%s",w);} voidsearch()/*查询模块*/ { charname1[20]; charname2[20]; charii[10]; intn,no; do { printf("请选择查找方式: \n\n");/*打印查询方式菜单*/ printf("1.按航班号查找\n\n" "2.按终点站查找\n\n" "3.按航线查找\n\n" "0.返回\n\n"); printf("请在0-3中选择: \n\n" "按其他键以回车键结束返回主菜单: \n\n"); scanf("%d",&n);/*读取查找方式*/ if(n==0) break; switch(n) { case1: printf("请输入航班号: \n"); scanf("%d",&no);/*航班号*/ break; case2: printf("请输入终点站名称: \n"); scanf("%s",name2);/*读取终点站*/ break; case3: printf("请输入起始站名称: \n"); scanf("%s",name1);/*读取起始站*/ printf("请输入终点站名称: \n"); scanf("%s",name2);/*终点站*/ break; } read();/*用读取函数*/ for(i=0;i { if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)/*终点站起始站判断输出条件*/ { printf("\n查找航班信息成功! \n"); printf("航班号起始站终点站时间机票数\n"); printf(PRINT);/*印信息*/ break; } if(s[i].num==no)/*按航班号判断输出条件*/ { printf("\n查找航班信息成功! \n"); printf("航班号起始站终点站时间机票数\n"); printf(PRINT);/*打印信息*/ break; } } no=0;/*将航班号赋值为0*/ printf("没有您需要的信息或查找完毕: \n\n" "是否继续查找? 请键入yes或no以回车键结束\n"); scanf("%s",ii);}while(strcmp(ii,"yes")==0);/*判断结束*/} voidshanchu()/*删除模块*/ { charname1[20]; charname2[20]; charii[10]; charf[]="2008china";/*设置密码*/ intno,n; printf("请输入密码并以回车键结束: \n\n"); scanf("%s",f);/*读取密码*/ if(strcmp(f,"2008china")==0)/*判断密码是否正确*/ { do { printf("请选择删除以方式回车键结束: \n\n");/*打印删除方式菜单*/ printf("*1.按航班号删除\n\n" "*2.按航线删除\n\n" "*0.返回\n\n"); printf("请在0-2中选择以回车键结束: \n"); scanf("%d",&n);/*读取删除方式*/ if(n==0) break;/*跳出循环*/ switch(n) { case1: printf("请输入航班号: \n"); scanf("%d",&no);/*读取航班号*/ read();/*调用读取函数*/ break;/*跳出循环*/ case2: printf("请输入起始站名称: \n"); scanf("%s",name1);/*读取起始站*/ printf("请输入终点站名称: \n"); scanf("%s",name2);/*读取终点站*/ read();/*调用读取函数*/ break;/*跳出循环*/ } for(i=0;i { if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)/*判断输入信 息是否存在*/ { s[i]=s[m-1]; m--; } } printf("查找完毕或没有这个信息\n\n"); printf("是否继续删除\n"); printf("请键入yes或no以回车键结束\n"); scanf("%s",ii);/*读取是否继续信息*/ save();/*调用读取函数*/ if(! strcmp(ii,"yes"))/*判断是否继续删除*/ printf("请按任意键以回车键结束返回上层菜单: \n"); break; }while(n! =1&&n! =2&&n! =3&&n! =4&&n! =0);/*判断结束*/ } else printf("对不起密码错误! 您不是管理员,不能使用此项功能! 谢谢! 再见! \n\n"); } voiddingpiao()/*订票模块*/ { intn; chara[10]; do { search();/*调用查询模块*/ printf("请输入您要订的机票数以回车键结束: \n"); scanf("%d",&n);/*读取所订机票数*/ if(n<0) { printf("请输入有效的机票数~\n");/*判断机票数是否出错*/ break; } if(s[i].count! =0&&s[i].count>=n)/*判断是否出错*/ { s[i].count=s[i].count-n; save();/*调用保存函数*/ printf("订票成功! \n\n"); break; } if(s[i].count { printf("请输入有效的机票数: \n"); break; } printf("是否继续,请输入yes或no以回车键结束: \n");/*判断是否继续订票*/ scanf("%s",a); }while(! strcmp(a,"yes"));/*判断结束*/ } voidtuipiao()/*退票模块*/ { intn; chara[10]; do { search();/*调用查询模块*/ printf("请输入您要退的机票数目: \n"); scanf("%d",&n);/*输入所退票数*/ if(n<0)/*判断票数是否有效*/ printf("请输入有效的机票数~\n"); s[i].count=s[i].count+n; save();/*调用保存模块*/ printf("退票成功! \n\n"); printf("是否继续,请键入yes或no以回车键结束: \n\n");/*判断是否继续退票*/ scanf("%s",a); }while(! strcmp(a,"yes"));/*判断并跳出循环*/ getchar(); } voidxiugai()/*修改模块*/ { structxiu/*定义结构体*/ { intno; charname1[20]; charname2[20]; chartime[20]; intcount; }x[1]; charj[10]; charf[]="2008china";/*设置密码*/ intn; printf("请输入密码并以回车键结束: \n\n"); scanf("%s",f);/*读取密码*/ if(strcmp(f,"2008china")==0)/*判断是否出错*/ { read();/*调用读取模块*/ do { printf("请选择修改方式: \n\n" "*1,按航班号修改: \n\n" "*2,按航线修改: \n\n"); printf("请在1---2中修改以回车键结束: \n\n"); scanf("%d",&n);/*读取修改方式*/ switch(n) { case1: printf("请输入航班号: \n"); scanf("%d",&x[0].no);/*读取航班号*/ break; case2: printf("请输入起始站: \n"); scanf("%s",x[0].name1);/*读取起始站*/ printf("请输入终点站: \n"); scanf("%s",x[0].name2);/*读取终点站*/ break; } for(i=0;i { if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0)/*判断输出条件*/ { printf("航班号起始站终点站时间机票数\n"); printf(PRINT); break; } if(s[i].num==x[0].no)/*判断输出条件*/ { printf("航班号起始站终点站时间机票数\n"); printf(PRINT); break; } } x[0].no=0;/*将结构体中的号为零*/ printf("请输入新航班号、起始站、终点站、时间(星期几)、机票数: \n"); scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].count);/*定义输入格式*/ s[i].num=x[0].no;/*替换航班号*/ strcpy(s[i].start,x[0].name1);/*替换其始站*/ strcpy(s[i].over,x[0].name2);/*替换终点站*/ strcpy(s[i].time,x[0].time);/*替换时间*/ s[i].count=x[0].count;/*替换机票数*/ save();/*调用保存模块*/ printf("是否继续,请键入yes或no以回车键结束: \n\n"); scanf("%s",j); }while(strcmp(j,"yes")==0);/*判断结束*/ } else printf("对不起密码错误! 您不是管理员,不能使用此项功能! 谢谢! 再见! \n\n");} 六、设计自评: 1~设计优点: 该程序的最大特点是设计思路简单~语言简练、通俗易懂。 全篇没有较难的C语言语句~而且操作简单~实用性强~可以对任意一组输入的数据信息进行分析统计。 程序中每个函数在实现同一功能时~都尽量用不相近的方法来实现~而在一些用到重复功能的地方~这里仅用一种较具代表性的方式来一代 而过。 因此~用户可以根据需要~任意拓展每个函数的功能~进而完善本程序增强实用性~这里为读者留下了足够的自我构思的思维空间。 2~设计缺点: 函数利用单一~没有利用不同形式的占据空间较小的函数实现不同功能~所以占据的空间较大。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 订票 管理 系统 语言 课程设计