c语言课程设计报告报告车票管理系统_第1页
c语言课程设计报告报告车票管理系统_第2页
c语言课程设计报告报告车票管理系统_第3页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、建筑工程学院课程设计报告课程设计名称:C语言课程设计课程设计题目:车票管理系统院系:理学院专业:信息与计算科学班级:信142学号:姓名:嘉星指导教师:鸿强完成日期:2015-6-17前言2第1章概要设计31.1题目的容与要求31.2总体构造4第2章详细设计4主模块流程图4车票管理系统软件详细设计5第3章调试分析7第4章使用说明与执行结果8参考文献16附录程序活单18致35刖曰随着计算机技术的开展,可视编程技术占有了越来越重要的作用。VisualC+6.0是一种功能强大行之有效的可视化编程工具。因此此软件是在VisualC+6.0环境下编写的。对于我们,随着学习的深入,已经大体掌握了Visual

2、C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进展基于VisualC+6.0环境的软件开发,先以字符统计软件作为开场,对VisualC+6.0环境和面向对象程序设计进展回忆和熟悉,使得在此根底上的下一个员工培训系统软件的开发进展的更加顺利。本文档详细表达了基于VisualC+6.0环境下的车票管理系统的设计过程以及程序源代码。本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。此次车票管理系统的开发目的是使我们用面向对象的方式来思考和解决问题的能力,并且可以掌握字符数

3、组的使用、字符指针的使用、数据库的设计和文件使用以及C语言语法。程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,车票管理系统和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢送提醒和纠正,在此表示感以及敬意。第1章概要设计1.1题目的容与要求一车站每天有n个发车班次,每个班次都有一班次号1、2、3n,固定的发车时间,固定的路线起始站、终点站,大致的行车时间,固定的额定载客量。如班次发车时间起点站终点站行车时间额7E载用已定票人数18:00郸县广汉2453026:30郸县0.5404037:00郸县0.54020410:00郸县0.5402一功能要求:用C/C

4、+设计一系统,能提供以下效劳:1录入班次信息(信息用文件保存),可不定时地增加班次数据2浏览班次信息,可显示出所有班次当前状总。3查询路线:可按班次号查询,可按终点站查询4售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数二其它要求:1只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读2至少采用文本菜单界面如果能采用图形菜单界面更好3学生可自动增加新功能模块视情况可另外加分4写出课程设计报告,具体要求见相关说明文档图1-1功能模块图第2章详细设计主模块流程图A退

5、票按车次按终到站word图2.1主模块流程图车票管理系统软件详细设计一个名Timetabled勺构造体进展定义,包括intno;/班次inthour;/发车时间时intminute;/发车时间分charStarting_station10;他台发站charLast_station10;/终点站floattime;/行车时间intmax_number;/最大载客数intsold_number;/已售票数等构造体成员。然后对调用函数进展定义。voidadd曾加记录,voidCipher(®码验证函数,voiddel()删除班次信息函数,voidfind(ints1,chars2)查找函数

6、,intfindnum(ints1)查找班次函数,voidInput()信息录入函数,voidhuanying()欢送界面,voidland()登录选择界面,voidmenu1(修理员菜单界面,voidmenu2(梏通菜单界面,voidopen()调用数据函数,voidsave(课存函数,voidsearchesmenutl)询菜单,voidticketdelete()退票函数,voidticketorder(浩票函数,inttimee(inti)判断时间是否超出函数,voidtimetablei®示车次函数该系统将这些信息均放在文件中。最后定义main()函数,利用函数调用,实现程

7、序的各种功能。将其放在系统文件车中。第3章调试分析1、程序陷入死循环解决方法:仔细分析程序间的关系,画程序流程图分析问题所在。利用break命令跳出循环2、程序出现乱码解决方法:利用VC6.0本身的调试功能查找错误的所在,修改源程序。3、所学知识不能很好的完成程序解决方法:上网查找相关资料,进入一些开源论坛寻求一定的帮助。第4章使用说明与执行结果图4-1欢送界面图4-2登录菜单图4-3管理员登录的密码机制图4-4密码容错机制图4-5管理员菜单图4-6氏4诰,1入己世芝酸,a白1至役'.AitjU争munE皿间:时W言SK入人匚氏A±nxH*LXHH*Mi»i二一:r

8、-=J-F图4-7班次录入界面图4-8图4-9班次增加界面图4-10时刻表浏览界面图4-11查询界面图4-11注销班次界面图4-12普通登录菜单图4-14售票窗口图4-15图4-16退票界面参考文献1、?0程程序设计第四版?谭浩强书号:ISBN64:清华大学。2、?C语言学习路线图?乍者:明日科技书号:ISBN93:清华大学。3、?C语言从入门到精通(第2版)?明日科技书号:ISBN20:清华大学。4、?21大学通C语言(第7版)?美琼斯等著,估译书号:ISBN79:人民邮电。5、?CPrimerPlus第五版中文版?美StephenPrata书号:ISBN28:人民邮电。鸣:百度文库百度贴吧

9、百度百科C语言之家Linux开源俱乐部网络资料来源:1、.xuexilll./2、snippets.dzone./tag/c/3、.hotscripts./category/c-cpp/scripts-programs/Hotscripts4、s:/.daniweb./software-development/cpp/code/_/8附录程序清单代码/增加记录#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidadd()(voidopen();in

10、tget();voidsave();voidmenu1();inti,j=5;open();/调用按班次查询函数system("cls");/清屏printf("1.增加班次n");printf("2.返回n");printf("请选择(1-2)n");scanf("%d”,&i);if(i=1)(system("cls");/清屏printf("1.请输入要增加的班次:n");scanf("%d”,&timetableclass_num.

11、no);for(i=0;i<class_num;i+)if(timetableclass_num.no=timetablei.no)比拟是否相等,判断车次是否重复(printf("输入错误!n");getch();/收集回车break;if(i=class_num)(get(i,j);/修改及增加班次*class_num+;/使班次数加1save();/调用保存函数elsemenu1();#include<stdio.h>voidCipher()/密码验证函数intm,n=123;/规定密码voidmenu1();/上级菜单的声明;容错机制printf(&

12、quot;请输入密码:,输入提示scanf("%d”,&m);/密码输入while(1)/容错机制if(m=n)menu1();elseprintf("密码错误请重新输入:");scanf("%d",&m);/删除班次信息#include<stdio.h>#include<stdlib.h>/system("cls")的声明#include<conio.h>/getch的声明#include"news.h"voiddel()voidsave();intf

13、indnum(ints1);inti,h=0;intnum;charor10;system("cls");/清屏printf("1.删除班次n");printf("2.返回n");printf("请选择(1-2):n");scanf("%d”,&i);if(i=1)system("cls");/清屏printf("请输入要删除的班次:n");scanf("%d”,&num);i=findnum(num);/调用班次查询函数if(i=clas

14、s_num)/全部匹配后但无匹配项printf("输入错误,无此班次!n");getch();/收集回车del();elseprintf("确定?(y/n)n");/确认机制scanf("%s",or);if(or0='y'|or0='Y')for(;i<class_num-1;i+)timetablei=timetablei+1;class_num-;/班次总数减1save();/调用保存函数/查找函数#include<stdio.h>#include"news.h”#in

15、clude<string.h>voidfind(ints1,chars2)inti,h=0,m;if(s20='0')m=1;/1为无条件执行elsem=0;printf("n|111111|n");printf("n|班次|发车时间|起点站|终点站|行车时间|额定载量|已售票|n");for(i=0;i<class_num;i+)if(s1=timetablei.no|strcmp(s2,timetablei.Last_station)=0)/判断字符串比拟是否相等printf("n|111111|n&quo

16、t;);printf("|%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+;break;printf("n|111111|n");if(h=0)/不能break那么执行printf("

17、要查找的班次不存在!n");/查找班次#include<stdio.h>#include"news.h”intfindnum(ints1)inti;printf("n|111111|n");for(i=0;i<class_num;i+)if(s1=timetablei.no)/判断字符串比拟是否相等,如果符合那么输出车次等信息|n");printf("|printf("|%10d|%5d:%-4d|%10s|%10s|%8.1f|%8d|%8d|”,timetablei.no,timetablei.hour

18、,timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time,timetablei.max_number,timetablei.sold_number);break;printf("n|111111|n");returni;/欢送界面#include<stdio.h>voidhuanying()printf("nnnn");printf("t*n");printf("nnnn");printf

19、("tttt车票管理系统n");printf("nnnn");printf("ttt设计人:嘉星;新月;田宇n");printf("nn");printf("tttt感您的使用ntttt按任意键继续n");printf("nn");printf("t*n");/信息录入界面#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h&

20、gt;voidInput()(inti=0,j=5,h;chars5;voidsave();voidadd();voidget(inti,intj);FILE*fp;/定义文件型指针变量system("cls");/清屏if(fp=fopen("车票管理系统0.dat”,"rb")!=NULL)/fopen翻开文件(printf(-车票信息已经存在!n");printf(-任意输入进入添加菜单n");scanf("%s",s);/收集任意输入i=1;/通过是1add();if(i=0)(system(&q

21、uot;cls");/清屏printf("请输入要录入班次总数:n");scanf("%d”,&class_num);/指向班次指针system("cls");/清屏for(i=0;i<class_num;i+)(system("cls");/清屏printf("请输入第d个班次信息:n”,i+1);h=-1;for(;h!=i;)/循环输出(printf("请输入班次:n");scanf("%d”,&timetablei.no);for(h=0;h&l

22、t;i;h+)if(timetableh.no=timetablei.no)(printf("输入错误!该班次已存在!n");break;/返回get(i,j);/修改及增加班次j=5;save();/调用保存函数voidget(inti,intj)/修改及增加班次(for(;)(printf("请输入发车时间(xxxx)");scanf("%d%d”,&timetablei.hour,&timetablei.minute);if(timetablei.hour<24&&timetablei.hour>

23、;=0&&timetablei.minute<60&&timetablei.minute>=0)break;else(printf("输入错误!n”);getch();/收集回车printf("请输入起点站:n");scanf("%s”,timetablei.Starting_station);printf("请输入终点站:n");scanf("%s”,timetablei.Last_station);printf("请输入行车时间:n");scanf(&quo

24、t;%f",&timetablei.time);printf("请输入额定载量:n");scanf("%d”,&timetablei.max_number);printf("请输入已售票数:n");scanf("%d”,&timetablei.sold_number);/管理员菜单界面#include<stdio.h>voidmenu1()(voidInput();voidtimetable1();voidsave();voiddel();voidsearchesmenu();voidla

25、nd();voidadd();intn;printf("tttt1、车次信息录入ntttt2、增加车次信息ntttt3、时刻表浏览ntttt4、车辆信息查询ntttt5、注销车次ntttt6、保存ntttt7、返回n");printf(-ttt请输入需要运行的命令编号n");while(1)/死循环形成菜单scanf("%d”,&n);switch(n)case1:Input();break;/车辆信息录入case2:add();break;/增加车次信息case3:timetable1();break;/俅U览时刻表case4:searches

26、menu();break;廉辆信息查询case5:del();break;/注销车次case6:save();break;/保存命令case7:land();break;/返回上级菜单default:printf("非法输入n");break;/普通登录菜单#include<stdio.h>voidmenu2()voidtimetable1();voidticketorder();voidticketdelete();voidland();voidsearchesmenu();intn;、时刻表浏览ntttt2、车辆信息查询ntttt3、购置车票ntttt4、返

27、回n");请输入需要运行的命令编号n");printf("tttt1退回车票ntttt5printf("tttwhile(1)scanf("%d",&n);switch(n)case1:timetable1();break;/时刻表浏览case2:searchesmenu();break;廉辆信息查询case3:ticketorder();break;/购置车票case4:ticketdelete();break;/退回车票case5:land();break;/返回上级菜单default:printf("非法输入n

28、");break;#include<stdio.h>voidhuanying();voidland();intmain()charch;huanying();ch=getchar();/收集回车land();return0;#include<stdio.h>#include<stdlib.h>#include"news.h"#include<conio.h>voidopen()FILE*fp1,*fp2;if(fp1=fopen("车票管理系统.dat”,"rb")=NULL)syste

29、m("cls");/清屏printf("文件翻开错误!n”);getch();/收集回车exit(0);if(fp2=fopen("车票管理系统0.dat”,"rb")=NULL)system("cls");/清屏printf("文件翻开错误!n");getch();/收集回车exit(0);/退出fread(&class_num,sizeof(int),1,fp2);/读入信息fread(timetable,sizeof(timetable0),class_num,fp1);/读入信息

30、fclose(fp1);fclose(fp2);/文件关闭#include<stdio.h>#include<stdlib.h>#include"news.h"voidsave()/保存函数(voidmenu1();FILE*fp1,*fp2;/文件行指针if(fp1=fopen("车票管理系统.dat”,"wb")=NULL)/翻开文件、为输出翻开一个二进制文件(printf("文件翻开错误!n");exit(0);if(fp2=fopen("车票管理系统0.dat”,"wb&q

31、uot;)=NULL)/翻开文件、为输出翻开一个二进制文件(printf("文件翻开错误!n");exit(0);fwrite(&class_num,sizeof(int),1,fp2);/写入文件信息fwrite(timetable,sizeof(timetable0),class_num,fp1);fclose(fp1);fclose(fp2);/关闭文件printf("保存成功");menu1();/查询菜单#include<stdio.h>#include<stdlib.h>#include<conio.h&

32、gt;voidsearchesmenu()(inti;voidfind(ints1,chars2);chars1=0,s210='0'voidopen();voidland();system("cls");/清屏printf("1.按班次查询n");printf("2.按终点站查询n");printf("3.退出n");printf("请选择(1-3):n");scanf("%d",&i);open();/调用按班次查询函数switch(i)/菜单ca

33、se1:printf("请输入要查询的班次:n");/s1为班次scanf("%d",&s1);find(s1,s2);/调用查找函数break;case2:printf("请输入要查询终点站:n");/s2为终点站scanf("%s",s2);find(s1,s2);/调用查找函数break;case3:land();break;/返回机制default:printf("输入错误!n”);break;printf("按任意键继续.n");getch();/收集回车/退票函数#

34、include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidticketdelete()(inti;intnum;charor;inttimee();voidopen();intfindnum(ints1);voidsave();voidmenu2();system("cls");/清屏printf("1.退票n");printf("2.返回n");printf("请选择(1-2)n:&q

35、uot;);scanf("%d",&i);if(i=1)(system("cls");/清屏open();/调用按班次查询函数printf("请输入要退票的班次:n");scanf("%d",&num);i=findnum(num);/调用班次查询函数if(num=timetablei.no)/判断字符串比拟是否相等待比拟的字符串if(timee(i)/判断时间是否超出函数(scanf("%c",&or);if(or='y'|or='Y')

36、getch();(timetablei.sold_number-;/使已售票加1printf("退票成功!n");save();/调用保存函数getch();/从控制台读取一个字符,但不显示在屏幕上else(printf("该班车已发出,无法退票!n");getch();/收集回车/售票函数#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidticketorder()(inti;intnum;voidsave

37、();inttimee(inti);voidopen();voidsearchesmenu();voidland();system("cls");/清屏printf("1.售票n");printf("2.返回n");printf("请选择(1-2):n");scanf("%d”,&i);if(i=1)(open();/调用openprintf(-请输入要订票的班次(假设无请输入0):n");scanf("%d”,&num);for(i=0;i<class_num;

38、i+)if(num=timetablei.no)/比拟是否相等if(timetablei.sold_number>timetablei.max_number&&timee(i)=1)/判断时间是否超出函数*并且*没超出最大客量(timetablei.sold_number+;/使已售的票数+1printf("通向%s班次为%d的票订票成功!n”,timetablei.Starting_station,timetablei.no);save();/调用保存函数getch();/收集回车break;else(printf(-该班次已满或已发出!n");ge

39、tch();/收集回车land();elseland();#include<time.h>#include<stdlib.h>#include"news.h"inttimee(inti)判断时间是否超出函数*structtm*local;/时间构造体time_tt;/把当前时间给tt=time(NULL);/NULL在stdio.h中定义为0local=localtime(&t);/获取当前系统时间if(local->tm_hour<timetablei.hour|local->tm_hour=timetablei.hour

40、&&local->tm_min<timetablei.minute)return1;elsereturn0;#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidtimetable1()显示车次函数inti,j;voidopen();inttimee(inti);voidland();system("cls");/清屏open();/调用opensystem("cls");/清屏printf(MESSAGE车程信息*n");*printf("n|111111|n");printf("n|班次|发车时间|起点站|终点站|行车时间|额定载量|已售票|n");for(i=0,j=0;i<class_num;i+,j+=2)/按班次顺序输出printf("n|111111

温馨提示

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

评论

0/150

提交评论