1、(2)浏览班次信息,可显示出所有班次当前状总。(3)查询路线:可按班次号查询 ,可按终点站查询(4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档欢迎界面管理员菜单普通登录菜单增加信息查询信息订票保存信息删除信息退票信息1.2总
2、体结构 图1-1 功能模块图第2章 详细设计主模块流程图退票密码验证按车次按终到站图2.1 主模块流程图车票管理系统软件详细设计一个名Timetable的结构体进行定义,包括 int no;/班次 int hour;/发车时间(时) int minute;/发车时间(分) char Starting_station10;/始发站 char Last_station10;/终点站 float time;/行车时间 int max_number;/最大载客数 int sold_number;/已售票数等结构体成员。然后对调用函数进行定义。void add()增加记录,void Cipher()密码
3、验证函数,void del()删除班次信息函数,void find(int s1,char s2) 查找函数,int findnum(int s1)查找班次函数,void Input() 信息录入函数,void huanying () 欢迎界面,void land() 登录选择界面,void menu1()管理员菜单界面,void menu2()普通菜单界面,void open() 调用数据函数,void save()保存函数,void searchesmenu()查询菜单,void ticketdelete()退票函数,void ticketorder()售票函数,int timee(int
4、 i) 判断时间是否超出函数,void timetable1显示车次函数该系统将这些信息均放在文件中。最后定义main()函数,利用函数调用,实现程序的各种功能。将其放在系统文件车中。第3章 调试分析1、 程序陷入死循环解决办法:仔细分析程序间的关系,画程序流程图分析问题所在。利用break命令跳出循环2、 程序出现乱码利用VC6.0本身的调试功能查找错误的所在,修改源程序。3、 所学知识不能很好的完成程序上网查找相关资料,进入一些开源论坛寻求一定的帮助。第4章 使用说明与执行结果 图4-1图4-2登录菜单图4-3管理员登录的密码机制图4-4密码容错机制图4-5图4-6图4-7班次录入界面图4
5、-8图4-9班次增加界面图4-10时刻表浏览界面图4-11查询界面注销班次界面图4-12图4-13图4-14售票窗口图4-15图4-16退票界面参考文献1、C程序设计(第四版) 作者:谭浩强 书号:ISBN64 :清华大学。2、C语言学习路线图 作者:明日科技 书号:ISBN93:3、C语言从入门到精通(第2版) 作者:ISBN 20:4、21天学通C语言(第7版) 作者:(美)琼斯等著,估译 书号:ISBN 79:人民邮电。5、C Primer Plus(第五版)中文版 作者:美Stephen Prata 书号:ISBN 28鸣:XX文库 XX贴吧 XX百科 C语言之家 Linux开源俱乐部
6、网络资料来源:1、.xuexi111./2、snippets.dzone./tag/c/ 3、.hotscripts./category/c-cpp/scripts-programs/ Hotscripts 4、https:/.daniweb./software-development/cpp/code/_/8附 录(程序清单)代码/增加记录#include#includenews.hstdlib.hconio.hvoid add() void open(); int get(); void save(); void menu1(); int i,j=5; open(); / 调用按班次查询函
7、数 system(cls); /清屏 printf(1. 增加班次n2. 返回n请选择(1-2)n scanf(%d,&i); if(i=1) system( printf(1. 请输入要增加的班次:n scanf(timetableclass_num.no); for(i=0;ivoid find(int s1,char s2) int i,h=0,m; if(s20=0 m=1; /1为无条件执行 else m=0;n|-|-|-|-|-|-|-|nn| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |n for(i=0; if(s1=timetablei.n
8、o|strcmp(s2,timetablei.Last_station)=0) /判断字符串比较是否相等 |%10d|%5d:%-4d|%10s|%10s|%8.1f|%8d|%8d|n,timetablei.no,timetablei.hour, timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time, timetablei.max_number,timetablei.sold_number); if(m=1) h+; if(h=0)/不能break则执行要查找的班次不存在!
9、/查找班次 int findnum(int s1) int i; if(s1=timetablei.no) /判断字符串比较是否相等,如果符合则输出车次等信息 |-|-|-|-|-|-|-|n%-4d|%10s|%10s|%8.1f|%8d|%8d| break; return i;/欢迎界面#include void huanying ()nnnnt*ntttt车票管理系统nttt设计人:嘉星;新月;田宇nnntttt感您的使用ntttt按任意键继续n/信息录入界面#include void Input() int i=0,j=5,h; char s5; void add(); void g
10、et(int i,int j); FILE *fp; /定义文件型指针变量 if(fp=fopen(车票管理系统0.dat,rb)!=NULL) /fopen打开文件 车票信息已经存在!任意输入进入添加菜单n,s); /收集任意输入 i=1; /通过是1 add(); if(i=0)请输入要录入班次总数:class_num); /指向班次指针 system(请输入第%d个班次信息:,i+1); h=-1; for(;h!=i;) /循环输出请输入班次: scanf(timetablei.no); for(h=0;hi;h+) if(timetableh.no=timetablei.no) pr
11、intf(该班次已存在! break; /返回 get(i,j); /修改及增加班次 j=5; save(); void get(int i,int j) / 修改及增加班次 for(;请输入发车时间(xx xx)%d %dtimetablei.hour,&timetablei.minute); if(timetablei.hour=0&timetablei.minute=0)请输入起点站:,timetablei.Starting_station);请输入终点站:,timetablei.Last_station);请输入行车时间:%ftimetablei.time);请输入额定载量:timet
12、ablei.max_number);请输入已售票数:timetablei.sold_number);/管理员菜单界面void menu1() void Input(); void timetable1(); void del(); void searchesmenu(); void land(); int n;tttt1、车次信息录入ntttt2、增加车次信息ntttt3、时刻表浏览ntttt4、车辆信息查询ntttt5、注销车次ntttt6、保存ntttt7、返回nttt 请输入需要运行的命令编号n while(1)/死循环形成菜单n); switch(n) case 1:Input();b
13、reak;/车辆信息录入 case 2:add();/增加车次信息 case 3:timetable1();/浏览时刻表 case 4:searchesmenu();/车辆信息查询 case 5:del();/注销车次 case 6: save();/保存命令 case 7:land();/返回上级菜单 default:非法输入n/普通登录菜单void menu2() void ticketorder(); void ticketdelete();tttt1、时刻表浏览ntttt2、车辆信息查询ntttt3、购买车票ntttt4、退回车票ntttt5、返回n while(1)/时刻表浏览ticketorder();/购买车票ticketdelete(); break;/退回车票void huanying ();void land();int main() char ch; huanying(); ch=getchar( );/收集回车 land(); return 0;void open() FILE *fp1,*fp2; if(fp1=fopen(车票管理系统.dat)=NULL) /
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1