订票系统 数据结构 课程设计Word格式.docx
- 文档编号:6844864
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:35
- 大小:290.41KB
订票系统 数据结构 课程设计Word格式.docx
《订票系统 数据结构 课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《订票系统 数据结构 课程设计Word格式.docx(35页珍藏版)》请在冰点文库上搜索。
简单的说,结构体可以将不同类型的数据组成一个有机的整体,以便于引用,而且这些组合在一个整体中的数据是互相联系的。
2.系统设计
该程序分为五大模块,分别为开头、订票、退票、查票系统和查询系统。
2.1模块“开头”
用loop循环实现菜单页面的循环输出。
loop2:
printf("
\n***************************************\n"
);
欢迎使用航空售票系统\n"
***************************************\n"
\n1.订票\n2.退票\n3.查票\n4.查询\n5.退出\n"
请输入您的选择(1-5):
\n"
do{scanf("
%c"
&
a);
}while(a!
='
1'
&
a!
2'
3'
4'
5'
……
gotoloop2;
2.2模块“订票系统”
用loop循环进行订票人员的信息以及所订票的信息输入,并检验乘客所定的票是否已经被订出,若被订出则提示要求重新输入。
用switch语句进行目的地的选择,最后将录入信息输出,以便录入者检验输入是否正确。
loop1:
{printf("
共有三个航班,请您输入您的选择(1-3):
do{scanf("
%d"
i);
}while(i>
3||i<
1);
本航班当天余票为%d张!
n[i-1][j-1]);
\n请输入您想订的座位号(1-100):
k);
}while(k>
100||k<
h=i+4*j+32*k;
while(l[h]==1){
do{printf("
该票已经被订,请重新输入:
do{
\n请输入您的目的地(1-5):
1.北京\n2.天津\n3.上海\n4.深圳\n5.广州\n"
scanf("
c);
}while(c>
5||c<
switch(c)
{
case1:
strcpy(s,"
北京"
break;
case2:
天津"
case3:
上海"
case4:
深圳"
case5:
广州"
}
\n您的订票信息如下:
姓名身份证号航班号飞行时间目的地\n"
\n%s%10ld%d号周%d%10s\n"
T[h].name,T[h].ID,i,j,s);
\n请再次检查您的信息。
\n\n如果正确无误,请输入y.\n\n重新填写,请输入r.\n\n放弃订票,回主选单输入q。
2.3模块“退票系统”
退票者需要对本人信息与所退票信息尽行录入,程序会用把录入信息与数据库中信息进行比对,如有不符项,则提示且无法进行退票。
\n请输入您的身份证号:
%ld"
ID2);
h2=x+4*y+32*z;
if(T[h2].ID==0){printf("
\n该票没有被定出!
gotoloop2;
else{
if(T[h2].ID!
=ID2||strcmp(s2,T[h2].name))
信息出现矛盾!
无法退票!
else{printf("
\n请输入y确认退票!
回主选单请输入q!
2.4模块“查票系统”
本模块可让乘客进行身份证号查询、座位号查询、姓名查询,以上三个功能均由if语句进行比较,完成查询。
在搜索比较过程中,如果输入错误数字或代码则会有提示,要求重新输入。
\n请您输入您要查询的身份证号:
d1);
}while(d1==0);
if(T[i].ID==d1&
l[i]==1){n3++;
a3[n3]=i;
i++;
\n请您输入您要查询的名字:
%s"
s3);
while(T[i].name==NULL)i++;
if(strcmp(T[i].name,s3)==0&
l[i]!
=0)
\n请您输入您要查询的座位号:
d2);
}while(d2<
1||d2>
100)
2.5模块“查询系统”
本模块可以让实现余票查询、已订出票信息查询,此功能同样是用if语句完成,在余票查询中还会用for语句对未订出的票的座位号进行输出。
if((T[i].ID==0||l[i]==0)&
(i-add5-add6*4)%32==0){
n55++;
a4[n55]=i;
for(j=i+1;
j<
=n55;
j++)
{for(i=j;
i<
=j+9;
i++)
%5d"
a4[i]/32);
3.程序代码
#include<
stdio.h>
string.h>
structinf
charname[20];
longID;
};
structinfT[3232];
voidmain()
intc,d2,g,h,h2,i,j,k,n2,n3,x,y,z;
intn4,n9,n55,add1,add5,add6,add7,add9;
longID2,d1;
intn[3][7];
intk2[4][8];
chars[15];
chars2[15],s3[15];
chara,d,f,add2,add3,add4,add8,add10;
intl[3232]={0},a3[100],a4[100],p3[100],a7[100],s22[100];
intn5[100],n6[100],t2[100],p2[100],a2[100],s33[100],t3[100];
intn7[10][10][10];
for(i=0;
=2;
for(j=0;
=6;
n[i][j]=100;
/********************************开头**************************************/
/*******************************订票***************************************/
if(a=='
){
请输入你旅行的周日代码(1-7):
j);
}while(j>
7||j<
请输入您的姓名:
T[h].name);
\n请输入您的身份证号码:
T[h].ID);
d);
}while(d!
r'
d!
q'
y'
if(d=='
){n[i-1][j-1]--;
l[h]=1;
\n订票成功!
!
elseif(d=='
)gotoloop1;
elsegotoloop2;
/******************************退票****************************************/
\n请填写退票详细信息.\n"
\n请输入航班号(1-3):
x);
}while(x>
3||x<
\n请输入旅行周日(1-7):
y);
}while(y>
7||y<
\n请输入座位号:
z);
}while(z>
100||z<
\n请输入您的姓名:
s2);
f);
while(f!
f!
){scanf("
if(f=='
退票成功!
l[h2]=0;
n[x-1][y-1]++;
/******************************查票系统************************************/
){loop4:
\n请输入查询方式:
\n1.输入身份证号查询。
\n2.输入座位号码查询。
\n3.输入姓名查询。
\n4.返回。
g);
}while(g>
4||g<
/******************身份证号查询**********************/
if(g==1){loop6:
n3=0;
i=36;
while(i<
=3231){
if(n3==0){printf("
\n没有找到您输入的身份证号!
gotoloop4;
for(i=1;
=n3;
i++){s33[i]=a3[i]/32;
t3[i]=(a3[i]-s33[i]*32)/4;
p3[i]=a3[i]-s33[i]*32-t3[i]*4;
\n您所查找的的信息为:
\n姓名身份证号航班号座位号飞行日\n"
%s%10ld%d号%7d周%d\n"
T[a3[i]].name,T[a3[i]].ID,p3[i],s33[i],t3[i]);
\n继续查找请输入y,返回输入q.\n"
add3);
}while(add3!
add3!
if(add3=='
)gotoloop6;
elsegotoloop4;
/***********************名字查询****************************/
if(g==3){loop5:
n2=0;
i=37;
=3231){
=0){
a2[n2+1]=i;
n2++;
if(n2==0){printf("
\n没有找到您输入的姓名!
else{for(i=1;
=n2;
i++){
s22[i]=a2[i]/32;
t2[i]=(a2[i]-s22[i]*32)/4;
p2[i]=a2[i]-s22[i]*32-t2[i]*4;
姓名身份证号航班号座位号飞行日\n"
s3,T[a2[i]].ID,p2[i],s22[i],t2[i]);
add2);
}while(add2!
add2!
if(add2=='
)gotoloop5;
/************************座位号码查询*****************************/
if(g==2){loop7:
100);
=3;
for(j=1;
=7;
k2[i][j]=d2*32+4*j+i;
i=1;
n4=0;
=3){
j=1;
while(j<
=7){
if(T[k2[i][j]].ID!
=0&
l[k2[i][j]]!
n4++;
n5[n4]=i;
n6[n4]=j;
n7[n4][n5[n4]][n6[n4]]=k2[i][j];
j++;
if(n4==0){printf("
\n该座位号码没有被定出!
\n您所输入的座位号信息是:
=n4;
T[n7[i][n5[i]][n6[i]]].name,T[n7[i][n5[i]][n6[i]]].ID,n5[i],d2,n6[i]);
add4);
}while(add4!
add4!
if(add4=='
)gotoloop4;
)gotoloop7;
}
/*******************************查询系统**********************************/
){loop8:
\n1.查询特定航班的余票情况。
\n2.查询特定航班的乘客情况。
\n3.返回主选单。
\n请输入您的选择(1-3):
add1);
}while(add1>
3||add1<
if(add1==3)gotoloop2;
/*******************************查余票*****************************/
if(add1==1){loop9:
\n请输入您要查询的航班号(1-3):
add5);
}while(add5>
3||add5<
\n请输入您要查询的飞行期(1-7):
add6);
}while(add6>
7||add6<
n55=0;
\n第%d航班飞机周%d的余票情况是:
add5,add6);
i=0;
{{for(i=j;
j=i-1;
}
add8);
}while(add8!
add8!
if(add8=='
)gotoloop9;
elsegotoloop8;
/*******************查询已订票信息**********************/
if(add1==2){loop10:
add7);
}while(add7>
3||add7<
add9);
}while(add9>
7||add9<
n9=0;
if(T[i].ID!
(i-add7-add9*4)%32==0&
n9++;
a7[n9]=i;
if(n9==0)printf("
\n该航班满票,没有被定出!
if(n9!
=0){
\n第%d航班飞机周%d的订票情况是:
add7,add9);
=n9;
%S%10ld%d号%7d周%d\n"
T[a7[i]].name,T[a7[i]].ID,add7,(a7[i]-add7-4*add9)/32,add9);
add10);
}while(add10!
add10!
if(add10=='
)gotoloop10;
4.结果及测试
5.结果分析
在订票系统的编程的过程中应当考虑乘客在输入过程中出现的问题,例如:
按键错误,数据类型不符等,所以要添加纠错功能,以及在输入后可以让乘客检验是否输入有误,若有误则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 订票系统 数据结构 课程设计 订票 系统