c语言课程设计车票管理系统.doc_第1页
c语言课程设计车票管理系统.doc_第2页
c语言课程设计车票管理系统.doc_第3页
c语言课程设计车票管理系统.doc_第4页
c语言课程设计车票管理系统.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

河北建筑工程学院 课课 程程 设设 计计 报报 告告 课程设计名称:C 语言课程设计语言课程设计 课程设计题目:车票管理系统车票管理系统 院(系):理学院 专 业:信息与计算科学 班 级:信142 学 号:20143140219 姓 名:李嘉星 指导教师:李鸿强 完成日期: 2015-6-17 河北建筑工程学院课程设计报告 -I- 目目 录录 前言前言.2 第第 1 章章 概要设计概要设计.3 1.1 题目的内容与要求.3 1.2 总体结构.3 第第 2 章章 详细设计详细设计.4 主模块流程图.4 车票管理系统软件详细设计.4 第第 3 章章 调试分析调试分析.6 第第 4 章章 使用说明与执行结果使用说明与执行结果.7 参考文献参考文献.15 附附 录(程序清单)录(程序清单).16 致致 谢谢.32 河北建筑工程学院课程设计报告 前言 -2- 前言 随着计算机技术的发展,可视编程技术占有了越来越重要的作用。Visual C+6.0 是一种功能强大行之有效的可视化编程工具。因此此软件是在Visual C+6.0环境下编写的。对于我们,随着学习的深入,已经大体掌握了Visual C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化 面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于Visual C+6.0环境的软件开发,先以字符统计软件作为开始,对Visual C+6.0环境和 面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个员工培训系统软件 的开发进行的更加顺利。 本文档详细叙述了基于Visual C+6.0环境下的车票管理系统的设计过程以 及程序源代码。 本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等 方面详尽的介绍了软件开发过程。 此次车票管理系统的开发目的是使我们用面向对象的方式来思考和解决问题 的能力,并且可以掌握字符数组的使用、字符指针的使用、数据库的设计和文件 使用以及C语言语法。 程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限, 车票管理系统和文档中不免会出现一些不期待的错误,望文档读者能够理解和体 谅,并欢迎提醒和纠正,在此表示感谢以及敬意。 河北建筑工程学院课程设计报告 概要设计 -3- 第 1 章 概要设计 1.1 题目的内容与要求题目的内容与要求 一车站每天有 n 个发车班次,每个班次都有一班次号(1、2、3n) ,固定的发车时间, 固定的路线(起始站、终点站) ,大致的行车时间,固定的额定载客量。如 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数 1 8:00 郫县 广汉 2 45 30 2 6:30 郫县 成都 0.5 40 40 3 7:00 郫县 成都 0.5 40 20 4 10:00 郫县 成都 0.5 40 2 (一)功能要求:用 c/c+设计一系统,能提供下列服务: (1)录入班次信息(信息用文件保存),可不定时地增加班次数据 (2)浏览班次信息,可显示出所有班次当前状总。 (3)查询路线:可按班次号查询 ,可按终点站查询 (4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更 新已售票人数 B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求: (1) 只能使用 C/C+语言,源程序要有适当的注释,使程序容易阅读 (2) 至少采用文本菜单界面(如果能采用图形菜单界面更好) (3) 学生可自动增加新功能模块(视情况可另外加分) (4)写出课程设计报告,具体要求见相关说明文档 1.2 总体结构总体结构 图图 1-1 功能模块图功能模块图 欢 迎 界 面 管理员菜单 普通登录菜单 增加信息 查询信息 订票 保存信息 查询信息 删除信息 退票信息 河北建筑工程学院课程设计报告 详细设计 -4- 第 2 章 详细设计 主模块流程图主模块流程图 图图 2.1 主模块流程图主模块流程图 车票管理系统软件详细设计车票管理系统软件详细设计 一个名Timetable的结构体进行定义, 包括 int no;/班次 int hour;/发车时间(时) int minute;/发车时间(分) char Starting_station10;/始发站 char Last_station10;/终点站 float time;/行车时间 int max_number;/最大载客数 int sold_number;/已售票数等结构体成员。 然后对调用函数进行定义。void add()增加记录,void Cipher()密码验证 函数,void del()删除班次信息函数,void find(int s1,char s2) 查找函数, int findnum(int s1)查找班次函数,void Input() 信息录入函数,void 欢 迎 界 面 管 理 员 菜 单 普 通 登 录 菜 单 增加信息 查询信息 订票 保存信息 查询信息 删除信息 退票 密码 验证 按车次 按终到站 按车次 按终到站 河北建筑工程学院课程设计报告 详细设计 -5- huanying () 欢迎界面,void land() 登录选择界面,void menu1()管理员菜单 界面,void menu2()普通菜单界面,void open() 调用数据函数,void save() 保存函数,void searchesmenu()查询菜单,void ticketdelete()退票函数, void ticketorder()售票函数,int timee(int i) 判断时间是否超出函数,void timetable1显示车次函数该系统将这些信息均放在文件20143140219中。 最后定义main()函数,利用函数调用,实现程序的各种功能。将其放在系统 文件车20143140219中。 河北建筑工程学院课程设计报告 第 3 章 调试分析 -6- 第 3 章 调试分析 1、 程序陷入死循环 解决办法:仔细分析程序间的关系,画程序流程图分析问题所在。利用 break 命令跳出循环 2、 程序出现乱码 解决办法:利用 VC6.0 本身的调试功能查找错误的所在,修改源程序。 3、 所学知识不能很好的完成程序 解决办法:上网查找相关资料,进入一些开源论坛寻求一定的帮助。 河北建筑工程学院课程设计报告 使用说明与执行结果 -7- 第 4 章 使用说明与执行结果 图 4-1 欢迎界面 图 4-2 登录菜单 河北建筑工程学院课程设计报告 使用说明与执行结果 -8- 图 4-3 管理员登录的密码机制 图 4-4 密码容错机制 河北建筑工程学院课程设计报告 使用说明与执行结果 -9- 图 4-5 管理员菜单 图 4-6 图 4-7 班次录入界面 河北建筑工程学院课程设计报告 使用说明与执行结果 -10- 图 4-8 图 4-9 班次增加界面 河北建筑工程学院课程设计报告 使用说明与执行结果 -11- 图 4-10 时刻表浏览界面 图 4-11 查询界面 河北建筑工程学院课程设计报告 使用说明与执行结果 -12- 图 4-11 注销班次界面 图 4-12 普通登录菜单 河北建筑工程学院课程设计报告 使用说明与执行结果 -13- 图 4-13 图 4-14 售票窗口 河北建筑工程学院课程设计报告 使用说明与执行结果 -14- 图 4-15 图 4-16 退票界面 河北建筑工程学院课程设计报告 参考文献 -15- 参考文献 1、 C 程序设计(第四版) 作者:谭浩强 书号:ISBN9787302224464 出版社:清华 大学出版社。 2、 C 语言学习路线图 作 者:明日科技 书号:ISBN9787302276593 出版社:清华大学 出版社。 3、 C 语言从入门到精通(第 2 版) 作者:明日科技 书号:ISBN 9787302287520 出版社: 清华大学出版社。 4、 21 天学通 C 语言(第 7 版) 作者:(美)琼斯等著,姜估译 书号:ISBN 9787115355379 出版社:人民邮电出版社。 5、 C Primer Plus(第五版)中文版 作者:美Stephen Prata 书号:ISBN 9787115130228 出版社:人民邮电出版社。 谢鸣:百度文库 百度贴吧 百度百科 C 语言之家 Linux 开源俱乐部 网络资料来源: 1、 2、 3、 Hotscripts 4、 河北建筑工程学院课程设计报告 附录 -16- 附 录(程序清单) 代码 /增加记录 #include #includenews.h #include #include void add() void open(); int get(); void save(); void menu1(); int i,j=5; open(); / 调用按班次查询函数 system(cls); /清屏 printf(1. 增加班次n); printf(2. 返回n); printf(请选择(1-2)n); scanf(%d, if(i=1) system(cls); /清屏 printf(1. 请输入要增加的班次:n); scanf(%d, for(i=0;iclass_num;i+) if(timetableclass_num.no=timetablei.no) /比较是否相等,判断车次是否重复 printf(输入错误!n); getch(); /收集回车 break; if(i=class_num) get(i,j); /修改及增加班次* class_num+; /使班次数加 1 save(); /调用保存函数 河北建筑工程学院课程设计报告 附录 -17- else menu1(); #include void Cipher()/密码验证函数 int m,n=123;/规定密码 void menu1(); /上级菜单的声明;容错机制 printf(请输入密码:);/输入提示 scanf(%d,/密码输入 while(1)/容错机制 if(m=n) menu1(); else printf(密码错误请重新输入:); scanf(%d, /删除班次信息 #include #include /system(cls)的声明 #include /getch()的声明 #includenews.h void del() void save(); int findnum(int s1); int i,h=0; int num; char or10; system(cls); /清屏 printf(1. 删除班次n); printf(2. 返回n); printf(请选择(1-2):n); scanf(%d, 河北建筑工程学院课程设计报告 附录 -18- if(i=1) system(cls); /清屏 printf(请输入要删除的班次:n); scanf(%d, i=findnum(num); /调用班次查询函数 if(i=class_num) /全部匹配后但无匹配项 printf(输入错误,无此班次!n); getch(); /收集回车 del(); else printf(确定?(y/n)n);/确认机制 scanf(%s,or); if(or0=y|or0=Y) for(;iclass_num-1;i+) timetablei=timetablei+1; class_num-; /班次总数减 1 save(); /调用保存函数 /查找函数 #include #includenews.h #include void find(int s1,char s2) int i,h=0,m; if(s20=0) m=1; /1 为无条件执行 else m=0; 河北建筑工程学院课程设计报告 附录 -19- printf(n|-|-|-|-|-|-|-|n); printf(n| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |n); for(i=0;iclass_num;i+) if(s1=timetablei.no|strcmp(s2,timetablei.Last_station)=0) /判断字符串比较是否相等 printf(n|-|-|-|-|-|-|-|n); 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|-|-|-|-|-|-|-|n); if(h=0)/不能 break 则执行 printf(要查找的班次不存在!n); /查找班次 #include #includenews.h int findnum(int s1) int i; printf(n|-|-|-|-|-|-|-|n); for(i=0;iclass_num;i+) if(s1=timetablei.no) /判断字符串比较是否相等,如果符合则输出车次等信 息 printf(|-|-|-|-|-|-|-|n); printf(|%10d|%5d:%-4d|%10s|%10s|%8.1f|%8d|%8d|,timetablei.no,timetablei.hour, 河北建筑工程学院课程设计报告 附录 -20- timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time, timetablei.max_number,timetablei.sold_number); break; printf(n|-|-|-|-|-|-|-|n); return i; /欢迎界面 #include void huanying () printf(nnnn); printf(t*n); printf(nnnn); printf(tttt 车票管理系统n); printf(nnnn); printf(ttt 设计人:李嘉星;刘新月;田宇n); printf(nn); printf(tttt 感谢您的使用ntttt 按任意键继续n); printf(nn); printf(t*n); /信息录入界面 #include #include news.h #include #include void Input() int i=0,j=5,h; char s5; 河北建筑工程学院课程设计报告 附录 -21- void save(); void add(); void get(int i,int j); FILE *fp; /定义文件型指针变量 system(cls); /清屏 if(fp=fopen(车票管理系统 0.dat,rb)!=NULL) /fopen 打开文件 printf(车票信息已经存在!n); printf(任意输入进入添加菜单n); scanf(%s,s); /收集任意输入 i=1; /通过是 1 add(); if(i=0) system(cls); /清屏 printf(请输入要录入班次总数:n); scanf(%d, /指向班次指针 system(cls); /清屏 for(i=0;iclass_num;i+) system(cls); /清屏 printf(请输入第%d 个班次信息:n,i+1); h=-1; for(;h!=i;) /循环输出 printf(请输入班次:n); scanf(%d, for(h=0;htm_hourtm_hour=timetablei.hour else return 0; #include #include news.h #include #include void timetable1() /显示车次函数 int i,j; void open(); int timee(int i); void land(); system(cls); /清屏 open();/ 调用 open system(cls); /清屏 printf(*MESSAGE 车程信息 河北建筑工程学院课程设计报告 附录 -30- *n); printf(n|-|-|-|-|-|-|-|n); printf(n| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |n); for(i=0,j=0;iclass_num;i+,j+=2) /按班次顺序输出 printf(n|-|-|-|-|-|-|-|n); if(timee(i)/判断时间是否超出 printf(|%10d|%5d:%- 4d|%10s|%10s|%8.1f|%8d|%8d|,timetablei.no,timetablei.hour, timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time, timetablei.max_number,timetablei.sold_number); else printf(|%10d| 已发车 |%10s|%10s|%8.1f|%8d|%8d|,timetablei.no, timetablei.Starting_station,timetablei.Last_station,timetablei.time, timetablei.max_number,timetablei.sold_number); printf(n|-|-|-|-|-|-|-|n); printf(n 按任意键继续.n); getch(); /收集回车 land(); 河北建筑工程学院课程设计报告 -31- 课程设计总结:课程设计总结: 为了提高我们的实践能力和合作能力,让我们学以致用,能灵活运用所学的知识进行 再创造,学校特安排我们

温馨提示

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

评论

0/150

提交评论