程序设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1程序设计实践训练课程设计报告姓名:班级:13电信2班学号:201330220133022013302指导老师:日期:2015.12.14~2015.12.16华南农业大学电子工程学院2i摘要在现代社会,计算机已经进入社会生活的各个领域。计算机和互联网已经与老百姓的日常工作、学习和生活息息相关,人类社会现在又处于历史飞跃时期,由高度的工业化时代迈向计算机网络时代。作为新世纪的大学生,我们应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,通过实践巩固自己的知识。在这次的课程设计实践中,我们小组选择了车票管理系统这个课题。车票的管理系统包括班次信息的录入、浏览和查询、售票和退票等功能。随着计算机技术的发展,可视编程技术占有了越来越重要的作用。VisualC++6.0是一种功能强大行之有效的可视化编程工具。因此此软件是在VisualC++6.0环境下编写的。对于我们,随着学习的深入,已经大体掌握了VisualC++6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于VisualC++6.0环境的软件开发,先以字符统计软件作为开始,对VisualC++6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个员工培训系统软件的开发进行的更加顺利。本文档详细叙述了基于VisualC++6.0环境下的车票管理系统的设计过程以及程序源代码。程序在编写的过程运用了子程序递归调用、头文件包含等编程方法,此次车票管理系统的开发目的是使我们用面向对象的方式来思考和解决问题的能力,并且可以掌握字符数组的使用、字符指针的使用、数据库的设计和文件使用以及C语言语法。设计程序的重要思想是模块化处理,自上而下,逐步精细;把一个复杂的问题分析为多个子问题,然后利用函数模块化把一个个小的问题解决。关键字:子程序、模块化、程序设计思路、结构体iiI目录1课程设计目的···············································································12课程准备阶段···············································································12.1背景·························································································12.2课程设计内容·············································································12.3系统总体设计框架······································································13程序设计过程················································································33.1主函数的设计···········································································33.2录入信息功能函数的设计···························································43.3显示所有班次功能·····································································73.4查询班次功能···········································································93.5增加班次功能··········································································103.6售票功能················································································113.7退票功能················································································133.8修改班次功能··········································································153.9删除班次功能··········································································154程序测试·····················································································175总结···························································································25Abstract·························································································26参考文献·······················································································28II11.课程设计目的通过课程设计,加强对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构,进一步掌握C语言中重要的数据结构,掌握并熟练运用指针、链表、结构体、文件等数据结构,掌握软件系统设计的基本步骤,提高程序开发能力,能运用合理的控制流编写清晰高效的程序,加强程序分析能力[1]。2课程准备阶段2.1背景一直以来,在人们的日常出行中,大巴以其方便实惠的优点吸引了大量的乘客乘坐。然而,随着时代的发展,传统的效率低下,速度慢的人工售票方式已经跟不上时代的潮流。为了方便人们的出行,开发出一款车票管理系统已经迫在眉睫。2.2设计内容一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如:班次发车时间起点站终点站行车时间额定载量已定票人数18:00郫县广汉2453026:30郫县成都0.5404037:00郫县成都0.54020410:00郫县成都0.5402…程序基本要求:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据;(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息);(3)查询路线:可按班次号查询,可按终点站查询;2(4)售票和退票功能:A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数;(5)采用文本菜单界面。2.3系统总体设计框架程序总体的功能如下图所示:程序包含了8个功能,除了课程设计要求的录入数据、显示数据、查询数据、增加数据、售票服务、退票服务这6个功能,我们另外加入了修改程序已经录入的数据和删除数据。相应的的函数实现算法,在之后的篇幅中详细介绍。33程序设计过程根据程序设计的模块化思想,我们将程序进行功能的模块化,以下是我们的程序设计过程:3.1主函数的设计3.1.1主函数内部应该设计一个死循环,里面将有一个控制变量函数,由其返回值确定主函数调用哪种功能,这里我们选用switch语句,控制变量是menu_select的返回值,menu_select是菜单选择函数。}voidmain(){system(cls);while(1)//循环{/*intk;k=mimaa();if(k)*/switch(menu_select()){case1:newmessage();break;//录入函数case2:display();break;//显示case3:search();break;//查找函数case4:add();break;//增加记录case5:ticketorder();break;//售票函数case6:ticketdelete();break;//删除函数case7:change();break;//修改函数case8:deletemessage();break;//选择调用删除函数case9:quit();break;//退出函数}}43.1.2menu_select函数有校准功能,当输入无效字符时会显示提醒语句,程序如下:intmenu_select(){chars[5];intc,i;//charmenu[20];system(cls);system(color73);//改变颜色for(i=0;i11;i++){printf(%s,menu[i]);//输出菜单各项}scanf(%d,&c);i=0;while(c0||c9){printf(\n);printf(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&);printf(\n请选择(1--9):);scanf(%s,s);c=atoi(s);//转化为整数值break;}returnc;}3.2录入功能函数的设计3.2.1预约班次信息的录入录入的多个车票信息有多个数据类型,所以我们采用结构体数组为传递变量,每个结5构体包含一个车次的信息,调用的函数为newmessage函数,结构体records[N]如下:#defineN1000typedefstructticket{charnum[10];//车次charhour[3];//发车时间charmin[3];//起点charfrom[10];//终点charto[10];//目的地floathours;//行车时间intmax;//载客量intnow;//已订票数}CLASS;CLASSrecords[N];3.2.2newmessage函数程序如下:voidnewmessage(){inti=0,j=5,h;chars[5];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++){6system(cls);printf(请输入第%d个班次信息\n:,i+1);h=-1;for(;h!=i;)//先检验错误{printf(请输入班次\n:);scanf(%s,records[i].num);for(h=0;hi;h++)if(strcmp(records[h].num,records[i].num)==0){printf(输入错误!该班次已经存在!\n);break;}}get(i,j);//内部函数,存放到结构体j=5;}save();//保存,若有错误,查看此处}}3.2.3newmessage函数内部还有进行子函数get的嵌套处理,它

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功