飞机订票系统程序设计课程设计Word格式文档下载.docx
《飞机订票系统程序设计课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《飞机订票系统程序设计课程设计Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。
![飞机订票系统程序设计课程设计Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-2/1/46d95434-e22d-4bcb-bef0-dec968b90fe2/46d95434-e22d-4bcb-bef0-dec968b90fe21.gif)
因为在飞机订票系统中涉及到飞机的订票和退票业务还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。
为了简便程序我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存将此次对文件修改的所有新信息都一次保存下来。
这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计大大简便了文件的调用和读取。
保存函数运用到的知识点与读取函数大致相同。
在这个函数中首先调用了search函数查找需要订票的航班。
运用if语句实现订票时的多种情况,订票数输入不正确、飞机票数不足等情况。
订票成功时运用s[i].totalticket=s[i].totalticket-n,s[i].sellticket=s[i].sellticket+n将已被订的机票数减去以显示新的即时航班信息。
与订票函数相类似s[i].totalticket=s[i].totalticket+n,s[i].sellticket=s[i].sellticket-n。
只做稍稍修改就行退票成功是用.。
将航班的剩余票数加上去以显示即时航班信息。
模块分工:
进入系统菜单、输出航班信息、订票信息由刘妍负责
输入航班信息、保存航班信息、读取航班信息由龚媛负责
查询航班信息、退票信息、修改信息部分由郭勇艳负责
3、详细设计
系统程序结构(流程图)
录入信息系统流程图
利用fread(&
s[i],sizeof(flight),1,fp)读取信息
fread(&
s[i],sizeof(flight),1,fp);
航班信息浏览函数:
[流程图]显示信息
查询模块:
[流程图]
..
4、程序运行结果(截图)
登陆系统时需输入用户信息
图1
进入系统后出现菜单供选择,选择需要进入的窗口
图2
航班信息的录入
图3
浏览航班信息
图4
航班信息的修改
图5
查询菜单
图6
通过航班号和时间进行查询
图7
系统订票
图8
退票系统
图9
退出系统
图10
5、源程序代码(代码中注明每段代码的完成人)
/*用户名:
dianke密码:
12345*/
#include<
stdio.h>
//标准输入、输出头文件
string.h>
//包含字符串函数处理头文件
stdlib.h>
//包含动态存储与释放函数头文件
conio.h>
//包含字符串的输入、输出头文件
#defineN10000
structflight//定义结构体数组
{
intflightno;
charstart[10];
charend[10];
charday[10];
inttotalticket;
intsellticket;
}
s[N];
inti;
intm=0;
#definePRINT"
%-d%14s%13s%12s%12d%16d\n"
s[i].flightno,s[i].start,s[i].end,s[i].day,s[i].totalticket,s[i].sellticket//定义输出格式
voidmenu();
//进入系统菜单
voidprint();
//输出航班信息
voidbooking();
//订票信息
voidinput();
//输入航班信息
voidsave();
//保存航班信息
voidread();
//读取航班信息
voidsearch();
//查询航班信息
voidback();
//退票信息
voidcorrect();
//修改信息
voidmenu()
intj;
printf("
欢迎进入飞机订票管理系统!
\n"
);
======================================================================\n"
do
{
1.录入航班信息\n"
2.浏览航班信息\n"
3.修改航班信息\n"
4.查询航班信息\n"
5.订票信息\n"
6.退票信息\n"
0.退出航班信息管理系统\n"
请在0-6中选择以回车键结束:
scanf("
%d"
&
j);
switch(j)
case1:
input();
//调用输入模块
break;
case2:
print();
//调用打印模块
case3:
correct();
//调用修改模块
case4:
search();
//调用查询模块
case5:
booking();
//调用订票模块
break;
case6:
back();
//调用退票模块
case0:
;
}
}while(j!
=0);
//判断结束
谢谢使用,再见!
}//主函数结束
voidmain()//打印主函数程序信息
inti,k,part1,part2;
charname[10]="
dianke"
password[10]={"
\0"
};
charperson[10],c[10]="
12345"
printf("
\t\t**********欢迎进入飞机订票管理系统!
**********\n\n"
//打印提示信息
printf("
\t\t~本系统由、、编写完成~\n\n"
\t\t~(*^__^*)~\n\n"
\t\t\t用户登录\n\n"
for(k=0;
k!
=3;
)//打开文件并判断
printf("
\t\t\t\t用户名:
"
//打印用户名
gets(person);
part1=strcmp(person,name);
\t\t\t\t密码:
//打印密码
for(i=0;
i<
5;
i++)
{
c[i]=getch();
*"
}
gets(c);
part2=strcmp(c,password);
if(part1==0&
&
part2==0)
{
\t\t\t\t登陆成功!
\n\n"
menu();
}
else
\t\t\t用户名或密码错误!
printf("
\t\t\t请注意:
您还剩%d次机会!
2-k);
k++;
if(k=3)
对不起,由于您输入的用户名或密码3次有误,已被强制退出。
voidinput()//打印模块程序
inty;
请依次输入航班信息:
完成输入信息请键入w以回车键结束\n"
--------------------------------------------------------------------------\n"
N;
i++)
请输入航班号:
s[i].flightno);
//读取航班号
请输入起始站:
%s"
s[i].start);
//读取起始站
请输入终点站:
s[i].end);
//读取终点站
请输入时间:
s[i].day);
//读取时间
请输入预售票总数:
s[i].totalticket);
//读取预售票数
printf("
请输入已售票总数:
m);
scanf("
s[i].sellticket);
//读取已售票总数
m++;
第%d个信息已经输完是否继续?
按任意数字键继续,按0结束"
y);
if(y==0)
{
save();
//将结构体信息存盘
print();
//输出输入的航班信息
}
voidsave()//保存模块程序
FILE*fp,*fp1;
//定义文件指针
if((fp=fopen("
chen.dat"
"
wb"
))==NULL)//打开文件并判断是否出错
创建文件失败!
//打印出错提示
getchar();
return;
if((fp1=fopen("
hao.dat"
m;
if(fwrite(&
s[i],sizeof(structflight),1,fp)==0)//向文件写入数据,并判断是否出错
向文件输入数据失败!
fprintf(fp1,"
fclose(fp);
//关闭文件
fclose(fp1);
voidread()//从文件读取信息模块
rb"
))==NULL)//打开文件,并判断是否出错
出错,请检查文件是否存在,按任意键返回住菜单"
//打印出错提示
fscanf(fp1,"
m);
{
fread(&
//从文件中读取信息
voidprint()//打印模块
charw[10];
read();
//调用读取文件函数
航班号起始站终点站时间预售票总数已售票总数\n"
printf(PRINT);
//打印信息
请按任意键回车键结束返回上层菜单以:
w);
voidsearch()//查询模块
charstartname[10];
charendname[10];
charp[10];
intn,no;
请选择查询方式:
//打印查询方式菜单
1.按航班号查询\n"
2.按起点站查询\n"
3.按终点站查询\n"
4.按航线查询\n"
5.按飞行时间查询\n"
0.返回\n"
请在0-5中选择:
按其他键以回车键结束返回主菜单:
n);
//读取查找方式
if(n==0)
switch(n)
请输入航班号:
no);
//航班号
case2:
printf("
请输入起点站名称:
scanf("
startname);
break;
请输入终点站名称:
endname);
请输入起始站名称:
startname);
//终点站
case5:
请输入飞行时间:
day);
//调用读取函数
if(strcmp(s[i].end,startname)==0||strcmp(s[i].end,endname)==0)//按终点站起始站判断输出条件
\n查询航班信息成功!
if(s[i].flightno==no)//按航班号判断输出条件
if(strcmp(s[i].day,day)==0)
\n航班号起始站终点站时间剩余机票数预售机票数\n"
//打印信息
no=0;
//将航班号赋值为0
没有您需要的信息或查找完毕:
"
是否继续查找?
请键入yes或no以回车键结束\n"
p);
}while(strcmp(p,"
yes"
)==0);
voidbooking()//订票模块
intn;
charf[10];
search();
请输入您要订的机票数以回车键结束:
//读取所订机票数
if(n<
0)
请输入有效的机票数!
//判断机票数是否出错
if(s[i].totalticket!
=0&
s[i].totalticket>
=n)//判断是否出错
s[i].totalticket=s[i].totalticket-n;
s[i].sellticket=s[i].sellticket+n;
//调用保存函数
订票成功!
if(s[i].totalticket<
n)//判断是否出错
请输入有效的机票数:
是否继续?
请输入yes或no以回车键结束:
//判断是否继续订票
f);
}while(!
strcmp(f,"
));
voidback()//退票模块
请输入您要退的机票数目:
//输入所退票数
0)//判断票数是否有效
s[i].totalticket=s[i].totalticket+n;
s[i].sellticket=s[i].sellticket-n;
//调用保存模块
退票成功!
请键入yes或no以回车键结束:
//判断是否继续退票
//判断并跳出循环
voidcorrect()//修改模块
structcor//定义结构体
intno;
intsellticket;
}x[1];
charj[10];
//调用读取模块
printf("
请选择修改方式:
*1,按航班号修改:
*2,按航线修改:
\n"
请在1---2中修改以回车键结束:
//读取修改方式
printf("
x[0].no);
请输入起始站:
x[0].startname);
请输入终点站:
x[0].endname);
{
if(strcmp(s[i].end,x[0].startname)==0&
strcmp(s[i].end,x[0].endname)==0)//判断输出条件
{
}
if(s[i].flightno==x[0].no)//判断输出条件
{