欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    车票管理系统实验报告(电子).docx

    • 资源ID:8966117       资源大小:266.64KB        全文页数:18页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    车票管理系统实验报告(电子).docx

    1、二一三 二一四学年第 二 学期车票管理系统实验报告物理与电子工程学院课程名称: 数据结构班级: 学号: 姓名: 二一四 年 六 月(1) 题目:车票管理系统(2) 系统功能模块结构图(3) 各模块的功能1. 信息输入模块即录入班次信息:完成班次信息的输入功能,输入信息包括班次、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等;2. 信息浏览模块即浏览班次信息:完成已录入信息的显示;3. 信息查询模块即查询班次信息:完成班次信息的查询,查询时对应有按班次查询和按终点站查询两种方式;4. 售票和退票模块:完成车票的购买和退订的功能;5. 菜单选择模块即主菜单:完成用户命令的接收,此模块也

    2、是车票管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能。(4) 数据结构设计及用法说明头文件,一个名 TICKET 的结构体进行定义:typedef struct ticket/用 typedef 定义结构体为 TICKETint num;/班次char starttime10;/发车时间char begin21;/起始站char end21;/终点站float lasttime;/行车时间int CarryNumber;/额定载量int SellNumber;/已定票人数struct ticket *next;/结点的指针域TICKET,*Tick

    3、et;/结构体类型指针然后对各调用函数进行定义:void InsertTicket()/录入班次void FileRead()/班次信息文件读入void Keep()/保存数据void ScanTicket()/浏览信息void ScanTicket()/浏览信息void SearchbyNum()/按班次查询班次void SearchbyEnd()/按终点站查询班次void Buyticket()/预定车票void ReturnTicket()/退订车票int GetHour(char *s)/获取班次小时int GetMinute(char *s)/获取班次分钟void exit()/退出

    4、该系统最后定义 main()函数,利用函数调用,实现程序的各种功能。将其放在系统文件 ticket.txt 中。(5) 画出各函数流程图(6) 实验结果(包括输入数据和输出结果)0)主菜单1).录入界面2).浏览界面3).查询界面1. 按班次查询2. 按终点站查询4).订票界面5).退票界面6).退出系统Ticket 文件截图:(7) 体会经过两周的数据结构设计训练,让我们独立完成一个小系统,让我学到很多东西:(1) 巩固和加深了对链表,指针的理解,提高综合运用所学知识的能力。(2) 培养了我独立思考,深入研究,分析问题、解决问题的能力;通过实践解决实际问题,并学会了很多实用的函数。(3) 在

    5、编辑程序代码的时候,这是一个至关重要、复杂而且需要反复修改的环节,在此环节中我发现存在很多问题,需不断改进。如何实现各函数功能, 达到预期效果也将是一项繁复的工作。(4) 代码的调试在Visual C+6.0环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进 完善程序。(5) 最后,程序可以正确运行之后,在不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化增强程序的新意与可行性。而其中我发现system(cls)命令特别好用,因为之前在不知道system(cls)有清屏的功能时,在运行程序时,重复操作一些功能的时候

    6、,每次进行一项操作,运行窗口里的内容会一直保留着,感觉很杂乱,知道可以使用system(cls);这一语句可以解决这个问题,里面的内容很多,很繁琐,让人有点眼花缭乱,就是说全部的操作都显示在屏幕中。但是,在用了system(cls)命令之后,程序显得更加清楚,更加简洁美观,就是在执行完一个功能之后就把内容都清理掉,然后再返回主菜单或返回其它功能的界面,是操作者更好的操作。不过,程序中还存在一些问题,当要求用户输入数字选择,若输入字符型数据或其他非整型数据时,还是存在系统不能运行的问题。但是,因为写程序时是要求用户输入数字的时候是必须用整型的,所以只要用户按要求输入正确的数据,程序是能正确运行的

    7、。通过这次训练,使我更加熟悉的掌握了C语言的运用。帮助我熟悉了更多C 语言的功能,提高了我的动手能力,学到了许多解决实际问题的宝贵经验。另外,在这次课程设计中我也遇到许多问题和麻烦,得到了老师的帮助和指导, 才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。(8)参考文献一:C 程序设计(第四版) 谭浩强 著 清华大学出版社二:数据结构(C 语言版) 严蔚敏 著 人民邮电出版社三:C 语言项目案例分析 明日科技 著 清华大学出版社(9)附录:源程序:#include/宏定义函数#include/标准库文件#include/时

    8、间库函数#include/串操作及内存操作函数typedef struct ticket/用 typedef 定义结构体为 TICKETint num;/班次char starttime10;/发车时间char begin21;/起始站char end21;/终点站float lasttime;/行车时间int CarryNumber;/额定载量int SellNumber;/已定票人数struct ticket *next;/结点的指针域TICKET,*Ticket;/结构体类型指针TICKET *head;/班次头结点TICKET *rear;/班次尾结点/*录入班次信息*/void In

    9、sertTicket()/录入班次FILE *fp;/定义文件型指针变量system(cls);/清屏fp=fopen(ticket.txt,r+);/fopen 打开文件,读写TICKET *T;T=(TICKET *)malloc(sizeof(TICKET);/开辟内存空间printf(请输入班次信息(输入完成后请按回车键)n); scanf(%d,&T-num);printf(请输入发车时间n);scanf(%s,&T-starttime);printf(请输入起点站n); scanf(%s,&T-begin);printf(请输入终点站n);scanf(%s,&T-end);prin

    10、tf(请输入行车时间n); scanf(%f,&T-lasttime);printf(请输入额定载量n);scanf(%d,&T-CarryNumber);printf(请输入已定票人数n); scanf(%d,&T-SellNumber);rear-next=T;/在 TICKET 单链表中依次插入下一结点rear=T;T-next=NULL;/指针域置空rear-next=NULL;/班次尾结点的指针域置空fclose(fp);/文件关闭printf(信息已保存!n);/*文件读入*/void FileRead()/班次信息文件读入FILE *fp;/定义文件型指针变量system(cls

    11、);/清屏if(fp=fopen(ticket.txt,r+)=0)/如果文件内容为空printf(n 打开文件错误!n);exit(0);while(!feof(fp)/读取文件并判断是否抵达文件尾TICKET *T;T=(TICKET *)malloc(sizeof(TICKET);/开辟内存空间fscanf(fp,%d%s%s%s%f%d%dn,&T-num,&T-starttime,&T-begin,&T-end,&T-lasttime,&T-CarryNumber,&T-SellNumber);/根据指定格式从指定文件读取信息rear-next=T;/在 TICKET 单链表中依次插

    12、入下一结点rear=T;rear-next=NULL;/班次尾结点的指针域置空fclose(fp);/文件关闭/*文件数据保存*/void Keep()/保存数据FILE *fp;/定义文件型指针变量if(fp=fopen(ticket.txt, r+)=0)/如果文件内容为空printf(n 打开文件错误!n);exit(0);Ticket T=head-next; while(T!=NULL)fprintf(fp,%dt%st%st%st%.2ft%dt%dn,T-num,T-starttime,T-begin,T-end,T-lasttime,T-CarryNumber,T-SellNu

    13、mber); T=T-next;/根据指定格式发送信息到指定文件fclose(fp);/文件关闭/*浏览班次信息*/void ScanTicket()/浏览信息system(cls);/清屏Ticket T=head-next;printf(n 各班次信息如下:n);printf(n 班次t 发车时间t 起点站t 终点站t 行车时间额定载量已定票人数n);printf( n); while(T!=NULL)printf(%dt%stt%st%st%.2ftt%dtt%dn,T-num,T-starttime,T-begin,T-end,T-lasttime,T-CarryNumber,T-Se

    14、llNumber); T=T-next;printf( n);/*查询信息*/void SearchTicket()/查询班次信息system(cls);/清屏void SearchbyNum();/函数声明 按班次查询void SearchbyEnd();/函数声明 按终点站站查询int i,j=0; while(j!=1)system(cls);/清屏printf(n);printf(查 询 子 菜 单 n); printf(=n);printf(1.按班次查询tn);printf(2.按终点站站名查询tn); printf(=n);printf(请选择查询方式(12):);scanf(%

    15、d, &i); switch(i)case 1: SearchbyNum(); break; case 2: SearchbyEnd(); break;default : printf(n 输入错误!请确保你的输入为 1 或 2.n);break; printf(=n);printf(n1.返回主菜单 2.继续查询 : );scanf(%d,&j);/*按班次查询信息*/void SearchbyNum()/按班次查询班次int GetHour(char *s); int GetMinute(char *s);system(cls);/清屏Ticket p,q;/定义两个结点int num;/

    16、要查询的班次int j=0;/判断班次p=head-next;printf(n 请输入需要查询的班次: ); scanf(%d,&num);while(p!=NULL)if(p-num-num=0)/班次和查询的班次相同q=p;printf(n);printf(班次: t);printf(%dn,q-num);printf(发车时间:t);printf(%sn,q-starttime);printf(起点站: t);printf(%sn,q-begin);printf(终点站: t);printf(%sn,q-end);printf(行车时间: t);printf(%.2fn,q-lastti

    17、me);printf(额定载量: t);printf(%dn,q-CarryNumber);printf(已定票人数: t);printf(%dn,q-SellNumber);置日历时间time_t t;/得到机器的日历时间或者设struct tm *timeinfo;/返回一个以 tm 结构表达的机器时间信息time(&t);/调用 time()函数timeinfo = localtime(&t);/函数需要传递进去的参数是&t,也就是之前 t 的地址,localtime()的返回值是一个 structtm 结构,于是返回值用 timeinfo 保存if(GetHour(q-starttim

    18、e)tm_hour)/系统时间超过班次出发时间printf(n 此班次车已发出!n); elseif(GetHour(q-starttime) = timeinfo-tm_hour)/小时正好钟未到if(GetMinute(q-starttime)tm_min)/分printf(n 此班次车已发出!n); elseprintf(n 此班次车尚未发出!n);elseprintf(n 此班次车尚未发出!n); j+;p=p-next;/while(p!=NULL) if(j=0)printf(n 对不起,不存在此班次!n);/*按终点站查询信息*/void SearchbyEnd()/按终点站查询

    19、班次system(cls);/清屏int GetHour(char *s); int GetMinute(char *s);Ticket p,q;/定义两个结点char end21;/要查询的终点站站名int j=0;p=head-next;printf(n 请输入需要查询的终点站站名: ); scanf(%s,end);while(p!=NULL)if(strcmp(p-end,end)=0)/比较 2 个字符串的大小是否一样q=p;printf(n);printf(班次: t);printf(%dn,q-num);printf(发车时间:t);printf(%sn,q-starttime)

    20、;printf(起点站: t);printf(%sn,q-begin);printf(终点站: t);printf(%sn,q-end);printf(行车时间: t);printf(%.2fn,q-lasttime);printf(额定载量: t);printf(%dn,q-CarryNumber);printf(已定票人数: t);printf(%dn,q-SellNumber); time_t t;/得到机器的日历时间或者设置日历时间struct tm *timeinfo;/返回一个以 tm 结构表达的机器时间信息time(&t);/调用 time()函数timeinfo=localti

    21、me(&t);/函数需要传递进去的参数是&t,也就是之前 t 的地址,localtime()的返回值是一个 structtm 结构,于是返回值用 timeinfo 保存if(GetHour(q-starttime)tm_hour)/系统时间超过班次出发时间printf(n 此班已发出!n); elseif(GetHour(q-starttime)=timeinfo-tm_hour)/小时正好钟未到if(GetMinute(q-starttime)tm_min)/分printf(n 此班已发出!n); elseprintf(n 此班次车尚未发出!n);elseprintf(n 此班次车尚未发出!

    22、n); j+;p=p-next;/while(p!=NULL) if(j=0)printf(n 对不起,不存在此班次!n);/*预定车票*/void Buyticket()/预定车票int GetHour(char *s); int GetMinute(char *s); int i=0;system(cls);/清屏ScanTicket();/调用浏览信息函数while(i!=1)int num,j=0;Ticket p,q;/定义两个结点p=head-next;time_t t;/得到机器的日历时间或者设置日历时间struct tm *timeinfo;/返回一个以 tm 结构表达的机器时

    23、间信息time(&t);/调用 time()函数timeinfo=localtime(&t);/函数需要传递进去的参数是&t,也就是之前 t 的地址,localtime()的返回值是一个 structtm 结构,于是返回值用 timeinfo 保存printf(n 请输入你要购买的班次:); scanf(%d,&num);while(p!=NULL)if(p-num-num=0)/班次和预订的班次相同q=p; j+;if(q-SellNumberCarryNumber)/如果已定票人数少于额定载量时间未到if(GetHour(q-starttime)timeinfo-tm_hour)/系统pr

    24、intf(n 订票成功!n); q-SellNumber+;elseif(GetHour(q-starttime)=timeinfo-tm_hour)&(GetMinute(q-starttime)timeinfo-tm_min)/系统小时正好, 分钟未到票人数增 1printf(n 订票成功!n);q-SellNumber+;/已定elseelseprintf(n 该班次车已经发出!n);printf(n 该班次车人数已满!n);p=p-next;if(j=0)printf(n 不 存 在 此 班 次 !n); printf(=n);printf(n1. 返回主菜单 2. 继续订票 : );

    25、scanf(%d,&i);/while(i!=1)/*退订车票*/void ReturnTicket()/退订车票int GetHour(char *s); int GetMinute(char *s); int i=0;system(cls);/清屏ScanTicket();/调用浏览信息函数while(i!=1)Ticket p,q; p=head-next; int num,j=0;time_t t;/得到机器的日历时间或者设置日历时间struct tm *timeinfo;/返回一个以 tm 结构表达的机器时间信息time(&t);/调用 time()函数timeinfo=localtime(&t);/函数需要传递进去的参数是&t,也就是之前 t 的地址,localtime()的返回值是一个 s


    注意事项

    本文(车票管理系统实验报告(电子).docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开