《C++ 课程设计说明书车次信息管理系统.doc》由会员分享,可在线阅读,更多相关《C++ 课程设计说明书车次信息管理系统.doc(15页珍藏版)》请在三一办公上搜索。
1、课程设计(论文)任务书 软件 学院软件+会计专业2009-04 班 一、课程设计(论文)题目 车次信息管理系统 二、课程设计(论文)工作自2010 年6月13 日起至 2009 年 6月 18 日止。三、课程设计(论文) 地点: 教5204 四、课程设计(论文)内容要求:1本课程设计的目的1、使学生进一步理解和掌握课堂上所学内容。2、使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。3、使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。 4、提高学生的论文写作能力2课程设计的任务及要求1)基本要求:1.分析题目,查阅相关资料;2.算法设计;
2、3.编写代码并调试;4.完成课程设计报告。 2)创新要求: 在基本要求达到后,可进行创新设计。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写毕业论文(2)论文包括目录、绪论、正文、小结、参考文献、谢辞、附录等(3)毕业论文装订按学校的统一要求完成4)答辩与评分标准: (1)完成问题的解决方法分析:20分; (2)算法设计:30分; (3)测试数据:30分;(4)回答问题:20分5)参考文献: 1.谭浩强 著,C+程序设计M,清华大学出版社出版 2.黄明等编著,面向对向程序设计习题详解M,机械工业出版社3. 吕凤翥编著,C+语言基础教程M,清华大学出版社出版 6)课程设计进度安排内容 天
3、数地点构思及收集资料 1天图书馆编程与调试 2天 实验室 撰写论文 1天 学生签名: 2010年 6 月 13 日课程设计(论文)评审意见(1)完成分析(20分):优()、良()、中()、一般()、差(); (2)设计过程(40分):优()、良()、中()、一般()、差(); (3)完成调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)格式规范性及考勤是否降等级:是()、否()评阅人: 刘美香 职称: 讲师 2010 年6月 29 日目 录目 录3一程序设计的目的与要求41.程序设计目的42.程序设计要求4二程序
4、设计说明41.程序功能简介42.程序设计思想53.程序设计资料调研54.关键算法5三程序截图6四程序清单9五.测试数据14六课程设计总结15七参考文献15一程序设计的目的与要求1.程序设计目的(1)使学生进一步理解和掌握课堂上所学内容。(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。 (4)提高学生的论文写作能力(5)本次课程设计是计算机专业的主要实践性教学环节之一,要求运用所学专业的相关知识,结合实际操作与应用而进行的一次编程综合能力的训练,旨在培养学生在应用软件程序设计方面,
5、初步掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及设计程序、调试程序、编写基本软件等能力,为毕业设计及今后从事专业相关的工作打下一定的基础。2.程序设计要求(1)必须基于面向对象的程序设计思想进行设计。(2)针对所选题目,分组收集材料,并进行项目分析,实现必要的增加、删除、修改、查询、统计以及存储等具体功能。(3)按规定的格式编写课程设计报告。二程序设计说明1.程序功能简介此程序名称为车次信息管理系统,顾名思义,这是一个可以管理列车基本信息的一个基本程序,它可以实现简单的列车信息查询和管理车次信息以及查看等功能,具体有以下功能: (1) 为了让程序开始界面一目了然,使得程序更容
6、易操作,故再次设计了用户登陆界面。(2) 主要功能还是车次信息的管理与维护,包括有:增加车次信息、删除车次信息、修改车次信息。其中车次信息包括途经各站点的名称及时间。(3) 当然作为一个信息的管理系统,另一项主要的功能就是车次的查询系统,本程序设计了查询时可实现按站名查询、按车次查询,并且提供站站查询。(4) 最后一项功能即为列车统计,即输入一个站名,可统计经过该站点的列车数目,如果输入两个站名,则可以统计同时经过这两个站点的所有列车数目。2.程序设计思想设计这个程序首先得先想到,作为一个程序设计员,编写一个程序就得尽可能的使用最简洁的语句,实现和表达出最完美的的应用系统。根据功能要求,设计功
7、能效果,预先把握全局定位,根据实际需要和认为习惯对界面预先处理,然后运用所学知识写出基本框架和主要算法,最后写出全部的代码,运行并实现程序功能。3.程序设计资料调研本课题的要求是车次的信息管理,要求完成其基本功能。其信息经过搜索,查得列车的时刻表。在进行莫衷车次信息管理操作时,通常是先显示所有的车次信息,再进行符合自己车次信息的操作,本系统遵循了这一习惯。4.关键算法(1)struct数据类型的应用:首先我们需要了解车次信息管理系统这一个程序需要添加什么样的功能,所谓车次信息,当然包括了站点的名称、时间和车次号码等信息,在本程序中使用了struct数据类型,所用最多的是while循环结构和if
8、语句,然而这也正成为了它的特色。循环体的嵌套思路清晰,目的明确,格式规范,易于阅读和理解。If语句的逐层运用正形象化的描述了计算机的工作流程,而且与人的一般习惯吻合,简单明了,易于观察理解它的来龙去脉,思路清晰直观。(2)类的应用:在相对了解的程序索要设计的基本功能之后,本程序我还还使用了类语句,定义一个train类,添加共有成员函数,包括增加车次信息的函数,修改车次信息的函数和查询车次的函数等等。(3)指针的应用:本程序中大量的应用的了指针,在train类中添加了私有成员指针,应用也是本程序的一个特色,应用指针是的本程序运行的效率大大提高,同时也使得程序一目了然,思路清晰。三程序截图1.车次
9、信息的添加(如图3-1)图3-1 信息添加2.车次信息的修改(如图3-2)图3-2 信息修改3.车次信息的查找(如图3-3)图3-3 信息查询4.车次信息的显示(如图3-4)图3-4 信息显示5.车次信息的删除(图3-5)图3-56.列车统计(3-6)图3-6 列车统计四程序清单车次信息管理系统源程序:#include#include#include#includetypedef struct node /定义一个结构体char n20; char ccnum20; char time10; struct node*next; NODE; NODE *start;class employeep
10、rivate:NODE *p;NODE *q;NODE *t;public:employee(NODE *m) t=p=m;void add(); /公有成员函数增加车次信息void edit(); /公有成员函数修改车次信息void lookfor(); /公有成员函数查找车次void printall(); /公有成员函数显示车次信息void del(); /公有成员函数删除车次信息void deleteall(); /公有成员函数删除所有车次信息void tongji(); /公有成员函数列车统计;void employee:add() /定义添加车次信息的函数start=new NOD
11、E;q=start;q-next=p;p=q;coutq-n;coutq-ccnum;coutq-time;void employee:edit() /定义编辑车次信息的函数p=q;char n20;cout请输入车次号码:n;while(p!=t&(strcmp(p-ccnum,n)!=0)!=0)p=p-next;if(p=t)cout没有找到您要找的车次!endl;elsecoutp-n;coutp-ccnum;coutp-time;void employee:lookfor() /定义查询车次的函数p=q;char n20;cout请输入车次号码:n;while(p!=t&(strcm
12、p(p-ccnum,n)!=0)!=0)p=p-next;if(p=t)cout没有找到您要找的车次!endl;elsecout经过站点名称:nendl;cout车次号码:ccnumendl;cout开车时间:timeendl;void employee:printall() /定义显示车次信息的函数p=q;while(q!=t)cout经过站点:nendl;cout车次号码:ccnumendl;cout发车时间:timenext;q=p;void employee:del() /定义删除车次信息的函数NODE *k;k=new NODE;k=p=q;char n20;cout请输入车次号码:
13、n;while(p!=t&(strcmp(p-ccnum,n)!=0)!=0)k=p;p=p-next;if(p=t)cout没有找到您要找的车次!next;elsek-next=p-next;free(p);void employee:deleteall() /定义删除全部车次信息的函数while(q!=t)p=q;q=q-next;free(p);cout;void employee:tongji() /定义统计车次信息的函数int sm=0;NODE *k;k=new NODE;k=p=q;char n20;cout请输入姓名:n; while(n)k=p;p=p-next;if(p=t
14、)if(strcmp(q-n,n)=0)sm+;break;if(strcmp(p-n,n)=0)sm+;if(sm=0)cout没有找到您要找的车次!endl;cout统计车次数目为:smendl;void display() /定义程序清单函数cout 车次信息管理系统endl;cout-程序清单-endl;cout-1:增加车次信息!-endl;cout-2:修改车次信息!-endl;cout-3:查找车次!-endl;cout-4:显示车次信息!-endl;cout-5:删除车次信息!-endl;cout-6:删除所有车次信息!-endl;cout-7:列车统计!-endl;cout-
15、0:退出!-endl;void main() /主函数,程序开始运行NODE *pa;int i,j,flag;char ch;start=NULL;pa=(NODE*)malloc(sizeof(struct node);employee a(pa);while(j)display();couti;while(!(i=1|i=2|i=3|i=4|i=5|i=6|i=7|i=0)couti;if(i=1)while(flag)a.add(); coutch;if(ch=y|ch=Y)flag=1;elseif(ch=n|ch=N)flag=0;else if(i=0)cout感谢您的使用!en
16、dl;j=0;elseif(start=NULL)cout请先建立车次信息!endl;else if(i=2)a.edit();else if(i=3)a.lookfor();else if(i=4)a.printall();else if(i=5) a.del();else if(i=6)a.deleteall();else if(i=7) a.tongji();cout请按回车键继续endl;getch();五.测试数据1.程序的编辑环境:(如图5-1)图5-12.数据的测试(如图5-2)图5-2六课程设计总结通过本次为期一周的C+课程设计,我不仅与同组成员共同编写出了“车次信息管理系统”
17、这一程序,而且在一定程度上对自己的编程能力进行了检验。虽然我们完成了这样的一个较大型的程序的编写工作,但我还是发现自己在诸多方面存在不足:首先,在编程思想方面缺乏创新性与连贯的构思;其次,面向对象方面的知识掌握的程度仍然不够;最大的问题还在于,将细节知识运用到具体编程中的能力仍需继续锻炼。做课设不仅让我修补了以前学习的漏洞,也让我知道一个道理:编程需要兴趣和实际动手。这应该可以借鉴在老师的教学工作上。创新思维至关重要,这不仅让我们写出精简的代码,也有助于开发出高效的程序。完成设计后,我觉得收获不少,首先是自己首次应用所学知识做出了这个系统,以前从未做过这样大型的程序,这次的课设感觉很有成就感;
18、而收获更大的是让我学到了怎样和他人合作完成一件任务,以及在完成的过程中如何沟通。完成设计是在一定时间内完成的,在完成这个设计时,我们做得显然有一些紧迫,我想是没合理安排好时间和开始态度不正确所致,做守完后我觉得合理安排时间是非常重要的否则可能时间已到而还无法完成或完成得仓促,应合理安排时间给各个环节。C、C+语言是大型程序编写中较常用的计算机语言,我们需要尽可能对这一系列的语言达到较为精通的程度,最重要的是要多进行实际的编程操作与实践,这样才能为未来进行真正的软件编写工作奠定扎实的基础。七参考文献1. 谭浩强 著,C+程序设计M,清华大学出版社出版2. 黄明等编著,面向对向程序设计习题详解M,机械工业出版社3. 吕凤翥编著,C+语言基础教程M,清华大学出版社出版