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

下载本文档

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

文档简介

1、建筑工程 课程计划报告课程设计名称:C语言课程设计课程设计题目:票务管理系统 目录TOC o 1-3 h z HYPERLINK l _RefHeading_Toc421445078 前言2 HYPERLINK l _RefHeading_Toc421445079 第1章概要设计3 HYPERLINK l _RefHeading_Toc421445080 1.1题目的容与要求3 HYPERLINK l _RefHeading_Toc421445081 1.2总体结构3 HYPERLINK l _RefHeading_Toc421445082 第2章详细设计4 HYPERLINK l _RefH

2、eading_Toc421445083 主模块流程图4 HYPERLINK l _RefHeading_Toc421445084 车票管理系统软件详细设计4 HYPERLINK l _RefHeading_Toc421445085 第3章调试分析6 HYPERLINK l _RefHeading_Toc421445086 第4章使用说明与执行结果7 HYPERLINK l _RefHeading_Toc421445087 参考文献15 HYPERLINK l _RefHeading_Toc421445088 附 录(程序清单)16 HYPERLINK l _RefHeading_Toc4214

3、45089 致32序随着计算机技术的发展,可视化编程技术发挥着越来越重要的作用。Visual C+6.0是一个强大而有效的可视化编程工具。因此,本软件是在Visual C+6.0环境下编写的。对于我们来说,随着学习的深入,已经大体掌握了Visual C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的层次,加深面向对象编程思维和解决问题的能力,在本次课程设计周期间,我们将开发基于Visual C+6.0的软件,从字符统计软件开始,回忆和熟悉Visual C+6.0环境和面向对象编程,以便在此基础上的下一步员工培训系统软件的开发更加顺利。本文详细介绍了基于Visual C+6.0的票

4、务管理系统的设计过程和程序源代码。本文档从概要设计、详细设计、参考源代码和显示程序运行的截屏等方面详细介绍了软件开发过程。开发这个票务管理系统的目的是让我们能够用面向对象的方法思考和解决问题,掌握字符数组、字符指针、数据库设计和文件使用,以及C语言语法的使用。程序设计过程中遇到的问题得到了及时的修正,但由于编辑人员的能力和水平有限,在票务管理系统和文档中难免会出现一些意想不到的错误。希望文件的读者能够理解和明白,欢迎提醒和指正。在此,我想表达我的感受和敬意。第一章概要设计1.1题目的公差和要求一个车站每天有N个发车时间,每个班次有一个数字(1,2,3n),固定的发车时间,固定的路线(始发站和终

5、点站),大概的行车时间,固定的额定载客量。诸如发车时间、始发站、终点站、额定载客量、已订票人数8: 00郫县广汉2 45 302: 30郫县0.5 40 407点郫县0.5 40 204: 00郫县0.5 40 2(1)功能需求:用c/c+设计的系统可以提供以下服务:(1)输入班次信息(信息保存在文件中),可以随时增加班次数据。(2)浏览班次信息,显示所有班次的当前状态。(3)查询路线:可通过航班号或终点站查询。(4)售票和退票功能答:当发现已订票人数小于额定载客量且当前系统时间小于发车时间时,会自动更新已售票人数。b:退票时,输入退票的航班号。只有当这辆车还没有发出时,才可以退票,已经售票的

6、人数会自动更新。(2)其他要求:(1)只能使用C/C+语言,源程序要有适当的注释,使程序易于阅读。(2)至少使用文本菜单界面(如果能使用图形菜单界面就更好了)(3)学生可以自动添加新的功能模块(可酌情加分)(4)撰写课程设计报告。有关具体要求,请参见相关文档。欢迎界面管理员菜单常规登录菜单添加信息查询信息订票保存信息查询信息删除信息退款信息1.2整体结构图1-1功能模块图第二章详细设计主要模块流程图欢迎界面管理员菜单常规登录菜单添加信息查询信息订票保存信息查询信息删除信息退票密码验证按车次根据最后一站按车次根据最后一站图2.1主模块流程图票务管理系统软件的详细设计定义了名为时间表的结构,包括i

7、nt号;/shiftint小时;/出发时间(小时)int分钟;/出发时间(分钟)char Starting _ station10;/出发站char Last _ station10;/终端浮动时间;/旅行时间int max _ number/最大乘客数量int sold _ number/结构的成员,如售出的选票。然后定义调用函数。Void add()添加记录、void Cipher()密码验证函数、void del()删除班次信息函数、void find(int s1,char s2)搜索函数、int findnum(int s1)搜索班次函数、void Input()信息输入函数、Voi

8、d huanying()欢迎界面、void land()登录选择界面、void menu1()管理员菜单界面、void menu2()通用菜单界面、void open()调用数据函数、void save()保存函数、void searchesmenu()查询菜单、 Void ticketdelete()退款函数,void ticketorder()出票函数,int timee(int i)判断时间是否超出函数,void timetable1显示车次函数。 系统将所有这些信息放入文件中。最后定义main()函数,通过函数调用实现程序的各种功能。把它放在系统文件车里。第三章调试分析程序陷入了无限循

9、环。解决方法:仔细分析程序之间的关系,画出程序流程图,分析问题。使用break命令跳出循环。这个程序是乱码解决方法:使用VC6.0的调试功能找到错误,修改源程序。学到的知识不能很好的完成程序。解决方法:去网上找相关资料,进入一些开源论坛寻求一些帮助。第4章使用说明和执行结果图4-1欢迎界面图4-2登录菜单图4-3管理员登录的密码机制图4-4密码容错机制图4-5管理员菜单图4-6图4-7移位输入接口图4-8图4-9添加班次接口图4-10时间表浏览界面图4-11查询接口图4-11注销界面图4-12常规登录菜单图4-13图4-14售票窗口图4-15图4-16退款界面参考1、 HYPERLINK /b

10、ook/DA052763/ c程序设计(第四版)作者: HYPERLINK /writer/DA052763/ 谭浩强国际标准书号:ISBN64: HYPERLINK /press/qinghuadaxue 清华大学。2、 HYPERLINK /?key=C%D3%EF%D1%D4%CF%DF t _blank c语言学习路线图作者: HYPERLINK /author/%C3%F7%C8%BC_1 t _blank 未来的技术国际标准书号:ISBN93: HYPERLINK /publish/%C7廪%B4%F3%B3%F6%B0%E6%C9%E7_1 t _blank 清华大学。3.从初学

11、者到精通C语言(第二版)作者: HYPERLINK /author/%C3%F7%C8%BC_1 t _blank 未来的技术国际标准书号:国际标准书号20: HYPERLINK /press/qinghuadaxue 清华大学。4.21天学会C语言(第7版)作者:(美) HYPERLINK /author/%C7%ED_1 t _blank 琼斯等等, HYPERLINK /author/%BD%AA%B9%C0_1 t _blank 估翻译编号:ISBN 79: HYPERLINK /publish/%C8%CB%C3%F1%D3%E7%B3%F6%B0%E6%C9%E7_1 t _bla

12、nk 人民邮电。5.C Primer Plus(第五版)中文版作者:美 HYPERLINK /author/Stephen_1 t _blank Stephen国际标准书号:国际标准书号28 HYPERLINK /author/Prata_1 t _blank PrataISBN: ISBN 28: HYPERLINK /publish/%C8%CB%C3%F1%D3%E7%B3%F6%B0%E6%C9%E7_1 t _blank 人民邮电。明:百度文库百度贴吧百度百科C语言之家Linux开源俱乐部网络来源:1、学习机111./2、 HYPERLINK /tag/c/ t _blank sni

13、ppets.dzone./tag/c/3、 HYPERLINK /category/c-cpp/scripts-programs/ t _blank . hot scripts ./category/c-CPP/scripts-programs/Hotscripts4、https:/. daniweb ./software-development/CPP/code/_/8附(节目单)密码/添加记录#include#包含“news.h”#include#包含void add()void open();int get();void save();void menu 1();int i,j = 5;

14、open();/按shift调用查询函数系统(“cls”);/清除屏幕Printf(1。增加班次 n );Printf(2。return n );Printf(请选择(1-2) n );scanf(%d ,& I);如果(i=1)系统(“cls”);/清除屏幕Printf(1。请输入要添加的班次: n );scanf(%d ,&timetableclass_num.否);for(I = 0;i class _ numi+)if(时间表class_num.时间表。否)/比较是否相等,判断列车是否重复。Printf(输入错误! n );getch();/收集回车打破;if(I = =类编号)get

15、(i,j);/修改和增加班次*class _ num+;/将班次数增加1save();/调用保存函数其他menu 1();#includeVoid Cipher()/密码验证函数int m,n = 123/指定密码void menu 1();/上级菜单的声明;容错机制Printf(请输入密码:);/输入提示scanf(%d ,& m);/密码输入While(1)/容错机制如果(m=n)menu 1();其他Printf(请重新输入不正确的密码:);scanf(%d ,& m);/删除班次信息#include# include /system( CLS )的声明# include /getch(

16、)的语句#包含“news.h”void del() void save();int find num(int S1);int i,h = 0;int numchar或10;系统(“cls”);/清除屏幕Printf(1。删除shift n );Printf(2。return n );Printf(请选择(1-2): n );scanf(%d ,& I);如果(i=1)系统(“cls”);/清除屏幕Printf(请输入要删除的班次: n );scanf(%d ,& num);I = find num(num);/调用班次查询函数If(i=class_num) /所有匹配后,没有匹配。Printf

17、(输入错误,无此移位! n );getch();/收集回车del();其他Printf(你确定?(是/否) n );/确认机制scanf(%s ,或);if(或0=y | |或0= = Y )for(;I class _ num-1;i+)时间表I=时间表I+1;class _ num-;/总班次数减1save();/调用保存函数/找到函数#include#包含“news.h”#includevoid find(int s1,char s2)int i,h=0,m;if(s20=0 )m = 1;/1无条件执行。否则m = 0;printf( n |-|-|-|-|-|-|-|-| n );P

18、rintf(n|班次|出发时间|始发站|终点站|旅行时间|额定载客量|售出车票| n );for(I = 0;i class _ numi+)if(S1 =时间表i。否|strcmp(s2,时间表i.最后一站)=0)/确定字符串比较是否相等。printf( n |-|-|-|-|-|-|-|-| n );printf( | % 10d | % 5d:%-4d | % 10s | % 10s | % 8.1f | % 8d | % 8d | n ,timetablei。不,时间表我。小时,时间表i。分钟,时间表i。始发站,时刻表i。最后一站,时刻表i。时间,时间表i。max_number,时刻表

19、i。sold _ number);如果(m=1)h+;打破;printf( n |-|-|-|-|-|-|-|-| n );If(h=0)/如果不能破,就执行。Printf(您要查找的班次不存在! n );/找到班次#include#包含“news.h”int findnum(int s1)int I;printf( n |-|-|-|-|-|-|-|-| n );for(I = 0;i class _ numi+)if(S1 = =时间表i。否)/判断字符串比较是否相等,如果相等,输出车次等信息。printf( |-|-|-|-|-|-|-|-| n );printf( | % 10d |

20、% 5d:%-4d | % 10s | % 10s | % 8.1f | % 8d | % 8d | ,timetablei。不,时间表我。小时,时间表i。分钟,时间表i。始发站,时刻表i。最后一站,时刻表i。时间,时间表i。max_number,时刻表i。sold _ number);打破;printf( n |-|-|-|-|-|-|-|-| n );返回I;/欢迎界面#include void幻影()printf( n n n n );printf( t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

21、 * * * * * * * * * * * * * * * * * * * * * * * * * * n );printf( n n n n );printf( t t t t票证管理系统 n );printf( n n n n );printf( t t t设计者:嘉兴;新月;田 n”);printf( n n );printf( t t t t感受你的使用 n t t t按任意键继续 n );printf( n n );printf( t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

22、* * * * * * * * * * * * * * * * * * * * * * * n );/信息输入界面#include #包含“news.h”#include#包含void输入()int i=0,j=5,h;char s5;void save();void add();void get(int i,int j);FILE * fp/定义文件指针变量系统(“cls”);/清除屏幕If(fp=fopen(票务管理系统0.dat , rb )!=NULL) /fopen打开文件Printf(门票信息已经存在! n );Printf(输入任意输入进入添加菜单 n );scanf(%s ,s

23、);/收集任何输入I = 1;/Pass为1add();如果(i=0)系统(“cls”);/清除屏幕Printf(请输入要输入的总班次数: n );scanf(%d ,& class _ num);/指向移位的指针系统(“cls”);/清除屏幕for(I = 0;i class _ numi+)系统(“cls”);/清除屏幕Printf(请输入%d班次信息:n ,I+1);h =-1;for(;h!= I;)/循环输出Printf(请输入班次: n );scanf(%d ,&timetablei.否);for(h = 0;h I;h+)if(时间表h。时间表。否)Printf(输入错误!该班次

24、已经存在! n );打破;/返回get(i,j);/修改和增加班次j = 5;save();/调用保存函数Void get(int i,int j) /修改并增加班次for(;)Printf(请输入出发时间(xx xx);scanf(%d %d ,&timetablei.小时和时间表。分钟);if(时间表i。小时 = 0 & &时间表i。分钟 =0)打破;其他Printf(输入错误! n );getch();/收集回车Printf(请输入始发站: n );scanf(%s ,时间表i)。首发_站);Printf(请输入终端: n );scanf(%s ,时间表i)。last _ station

25、);Printf(请输入开车时间: n );scanf(%f ,&timetablei.时间);Printf(请输入额定负载: n );scanf(%d ,&timetablei.max _ number);Printf(请输入售出票数: n );scanf(%d ,&timetablei.sold _ number);/管理员菜单界面#include void menu1()void输入();void time table 1();void save();void del();void searches menu();void land();void add();int n;Printf(t

26、ttt1,车次信息输入n t t t2,添加车次信息 n t t t3,时刻表浏览 n t t t4,车辆信息查询printf( t t t请输入要运行的命令号 n );While(1)/无限循环形成一个菜单scanf(%d ,& n);开关(n)情况一:输入();打破;/车辆信息输入情况二:add();打破;/添加车次信息案例三:time table 1();打破;/浏览时间表案例四:searches menu();打破;/车辆信息查询案例五:del();打破;/取消车次案例六:save();打破;/保存命令案例7:土地();打破;/返回上级菜单默认值:printf(非法输入 n );打破;

27、/公共登录菜单#include void menu2()void time table 1();void ticket order();void ticket delete();void land();void searches menu();int n;Printf(tttt1,时刻表浏览n t t t2,车辆信息查询 n t t t3,购票 n t t t4,退票。printf( t t t请输入要运行的命令号 n );while(1)scanf(%d ,& n);开关(n)案例一:time table 1();打破;/时间表浏览案例二:searches menu();打破;/车辆信息查询

28、案例三:ticket order();打破;/买票案例四:ticket delete();打破;/退票案例五:土地();打破;/返回上级菜单默认值:printf(非法输入 n );打破;#includevoid huanying();void land();int main()char ch幻影();ch = getchar();/收集回车land();返回0;#include #include #包含“news.h”#包含void open()文件*fp1,* fp2If(fp1=fopen(票务管理系统。dat , rb)=NULL)系统(“cls”);/清除屏幕Printf(文件打开错误

29、! n );getch();/收集回车退出(0);If(fp2=fopen(票务管理系统0.dat , rb)=NULL)系统(“cls”);/清除屏幕Printf(文件打开错误! n );getch();/收集回车退出(0);/退出fread(&class_num,sizeof(int),1,fp2);/读入信息fread(时间表,sizeof(时间表0),class_num,fp1);/读入信息fclose(fp1);fclose(fp2);/文件关闭#include #include #包含“news.h”Void save() /保存函数void menu 1();文件*fp1,* f

30、p2/文件行指针If(fp1=fopen(票务管理系统。dat , WB )= = NULL)/打开文件,打开二进制文件进行输出。Printf(文件打开错误! n );退出(0);If(fp2=fopen(票务管理系统0.dat , WB )= = NULL)/打开文件,打开二进制文件进行输出。Printf(文件打开错误! n );退出(0);fwrite(&class_num,sizeof(int),1,fp2);/写入文件信息fwrite(时间表,sizeof(时间表0),class_num,fp1);fclose(fp1);fclose(fp2);/关闭文件Printf(保存成功);me

31、nu 1();/查询菜单#include#include#包含void searchesmenu()int I;void find(int s1,char S2);char s1=0,S210= 0 ;void open();void land();系统(“cls”);/清除屏幕Printf(1。按班次查询 n );Printf(2。终端查询 n );Printf(3。退出 n );Printf(请选择(1-3): n );scanf(%d ,& I);open();/按shift调用查询函数开关(i) /菜单1: printf(请输入要查询的班次: n );/s1是移位。scanf(%d ,

32、& S1);查找(s1,S2);/调用查找函数打破;2: printf(请输入要查询的终端: n );/s2是终端。scanf(%s ,S2);查找(s1,S2);/调用查找函数打破;案例三:土地();打破;/返回机制默认:printf(输入错误! n );打破;Printf(按任意键继续. n );getch();/收集回车/退款功能#include#包含“news.h”#include#包含作废票据删除()int I;int numchar或;int timee();void open();int find num(int S1);void save();void menu 2();系统(

33、“cls”);/清除屏幕Printf(1。退款 n”);Printf(2。return n );Printf(请选择(1-2) n:);scanf(%d ,& I);如果(i=1)系统(“cls”);/清除屏幕open();/按shift调用查询函数Printf(请输入要退款的航班号: n );scanf(%d ,& num);I = find num(num);/调用班次查询函数if(num =时间表i)。no) /判断字符串比较是否等于要比较的字符串。If(timee(i) /判断时间是否超过函数。scanf(%c ,& or);if(or=y|or=Y )getch();时间表i。售出数

34、量-;/售出的门票加1Printf(退款成功! n );save();/调用保存函数getch();/从控制台读取字符,但不在屏幕上显示其他Printf(班车已发出,车票不可退票! n );getch();/收集回车/票务功能#include#包含“news.h”#include#包含void ticketorder()int I;int numvoid save();int timee(int I);void open();void searches menu();void land();系统(“cls”);/清除屏幕Printf(1。售票 n”);Printf(2。return n );P

35、rintf(请选择(1-2): n );scanf(%d ,& I);如果(i=1)open();/呼叫打开Printf(请输入要预订的航班号(如果不是,请输入0): n );scanf(%d ,& num);for(I = 0;i 时刻表i。max_number&timee(i)=1)/判断时间是否超过功能* * *且* * *未超过最大客人数。时间表i。sold _ number+;/使售出票数+1Printf(航班%d至%s的机票预订成功!n”,时间表i。始发站,时刻表i。否);save();/调用保存函数getch();/收集回车打破;其他Printf(此班已满或已发! n );get

36、ch();/收集回车land();else land();#include#include#包含“news.h”Int timee(int i) /确定时间是否超过函数* * *struct tm * local/时间结构time _ t t/给t当前时间。t =时间(空);/NULL在stdio.h中定义为0local = local time(& t);/获取当前系统时间if(local-tm_hour TM _ hour = = time tableI。小时&本地-tm_min 时间表i。分钟)返回1;其他返回0;#include #包含“news.h”#include#包含Void t

37、imetable1() /显示车次函数int i,j;void open();int timee(int I);void land();系统(“cls”);/清除屏幕open();/呼叫打开系统(“cls”);/清除屏幕printf( * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * printf( n |-|-|-|-|-|-|-|-| n );Printf(n|班次|出发时间|始发站|终点站|旅行时间|额定载客量|售出车票| n );for(i=0,j = 0;i class _ numI+,j+=2) /按移位顺序输出printf( n |-|-|-

温馨提示

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

评论

0/150

提交评论