1、C+程序设计课程设计说明书题 目公交线路管理系统的设计学 号1067118238姓 名崔继霖班 级电信 10-2班指导教师兰孝文日 期2012年6月19日内蒙古科技大学课程设计任务书课程名称C+语言课程设计设计题目公交线路管理系统的设计指导教师时间2011-2012春学期 第17、18周一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数用C+设计一个系统,能提供下列服务:(1)录入公交信息,格式为:线路全程
2、站点起始终点途经票价110包头火车站恰特内科大,技校,云龙,包钢三中,科隆,八一公园,包百,包钢招待所1可增加线路数据。(2)浏览线路信息,可显示出所有公交线路,按照线路编号由小到大排序。(3)修改路线:可按线路编号查询,可按起始站,终点站查询后进行修改。(4)线路查询。输入当前所在站点和要去的站点,找到应乘坐的公交线路,如输入起点=八一公 园,到站=内科大,查找后应输出“请乘坐1路公交车”,有多个查找结果时,按照线路编号由小到大输出。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)
3、完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书目录目录3第一章需求分析4第二章 总体设计5第三章 bus类的设计6第四章 详细设计74.1工程视图74.2类图视图74.3函数的调用关系74.4主程序流程图84.5主要算法的流程图8第五章 测试10第六章 总结12附录:程序代码14第一章 需求分析以文件的操作为基础,完成对数据信息的操作。要求设计类(或类模板)来描述集合,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:文件的输入和输出查询文件中的元
4、素、数据对文件中进行插入、删除元素实现文件元素的并、交、差运算并设计主函数测试该类。设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书第二章 总体设计系统功能包括:录入线路信息,显示所有路线信息,删除路线,站站查询(输入起始站和终点站,查询经过两站的路线)。系 统 功 能站站查询输入路线信息显示所有路线删除路线第三
5、章 bus类的设计bus类的设计:class bus函数成员:public:void save();/录入信息void showall();/显示所有公交路线void searchroute();/根据起始站和终点站查询路线void add();/增加路线void del();/删除站点数据成员:private:int route,station,price;string start;string end;string passi;第四章 详细设计4.1工程视图图4-1 工程视图 4.2类图视图图4-2 类图视图 4.3函数的调用关系图4-3 函数的调用4.4主程序流程图算法:主程序主要用运了
6、switch结构,使得主程序更加方便的调用成员函数,各个成员函数间的关系也清晰明了。开始输入与功能相对应的序号否是否存在是 执行功能结束图4-4 主函数流程图4.5主要算法的流程图 开始输入数据结束执行 算法:此函数用运了ofstream文件 操作,将文件写入到磁盘中的c1.txt中。 图4-5-1 输入函数流程图 开始结束显示所有信息 算法:此函数用运ifstream函数 读取文本文件的内容,然后将其显示到。 屏幕上。图4-5-2 显示函数流程图结束删除输入要删除的线路开始是否正确 算法:此函数先通过ifstream函数 读取c1.txt中的内容,然后修改之,在通 过ofstream函数将修
7、改过的数据存入t1.txt中。否是 图4-5-3 删除函数流程图 开始 算法:此函数先读取c1.txt中内容,然后 通过for循环找出符合条件的线路,最后将线路输出输入数据否到屏幕。是否正确是执行并显示结果结束图4-5-4 查询函数流程图第五章 测试1.主界面:图5-1 主界面 2.输入路线信息:在主界面输入1,进入“输入路线信息”功能,按提示依次输入“线路”、“全程站点”、“起始站”、“终点站”、“票价”、“途经站点”,中间用空格隔开,若要停止输入,依次输入回车,1,回车,则结束输入。图5-2 输入路线信息 3.显示所有路线信息:在主界面时,输入2,显示所有路线信息。图5-3 显示所有路线信
8、息 4删除路线:在主界面时,输入3,进入删除界面,输入要删除的线路的序号,回车结束。图5-4 删除路线5.站站查询: 在主界面,输入4,进入查询界面。然后按照提示输入要查询的两个站点,回车结束,结果如下:图5-5 站站查询第六章 总结这次课程设计花费了将近20天时间,在这期间我第一次体验到编程的困难,但在程序顺利运行出结果时也体验到了很大的成就感,这种成就感让我兴奋不已。这次经历给我感触最深的地方就是,注重细节。在刚阅读完课程设计任务书的时候,我只粗略想了一下总体设计,感觉可以轻松完成任务。但在接下来的几天中,我才感受到什么叫做始料未及。写第一个函数时,便遇到了不小的麻烦。看似短短的几十行代码
9、,写起来却颇为费力。其间容不得任何马虎,一点小小的错误会浪费很多的时间。而调试则花费了将近一周的时间,在不断的发现错误,改正错误的过程中收获最多。虽然写代码过程中遇到数不尽的难题,但最终都能解决。这是自己努力付出的结果,但同学的热心帮助也是不可或缺的因素,没有他们的帮助,我没有信心能够写出完整的程序。这是一次难得的历练,它让我认识到编程不尽需要丰富的只是和经验,更需要认真仔细的态度去面对。附录:程序代码#include#include#include#includevoid menu();using namespace std;class buspublic:void save();/录入信息
10、void showall();/显示所有公交路线void searchroute();/根据起始站和终点站查询路线void del();/删除站点private:int route,station,price;string start;string end;string pass10030;/-录入路线信息-void bus:save()string pass10030,busstart,busend;int busroute,busstation,busprice,i,m;ofstream outfile(c1.txt,ios:app); /-打开文件-if(!outfile)cerr op
11、en errorendl; exit(1);/=按照提示录入路线信息=cout=endl;cout线路 全程站点 起始站 终点站 票价 途经站点busroute;route=busroute;N+;outfileleftsetw(10)busstation;station=busstation;outfileleftsetw(10)busstart;start=busstart;outfileleftsetw(10)busend;end=busend;outfileleftsetw(10)busprice;price=busprice;outfileleftsetw(10)price;m=ro
12、ute;for(i=0;ipassmi;if(passmi=1)break;elseoutfileleftsetw(10)passmi;outfilern;cout路线信息已成功保存!endl;outfile.close();/=关闭文件=/-显示所有路线-void bus:showall()string buspass,busstart,busend,str;ifstream infile(c1.txt,ios:in); if(!infile)cerr 0open errorendl;exit(1);cout路线 全程站点 起始站 终点站 票价 途经站点endl;while(getline(
13、infile,str)cout=endl;coutstrendl;cout=endl;infile.close();/-站站查询-void bus:searchroute()system(cls);bool flag=true;string pass30,start,end,ch1,ch2,a,b,str;int station,price;ifstream infile(c1.txt,ios:in); if(!infile)cerr open errorendl;/fopenexit(1);cout=endl;cout= 起始站=endl;cout=ch1;cout=endl;cout= 终
14、点站=endl;cout=ch2;while(infileroutestationstartendprice)for(int i=0;ipassi;if(passi=ch1)a=passi;if(passi=ch2)b=passi; if(passi=end)if(a=ch1&b=ch2)coutendl-endl;cout路线 全程站点 起始站 终点站 票价 途经站点endl;coutendl-endl;coutroute station start end price ;for(int j=0;j=i;j+)coutpassj;if(j!=i)cout-;flag=false;couten
15、dl *endl;cout 请乘坐route路车!endl;cout *endl;break;a=0;b=0;getline(infile,str);if(flag)cout系统未收录此站点endl;infile.close();void bus:del()string str100;int k,i=1,a=1;string start100,end100,pass100;ifstream infile(c1.txt,ios:in);if(!infile)cerr open errorendl;exit(1);while(getline(infile,stra)cout序号:aendl;cou
16、tstraendl;a+;cout你想删除第几路?k;infile.close();ofstream outfile(c1.txt,ios:out);if(!outfile)cerr open errorendl; exit(1); /退出程序for(i=1;ia;i+)if(k!=i)outfilestrirn;outfile.close();cout已删除成功!ch;while(ch!=0)system(cls);switch(ch)case 1:a.save();break;case 2:a.showall();break;case 3:a.del();break;case 4:a.searchroute();break;default:cout没有此选项!ch;void menu()coutendl; cout 公交线路管理系统 endl;coutendl;cout endl;cout 1.输入路线信息 endl;cout 2.显示所有路线 endl;cout 3.删除线路 endl;cout 4.站站查询 endl;cout endl;coutendl;20
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922