火车票管理系统—课程设计附源代码_第1页
火车票管理系统—课程设计附源代码_第2页
火车票管理系统—课程设计附源代码_第3页
火车票管理系统—课程设计附源代码_第4页
火车票管理系统—课程设计附源代码_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 计算机科学与技术系信息管理与信息系统专业程序设计综合课程设计报告 (2013/2014学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 2013年1月8日目 录第一章 课程设计的目的和要求11.1课程设计的目的11.2 课程设计的基本要求1第二章 课程设计任务内容22.1 简介22.2 功能说明2第三章 详细设计说明33.1 模板设计图33.2 主函数流程图43.3 子函数流程图5第四章 编码与调试74.1 软件使用说明74.2 运行结果及截图7第五章 课程设计心得与体会11附录一 参考文献12附录二 程序清单13附录三 录入文件27火车票管理系统第一章 课程设计的目的和要求

2、高级语言课程设计的主要目的是培养学生能够提高综合应用语言的能力,通过课程设计的训练,使学生能及时巩固已学的知识,补充未学的但有必要的内容,掌握应用计算机解决实际问题的基本方法,熟悉程序开发的全过程,提高综合应用语言的能力。高级语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构程序设计的方法按照课程设计的题目要求,分析,编写,调试和测试高级语言程序及编写设计报告。1.1课程设计的目的 1.巩固和掌握高级语言程序设计基本概念; 2.掌握基本的程序设计方法; 3.掌握开发软件所需的需求定义能力; 4.提高书写程序设计说明文档的能力; 5.提高综合运用高级语言的能力,强化编程和调试能

3、力。1.2 课程设计的基本要求 1.根据所给的课程设计题目,分析课程设计题目的要求; 2.对系统功能模块进行分析,写出详细的设计说明文档; 3.编写程序代码,调试所编写程序使其能正确运行; 4.设计完成的软件便于操作和使用; 5.设计完成后提交课程设计报告。 第二章 课程设计任务内容 2.1 简介 火车票管理系统:是为广大群众开发的,帮助人们查询车次信息,订票和退票,大大节约了人们的时间,是铁路营运公司所需要的全部功能的一个综合的管理系统。2.2 功能说明(1)录入班次信息:信息用文件保存,可不定时地增加班次数据。(2)浏览班次信息:可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车

4、时间,则显示“此班已发出”的提示信息)。(3)查询路线:可按班次号查询 ,可按终点站查询。(4)售票和退票功能:A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。(5)删除功能:该功能可以删除录入的错误信息。(6)订购功能:该功能可以方便旅客提前预定。第三章 详细设计说明3.1 模板设计图 火车票管理系统 录入班次信息 浏览班次信息 查看行车路线 选择订票或退票图3-1函数功能模板图3.2 主函数流程图开始 显示一系列功能操作输入所要操作的编号 根据所需操作选择,调用各功能函数模

5、块 1 2 3 4 录入班次信息浏览班次信息售票或退票查询行车路线显示结果 继续 是 否 结束 图3-2主函数流程图3.3 子函数流程图 开始 开始所需查询的车次添加班次信息是否存在是否存在 是 否 否 录入班次成功 是 按终点站 1 2按班次号 结束 图3-3 录入班次流程图输出所需信息 结束 图3-4 查询车次函数流程图 开始所需订票的车次是否存在 否 是 1 2按终点站按班次号是否发车 是 否 订票成功请您及时上车车已发出请您明天再来 结束 图3-5 订票函数流程图 第四章 编码与调试4.1 软件使用说明打开软件后,会出现一个主页面,这时候你首先要把火车票信息调用出来,这款软件具备很多功

6、能,例如用键盘操作页面;可以更改班次信息;浏览班次信息;订票;退票等等,并且能够随时退出系统得功能。这款软件简单易操作,希望大家会喜欢。4.2 运行结果及截图1、 进入系统页面录入班次信息 图4-1 录入班次信息图2、浏览录入班次信息 图4-2 浏览班次信息图3、 查询你乘车需要的信息(1) 按班次查询 图4-3 班次查询图(2) 按终点站查询 图4-4 班次查询图 4、 订票与退票(1) 订票成功 图4-5 订票成功图(2) 订票失败 图4-6 订票失败图(3) 退票成功 图4-7 退票成功图 (4) 退票失败 图4-8 退票失败图5、 退出系统 图4-9 退出系统图 第五章 课程设计心得与

7、体会三周的课程设计结束了,我终于完成了这次高级语言课程设计,并且认真完成了课程设计报告。在这次的课程设计中不仅检验了我所学习的知识,也培养了自己的耐心。课程设计是我们专业课程知识综合应用的实践训练,也是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义通过这次课程设计,本人在多方面都有所提高。通过这次火车票系统设计,综合运用本专业所学课程的理论,巩固与扩充了高级语言设计等课程所学的内容,掌握高级语言设计的方法和步骤,掌握了高级语言设计的基本的概念,了解了高级语言的基本结构,提高了编程能力,绘图能力,熟悉了规范和标准,同时各科相

8、关的课程都有了全面的复习,独立思考的能力也有了提高。 在这次设计过程中,大大激发了我编程的兴趣,在设计的过程中亦遇到了许多困难,我会向同学和学长寻求帮助,在交流中共同进步,也体现出自己设计程序的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 附录一 参考文献 1 张海藩编著.软件工程导论(第四版)M .清华大学出版社.2006.5. 2 Roger S.Pressman.软件工程-实践者的研究方法.机械工业出版社.1990 3 张敬等编著.软件工程教程.北京航空航天大学出版社.2003.7. 4 Steve magu

9、ire. Writing Clean Code(姜静波等译).电子工业出版社.1993 5谭浩强著.<<C+程序设计>>.清华大学出版社 6严蔚敏.吴伟民编著.<<数据结构(C语言版)>>.清华大学出版社 附录二 程序清单以下是火车票管理系统的完整程序清单:#include<stdio.h>#include<stdlib.h>#include<dos.h>#include<time.h>#include<conio.h>#include<string.h>const int

10、MAX=20;const int N=50;const int MAXFILENAME=100;enum FALSE,TRUE;struct timeint hour;int minutes;struct ticketint SerialNumber;struct time SetOut;char DeparturePointMAX;char TerminalPointMAX;float LastTime; int FixNumber;int FixedNumber;carN;int RecordNumber;int FLAG=FALSE;/*/int ShowMessage(void); /

11、载入原始数据void mainmenu(void); /主菜单void InsertMessage(void); /录入班次信息void SearchMenu(void); /查询路线子菜单void SearchByNumber(void); /按班次号查询void SearchByAddress(void); /按终点站查询void TicketManagement(void); /车票售出与退回void TicketOrder(void); /售票void TicketDelete(void); /退票void exit(void); /退出该系统void SaveRecord(ticke

12、t x); /储存信息到文件中/*/int main(void)do mainmenu();while(FLAG=FALSE);return 0;void mainmenu(void)system("color 1f");system("mode con: cols=140 lines=130");char functionNumber;printf(" 车票管理系统nn");printf(" 日期:2011/1/3/22:57n");printf("=n");printf(" 1.录

13、入班次信息tn");printf(" 2.浏览班次信息tn");printf(" 3.查询行车路线tn");printf(" 4.售票与退票系统tn");printf(" 5.退出该系统tn");printf("=n");printf("请选择你所需要的功能:");scanf("%c",&functionNumber);switch(functionNumber) case '1': InsertMessage(); pr

14、intf("n按任意键回主菜单.n"); getchar(); getchar(); break; case '2': RecordNumber=ShowMessage(); printf("n按任意键回主菜单.n"); getchar(); getchar(); break; case '3': SearchMenu(); printf("n按任意键回主菜单.n"); getchar(); getchar(); break; case '4': TicketManagement();

15、getchar(); getchar(); break; case '5':FLAG=TRUE;exit();break; default: printf("输入错误,请确保你的输入为1-5.n"); printf("按任意键回主菜单.n"); getchar(); getchar(); /switch endsFLAG=FALSE;void InsertMessage(void)FILE *fp;char filenameMAXFILENAME;int i;printf("请输入文件名或者文件路径名:");scanf

16、("%s",filename);if(fp=fopen(filename,"r")=NULL) printf("文件%s不可读,请确认文件%s存在或者文件路径正确.nn",filename,filename); mainmenu();for(i=RecordNumber;!feof(fp)&&!ferror(fp);i+)fscanf(fp,"%d%d%d",&cari.SerialNumber,&cari.SetOut.hour,&cari.SetOut.minutes);

17、fscanf(fp,"%s%s%f%d%d",&cari.DeparturePoint,&cari.TerminalPoint,&cari.LastTime,&cari.FixNumber,&cari.FixedNumber); SaveRecord(*(car+i);RecordNumber=i;/*输出更新后的订票记录*/printf("班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n");for(i=0;i<RecordNumber;i+)printf("%dt%d:%dt

18、t",cari.SerialNumber,cari.SetOut.hour,cari.SetOut.minutes); printf("%st%stt%.1ft %dtt%dn",cari.DeparturePoint,cari.TerminalPoint,cari.LastTime,cari.FixNumber,cari.FixedNumber);fclose(fp);int ShowMessage(void)int i;FILE *fp;if(fp=fopen("add.txt","r")=NULL) printf(&q

19、uot;读取数据失败,请检查文件add.txt是否存在.n"); exit(-1);for(i=RecordNumber;!feof(fp)&&!ferror(fp);i+)fscanf(fp,"%d%d%d",&cari.SerialNumber,&cari.SetOut.hour,&cari.SetOut.minutes);fscanf(fp,"%s%s%f%d%d",&cari.DeparturePoint,&cari.TerminalPoint,&cari.LastTime

20、,&cari.FixNumber,&cari.FixedNumber);int count=i;printf("班次t发车时间t起点t终点t 行车时间(小时)t额定载量t已定票人数n");for(i=0;i<count;i+)printf("%dt%d:%dtt",cari.SerialNumber,cari.SetOut.hour,cari.SetOut.minutes); printf("%st%stt%.1ft %dtt%dt",cari.DeparturePoint,cari.TerminalPoint,

21、cari.LastTime,cari.FixNumber,cari.FixedNumber); /*调用系统时间实现的功能:如果车已发出,则打出提示"此车已发出",但是此处有错误*/ time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval);if(now->tm_hour=cari.SetOut.hour&&now->tm_min>cari.SetOut.minutes)|(now->tm_hour>cari.SetOut.hour) p

22、rintf("此车已发出"); printf("n");return count;void SearchMenu(void)system("color 1f");system("mode con: cols=140 lines=130");char functionNumber;printf(" 查询子菜单n");printf("=n");printf(" 1.按班次号查询tn");printf(" 2.按终点站查询tn");print

23、f(" 3.返回主菜单tn");printf("=n");printf("请选择你所需要的功能:");scanf("%*c%c",&functionNumber);switch(functionNumber) case '1':SearchByNumber();break; case '2':SearchByAddress();break; case '3': getchar(); mainmenu(); break; default: printf(&quo

24、t;输入错误,请确保你的输入为1-3.n"); printf("按任意键回查询子菜单.n"); getchar(); getchar(); SearchMenu();void SearchByNumber(void)int SearchNumber;printf("请输入要查询的班次号:");scanf("%d",&SearchNumber);printf("班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n");printf("%dt%d:%dtt",car

25、SearchNumber-1.SerialNumber,carSearchNumber-1.SetOut.hour,carSearchNumber-1.SetOut.minutes);printf("%st%stt%.1ft %dtt%dn",carSearchNumber-1.DeparturePoint,carSearchNumber-1.TerminalPoint,carSearchNumber-1.LastTime,carSearchNumber-1.FixNumber,carSearchNumber-1.FixedNumber);void SearchByAddr

26、ess(void)int i;char AddressMAX;printf("请输入终点站的名称:");scanf("%s",&Address);printf("班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n");for(i=0;i<RecordNumber;i+) /对比终点站记录,找到并输出 if(strcmp(Address,cari.TerminalPoint)=0) printf("%dt%d:%dtt",cari.SerialNumber,cari.SetOut.ho

27、ur,cari.SetOut.minutes); printf("%st%stt%.1ft %dtt%dn",cari.DeparturePoint,cari.TerminalPoint,cari.LastTime,cari.FixNumber,cari.FixedNumber); void TicketManagement(void)char functionNumber;system("color 1f");system("mode con: cols=140 lines=130");printf(" 订票与退票菜单n&

28、quot;);printf("=n");printf(" 1.订票tn");printf(" 2.退票tn");printf(" 3.返回主菜单.n");printf("=n");printf("选择你需要的功能:");scanf("%*c%c",&functionNumber);switch(functionNumber) case '1': TicketOrder(); /getchar(); /getchar(); break

29、; case '2':TicketDelete();break; case '3': getchar(); mainmenu(); break; default: printf("输入错误,请确保你的输入为1-3.n"); printf("按任意键回主菜单.n"); getchar(); getchar(); mainmenu(); void TicketOrder(void)int i;printf("请输入要订购的车票的班次:");scanf("%d",&i);if(i&

30、lt;0|i>RecordNumber) printf("对不起,今天没有这趟车,请明天再来,谢谢使用!n"); printf("按任意键回主菜单.n"); getchar();/getchar(); TicketManagement();time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval);if(now->tm_hour=cari.SetOut.hour&&now->tm_min<cari.SetOut.minutes

31、)|(now->tm_hour<cari.SetOut.hour) if(cari.FixedNumber<cari.FixNumber) (cari.FixedNumber)+; printf("你的订票成功,请按时上车,谢谢使用!n"); else printf("对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!n"); else printf("对不起,今天的这趟车已发出,请明天再来,谢谢合作!n");printf("班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n"

32、;);printf("%dt%d:%dtt",cari-1.SerialNumber,cari-1.SetOut.hour,cari-1.SetOut.minutes);printf("%st%stt%.1ft %dtt%dn",cari-1.DeparturePoint,cari-1.TerminalPoint,cari-1.LastTime,cari-1.FixNumber,cari-1.FixedNumber);/printf("按任意键回主菜单.n");/getchar();getchar();void TicketDelete(void)int i;printf("请输入要退购的车票的班次:");scanf("%d",&i);if(i<0|i>RecordNumber) printf("对不起,今天没有这趟车,无法完成退票.谢谢使用!n"); getchar(); /getchar(); TicketManagement(); getchar();tim

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论