1、内容详实程度文字表达熟练程度回答问题准确度简 短 评 语教师签名: 年 月 日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格火车票务管理系统一、 课题内容和要求(一)课题内容该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。 (二)课题要求(1)火车票数据由多条记录组成,其信息包括:车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。(2)数据保存形式:所有火车票数据要以文本或
2、二进制文件保存。(3)需要实现的功能1) 新增火车票数据记录。2) 查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。3) 删除火车票数据记录(先查找,再删除。若查找出多条记录,则进一步提示用户选择记录的车次,再删除)。4) 对火车票排序(可按车次、发车时间、起点站、终点站等排序。)。5) 显示当前所有火车票信息列表。6) 售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进行修改)。7) 退票(售票的逆处理,过程与售票类似)。8) 保存火车票数据到文件中。9) 从文件中读入火车票数据。(4)界面功能要求:1) 采用友好的字符界面,实现一个功能控制菜单。2) 每次操作都从该
3、菜单选择,利用循环结构使得一次运行程序可进行多次操作。需求分析一、功能分析图二、 录入班次信息:依次输入班次、起点站和终点站等信息同时保存在文件中,并可以随时增加新的班次信息。三、 浏览班次信息:输出保存在文件中的全部班次信息,并区分当前的车次是否已发出,如发出则标记“此车已发出”。四、 按班次号查询路线:以输入的班次号为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”五、 按起点站查询路线:输入的起点站为依据进行查找,找到匹配项则输出该项完整的班次信息;六、 按终点站查询路线:输入的终点站为依据进行查找,找到匹配项则输出该项完整的班次信息;七、 排列发车时
4、间表:按照发车时间从早到晚的顺序逐条显示车次信息。八、 售票功能:依次输入“售票数目”和“班次号”可出售未发出的班次的车票。九、 退票功能:依次输入“退票数目”和“班次号”可退距发车时间大于半小时的班次的车票。三、概要设计(1)类:#include#include class Ticket char no20; char name_b20; char name_e20; int hour; int minute; int tra_time; int eding; int yupiao;public: void shoupiao(fstream&f); void tuipiao(fstream&
5、 void searchbynumber(fstream& void searchbybeginplace(fstream& void searchbyendplace(fstream& void luru(fstream& void liulan(fstream& void paixu(fstream& friend ostream&operatortm_hour)&(local-tm_min Tj.minute) coutTj 此车已发出!endl; else cout void Ticket:shoupiao(fstream&f) const int NUM=sizeof(Ticket)
6、; int n; long t; char m20; Ticket T; struct tm *local; coutn;请输入售票的班次:m; time(& local = localtime(& (0,ios:beg);o; cinti.hour;ti.minute;ti.name_b;ti.name_e;ti.tra_time;ti.eding;ti.yupiao; end);/文件指针指向文件尾 for(i=0;inum;i+) (char*)&ti,sizeof(Ticket);xiugai(fstream& char n10; Ticket t;请输入你要修改的班次: bool f
7、d=false; while(!()&!fd) (char*)&t,sizeof(Ticket); if(fd=(n) 请依次输入endl发车时间(时)、发车时间(分)、起点站、终点站、行车时间、额定票数和余票数量 ; (char*)&void menu()/菜单函数*菜单* 1:录入车次信息 2:浏览车次信息 3:根据车次号查询路线 4:根据起点站查询路线 5:根据终点站查询路线 6:排列发车时间表 7:售票 8:退票 9:增加车次 10:修改车次 0:退出菜单请选择您需要操作的选项:void main() int x; fstream file;*欢迎您使用票务管理系统!* menu();
8、 while(x)x; (d:,ios:in|ios:out|ios:binary);/创建并打开二进制文件 switch(x) case 1: (file);break; case 2: case 3: case 4: (file); case 5: case 6: case 7: case 8: case 9: case 10: case 0: break;操作已完成,请继续! ();/关闭二进制文件*欢迎您下次使用!*五、测试数据及其结果分析1、录入班次信息输入:1输出:请输入你要录入的班次信息数量:4 请依次输入 车次、起点站、终点站、发车时间(时)、发车时间(分)、行车时间、额定票数 和余票数量 G111 南京 扬州 8 0 20 100 30G222 南京 北京 10 30 21 120 35G333 南京 上海 11 0 22 140 50G444 南京 广州 9 30 22 160 402、浏览班次信息2G333 南京 上海 11 0 22 140 503、根据车次号查询路线3请输入你要查找的班次号:G111 操作已完成,请继续!4、根据起点站查询路线请输入你要查找的班次的起点站:南京G444 南
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1