C语言程序设计,火车订票系统程序设计报告_第1页
C语言程序设计,火车订票系统程序设计报告_第2页
C语言程序设计,火车订票系统程序设计报告_第3页
C语言程序设计,火车订票系统程序设计报告_第4页
C语言程序设计,火车订票系统程序设计报告_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、辽宁师范大学设计题目:火车订票系统设计专业:电子信息工程班级:09级3班姓名:学号:TOC o 1-5 h z总体设计(包含几大功能模块)1详细设计(各功能模块的具体实现算法流程图)2调试分析(包含各模块的测试用例,及测试结果)3 HYPERLINK l bookmark83.1源程序6 HYPERLINK l bookmark103.2调试与测试3133总结一总体设计(包含几大功能模块)nsertatraininformation(插入火车信息)nquireatrainjinformation(查询火车信息)Bookatrainticket(订票)Updatethetraininformat

2、ion(更新火车信息)Advicetoyouaboutthetrain(建议)6.Saveinformationtofile(储存信息归档)7.Quitthesystem(退出系统)二、详细设计(各功能模块的具体实现算法流程图)2.1各函数的功能和实现1.Insertatraininformation(插入火车信息):输入包括火车班次,最终目地,始发站,火车到站时间,车票价格,所定票号。可用函数voidinput来实现此操作2.inquireatrainjinformation(查询火车信息):没有任何记录Bookatrainticket(订票):输入你想要去的城市Updatethetrain

3、information(更新火车信息):可用voidfind()来实现Advicetoyouaboutthetrain(关于火车对你的建议)Saveinformationtofile(储存信息归档)Quitthesystem(退出系统):可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。流程图详见A4纸上手绘三调试分析(包含各模块的测试用例,及测试结果)3.1源程序#include#include#include#includeintshoudsave=0;intcount1=0,count2=0,mark=0,mark1=0;/*定义存储火车信息的

4、结构体*/structtraincharnum10;/*列车号*/charcity10;/*目的城市*/chartakeoffTime10;/*发车时间*/charreceiveTime10;/*到达时间*/intprice;/*票价*/intbookNum;/*票数*/;/*订票人的信息*/structmancharnum10;/*ID*/charname10;/*姓生名*/intbookNum;/*需求的票数*/;/*定义火车信息链表的结点结构*/typedefstructnodestructtraindata;structnode*next;Node,*Link;/*定义订票人链表的结点

5、结构*/typedefstructpeoplestructmandatastructpeople*nextbookMan,*bookManLink;/*初始界面*/voidprintInterface()TOC o 1-5 h zl.11-I1puts(*Welcometousethesystemofbookingtickets*);l.11-I1(puts(*Youcanchoosetheoperation:*)puts(*1:Insertatraininformation*)puts(*2:Inquireatraininformation*)puts(*3:Bookatrainticket

6、*)puts(*4:Updatethetraininformation*)puts(*5:Advicetoyouaboutthetrain*)puts(*6:saveinformationtofile*)puts(*7:quitthesystem*)TOC o 1-5 h zl.11-I1(/*添加一个火车信息*/voidInsertTraininfo(Linklinkhead)structnode*p,*r,*s;charnum10;r=linkhead;s=linkhead-next;while(r-next!=NULL)r=r-next;while(1)printf(pleaseinpu

7、tthenumberofthetrain(0-return);scanf(%s,num);if(strcmp(num,0)=0)break;/*判断是否已经存在*/while(s)if(strcmp(s-data.num,num)=0)printf(thetrain%shasbeenborn!n,num);return;s=s-next;p=(structnode*)malloc(sizeof(structnode);strcpy(p-data.num,num);printf(Inputthecitywherethetrainwillreach:);scanf(%s,p-data.city);

8、printf(Inputthetimewhichthetraintakeoff:);scanf(%s,p-data.takeoffTime);printf(Inputthetimewhichthetrainreceive:);scanf(%s,&p-data.receiveTime);printf(Inputthepriceofticket:);scanf(%d,&p-data.price);printf(Inputthenumberofbookedtickets:);scanf(%d,&p-data.bookNum);p-next=NULL;r-next=pr=pshoudsave=1;/*

9、打印火车票信息*/voidprintTrainInfo(structnode*p)puts(nThefollowingistherecordyouwant:);printf(numberoftrain:%sn,p-data.num);printf(citythetrainwillreach:%sn,p-data.city);printf(thetimethetraintakeoff:%snthetimethetrainreach:%sn,p-data.takeoffTime,p-data.receiveTime);printf(thepriceoftheticket:%dn,p-data.pr

10、ice);printf(thenumberofbookedtickets:%dn,p-data.bookNum);structnode*Locate1(Linkl,charfindmess,charnumorcity)Node*rif(strcmp(numorcity,num)=0)r=l-next;while(r)if(strcmp(r-data.num,findmess)=0)returnr;r=r-next;elseif(strcmp(numorcity,city)=0)r=l-next;while(r)if(strcmp(r-data.city,findmess)=0)returnr;

11、r=r-next;return0;/*查询火车信息*/voidQueryTrain(Linkl)Node*p;intsel;charstr15,str210;if(!l-next)printf(Thereisnotanyrecord!);return;printf(Choosetheway:n1:accordingtothenumberoftrain;n2:accordingtothecity:n);scanf(%d,&sel);if(sel=1)printf(Inputthethenumberoftrain:);scanf(%s,str1);p=Locate1(l,str1,num);if(

12、p)printTrainInfo(p);elsemark1=1;printf(nthefilecantbefound!);elseif(sel=2)printf(Inputthecity:);scanf(%s,str2);p=Locate1(l,str2,city);if(p)printTrainInfo(p);elsemark1=1;printf(nthefilecantbefound!);/*订票子模块*/voidBookTicket(Linkl,bookManLinkk)Node*r10,*p;charch,dem;bookMan*v,*hinti=0,t=0charstr10,str1

13、10,str210;v=k;while(v-next!=NULL)v=v-next;printf(Inputthecityyouwanttogo:);scanf(%s,&str);p=l-next;while(p!=NULL)if(strcmp(p-data.city,str)=0)ri=p;i+;p=p-next;printf(nnthenumberofrecordhave%dn,i);for(t=0;ti;t+)printTrainInfo(rt);if(i=0)printf(ntttSorry!Cantfindthetrainforyou!n);elseprintf(ndoyouwant

14、tobookit?n);scanf(%d,&ch);if(ch=1)h=(bookMan*)malloc(sizeof(bookMan);printf(Inputyourname:);scanf(%s,&str1);strcpy(,str1);printf(Inputyourid:);scanf(%s,&str2);strcpy(h-data.num,str2);printf(InputyourbookNum:);scanf(%d,&dem);h-data.bookNum=demh-next=NULLv-next=hv=hprintf(nLucky!youhavebook

15、edaticket!);getch();shoudsave=1bookMan*Locate2(bookManLinkk,charfindmess)bookMan*r;r=k-next;while(r)if(strcmp(r-data.num,findmess)=0)mark=1;returnrr=r-next;return0;/*修改火车信息*/voidUpdateInfo(Linkl)Node*p;charfindmess20,ch;if(!l-next)printf(nthereisntrecordforyoutomodify!n);return;elseQueryTrain(l);if(

16、mark1=0)printf(nDoyouwanttomodifyit?n);getchar();scanf(%c,&ch);if(ch=y);printf(nInputthenumberofthetrain:);scanf(%s,findmess);p=Locate1(l,findmess,num);if(p)printf(Inputnewnumberoftrain:);scanf(%s,&p-data.num);printf(Inputnewcitythetrainwillreach:);scanf(%s,&p-data.city);printf(Inputnewtimethetraint

17、akeoff);scanf(%s,&p-data.takeoffTime);printf(Inputnewtimethetrainreach:);scanf(%s,&p-data.receiveTime);printf(Inputnewpriceoftheticket:);scanf(%d,&p-data.price);printf(Inputnewnumberofpeoplewhohavebookedticket:);scanf(%d,&p-data.bookNum);printf(nmodifyingrecordissucessful!n);shoudsave=1;elseprintf(t

18、ttcantfindtherecord!);elsemark1=0;/*系统给用户的提示信息*/voidAdvicedTrains(Linkl)Node*rcharstr10;intmar=0;r=l-next;printf(Iuputthecityyouwanttogo:);scanf(%s,str);while(r)if(strcmp(r-data.city,str)=0&r-data.bookNumnext;if(mar=0)printf(ntttyoucantbookanyticketnow!n);/*保存火车信息*/voidSaveTrainInfo(Linkl)FILE*fp;No

19、de*p;intcount=0,flag=1;fp=fopen(c:train.txt,wb);if(fp=NULL)printf(thefilecantbeopened!);return;p=l-next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p-nextcount+;elseflag=0;break;if(flag)printf(thenumberoftherecordwhichhavebeensavedis%dn,count);shoudsave=0;fclose(fp);/*保存订票人的信息*/voidSaveBookmanInfo(bo

20、okManLinkk)FILE*fpbookMan*pintcount=0,flag=1;fp=fopen(c:man.txt,wb);if(fp=NULL)printf(thefilecantbeopened!);return;p=k-next;while(p)if(fwrite(p,sizeof(bookMan),1,fp)=1)p=p-next;count+;elseflag=0breakif(flag)printf(thenumberoftherecordwhichhavebeensavedis%dn,count);shoudsave=0;fclose(fp);intmain()FIL

21、E*fp1,*fp2;Node*p,*r;charch1,ch2;Linkl;bookManLinkk;bookMan*t,*hintsell=(Node*)malloc(sizeof(Node);l-next=NULL;r=l;k=(bookMan*)malloc(sizeof(bookMan);k-next=NULL;h=k;fp1=fopen(c:train.txt,ab+);if(fp1=NULL)printf(cantopenthefile!);return0;while(!feof(fp1)p=(Node*)malloc(sizeof(Node);if(fread(p,sizeof

22、(Node),1,fp1)=1)p-next=NULLr-next=pr=p;count1+;fclose(fp1);fp2=fopen(c:man.txt,ab+);if(fp2=NULL)printf(cantopenthefile!);return0;while(!feof(fp2)t=(bookMan*)malloc(sizeof(bookMan);if(fread(t,sizeof(bookMan),1,fp2)=1)t-next=NULLh-next=th=t;count2+;fclose(fp2);while(1)clrscr();printInterface();printf(

23、pleasechoosetheoperation:);scanf(%d,&sel);clrscr();if(sel=8)if(shoudsave=1)getchar();printf(nthefilehavebeenchanged!doyouwanttosaveit(y/n)?n);scanf(%c,&ch1);if(ch1=y|ch1=Y)SaveBookmanInfo(k);SaveTrainInfo(l);printf(nThankyou!Youarewelcometoon);break;switch(sel)case1:InsertTraininfo(l);breakcase2:Que

24、ryTrain(l);breakcase3:BookTicket(l,k);breakcase4:UpdateInfo(l);breakcase5:AdvicedTrains(l);breakcase6:SaveTrainInfo(l);SaveBookmanInfo(k);breakcase7:return0;printf(npleasepressanykeytocontinue);getch();0;return3.2调试与测试主要程序运行结果:运行开始选择1输入信息:选择2查询信息选择3订票cFztztcode火车订1A105一EIEInputthecityiouuanttoanslianthenumbepoFrecordhaveBSoPFfCAn11findthetpaipleasepressan5,Pe七。cont:inue选择4没用选择5对你的建议选择7退出系统3心得体会通过这次课程设计,增加了我对软件技术的了解,虽然还不明确软件技术包含的具体内容,但从学习C语言这门课程开始,已发现程序设计的好处,他对我们数学的学习也有很大的帮助。在学习C语言的过程中也学到和

温馨提示

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

评论

0/150

提交评论