火车票系统课程设计报告Word文件下载.docx
《火车票系统课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《火车票系统课程设计报告Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
(4)实验要求
要求采用多线程编程,实现车票信息的查询,录入,更新,车次的修改;
实现用户注册登录,订票查询、火车票预订、退票申请以及后台方面的列车车次信息发布更新、车票生成、提供取票服务。
(5)实现思路
该算法用c语言编写,再在linux下用vi建立文档,gcc后生成可行文件后,./运行。
C语言实现思路为1.把ticket,user,定义为结构,其中ticket中有四个数据。
User1和user2一开始都是为空
2.定义开始地点四个,终点4个
3.定义数组c1.c2,daaress.uname1,pass1.uname1,uname2
4.写个选择页面,共有5个页面。
5.如果用户选择1购票,下面for循环控制路线。
如果用户选择2注册,把输入的数据存入数组
如果用户选择3查询,建立for循环
如果用户选择4购票,用if判断语句判断用户输入的是否在数组里
如果用户选择5购票.用exit退出
流程图:
实现过程:
定义结构,再加whileif等循环实现
代码
#include<
stdio.h>
Structticket/*定义火车票为结构体*/
{
char*starName;
char*endName;
intnumber;
};
structuser/*定义用户为结构体*/
char*userName;
char*passWord;
structtickettickets[4];
/*火车票里有4个对象*/
structuseruser1={NULL,NULL};
/*用户初始为空*/
structuseruser2={NULL,NULL};
intlq_index();
/*定义数组*/
voidgotolq_Index();
voidmain()
inti=0;
char*starNames[4]={"
南昌"
"
深圳"
广州"
九江"
/*4个起点*/
char*endNames[4]={"
/*4个终点*/
for(i=0;
i<
4;
i++)
{
tickets[i].starName=starNames[i];
tickets[i].endName=endNames[i];
tickets[i].number=rand()%21+30;
}
/*for(i=0;
printf("
%s-%snumber:
%d\n"
tickets[i].starName,tickets[i].endName,tickets[i].number);
}*/
printf("
\t**********欢迎使用火车票系统**********\n"
);
/*输出主页面*/
while(1==1)
if(lq_index()==5)
break;
}
intlq_index()
inti=0,j=0;
charyn;
charc1[20];
/*2个数组*/
charc2[20];
charaddress[20],uname1[20],pass1[20],uname2[20],pass2[20];
\n[1]购票[2]注册\n"
);
[3]查询[4]登录\n"
[5]退出\n"
请输入编号"
scanf("
%d"
&
i);
if(i==1){
输入目的地和出发地:
"
scanf("
%s%s"
c1,c2);
/*接受用户输入的数据*/
j=0;
for(i=0;
j++;
if(strcmp(tickets[i].starName,c1)==0&
&
strcmp(tickets[i].endName,c2)==0)/*判断是否有票*/
{
if(tickets[i].number>
0)
{
printf("
您的选择的线路%s-%s还剩%d张票是否确定购买(y/n):
"
c1,c2,tickets[i].number);
scanf("
%c"
yn);
if(yn=='
y'
||yn=='
Y'
)
{
if(user2.userName!
=NULL)
{
tickets[i].number--;
printf("
恭喜您购票成功!
}else{
登录后才能购票!
}/*如果没登录显示用户登录*/
gotolq_Index();
/*选择路线*/
}
elseif(yn=='
n'
N'
{
else
printf("
输入有误!
\n"
i--;
j--;
continue;
return1;
}else
抱歉您的选择的线路%s-%s已无票出售!
/*如果无票就提示*/
gotolq_Index();
}
}
elseif(j==4)/*路线不存在提示*/
printf("
您的选择的线路%s-%s系统中不存在!
gotolq_Index();
return1;
}
elseif(i==2)
输入账号:
/*注册账号*/
%s"
uname1);
user1.userName=uname1;
输入密码:
pass1);
user1.passWord=pass1;
恭喜%s用户注册成功!
user1.userName);
gotolq_Index();
elseif(i==3)
输入要查询的地点:
/*查询车票*/
address);
始发站\t终点站\t票数\n"
i=0;
{
if(strcmp(tickets[i].starName,address)==0)
%s\t%s\t%d\n"
}else{
j++;
if(j==4)
未找到相应数据!
return1;
}elseif(i==4){
/*用户登录与已经注册的判断*/
uname2);
user2.userName=uname2;
pass2);
user2.passWord=pass2;
if(user1.userName!
if(strcmp(user1.userName,user2.userName)==0&
strcmp(user1.passWord,user2.passWord)==0)
欢迎%s用户使用本系统!
user2.userName);
}else{
user2.userName=NULL;
user2.passWord=NULL;
输入账号或者密码不一致!
请先注册用户!
/*不一致提示注册*/
}elseif(i==5){
欢迎再次使用本系统!
return5;
return1;
voidgotolq_Index()
printf("
任意键返回首页!
/返回*/
\n**************************************\n"