还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计报告课程设计题目C语言程序设计课程设计评分表学生姓名班级学号课程设计题目项目内容满分实评选题能结合所学课程知识、有一定的能力训练符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、__、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统
一、编号齐全 格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总分100指导教师评语指导教师签名年月日第一章课程设计内容
1.1课程设计目的此次课题主要是实现对教师信息的简易管理首先定义一个教师TeacherList类;其次可以对教师信息进行增加,用链表来做,所以可以分别从表头和表尾来增加;然后可以用链表来查找和删除教师的相关信息;最后可以显示教师的所有信息并要求用二进制文件进行读写操作由此来系统化的管理教师的信息,并达到简易操作的目的在课程设计同时,我们应学会以下几点
1、通过C++语言的课程设计进一步的了解和掌握C++语言的有关知识和相关语法的使用方法
2、熟练掌握使用C++语言对一些简单常见问题进行解决,编译程序对问题进行解决
3、通过课程设计,进一步掌握C++语言中有关重要的数据结构,诸如类、链表、结构体、文件等在程序__中的应用
4、通过课程设计,能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序提高程序__能力,能运用合理的控制流编写清晰高效的程序
5、通过课程设计,培养C++语言知识运用和自学能力,验证自己设计的算法和程序的正确性学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平__或合作设计和__一个中小型系统,掌握系统研发全过程
6、通过此次课程设计发现自己在C++语言编程上的不足并进一步掌握C++语言,为以后课程打下基础
1.2课程设计功能说明
1.
2.1功能分析说明图该课题功能分析说明如下图所示:
1.
2.2各项功能说明
(1)教师信息的增加这部分的功能主要是在链表中加入教师的信息首先开辟一个结点,若开辟成功,则按程序提示输入教师的相关信息,包括编号、姓名、性别、__以及职位等,并将这些信息分别赋给结点中的相应变量;然后把这个结点加入到链表中,可以从表头或表尾来增加,计数器加一;最后根据提示是否继续加入教师信息来循环操作这样一个教师信息的链表就形成了
(2)查找教师信息进入该功能界面后,可以通过教师的编号查找出该教师的所有信息首先开辟一个结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结点,找到之后,将此教师的所有信息输出
(3)删除教师信息进入该功能界面后,可以通过教师的编号对某个教师信息进行删除首先开辟一个结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结点,找到之后,将此教师的所有信息删除可以通过显示所有的教师信息来看此教师信息是否删除
(4)统计教师人数选择这个功能后就可以知道当前的所有教师数,同时也可以根据删除前后的教师数来判断教师信息是否删除
(5)显示教师信息选择此功能后可以将当前的所有教师信息显示出来
1.3各项功能的验收标准
一、有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能
二、有严密正确的数据验证功能和数据处理功能,可根据需要增加教师信息,不会有空间的浪费,并能按编号进行查找和删除教师信息,删除后将空间释放
三、系统要有一定的可靠性第2章课程设计环境与原理
2.1设计环境与模块的划分
2.
1.1软件设计环境MicrosoftVisualC++
6.
02.
1.2软件模块的划分该软件主要组成模块和各个模块之间的调用关系如下图第三章软件的设计过程
3.1各软件模块之间的调用方式程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用
3.2软件中实现各项功能的函数与程序代码#includeiostream#includefstream#includestring#includeconio.husingnamespa__std;classTeacherList{private:stringname;//教师姓名stringnumber;//教师序号intteachage;//教师教龄stringawards;//教师职称public:intflag;stringgetname{returnname;}stringgetnum{returnnumber;}voidinit;voiddisplay;};voidTeacherList::display{cout教师姓名nameendl;cout教师序号numberendl;cout教师教龄teachageendl;cout教师职称awardsendl;}voidTeacherList::init{cout教师姓名;cinname;cout教师序号;cinnumber;cout教师教龄;cinteachage;cout教师职称;cinawards;flag=1;}voidinsert;voiddeleteinf;voidsearch;voidamend;//修改信息voidabout;voidhelp;voidshow;voidmenu;constintamount=500;TeacherListtech[amount];void__in{menu;}voidinsert//输入信息{intic;systemcls;//清屏功能fori=0;iamount;i++{iftech[i].flag!=1//对标志进行判断,如果没有初始化就将该对象初始化{tech[i].init;break;}}cout是否继续输入?(y/n);c=getch;whilec!=121c!=110c=getch;ifc==121insert;//继续调用输入功能函数else{ofstreamosdataios_base::out|ios_base::binary;//把数据存到文件中fori=0;i500;i++{os.writereinterpret_castchar*tech[i]sizeoftech[i];}os.close;}}voidsearch//查找信息{stringtemp;intci__rk=0;cout查找菜单\n\n\n\n
1.按姓名查找
2.按序号查找endl;c=getch;whilec1||c4c=getch;switchc{case1://按姓名查找{cout\n\n\n输入姓名;cintemp;fori=0;iamount;i++{iftemp==tech[i].getname{tech[i].display;__rk=1;}}}break;case2://按序号查找{cout\n\n\n输入序号;cintemp;fori=0;iamount;i++{iftemp==tech[i].getnum{tech[i].display;__rk=1;}}}break;}if__rk!=1{cout查无此教师信息...endl;}}voiddeleteinf//删除信息{intijc;stringtemp;cout删除菜单\n\n\n\n
1.按姓名删除
2.按序号删除endl;c=getch;whilec!=1c!=2c=getch;switchc{case1://删除该对象数组的一个成员就是把后面一个元素覆盖前一个最后一个没有做处理(有一定问题){cout\n\n\n输入姓名;cintemp;fori=0;i500;i++{iftemp==tech[i].getname{forj=i;j500;j++{tech[j]=tech[j+1];}cout删除信息成功endl;systempause;break;}}}break;case2://{cout\n\n\n输入序号;cintemp;fori=0;i500;i++{iftemp==tech[i].getnum{forj=i;j500;j++{tech[j]=tech[j+1];}cout删除信息成功endl;systempause;break;}}}}ofstreamosdataios_base::out|ios_base::binary;//把数据存到文件中fori=0;i500;i++{os.writereinterpret_castchar*tech[i]sizeoftech[i];}os.close;}voidamend//修改信息{intic;stringtemp;cout修改菜单\n\n\n\n
1.按姓名修改
2.按序号修改endl;c=getch;whilec!=1c!=2c=getch;switchc{case1:{cout\n\n\n输入姓名;cintemp;fori=0;i500;i++{iftemp==tech[i].getname{tech[i].init;}}}break;case2:{cout\n\n\n输入序号;cintemp;fori=0;i500;i++{iftemp==tech[i].getnum{tech[i].init;}}}}ofstreamosdataios_base::out|ios_base::binary;//把数据存到文件中fori=0;i500;i++{os.writereinterpret_castchar*tech[i]sizeoftech[i];}os.close;}voidmenu{charc;inti;systemcls;//清屏fori=0;i=19;i++cout;cout\n;fori=0;i=19;i++cout;cout\n;fori=0;i=19;i++cout;cout教师信息管理系统\n\n;fori=0;i=19;i++cout;cout\n;fori=0;i=19;i++cout;cout1:添加信息2:查看全部\n\n;fori=0;i=19;i++cout;cout3:查找信息4:删除信息\n\n;fori=0;i=19;i++cout;cout5:修改信息6:使用说明\n\n;fori=0;i=19;i++cout;cout7:关于__8:退出程序\n\n;fori=0;i=19;i++cout;cout\n;c=getch;whilec!=1c!=2c!=3c!=4c!=5c!=6c!=7c!=8c=getch;switchc{case1:insert;break;case2:show;systempause;break;case3:search;systempause;break;case4:deleteinf;break;case5:amend;break;case6:help;break;case7:about;break;case8:exit0;break;}menu;}voidabout//关于__{cout;}voidhelp//使用说明{}voidshow{inti;fori=0;iamounttech[i].flag==1;i++{tech[i].display;cout\n;}}第四章设计结果与分析
4.1软件使用结果在此,我们将把软件使用过程写出,并对此程序的一些细节的具体的操作方法加以说明,说明如下
1.将软件进行初始化
2.进入程序菜单,界面如下
3.添加教师信息
4.查看教师信息
5.查找教师信息(按姓名查找)(按序号查找)
6.修改教师信息
7.删除教师信息
8.退出程序总结通过这次课程设计,我们从中受益匪浅,不仅让我们对C++语言程序设计这一门课程有了更深一步的认识,还让我对复杂程序的__有了一个深刻的认识,使我进一步明白了模块化思想在程序__中的重要性另外,通过为期一周的C++课程设计实验课使我了解到了一个程序__的过程,虽然规模不大,但为我以后的编程学习打下了基础在编程的过程中,我们可以把这学期所学的理论知识和实践__起来,在所要__的项目中渐渐成长虽然我们对这些C++语言知识运用得还不是很熟练,但是相信我们也在滴水穿石地成长起来发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向同时我也体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有比较清晰的思维同时,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心是我要加强的,同别人的交流也是必须的,这样才能不断使我进步,还要加强自己基础学科的学习,能把所学知识融会贯通在这次课程设计中,我们设计了一个对教师信息进行管理的系统,它基本满足了界面友好,易于操作的要求,因此更利于用户操作方便,运行简易,从而达到对教师信息更加有效的系统管理在此次设计中我们实现了根据用户的需求对教师信息的增加、查找和删除功能,采用链表,合理利用了空间但软件仍存在一些不足,比如没有实现用二进制文件进行读写操作,在输入有关教师的信息时对数据没有详细的限定等通过这段时间的学习和探索,我们发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提在设计中我们锻炼了自己同时也学到了很多,希望在以后我们能充分利用上机的时间充实自己,并希望这样的机会能被更好更多地提供教师信息管理系统查找教师信息删除教师信息统计教师人数显示教师信息退出系统增加教师信息类成员函数Teaacher.cpp菜单函数Menu.cpp类定义体Teacher.h增加查找删除显示计数主函数__in.cpp。