车票标准管理系统.doc

上传人:满*** 文档编号:97984601 上传时间:2024-07-08 格式:DOC 页数:34 大小:207.54KB
返回 下载 相关 举报
车票标准管理系统.doc_第1页
第1页 / 共34页
车票标准管理系统.doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《车票标准管理系统.doc》由会员分享,可在线阅读,更多相关《车票标准管理系统.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、摘 要C是一种计算机程序设计语言,可以作为系统设计语言编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件应用程序,因而它应用范畴辽阔。本系统是依照学校图书管理工作需要,通过C语言开发一种图书管理系统来实现对图书信息进行有效、精确管理。整个系统从简便、实用规定出发,完毕图书管理全过程,涉及图书信息采集,图书插入、删除、借阅、归还、显示、输出等功能。本文重要简介了本课题开发背景,所要完毕功能和开发过程。系统阐明了系统设计思路、总体设计、各个功能模块设计与实现办法。核心词:图书管理系统, C语言,信息采集模块目 录1 设计目及内容规定11.1 设计目11.2 内容规定12 系统构造设

2、计23 系统详细设计33.1 系统主界面设计33.2 定义 构造办法33.3 定义 办法34运营成果及分析4总 结6参照文献7源程序81系统背景意义1.1系统开发目 随着经济发展,交通运送越来越便捷,为了提高效率,减轻劳动强度,设计开发高效汽车信息查询系统就显得颇为重要。汽车售票管理中包括许多内容,有订票管理问题,车票发布问题,顾客登录问题等等。这次C#大作业运用VS开发工具和SQLServer数据库系统来汽车票务信息管理系统。该系统重要目是实现车站网上售票工作,可以满足普通顾客售票基本规定,涉及登录、查询、订票、退票等模块。 1.2同类产品概况车票管理涵盖了咱们出行方方面面,全国当前有多家网

3、站经营汽车票销售管理,例如畅途网、坐车网、12308等,这些网站重要面向全国顾客,与多家售票站点合伙,多是某些大都市之间客车,县级之间汽车信息很少有。而当前从总体上看大某些中小汽车站官网已有了订票功能,弥足了它们局限性。购票流程也是大同小异,顾客登录之后选取始发站、目站、出发日期,查阅车票信息,拟定后付款即可,这时个人中心即有了自己购票信息,若要退票则选取退订即可,操作环节流畅,个人体验也较好。1.3与同类产品比较这次车票订购管理系统实现了与同类产品同样查票、购票、退票基本功能,长处是操作简朴,已经能满足票务管理需求,退票也遵循了原子性操作,退票之后系统将之添加到票库中。固然缺陷是本次系统重要

4、是票务管理模仿,在细节上无法与同类产品相比较,例如缺少了注册顾客,购票付款,退票返钱环节,并且是一款window下客户端产品,少了同类产品网页版灵活性,固然其她系统如Linux,mac OS是无法运营本系统。2. 系统重要设计 2.1系统总体功能模块 车票重要划分为三个某些:顾客管理,车票查询,车票管理三个功能模块。车票管理系统顾客管理模块车票查询模块车票管理模块三个模块完毕各自功能。顾客管理模块顾客登录信息提示密码验证 顾客管理模块:顾客可以依照自己帐号密码进行系统登录,若登录失败系统则给出提示信息。 车票查询模块,顾客可以选取出发日期,出发站,目站来查询车票信息并订购自己车票。车票订购车票

5、查询模块车票查询系统提示信息输入车票管理模块:用于对顾客已经订购车票管理。车票管理模块车票退订 程序流程图重要如下所示:开始登录界面检核对的性NY系统主界面车票退订车票订购车票查询结束退出 2.2数据库设计 数据库设计了三张表,users,ticket和myticket表。 users表达顾客表,存储系统中存在顾客名和密码,如下所示: ticket表存储汽车班次详细信息,具有始发站,终点站,车次,发车时间,到达时间,票价,剩余票数等信息,如下:表名:ticket myticket表记录所有顾客订购汽车车票信息,具有顾客名,出发站,到站,出发日期,票价等信息,如下:表名:myticket出发日期

6、各个实体间依赖关系如下:顾客名顾客名我车票表密码查阅票价顾客表车次始发站购票终点站票数车票表到达时间出发时间票价 2.3使用重要技术本次C#大作业使用了sql server来实现数据库设计,VS来实现系统编码。用了数据库及数据库表创立技术,C#模块化编程,在系统与数据库之间用了三层架构,将数据库连接进行了封装,避免了代码冗杂并实现了完全对对象操作,面向对象设计思想也得到了较好应用,在代码编写过程中还运用了调试技术。 2.4系统安全性 系统设计了登录界面,每个合法顾客有顾客名及一种密码,只有当顾客输入对的顾客名及密码组合后才可以对学生信息进行操作,否则给出登录错误提示信息。代码中也设立了各种语法

7、检查,避免不必要异常抛出。3. 系统实现 3.1系统重要类设计本次系统设计用了三个类User,Ticket和Myticket。User类重要相应于数据库里users表,成员有顾客id,顾客名userName,顾客密码password;UserPrivate int userId;Private string userName;Private string password;Ticket类相应于ticket表,成员有始发站startStation,终点站arriveStation,车次carNumber等等;TicketPrivate string startStation;Private st

8、ring arriveStation;Private string carNumber;Private string startTime;Private string arriveTime;Private int tickePrice;Privatec int poll; Myticket类设计相应于数据库中myticket表格中数据,成员有顾客名uname,出发站goStation,到达站toStation,出发日期goDate,票价ticNum,车次carNu;MyticketPrivate string uname;Private string goStation;Private str

9、ing toStation;Private string goDate;Private int ticNum;Private string carNum; 在类设计中,以上三个类每个成员都进行了重构和封装字段操作,以便其她函数调用与访问,三个类封装在了以Model命名类库中,其她类库使用只需添加引用即可,以便了操作。 3.2功能模块设计与实现本系统重要设计了四个模块,如下图:Model模块包括了本次程序所需要所有类,有Ticket,User和Myticket,她们在前面类设计已经尽心了详细简介。DAL模块负责数据库连接,具有四个C#文献,DBHelperForsql重要实现底层数据库连接,包括

10、增删改查函数,UserService实现顾客登录时连接数据库顾客名和密码检查,TicketService实现了查询数据库中车票信息,可以向数据库中添加和减少车票,MyticketService实现向个人顾客数据库车票中添加删除等操作。BLL模块是DAL模块与TicketManager模块之间连接层,实现了DAL模块每个类中定义函数,在TicketManager模块中可以直接调用。TicketManager模块是系统主模块,由三个Form窗体构成,第一种窗体位登录窗口,检查顾客登录名密码对的性并给出错误提示,登录进去之后直接跳转至购票查询主窗体,在主窗体中点击“我购票信息”可以进入第三个已购票信

11、息窗体,在这里可以点击退订进行退票。成果演示如下:一方面运营会进入登录页面,在窗口中输入顾客名和密码,例如密码输入错误,会给出弹窗信息,对的输入之后,会进入订票系统主界面,在窗口中选取日期,始发站和终点站点击查询,这时会显示出车次信息,选取好自己车次点击订票若尚有剩余车票则会显示出订票成功,此时显示剩余票数为32,这是在点击“我订票信息”,会弹出已经订购过车票,选取自己订购车票点击“退订”按钮,会将已经购买车票返回给系统,这时再在主界面点击查询,会发现票数剩余33。总结本次车票管理系统一方面实现了顾客登录验证,并在安全性方面给与了一定考虑,在界面功能上也基本实现了购票流程模仿。在界面设计上竭尽

12、所能做到排版简洁美观,操作简朴易上手,已经能满足票务管理需求, 对大某些顾客来说可以纯熟使用本系统。固然本次系统毕竟是票务管理 模仿,在诸多细节把握上还是很难与商业化大型购票网站相提并论, 例如灵活性,移植性问题等,并且也无法实现网银真正接入付款,在这些 方面还是需要在后来开发过程中多多考虑。 本次C#大作业耗费了周六周日两天时间来完毕代码编写与测试,又用了周一周二两个下午进行文档编写,虽然耗费了不少时间,但最后还是自己一种人完毕了这个小项目,尽管功能不是那么完善,但付出汗水之后的确 有不少收获,但愿在后来时间里能多加锻炼自己代码编写能力,在后续可以添加更多功能。C#这门课之后才感觉所传非虚,

13、虽然有点难上手 ,但教师大某些会按着推荐教材按部就班讲,蒋教师课的确很独特,通过一种个工程案例来让咱们体会其中运用技术。上了两周之后我对这种此前没有体验过教课方式产生了极大兴趣,尽管课堂上有时候会跟不上节奏,但感觉学到了诸多东西,印象最深就是编程序三层架构,此前只是懂得但并不会运用到实际编码中,通过第16周学习我感觉自己水平亟需提高。最后,学习这门课对我最大收获是:动手写程序比只看课本不实践重要得多参照文献1 Bruce Eckel.Java编程思想. 北京:机械工业出版社,2 龚永罡,陈昕.Java程序设计M. 北京:清华大学出版社,3 刘兆宏,郑莉,陈建等. Java语言程序设计案例教程M

14、.北京:清华大学出版社,4 王舜燕、钟珞.Java编程办法学M.北京:北京邮电大学出版社,源代码:#include /宏定义函数#include /串操作及内存操作函数#include /调用系统函数#include /时间库函数 #include /输入输出函数#define N 1000 /宏定义多条记录typedef struct TICKET /定义新构造体TICKETchar num10; /车次编号char hour3; /时间,小时char min3; /分钟char from10; /起始站char to10; /终点站float hours; /车程实际时间int max;

15、/最大车载容量int now; /已售票数CLASS;int class_num=0; /初始班次总数为0 CLASS recordsN; / 多条记录int system_time(); /系统时间void NewMessage(); /新纪录*录入函数*void ShowTable1(); /线框调用1,不用没次输 void ShowTable2(int i); /线框调用2,不用没次输 void Display(); /显示所有函数void add(); /增长记录void save(); / 保存函数void load(); / 按班次查询函数void search(); /查询函数v

16、oid change(); /修改函数* void quit(); / /退出函数*void Ticketorder(); / /*售票函数* void Ticketdelete(); /删除函数*int menu_select(); /菜单函数*int whether(int); /判断时间与否超过函数*void find(char s1,char s2); /查询函数/s1为班次/s2为终点站void deletemessage(); /删除函数int findnum(char s1); /班次查询函数void get(int,int); /修改及增长班次*char *menu=*欢迎使用

17、车票查询系统*,n*MENU功能菜单*,n 1. 录入班次 ,n 2. 显示所有班次 ,n 3. 查询班次 ,n 4. 增长班次 ,n 5. 售票 ,n 6. 退票 ,n 7. 修改班次 ,n 8. 删除班次 ,n 9. 退出 ; /*主函数*/void main()system(cls); /刷屏while(1) /菜单函数循环switch(menu_select() /菜单函数*case 1:NewMessage();break; /新纪录*录入函数*case 2:Display();break; / /显示case 3:search();break; /查找函数*case 4:add()

18、;break; / /增长记录case 5:Ticketorder();break; /*售票函数*case 6:Ticketdelete();break; /删除函数*case 7:change();break; /修改函数*case 8:deletemessage();break; /选取调用删除函数case 9:quit();break; /退出函数*/*菜单函数*/int menu_select() /菜单函数*char s5; /定义要输入数字功能int c,i; system(cls); /刷屏 system(color 09);/变化颜色 for(i=0;i11;i+)print

19、f(%s,menui); /输出菜单各项) i=0; while(c9) /判断与否是1到9命令printf(n); /输出换行 printf(*); printf(n请选取(1-9):);scanf(%s,s);c=atoi(s); /atoi将字符串转换成一种整数值 /输出菜单面return c; /返回祈求 /*录入函数*/void NewMessage() /*录入函数* int i=0,j=5,h; /char s5;FILE *fp; /定义文献型指针变量system(cls); /刷屏if(fp=fopen(d:车票管理系统0.dat,rb)!=NULL) /fopen打开文献

20、printf(车票信息已经存在请选取增长功能!n);printf(任意输入则返回菜单n);scanf(%s,s);i=1; /通过是1if(i=0) system(cls); /刷屏printf(请输入要录入班次总数:n);scanf(%d,&class_num); /指向班次指针system(cls); /刷屏for(i=0;iclass_num;i+) system(cls); /刷屏printf(请输入第%d个班次信息:n,i+1);h=-1;for(;h!=i;) /循环输出printf(请输入班次:n);scanf(%s,recordsi.num);for(h=0;hi;h+)if(

21、strcmp(recordsh.num,recordsi.num)=0) /判断字符串比较与否相等, 待比较字符串 printf(输入错误!该班次已存在!n);break; /返回get(i,j); /修改及增长班次*j=5;save(); /调用保存函数/*显示所有函数*/void Display() /显示所有函数int i,j;system(cls); /刷屏load(); / 调用按班次查询函数ShowTable1(); /线框调用1,不用没次输 for(i=0,j=0;iclass_num;i+,j+=2) /按班次顺序输出 printf(n|-|-|-|-|-|-|-|n);if(

22、whether(i) /判断时间与否超过函数*printf(|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|,recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);else printf(|%10s| 已发车 |%10s|%10s|%8.1f|%8d|%8d|,recordsi.num,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,record

23、si.now);ShowTable2(j); /线框调用2printf(n按任意键继续.n);getch(); /从控制台读取一种字符,但不显示在屏幕上/*打印表头*/void ShowTable1() /线框调用1,不用没次输int i=2;system(cls); /刷屏printf(*MESSAGE车程信息*n);printf(n|-|-|-|-|-|-|-|n);printf(n| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |n);/*打印表尾*/void ShowTable2(int i) /线框调用2。不用没次输。printf(n|-|-|-|-|

24、-|-|-|n);/*查找函数11*/void search() /查询调用int i;char s110=0,s210=0;system(cls); /刷屏printf(1. 按班次查询n);printf(2. 按终点站查询n);printf(3. 退出n);printf(请选取(1-3):n);scanf(%d,&i);load(); / 调用按班次查询函数switch(i) /多分枝选取语句 case 1:printf(请输入要查询班次:n); /s1为班次scanf(%s,s1);find(s1,s2); /调用查找函数222 2 break;case 2:printf(请输入要查询终

25、点站:n); /s2为终点站scanf(%s,s2);find(s1,s2); /调用查找函数222 2 break; case 3:break;default :printf(输入错误!n);break;printf(按任意键继续.n);getch(); /从控制台读取一种字符,但不显示在屏幕上void find(char s1,char s2)int i,h=0,m;ShowTable1(); /调用线框1if(s20=0)m=1; /1为无条件执行else m=0;for(i=0;iclass_num;i+)if(strcmp(s1,recordsi.num)=0|strcmp(s2,r

26、ecordsi.to)=0) /判断字符串比较与否相等, 待比较字符串 printf(n|-|-|-|-|-|-|-|n);printf(|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|,recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);h+=2;if(m=1)break;ShowTable2(h); /调用线框2if(h=0)printf(要查找班次不存在!n);/*增长函数*/void add()

27、 / /增长记录int i,j=5;load(); / 调用按班次查询函数system(cls); /刷屏printf(1. 增长班次n);printf(2. 返回n);printf(请选取(1-2)n);scanf(%d,&i);if(i=1)system(cls); /刷屏printf(1. 请输入要增长班次:n);scanf(%s,recordsclass_num.num);for(i=0;iclass_num;i+)if(strcmp(recordsclass_num.num,recordsi.num)=0)/判断字符串比较与否相等, 待比较字符串 判断车次没重复 printf(输入错

28、误!n);getch(); /从控制台读取一种字符,但不显示在屏幕上break;if(i=class_num) get(i,j); /修改及增长班次*class_num+; /使班次数加1save(); /调用保存函数/*售票函数*/void Ticketorder() /*售票函数*int i;char num10;system(cls); /刷屏printf(1. 售票n);printf(2. 返回n);printf(请选取(1-2):n);scanf(%d,&i);if(i=1)load(); / 调用按班次查询函数search(); /查找函数*printf(请输入要订票班次(若无请输

29、入0):n);scanf(%s,num);for(i=0;irecordsi.now&whether(i)=1) /判断时间与否超过函数*并且*没超过最大客量recordsi.now+; /使已售暑假1printf(通向%s班次为%s票订票成功!n,recordsi.to,recordsi.num);save(); /调用保存函数getch(); /从控制台读取一种字符,但不显示在屏幕上break;elseprintf(该班次已满或已发出!n);getch(); /从控制台读取一种字符,但不显示在屏幕上/*退票删除函数*/void Ticketdelete() /删除函数*int i;char

30、 num10;system(cls); /刷屏printf(1. 退票n);printf(2. 返回n);printf(请选取(1-2)n:);scanf(%d,&i);if(i=1)system(cls); /刷屏load(); / 调用按班次查询函数printf(请输入要退票班次:n);scanf(%s,num);i=findnum(num); /调用班次查询函数if(strcmp(num,recordsi.num)=0) /判断字符串比较与否相等 待比较字符串 if(whether(i) /判断时间与否超过函数*printf(拟定(Y/N)?);scanf(%s,num);if(num0

31、=y|num0=Y) recordsi.now-; /使已售票加1printf(退票成功!n);save(); /调用保存函数getch(); /从控制台读取一种字符,但不显示在屏幕上elseprintf(该班车已发出,无法退票!n);getch(); /从控制台读取一种字符,但不显示在屏幕上if(i=class_num)printf(输入错误!n);getch(); /从控制台读取一种字符,但不显示在屏幕上/*修改函数*/void change() /修改函数*char num10,s10;int h=0,j=13,i;load(); / 调用按班次查询函数system(cls); /刷屏printf(请输入要修改班次:n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁