ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:43.97KB ,
资源ID:4720048      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4720048.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计报告.docx

1、C语言课程设计报告武 汉 科 技 大 学C程序设计课程设计报告设计题目: 汽车售票系统 学生姓名: 学 号: 班 级:_ 电子信息工程0802班_ 指导老师: 日 期: 1. 题目与要求1.1问题提出:计划编写一个汽车售票系统的程序,以帮助售票员完成汽车售票业务。1.2本系统涉及的知识点:结构体、数组、循环(for循环,while语句,switch语句等)、函数、分支、指针和文件的一些简单应用。1.3功能要求:(1)能够售票和退票,并以文件的形式保存当天各个车次的售退票情况。售票功能当查询出已订票人数小于额定载量且系统时间小于发车时间才能售票,自动更新已售票人数。退票功能退票时,输入退票的班次

2、,当本班车未发出时才能退票,自动更新已售票人数。(2)查询显示功能。可以随时显示当前售票现状(如:班次 发车时间 载客量 已售票数 余票等信息)。(3) 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项。可适当增加其他附加功能。2.功能设计2.1算法设计:该程序要求具备“售票”、“退票”、“显示当前售票情况”、“保存当天数据”、“退出”5项功能。首先编写一个menue函数,对这五项功能进行简要介绍。对“售票”功能:进入系统后,首先选择购票方式,输入汽车班次或发车时间后,即显示出售票情况。对“退票”功能:首先输入所退票的班次,在确认输入信息正确并

3、且车未发出后则退票成功,并修改系统中的相关信息。对“显示当前售票情况”功能:将当前的售票情况按相应的格式输出。对“保存当天数据”功能:打开程序所在的文件,在文件中按相应格式输出对应的汽车班次情况,然后关闭文件。通过“Cur_tim”函数获取系统当前时间。2.2 部分模块流程图3.程序代码设计:Amenue函数:/*菜单项*/void menue(void) system(cls);/*清屏*/ printf(tt*售票系统*n); printf(t1.售票n); printf(t2.退票n); printf(t3.显示当前售票情况n); printf(t4.保存当天数据n); printf(t

4、5.退出n); printf(请选择:);B售票函数:/*售票*/void Sell(struct Tickit tickit,int n) int select,flag=1,i,no,flag2=1,flag1=1,H,M; system(cls); printf(tt*售票系统*n); printf(售票:按7退出n); printf(请选择购票方式:5-按班次购票;6-按发车时间购票;按7退出:); scanf(%d,&select);/*等待用户选择购票方式*/ while(select!=7)/*非退出*/ switch(select) case 5:/*按班次售票*/ print

5、f(请输入汽车班次:); scanf(%d,&no); for(i=0;itickiti.Start_Time0|(Hour=tickiti.Start_Time0&Mintickiti.Start_Time1)/*已发出的班次不能购票*/ printf(对不起,该车已发出。不能购票.n); break; printf(%dn,tickiti.No); printf(详细信息:n); min=change(tickiti.Start_Time1); printf(班次t发车时间t载客量t已售n); printf(%dt%d:%c%dtt%dt%dn,tickiti.No,tickiti.Sta

6、rt_Time0,min,tickiti.Start_Time1,tickiti.Pasenger_Total,tickiti.Sold_Ticklts); printf(请输入购票数量:);scanf(%d,&count); if(tickiti.Sold_Ticklts+count=tickiti.Pasenger_Total) printf(确认购买?y/nn); if(_getch()=y|_getch()=Y) tickiti.Sold_Ticklts+=count ;/*购买成功,已售票额更新*/ printf(购买成功!n); else printf(票额不足!n); break

7、; if(flag2) printf(该班次不存在,请核对后购买!n); break; case 6:/*按发车时间来购票(基本思路同上)*/ printf(友情提示:汽车时间表:n); printf(06:40t09:30t12:00t14:30t16:00n); printf(请输入发车时间(时 分格式):); scanf(%d%d,&H,&M); for(i=0;itickiti.Start_Time0|(Hour=tickiti.Start_Time0&Mintickiti.Start_Time1) printf(对不起,该车已发出。不能购票.n); break; printf(详细信

8、息:n); min=change(tickiti.Start_Time1); printf(班次t发车时间t载客量t已售n); printf(%dt%d:%c%dtt%dt%dn,tickiti.No,tickiti.Start_Time0,min,tickiti.Start_Time1,tickiti.Pasenger_Total,tickiti.Sold_Ticklts); printf(请输入购票数量:);scanf(%d,&count); if(tickiti.Sold_Ticklts+counttickitno.Start_Time0|(Hour=tickitno.Start_Tim

9、e0&Mintickitno.Start_Time1)/*已发出的班次不能退*/ printf(对不起,该车已发出。不能退票.n); else int count; printf(请输入退票数额:); scanf(%d,&count); /*更新*/ tickitno-1.Sold_Ticklts-=count; tickitno-1.Back_count+=count; printf(退票成功!); printf(按任意键继续.); _getch();/*显示当前*/void Show_Curr(struct Tickit tickit,int n) int i; system(cls);

10、printf(tt*售票系统*n当前票额信息:n); printf(班次t发车时间t载客量t已售n); for(i=0;in;i+)/*遍历所有班次*/ char min; min=change(tickiti.Start_Time1); printf(%dt%d:%c%dtt%dt%dn,tickiti.No,tickiti.Start_Time0,min,tickiti.Start_Time1,tickiti.Pasenger_Total,tickiti.Sold_Ticklts); printf(按任意键退出.); _getch();D保存当日数据 save函数:/*保存当日数据*/vo

11、id Save(struct Tickit tickit,int n) int i; FILE * p; p=fopen(Tickit.txt,w);/*文件指针。以“写”的方式打开文件“Tickit.txt”,不存在则创建*/ /*开始写入数据*/ fprintf(p,售票情况:n); fprintf(p,班次t发车时间t载客量t已售t曾退票数n); for(i=0;in;i+)/*遍历结构体数组中的信息,写入文件*/ char min; min=change(tickiti.Start_Time1); fprintf(p,%dt%d:%c%dtt%dt%dt%dn,tickiti.No,t

12、ickiti.Start_Time0,min,tickiti.Start_Time1,tickiti.Pasenger_Total,tickiti.Sold_Ticklts,tickiti.Back_count); /*写入结束*/ printf(保存成功!); _getch(); fclose(p);/*关闭已打开的文件*/E加载车票信息 load函数:/*加载车票信息*/void Load(struct Tickit tickit) int i; for(i=1;i=5;i+)/*初始化结构体数组*/ tickiti-1.No=i; tickiti-1.Sold_Ticklts=0; ti

13、ckiti-1.Back_count=0; /*开始加载*/ tickit0.Start_Time0=6; tickit0.Start_Time1=40; tickit1.Start_Time0=9; tickit1.Start_Time1=30; tickit2.Start_Time0=12; tickit2.Start_Time1=0; tickit3.Start_Time0=14; tickit3.Start_Time1=30; tickit4.Start_Time0=16; tickit4.Start_Time1=0; tickit0.Pasenger_Total=tickit4.Pa

14、senger_Total=50; tickit1.Pasenger_Total=tickit2.Pasenger_Total=tickit3.Pasenger_Total=40; /*结束*/4.C程序设计总结:这一次的C程序设计让我的C语言驾驭能力有了很大的提高。从对老师给我们的课题目瞪口呆,到逐渐深入学习探索,再到不断修改调试程序,最后达到标准状态,整个过程中我学习了很多原来没有接触过的C语言知识,比如如何清屏,如何调用系统时间,同时也对很多原来不是很熟悉的知识进行了更深入的学习,比如结构体知识。在编写程序的过程中,我也比较粗心,常常把字母,单词拼错,导致一些小的错误。这些小的错误在程序设

15、计过程中是完全可以避免的。同时,在编程过程中,我深刻的意识到作为一名编程人员,耐心和细心是必不可少的优秀品质,通过本次设计,我的细心程度有所提高,也更加锻炼了做事耐心的优秀品质。我还从总学到了一种比较高效的学习方法,就是理论与实践相结合的学习方法。只有在理论的基础上加以实践,加以感受,才能更好的理解理论知识,才能更好的掌握需要学习的知识,从而更好的运用。参考文献1 谭浩强,C程序设计(第二版),北京:清华大学出版社,2007.1 2 陈朔鹰,C语言程序设计习题集,北京:人民邮电出版社,2003.6附录:程序清单:#include#include#include#include#include

16、/*存储车票信息*/struct Tickit int No; /*车票编号*/ int Start_Time2; /*发车时间*/ int Pasenger_Total; /*最大票额*/ int Sold_Ticklts; /*已售票额*/ int Back_count; /*退票数额*/;void menue(void); /*菜单项*/void Sell(struct Tickit tickit,int n);/*售票模块*/void Back(struct Tickit tickit);/*退票模块*/void Show_Curr(struct Tickit tickit,int n

17、);/*显示当日信息*/void Save(struct Tickit tickit,int n);/*文件存盘.txt文件格式*/void Load(struct Tickit tickit);/*加载车票信息*/void Cur_Tim();/*获取系统当前时间*/char change(int n);/*转化输出*/#define N 5 /*定义车票种类数*/int Hour,Min; /*全局变量,保存系统当前的时间*/void main(void) int select; struct Tickit tickitN; Load(tickit);/*加载车票*/ Cur_Tim();

18、/*获取系统时间*/ menue();/*显示菜单*/ scanf(%d,&select);/*等待用户选择功能*/ while(select!=5)/*选择为非退出*/ int flag=1; switch(select)/*根据用户选择进入相应模块*/ case 1:Sell(tickit,N); break; case 2:Back(tickit); break; case 3:Show_Curr(tickit,N); break; case 4:Save(tickit,N); break; default: printf(您的输入有误,请重新输入:); flag=0; if(flag)

19、 menue(); scanf(%d,&select); else scanf(%d,&select); /*菜单项*/void menue(void) system(cls);/*清屏*/ printf(tt*售票系统*n); printf(t1.售票n); printf(t2.退票n); printf(t3.显示当前售票情况n); printf(t4.保存当天数据n); printf(t5.退出n); printf(请选择:);/*售票*/void Sell(struct Tickit tickit,int n) int select,flag=1,i,no,flag2=1,flag1=1

20、,H,M; system(cls); printf(tt*售票系统*n); printf(售票:按7退出n); printf(请选择购票方式:5-按班次购票;6-按发车时间购票;按7退出:); scanf(%d,&select);/*等待用户选择购票方式*/ while(select!=7)/*非退出*/ switch(select) case 5:/*按班次售票*/ printf(请输入汽车班次:); scanf(%d,&no); for(i=0;itickiti.Start_Time0|(Hour=tickiti.Start_Time0&Mintickiti.Start_Time1)/*已

21、发出的班次不能购票*/ printf(对不起,该车已发出。不能购票.n); break; printf(%dn,tickiti.No); printf(详细信息:n); min=change(tickiti.Start_Time1); printf(班次t发车时间t载客量t已售n); printf(%dt%d:%c%dtt%dt%dn,tickiti.No,tickiti.Start_Time0,min,tickiti.Start_Time1,tickiti.Pasenger_Total,tickiti.Sold_Ticklts); printf(请输入购票数量:);scanf(%d,&cou

22、nt); if(tickiti.Sold_Ticklts+count=tickiti.Pasenger_Total) printf(确认购买?y/nn); if(_getch()=y|_getch()=Y) tickiti.Sold_Ticklts+=count ;/*购买成功,已售票额更新*/ printf(购买成功!n); else printf(票额不足!n); break; if(flag2) printf(该班次不存在,请核对后购买!n); break; case 6:/*按发车时间来购票(基本思路同上)*/ printf(友情提示:汽车时间表:n); printf(06:40t09:30t12:00t14:30t16:00n); printf(请输入发车时间(时 分格式):); scanf(%d%d,&H,&M); for(i=0;itickiti.Start_Time0|(Hour=tickiti.Start_Time0&Mintickiti.Start_Time1) printf(对不起,该车已发出。不能购票.n); break; printf(详细信息:n);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1