华侨大学厦门工学院面向对象程序设计课程设计报告题目:列车车次管理系统专业班级:通信一班学生组长:黄文钗小组成员:黄文钗、李惠群、汤妍、江美玲、肖翔指导教师:***分数:2014 年 5 月26 日课程设计任务书第一章总体设计 (3)1、设计任务目的 (3)2、设计任务要求 (3)3、设计方案选取及论证 (4)4、模块划分与任务安排 (5)第二章软件设计 (5)1、数据结构模块的软件设计(负责同学:肖翔) (5)2、主函数模块的软件设计(负责同学: 黄文钗、汤妍) (5)3、各功能模块的软件设计(负责同学:李惠群、江美玲) (9)第三章系统实现及调试过程 (15)1、调试中的问题和解决办法 (15)2、调试结果 (15)第四章结论 (19)致谢 (20)参考文献 (20)第一章总体设计1、设计任务目的要求用C++面向程序设计语言编写列车车次管理系统。
(1)使学生进一步理解和掌握课堂上做学内容。
(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计能力。
(3)使学生掌握使用各种计算机资料和有关参考资料,体高学生进行程序设计的基本能力。
(4)提高学生的论文写作能力。
(5)本次课程设计是计算机专业的主要实践性教学环节之一,要求运用所学专业的相关知识,结合实际操作与应用而进行的一次编程综合能力训练,旨在培养学生在应用软件程序设计方面,初步掌握解决实际应用问题时做应具有的查阅资料、技术标准和规范,以及设计程序、调试程序、编写基本软件等能力,为毕业设计及今后从事专业相关的工作打下一定的基础。
2、设计任务要求(1)设计的指导思想:设计这个程序首先得先想到,编写一个程序就得尽可能的使用最简洁的语句,实现和表达出最完美的的应用系统。
根据功能要求,设计功能效果,预先把握全局定位,根据实际需要和认为习惯对界面预先处理,然后运用所学知识写出基本框架和主要算法,最后写出全部的代码,运行并实现程序功能。
(2)设计要求:实现简单的列车车次管理系统,可以对列车的车次进行简单的增加、删除、修改、查找等功能,乘客还可以预定车票,管理员还可以查找乘客的信息等功能。
(3)功能描述:乘客功能描述①查询车次情况(按照车次号、发车时间、到站时间等);②根据已有车次预定车票;③显示全部车次情况;管理员功能描述①查询车次情况(按照车次号、发车时间、到站时间等);②增加、修改、删除车次情况,显示全部车次信息;③删除乘客信息,查找乘客信息(按照身份证),显示全部乘客的信息;3、设计方案选取及论证(1)选择所选方案理由:能保证系统长期、安全、稳定、可靠、高效的运行。
系统处理的准确性和及时性是系统的必要性能。
系统应能及时而且准确的根据用户权限及所输入的信息做出响应。
车次的数量和时间影响用户的决策活动,在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。
本系统是直接面对用户的,这就要求系统提供良好的用户接口,易用的人机交互界面,这就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。
订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、以及日常安全管理等工作。
(2)系统功能模块图:4、模块划分与任务安排本小组课程设计是由五人参与完成的,分为3个模块。
(1)数据结构模块的软件设计(负责同学: 肖翔)(2)主函数模块的软件设计(负责同学: 黄文钗、汤妍)(3)各功能模块的软件设计(负责同学: 李惠群、江美玲)第二章软件设计1、数据结构模块的软件设计(负责同学:肖翔)自定义数据类型:定义了struct lieche和struct chengke结构体类型struct lieche{char no[10]; //列车车次号char startstation[20];//起点站char endstation[20];//终点站char starttime[20];//列车发车时间char reachtime[20];//列车到达时间float price;//票价};struct chengke{char NO[10];//乘客需要的列车号char name[10];//乘客姓名char number[20];//乘客身份证号};2、主函数模块的软件设计(负责同学: 黄文钗、汤妍)在这次程序的设计中,我们主要进行模块化程序,构造主函数,将各个模块进行用类串连,相互嵌套,主函数中循环调用类的对象,在主菜单中再调用子函数,从而来实现各自不同的功能。
子功能完成后回到主菜单选择功能键进行下一项操作。
void main() //主函数{system("color 48");char r[20];char s[20];char S[20];cout<<"★★★★★"<<"欢迎用户注册"<<"★★★★★"<<endl<<endl;cout<<"请输入注册用户名:";cin>>r;cout<<"请填写注册密码:";cin>>s;cout<<"请再次输入密码以确认:";cin>>S;if(strcmp(s,S)==0){system("cls");cout<<endl<<endl<<endl<<endl;cout<<"★★★★★"<<"恭喜你注册成功"<<"★★★★★"<<endl;char wo;cout<<endl<<endl<<endl;cout<<"按任意字母键进入登陆界面"<<endl;cin>>wo;system("cls");char h[20];char t[20];for(int m=0;m<3;m++){cout<<"★★★★★"<<"欢迎使用车次管理系统"<<"★★★★★"<<endl<<endl; cout<<"请输入用户名:";cin>>h;cout<<"请输入密码:";cin>>t;system("cls");if(strcmp(r,h)==0&&strcmp(s,t)==0){cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl; cout<<" "<<"登陆中,请稍等..."<<endl;for(int k=0;k<1000000000;k++){}goto menu;}else{ cout<<"\a"<<"\a"<<"\a"<<endl;cout<<"输入错误,请从新输入"<<endl;cout<<"您只有三次机会"<<endl;}}}exit(0);menu:system("color 60"); //DOS颜色变换cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl; cout<<setw(45)<<"车次管理系统"<<endl<<endl;cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl; cout<<setw(43)<<"请按照数字键"<<endl;cout<<" ▲▲▲▲"<<endl<<endl;cout<<"§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;cout<<setw(44)<<"1.列车车次录入"<<endl<<endl;cout<<setw(44)<<"2.列车车次查询"<<endl<<endl;cout<<setw(44)<<"3.列车车次删除"<<endl<<endl;cout<<setw(44)<<"4.列车车次增加"<<endl<<endl;cout<<setw(44)<<"5.列车车次修改"<<endl<<endl;cout<<setw(44)<<"6.列车车次预定"<<endl<<endl;cout<<setw(36)<<"7.退出"<<endl;program c;char i;cout<<"请选择数字键操作"<<endl;cin>>i;switch(i){case '1':system("cls");cout<<endl;cout<<" ★★★★★★★★★★★★★"<<"列车车次录入"<<"★★★★★★★★★★★★★★★"<<endl;c.luru();break;case '2':system("cls");cout<<endl;cout<<" ★★★★★★★★★★★★★"<<"列车车次查询"<<"★★★★★★★★★★★★★★★"<<endl;c.search();break; case '3':system("cls");cout<<endl;cout<<" ★★★★★★★★★★★★★"<<"列车车次删除"<<"★★★★★★★★★★★★★★★"<<endl;c.Delete();break; case '4':system("cls");cout<<endl;cout<<" ★★★★★★★★★★★★★"<<"列车车次增加"<<"★★★★★★★★★★★★★★★"<<endl;c.add();break;case '5':system("cls");cout<<endl;cout<<" ★★★★★★★★★★★★★"<<"列车车次修改"<<"★★★★★★★★★★★★★★★"<<endl;c.xiugai();break;case '6':system("cls");cout<<endl;cout<<" ★★★★★★★★★★★★★"<<"列车车次预定"<<"★★★★★★★★★★★★★★★"<<endl;c.yuding();break; case '7':exit(0);}goto menu;}主函数的简单流程图如下图:3、各功能模块的软件设计(负责同学:李惠群、江美玲)(1)录入功能:void program::luru(){int i;cout<<endl<<endl;cout<<"请输入列车的数量:\n";cin>>j;for(i=1;i<=j;i++){cout<<"请输入列车的编号:"<<endl;cin>>a[i].no;cout<<endl<<endl<<"始发站:"<<endl;cin>>a[i].startstation;cout<<endl<<endl<<"终点站:"<<endl;cin>>a[i].endstation;cout<<endl<<endl<<"出发时间:"<<endl;cin>>a[i].starttime;cout<<endl<<endl<<"到达时间:"<<endl;cin>>a[i].reachtime;cout<<endl<<endl<<"票价:"<<endl;cin>>a[i].price;cout<<endl<<endl;}char wo;cout<<endl<<endl;cout<<" ★★★★★"<<"按0返回上层"<<"★★★★★"<<endl; cin>>wo;}(2)查询功能:查询车次信息,从键盘输入查询方式的车次。