C语言程序设计--火车订票系统

任务要求:
创建一个火车票管理系统,功能包括:
(1)录入班次信息(信息用文件保存),可不定时地增加班次数据
(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班 次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线(起点、终点):可按班次号查询 ,可按终点站查询
(4)增加及修改班次和删除班次信息 (5)售票和退票功能
系统设计:
一.车票管理系统的功能为:1.录入班次2. 显示所有班次3.查询班次4.增加班次 5.售票6.退票7.修改班次8.删除班次9.退出
车票管理系统软件的功能模块有:
(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。
(2)接受用户输入的功能项,按enter键结束输入并将进入该系统,其需要的结果显示出来,方便用户查看。
(3)完成每次功能,可保存用户的修改的信息,及时更新文件信息。下次查询时内容为最新信息。实时的信息更新对比等。
一个名ticket的结构体进行定义,包括num[10] hour[3]; min[3] from[10]; to[10]; hours max; now;等结构体成员。
然后对调用函数进行定义。int system_time()系统时间,void newmessage() 新纪录录入函数,void showtable1() void showtable2(int i) 线框调用1和2不用每次输,void display()显示所有函数,void add()增加记录,void save() 保存函数,void save()保存函数,void load() 按班次查询函数,void search() 查询函数,void change()修改函数,void quit()退出函数,void ticketorder() 售票函数,void ticketdelete()删除函数,int menu_select()菜单函数, int whether(int)判断时间是否超出函数,void find(char s1[],char s2[]) 查询函数★//s1为班次//s2为终点站,void deletemessage()删除函数,int findnum(char s1[])班次查询函数,void get(int,int)修改及增加班次,char *menu[]菜单函数。
该系统将这些信息均放在文件d:车票管理系统0中。
最后定义main()函数,利用函数调用,实现程序的各种功能。将其放在系统文件d:车票管理系统0中。
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
程序把每种功能分开实现,更简单,实用程序更易理解。
程序测试:
3.0 菜单界面

图3-1菜单界面
如上图所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。选择1-9并按enter键进行操作。如选择出错,系统将提出警告,并提醒用户重新进行选择。
录入班次功能

图3-1- 1第一次输入时的界面

图3-1- 2第二次输入时的界面
如上图所示,该功能实现录入班次信息。选择1按enter键进入该功能,程序提醒用户输入车次.发车时间.起始站.终点站.行车时间.额定载量.已售票数,输入完毕后按enter键将完成录入班次结果,同时程序将再次提醒用户进行新的选择。而第二次输入时提醒已经输过,不能在加。
3.2查询所有班次功能

图 3-2-1查询班次界面

图3-2-2选择查询方式的界面
该功能将实现程序运行班次的查询。选择3并按enter键将实现该功能。分班次和终点站两种方式查询。
3.3增加班次功能

添加图片注释,不超过 140 字(可选)

图3-2-3增加班次功能界面

图3-2-4增加班次后界面
该功能将增加班次信息,帮助用户更新班次信息。选择4并按enter键将实现该功能,再按提示输入就行。按任意键返回主菜单。
3.3售票功能

图3-3-1选择售票功能界面
图3-3-2选择售票后的界面

图3-3-3订票的界面
选择5按enter键实现该功能,按任意键关闭程序。买票程序可提示买票成功否,且自动判断是否可卖。
3.4退票功能

编辑切换为居中
图3-4-1退票界面
选择6按enter键实现该功能,按任意键关闭程序。退票程序可提示退票成功否,且自动判断是否可退。
3.5修改班次功能

编辑切换为居中
图3-5-1修改界面
选择7按enter键实现该功能,按任意键关闭程序。按提示操作修改班次。
3.6 删除班次功能

编辑切换为居中
图3-6-1删除界面
3.7 退出功能

编辑切换为居中
图3-7-1退出界面
该功能可退出系统,选择9按enter键实现该功能
部分程序:
#include ///宏定义函数
#include //串操作及内存操作函数
#include /////调用系统函数
#include ///时间库函数
#include ///输入输出函数
#define n 1000 //宏定义多条记录
typedef struct ticket ////定义新结构体ticket
{
char num[10]; //车次编号
char hour[3]; //时间,,小时
char min[3]; //分钟
char from[10]; //起始站
char to[10]; //终点站
float hours; //车程实际时间
int max; //最大车载容量
int now; //已售票数
}class;
int class_num=0; ///初始班次总数为0
class records[n]; // 多条记录
int system_time(); //系统时间
void newmessage(); //新纪录*录入函数******
void showtable1(); //线框调用1,,,不用每次输
printf(******************************************************);
printf(n请选择(1-9):);
scanf(%s,s);
c=atoi(s); //atoi将字符串转换成一个整数值
} ///输出菜单面
return c; ////返回请求
}
/*******************************录入函数************************************/
void newmessage() //*录入函数******
{
int i=0,j=5,h; ////
char s[5];
file *fp; ////定义文件型指针变量
system(cls); //刷屏
if((fp=fopen(d:车票管理系统0.dat,rb))!=null) //fopen打开文件
{
printf(车票信息已经存在请选择增加功能!n);
printf(任意输入则返回菜单n);
scanf(%s,s);
i=1; //通过是1
}
if(i==0)
{
system(cls); //刷屏
printf(请输入要录入班次总数:n);
scanf(%d,&class_num); //指向班次指针
system(cls); //刷屏
for(i=0;i
{
system(cls); //刷屏
printf(请输入第%d个班次信息:n,i+1);
h=-1;
for(;h!=i;) ///循环输出
{
printf(请输入班次:n);
scanf(%s,records[i].num);
for(h=0;h
if(strcmp(records[h].num,records[i].num)==0)
//判断字符串比较是否相等,, 待比较的字符串
{
printf(输入错误!该班次已存在!n);
break; ///返回
}
}
get(i,j); ////修改及增加班次*
j=5;
}
save(); //调用保存函数
}
}
/*******************************显示所有函数********************************/


CCD视觉检测外观缺陷,漏检率和误检率如何评估
摩托罗拉3月5日上新品,全新Moto Mods模块
Wi-Fi 技术简介,IEEE802.11b技术简介
【智能网联汽车“发展总动员”】国内外车企智能网联汽车战略规划
iPhone可以更换内存,是否也能更换芯片呢
C语言程序设计--火车订票系统
无线通信模块在智能产业中的位置
重磅!国产SiC衬底激光剥离实现新突破
Molex莫仕连接器系列产品助力应用设计
什么是USB接口
微带线传输阻抗匹配实例分析
Parrot推出新款产品ANAFI:史上最安静无人机发布,售价为699 美元
苹果新iPhone可能命名为iPhone Pro或iPhone 11 Pro
STM32U5新图形处理单元支持NeoChrom GPU
采购劣质线缆可能会带来哪些危害
LM324组成的单稳态触发器
安森美半导体增强CCD图像传感器的近红外性能
交流电路中,电感电阻的灭弧发生全过程解析,线圈电阻值该如何测量?
骨传导耳机效果怎么样?今天给大家聊聊戴骨传导耳机佩戴体验
华为在人工智能领域的十大愿景