车票管理系统设计报告.doc_第1页
车票管理系统设计报告.doc_第2页
车票管理系统设计报告.doc_第3页
车票管理系统设计报告.doc_第4页
车票管理系统设计报告.doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

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

文档简介

车票管理系统设计报告一、 班级、姓名、学号和完成日期班级:Z090551姓名:杨新路学号:Z09055119日期:2010年6月25日二、 实训题目【问题描述】一车站每天有n个发车班次,每个班次都有一班次号(1、2、3n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数1 8:00 郫县 广汉 2 45 302 6:30 郫县 成都 0.5 40 40【基本要求】1录入班次信息,可不定时地增加班次数据。2浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。3查询路线:可按班次号查询 ,可按终点站查询。4售票和退票功能。 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。5 至少采用文本菜单界面(如果能采用图形菜单界面更好)。【测试数据】输入:应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。主界面录入测试数据具体测试数据如下表:班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数1 8:00 郫县 广汉 2 45 302 6:30 郫县 成都 0.5 40 403 7:00 郫县 成都 0.5 40 20 4 10:00 郫县 成都 0.5 40 2 输出: 应用程序运行后,要在屏幕上显示一个主菜单(见上面主菜单图),将以上的测试数据输入。要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。具体程序测试结果见后面的调试程序栏;【数据结构】本程序用到2个结构体,方便信息的录入,浏览,查询,订票与退票,等功能的实现,struct time int hour; int minutes;struct ticket int carnumber; struct time setout; char beginpoint20; char endpoint20; float lasttime; int fixnumber; int fixednumber;car4;【算法思想】利用结构体数组存放所有车辆的信息,车辆的信息由操作人员录入,录入完成后,通过菜单的提示进行相应的操作,不同的模块采用不同的算法进行管理:主要采用的头文件: stdio.h、stdlib.h、time.h、string.h。1.录入信息录入车辆信息时,调用了InputMessage()函数通过循环依次输入车辆的信息1. 浏览信息:通过ShowMessage()函数可以显示各班次的详细信息2. 查询信息 :通过SearchMessage()函数可以按两种方式查询车辆信息,它是同过调用两个函数searchbynumber();searchbyaddress()实现的3. 订票与退票:在一个函数TicketManagemet()同过调用两个函数TicketOrder(),与TicketDelet();来实现的。【总体设计】1.模块划分主函数主菜单1录入班次信息2浏览班次信息3查询行车路线4订票与退票5退出系统2退票管理1售票管理1按班次号查询2按终点站查询整个算法分为五个模块:(1).录入班次信息的函数InputMessage();此模块用于录入各班次的具体信息。(2).浏览班次信息的函数ShowMessage()。(3).查询行车路线的函数SearchMessage();它的函数体中包含两个不同的函数searchbynumber(),searchbyaddress()通过switch()来调用以实现不同方式的查询功能(4).售票与退票功能的函数:此功能是通过TicketMagement()来实现其中又包括两个子函数ticketorder(),ticketdelect()来分别实现退票和售票的功能;(5).退出系统的函数。2.流程图主菜单函数流程图调用函数InputMessage()调用函数InputMessage()调用函数InputMessage()调用函数InputMessage()调用函数InputMessage()调用函数InputMessage()12345其他functioNnumberSwitch语句结束订票函数流程图售票与退票菜单选择1售票TicketOrder()请输入要定购的车票班次is=i-1s3对不起没有这趟车请查询后再订Ynowtmcars.setout对不起今天这趟车已出发fixednumberfixnumber订票成功请按时上车fixednumber+票已售完NNYNY【源程序】#include #include #include #include #include #include #define FALSE 0#define TRUE 1void mainmenu(void);void InputMessage(void);void ShowMessage(void);void SearchMessage(void);void searchbynumber();void searchbyaddress();void TicketManagement(void);void TicketOrder();void TicketDelete();int FLAG;struct time int hour; int minutes;struct ticket int carnumber; struct time setout; char beginpoint20; char endpoint20; float lasttime; int fixnumber; int fixednumber;car4;int main()int FLAG=FALSE;do mainmenu(); while(FLAG=FALSE);void mainmenu()char functioNnumber;printf( 车票管理系统nn);printf( 制作:杨新路z09055119n);printf( 日期:2010.6n);printf(=n);printf( 1.录入班次信息tn);printf( 2.浏览班次信息tn);printf( 3.查询行车路线tn);printf( 4.售票与退票系统tn);printf( 5.退出该系统tn);printf(=n);printf(请选择你所需要的功能:);scanf(%s,&functioNnumber);switch(functioNnumber)case 1:system(cls);InputMessage();printf(n按任意键返回主菜单n);getchar();getchar();mainmenu();break;case 2:system(cls);ShowMessage();printf(n按任意键返回主菜单n);getchar();getchar();mainmenu();break;case 3:system(cls);SearchMessage();printf(n按任意键返回主菜单n);getchar();getchar(); mainmenu();break;case 4:system(cls);TicketManagement();printf(n按任意键返回主菜单n);getchar();getchar();mainmenu();break;case 5:FLAG=TRUE; printf(*感谢使用本系统,欢迎下次继续使用*);exit(0); break;default: printf(对不起你的输入有误,请确保你的输入为1-5.n);printf(按任意键返回主菜单n);getchar();getchar();mainmenu();FLAG=FALSE;void InputMessage()int i;for(i=0;i4;i+)printf(请输入班次号:n);scanf(%d,&cari.carnumber);printf(请输入发车时间:n); scanf(%d %d,&cari.setout.hour,&cari.setout.minutes);printf(请输入起点站:n);scanf(%s,cari.beginpoint);printf(请输入终点站:n);scanf(%s,cari.endpoint);printf(请输入行车时间:n); scanf(%f,&cari.lasttime);printf(请输入额定载量:n); scanf(%d,&cari.fixnumber);printf(请输入已定票人数:n); scanf(%d,&cari.fixednumber);for(i=0;i4;i+)printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已订票人数n);printf(%dt%d:%dt,cari.carnumber,cari.setout.hour,cari.setout.minutes);printf(%st%st%ft%dt%dtn,cari.beginpoint,cari.endpoint,cari.lasttime,cari.fixnumber,cari.fixednumber);void ShowMessage()int i;time_t tval;struct tm*now;tval=time(NULL);now=localtime(&tval);for(i=0;itm_hour=cari.setout.hour&now-tm_mintm_hour=1&searchnumber=4)s=searchnumber-1;printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已订票人数n);printf(%dt%d:%dt,cars.carnumber,cars.setout.hour,cars.setout.minutes);printf(%st%st%ft%dt%dtn,cars.beginpoint,cars.endpoint,cars.lasttime,cars.fixnumber,cars.fixednumber);else printf(对不起,没有这趟车.);void searchbyaddress()int i;char address20;printf(请输入终点站名:);scanf(%s,address);for(i=0;i=4;i+)if( strcmp(address,cari.endpoint)=0)printf(%dt%d:%dt,cari.carnumber,cari.setout.hour,cari.setout.minutes);printf(%st%st%ft%dt%dtn,cari.beginpoint,cari.endpoint,cari.lasttime,cari.fixnumber,cari.fixednumber);void TicketManagement()char functionnumber;printf(=n);printf( 1.订票.n);printf( 2.退票.n);printf( 3.返回主菜单.n);printf(=n);printf(请选择你需要的功能:n);scanf(%s,&functionnumber);switch(functionnumber)case 1:system(cls);TicketOrder();break;case 2:system(cls);TicketDelete();break;case 3:system(cls);mainmenu();break;default:printf(输入错误,请确保你的输入为1-3.n);printf(按任意键返回子菜单.n);getchar();getchar();TicketManagement();void TicketOrder()int i; int s;printf(请输入要订购的车票的班次:n);scanf(%d,&i); s=i-1;if(s3)printf(对不起,没有这趟车,请查询后再订票.n);printf(按任意键返回车票管理菜单。);getchar();getchar();TicketManagement();elsetime_t tval;struct tm*now;tval=time(NULL);now=localtime(&tval);if(now-tm_hour=cars.setout.hour&now-tm_mintm_hourcars.setout.hour)if(cars.fixednumbercars.fixnumber)cars.fixednumber+;printf(你的订票成功,请按时上车,谢谢使用!n);else printf(对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!n);else printf(对不起,今天的这趟车已出发,请明天再来,谢谢合作!n);printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已订票人数n);printf(%dt%d:%dt,cars.carnumber,cars.setout.hour,cars.setout.minutes);printf(%st%st%ft%dt%dt,cars.beginpoint,cars.endpoint,cars.lasttime,cars.fixnumber,cars.fixednumber);printf(按任意键返回主菜单。n);getchar();getchar();void TicketDelete()int i;int s;printf(请输入要退购的车票的班次:n);scanf(%d,&i); s=i-1;if(s3)printf(对不起,没有这趟车,请查询后再退票.n);printf(按任意键返回车票管理菜单。);getchar();getchar();TicketManagement();elsetime_t tval;struct tm*now;tval=time(NULL);now=localtime(&tval);if(now-tm_hour=cars.setout.hour&now-tm_mintm_hourcars.setout.hour)if(cars.fixednumbercars.fixnumber)cars.fixednumber-;printf(退票成功,谢谢使用!n);else printf(对不起,今天的这趟车的票尚未卖出,无法完成退票!n);else printf(对不起,今天的这趟车已出发,无法完成退票!n);printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已订票人数n);printf(%dt%d:%dt,cars.carnumber,cars.setout.hour,cars.setout.minutes);printf(%st%st%ft%dt%dt,cars.beginpoint,cars.endpoint,cars.lasttime,cars.fixnumber,cars.fixednumber);printf(按任意键返回主菜单。n);getchar();getchar();【测试情况】录入信息班次的查询订票与退票子菜单订票功能退出系统【心得体会】在这一周的C语言课程设计实训中,我在编写这个职工信息管理系统的过程中遇到很多的困难。在解决这些问题的过程中,我又学到了很多C语方面的编程巧,获益非浅,特别是如何分析、建立、开发一个系统整体构思和调试。在一个系统开发的过程中编码不是重要的,重要的是分析系统、建立起系统基本框架。在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各方面知识有一个认识,然后将系统的基本框架建立起来。而且一个软件成功与否是看它是否符合用户的需要,要以用户为中心,开发出用户想要的软件,才是重中之中。在程序编写中,我认识编写一个系统不仅仅要有良好的用户界面,良好的程序编写风格也是相当重要的。只有良好的程序编写风格,程序代码的可读性才会好,开发的复杂度才能大大减少,检查错误、修改代码时才会更加容易下手。我认为,所谓良好的界面,就是用户需要的界面

温馨提示

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

评论

0/150

提交评论