资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
程序设计实践训练课程设计报告姓 名: 班 级: 13电信2班 学 号: 2013302 2013302 2013302 指导老师: 日期: 华南农业高校电子工程学院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语言语法。设计程序的重要思想是模块化处理,自上而下,逐步精细;把一个困难的问题分析为多个子问题,然后利用函数模块化把一个个小的问题解决。关键字:子程序、模块化、程序设计思路、结构体目 录1 课程设计目的12 课程打算阶段12.1 背景12.2 课程设计内容1 2.3系统总体设计框架13程序设计过程3 3.1主函数的设计3 3.2录入信息功能函数的设计4 3.3显示全部班次功能7 3.4查询班次功能9 3.5增加班次功能10 3.6售票功能11 3.7退票功能133.8修改班次功能153.9删除班次功能154程序测试175总结25Abstract26参考文献281 课程设计目的通过课程设计,加强对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构,进一步驾驭C语言中重要的数据结构,驾驭并娴熟运用指针、链表、结构体、文件等数据结构,驾驭软件系统设计的基本步骤,提高程序开发实力,能运用合理的限制流编写清楚高效的程序,加强程序分析实力1。2课程打算阶段2.1背景始终以来,在人们的日常出行中,大巴以其便利实惠的优点吸引了大量的乘客乘坐。然而,随着时代的发展,传统的效率低下,速度慢的人工售票方式已经跟不上时代的潮流。为了便利人们的出行,开发出一款车票管理系统已经燃眉之急。2.2设计内容一车站每天有n个发车班次,每个班次都有一班次号(1、2、3n),固定的发车时间,固定的路途(起始站、终点站),大致的行车时间,固定的额定载客量。如:班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数1 8:00 郫县 广汉 2 45 302 6:30 郫县 成都 0.5 40 403 7:00 郫县 成都 0.5 40 204 10:00 郫县 成都 0.5 40 2程序基本要求:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据;(2)阅读班次信息,可显示出全部班次当前状总(假如当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息);(3)查询路途:可按班次号查询 ,可按终点站查询;(4)售票和退票功能:A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数;(5)采纳文本菜单界面。2.3系统总体设计框架程序总体的功能如下图所示:程序包含了8个功能,除了课程设计要求的录入数据、显示数据、查询数据、增加数据、售票服务、退票服务这6个功能,我们另外加入了修改程序已经录入的数据和删除数据。相应的的函数实现算法,在之后的篇幅中具体介绍。3程序设计过程依据程序设计的模块化思想,我们将程序进行功能的模块化,以下是我们的程序设计过程:31主函数的设计3.1.1主函数内部应当设计一个死循环,里面将有一个限制变量函数,由其返回值确定主函数调用哪种功能,这里我们选用switch语句,限制变量是menu_select的返回值,menu_select是菜单选择函数。void main() system(cls); while(1)/循环 /*int k; k=mimaa();if(k)*/ switch(menu_select() case 1:newmessage();break; /录入函数 case 2:display();break;/显示 case 3:search();break;/查找函数 case 4:add();break;/增加记录 case 5:ticketorder();break;/售票函数 case 6:ticketdelete();break;/删除函数 case 7:change();break;/修改函数 case 8:deletemessage();break;/选择调用删除函数 case 9:quit();break;/退出函数 3.1.2menu_select函数有校准功能,当输入无效字符时会显示提示语句,程序如下:int menu_select() char s5; int c,i; /char menu20; system(cls); system(color 73);/变更颜色 for(i=0;i0|c9) printf(n); printf(&); printf(n请选择(1-9): ); scanf(%s,s); c=atoi(s);/转化为整数值 break; return c;32录入功能函数的设计3.2.1预约班次信息的录入录入的多个车票信息有多个数据类型,所以我们采纳结构体数组为传递变量,每个结构体包含一个车次的信息,调用的函数为newmessage函数,结构体recordsN如下:#define N 1000typedef struct ticket char num10; /车次 char hour3; /发车时间 char min3; /起点 char from10; /终点 char to10; /目的地 float hours; /行车时间 int max; /载客量 int now; /已订票数CLASS;CLASS recordsN;3.2.2newmessage函数程序如下:void newmessage() int i=0,j=5,h; char s5; FILE *fp; system(cls); if(fp=fopen(车票管理系统0.txt,r)!=NULL) printf(车票信息已经存在请选择增加功能!n); printf(随意输入则返回菜单n); scanf(%s,s); i=1;/通过是1 if(i=0) system(cls); printf(请输入要录入班次总数:n); scanf(%d,&class_num); system(cls); for(i=0;iclass_num;i+) system(cls); printf(请输入第%d个班次信息n:,i+1); h=-1; for(;h!=i;)/先检验错误 printf(请输入班次
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号