c++课程设计—教师管理系统报告.doc

上传人:laozhun 文档编号:2384562 上传时间:2023-02-17 格式:DOC 页数:24 大小:256.50KB
返回 下载 相关 举报
c++课程设计—教师管理系统报告.doc_第1页
第1页 / 共24页
c++课程设计—教师管理系统报告.doc_第2页
第2页 / 共24页
c++课程设计—教师管理系统报告.doc_第3页
第3页 / 共24页
c++课程设计—教师管理系统报告.doc_第4页
第4页 / 共24页
c++课程设计—教师管理系统报告.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《c++课程设计—教师管理系统报告.doc》由会员分享,可在线阅读,更多相关《c++课程设计—教师管理系统报告.doc(24页珍藏版)》请在三一办公上搜索。

1、目录目录-2第一章-31.1课程设计目的-31.2课程设计功能说明-31.2.1功能分析说明图-3 1.2.2各项功能说明-41.3各项功能的验收标准-5第二章-62.1设计环境与模块的划分-62.1.1软件设计环境-62.1.2软件模块的划分-62.2软件设计主要原理-62.2.1采用的主要数据结构类型-62.2.2各个模块之间的调用关系和数据存储格式说明-72.2.3主要流程图-7第三章-113.1各软件模块之间的调用方式-113.2软件中实现各项功能的函数与程序代码-11第四章-194.1软件使用结果-19总结-23致谢-24第一章 课程设计内容1.1 课程设计目的 此次课题主要是实现对

2、教师信息的简易管理。首先定义一个教师TeacherList类;其次可以对教师信息进行增加,用链表来做,所以可以分别从表头和表尾来增加;然后可以用链表来查找和删除教师的相关信息;最后可以显示教师的所有信息并要求用二进制文件进行读写操作。由此来系统化的管理教师的信息,并达到简易操作的目的。在课程设计同时,我们应学会以下几点:1、通过C+语言的课程设计进一步的了解和掌握C+语言的有关知识和相关语法的使用方法。2、熟练掌握使用C+语言对一些简单常见问题进行解决,编译程序对问题进行解决。3、通过课程设计,进一步掌握C+语言中有关重要的数据结构,诸如类、链表、结构体、文件等在程序开发中的应用。4、通过课程

3、设计,能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。提高程序开发能力,能运用合理的控制流编写清晰高效的程序。5、通过课程设计,培养C+语言知识运用和自学能力,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。独立或合作设计和开发一个中小型系统,掌握系统研发全过程。6、通过此次课程设计发现自己在C+语言编程上的不足并进一步掌握C+语言,为以后课程打下基础。1.2 课程设计功能说明1.2.1 功能分析说明图 该课题功能分析说明如下图所示:教师信息管理系统查找教师信息删

4、除教师信息统计教师人数显示教师信息退出系统增加教师信息1.2.2 各项功能说明 (1)教师信息的增加: 这部分的功能主要是在链表中加入教师的信息。首先开辟一个结点,若开辟成功,则按程序提示输入教师的相关信息,包括编号、姓名、性别、电话以及职位等,并将这些信息分别赋给结点中的相应变量;然后把这个结点加入到链表中,可以从表头或表尾来增加,计数器加一;最后根据提示是否继续加入教师信息来循环操作。这样一个教师信息的链表就形成了。(2)查找教师信息: 进入该功能界面后,可以通过教师的编号查找出该教师的所有信息。首先开辟一个结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结

5、点,找到之后,将此教师的所有信息输出。(3)删除教师信息: 进入该功能界面后,可以通过教师的编号对某个教师信息进行删除。首先开辟一个结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结点,找到之后,将此教师的所有信息删除。可以通过显示所有的教师信息来看此教师信息是否删除。(4)统计教师人数: 选择这个功能后就可以知道当前的所有教师数,同时也可以根据删除前后的教师数来判断教师信息是否删除。(5)显示教师信息: 选择此功能后可以将当前的所有教师信息显示出来。1.3 各项功能的验收标准一、有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。二

6、、有严密正确的数据验证功能和数据处理功能,可根据需要增加教师信息,不会有空间的浪费,并能按编号进行查找和删除教师信息,删除后将空间释放。三、系统要有一定的可靠性。 第二章 课程设计环境与原理2.1 设计环境与模块的划分2.1.1软件设计环境 Microsoft Visual C+ 6.0 2.1.2软件模块的划分该软件主要组成模块和各个模块之间的调用关系如下图:类成员函数Teaacher.cpp菜单函数Menu.cpp类定义体Teacher.h增加查找删除显示计数从表头增加从表尾增加主函数Main.cpp2.2 软件设计主要原理2.2.1采用的主要数据结构类型该程序采用的是结构体类型来处理教师

7、的所有基本信息,如下所述。包含的库函数有:# include # include # include 包含的函数有: Main() /*主函数*/ Menu() /*菜单函数*/void select(); /*查找信息函数*/ void cancle(); /*删除信息函数*/ void addToHead(); /*从表头增加信息函数*/ void addToTail(); /*从表尾增加信息函数*/ void getCount(); /*统计人数函数*/ void display(); /*显示信息函数*/ 包含的类:class Teacher()2.2.2 各个模块之间的调用关系和数据

8、存储格式说明 各函数模块之间的调用关系主要是主函数调用所有其它函数功能和菜单函数,并利用循环使各个功能函数运行完毕后都会回到菜单。2.2.3主要流程图一、从表尾增加教师信息 是是否开始定义字符c赋给yc=y开辟结点pp是否为空输入教师信息并赋给节点中相应变量结束否是表头为空计数器加1是否继续,输入cP=表尾的nextP=表尾P=表头P=表尾否 二、删除教师信息是否否是否是开始开辟结点p表头=p输入编号NN=p-N开辟结点q表头=qp-next=pP=空N=p-Np-next=表头删除p计数器减1此编号不存在p-next=q-next删除p计数器减1p=qp-next=p结束三、查找教师信息否否

9、是是开始开辟一个节点p 表头=p输入编号NP=NULLN=p-N输出未找到p-next=p输出该教师信息结束开始四、显示教师信息开辟节点p 表头=p否否是是结束无教师信息p-next=p输出该教师信息P=空表头=空第三章 软件的设计过程3.1 各软件模块之间的调用方式 程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。3.2 软件中实现各项功能的函数与程序代码 一、一个包含教师基本信息的结构体typedef struct node int NO; string name; int age; string

10、 sex; string birth; string address; string phoneNO; string email; string position; struct node* next;TeacherDataNode; /定义一个结构体,存放教师的相关信息。typedef TeacherDataNode* TeacherData; /定义一个结构体类型的指针。二、定义一个教师类class Teacher /定义一个教师类 private: /成员变量,其中count设为静态成员变量。 static int count; TeacherData dataLinkHead,data

11、LinkTail; public: Teacher(TeacherData head=NULL,TeacherData tail=NULL) dataLinkHead=head; dataLinkTail=tail; /构造函数及其初始化。 void select(); /按教师编号查找相应的教师。 void cancle(); /按教师编号删除相应的教师。 void addToHead(); /将增加的教师放在链表的头部。 void addToTail(); /将增加的教师放在链表的尾部。 void getCount(); /统计得到教师的人数。 void display();int Tea

12、cher:count=0; /将静态成员变量初始化为0.三从表尾增加教师信息三、从表尾增加教师信息void Teacher:addToTail() /将增加的教师放在链表的尾部。 system(color 2); /将屏幕上的字体设为绿色。 int NO,age; string name,sex,birth,address,phoneNO,email,position; char answer=y; /定义一个循环变量。 while(answer=y) /通过循环来加入教师信息。 TeacherData pNew=new TeacherDataNode; /定义一个TeacherData指针。

13、 if(pNew=NULL) /判断是否申请到空间。 cout空间不足!; return; coutendl请输入教师的信息:endl; coutendlNO; coutendlname; coutendlage; coutendlbirth; coutendladdress; coutendlphoneNO; coutendlemail; coutendlposition; pNew-NO=NO; /将输入的信息存入新申请的链表中。 pNew-name=name; pNew-age=age; pNew-birth=birth; pNew-address=address; pNew-phone

14、NO=phoneNO; pNew-email=email; pNew-position=position; pNew-next=NULL; if(dataLinkHead=NULL) /若头链表为空,将申请的链表设为头链表 dataLinkTail=pNew; dataLinkHead=pNew; else /若头链表不为空,将新申请的链表加到链表的尾部。 dataLinkTail-next=pNew; dataLinkTail=pNew; count+; coutendlanswer; coutendl; 四、查找教师信息void Teacher:select() int NO; Teach

15、erData pNew=dataLinkHead; /定义的新指针指向链表的头部。 coutendlNO; while(pNew) /循环查找该教师的信息。 if(pNew-NO=NO) coutendl该职工的信息是:endl; coutendlsetw(6)编号setw(6)名字setw(6)年龄setw(6)生日setw(6)住址setw(10)电话号码setw(6) setw(10)e-mailsetw(10)在校职位endlsetw(4)NOsetw(6)name setw(7)agesetw(6)birthsetw(6)addresssetw(8)phoneNOsetw(10)em

16、ailsetw(10)positionnext; /若没找到,指向下一个节点。 if(pNew=dataLinkTail-next) /若循环执行完成,则说明没有找到,通知用户。 cout没有找到!endl; 五、删除教师信息void Teacher:cancle() /按教师编号删除相应的教师。 int NO; TeacherData pNew=dataLinkHead; /定义的新指针指向链表的头部。 coutendlNO; if(pNew-NO=NO) /若链表头部即为所要求删除的,则删除头节点。 dataLinkHead=pNew-next; /将下一个节点设为头结点。 delete

17、pNew; count-; coutendlnext; /将p节点指向下一个节点。 while(pNew) /按编号循环查找该教师。 if(pNew-NO=NO) qNew-next=pNew-next; /将删除的节点的前节点与后节点相连。 delete pNew; /删除所要求删除的节点。 count-; coutendlnext; delete qNew; if(pNew=dataLinkTail-next) /若没有找到相应的教师,则通知用户 coutendl没有找到该教师,无法删除!endl; delete pNew; 六、显示教师信息void Teacher:display() T

18、eacherData pNew=dataLinkHead; if(pNew=NULL) cout不存在文件; return; while(pNew) coutendlsetw(6)编号setw(6)名字setw(6)年龄setw(6)生日setw(6)住址setw(10)电话号码setw(6) setw(10)e-mailsetw(10)在校职位endl setw(4)NOsetw(6)name setw(7)agesetw(6)birthsetw(6)addresssetw(8)phoneNOsetw(10)emailsetw(10)positionnext; delete pNew;七、统

19、计教师人数void Teacher:getCount() /统计得到教师的人数。 coutendl人数共计为:countendl;八、菜单函数void printTheMainMenu( ) coutendlendl *欢迎使用教师简易管理系统*endlendlendl -endl * 1.从文件尾部加入教师的信息 *endlendl * 2.从文件头部加入教师的信息 *endlendl * 3.查找相关教师的信息 *endlendl * 4.删除某位教师 *endlendl * 5.统计教师人数 *endlendl * 6.显示所有教师信息 *endlendl * 7.退出系统 *endle

20、ndl -endlendl;九、主函数int main() system(color 4); /将控制台屏幕上的文字设为红色。 int item; Teacher teacher; /定义一个教师类的对象。 printTheMainMenu(); /显示菜单。 while(1) coutendlitem; switch(item) case 1: system(cls); /清除屏幕。 printTheMainMenu(); teacher.addToTail(); /调用Teacher类的尾部增加函数。 break; case 2: system(cls); printTheMainMenu

21、(); teacher.addToHead(); /调用Teacher类的头部增加函数。 break; case 3: system(cls); /清除屏幕。 printTheMainMenu(); teacher.select(); /调用Teacher类的查找函数。 break; case 4: system(cls); /清除屏幕。 printTheMainMenu(); teacher.cancle(); /调用Teacher类的删除函数。 break; case 5: system(cls); /清除屏幕。 printTheMainMenu(); teacher.getCount()

22、; /调用Teacher类的统计教师人数函数。 break; case 6: system(cls); printTheMainMenu(); teacher.display(); break; case 7: system(cls); /清除屏幕。 printTheMainMenu(); cout谢谢使用,再见!; system(pause); goto p; /goto语句,跳转到pause结束程序。 p:system(pause); 第四章 设计结果与分析 4.1 软件使用结果 在此,我们将把软件使用过程写出,并对此程序的一些细节的具体的操作方法加以说明,说明如下:1.将软件进行初始化。

23、2.进入程序菜单,界面如下:3增加教师信息4.根据教师编号查找教师信息5.根据编号删除教师信息6.统计教师人数7.显示教师信息8.退出系统总结通过这次课程设计,我们从中受益匪浅,不仅让我们对C+语言程序设计这一门课程有了更深一步的认识,还让我对复杂程序的开发有了一个深刻的认识,使我进一步明白了模块化思想在程序开发中的重要性。另外,通过为期一周的C+课程设计实验课使我了解到了一个程序开发的过程,虽然规模不大,但为我以后的编程学习打下了基础。在编程的过程中,我们可以把这学期所学的理论知识和实践联系起来,在所要开发的项目中渐渐成长。虽然我们对这些C+语言知识运用得还不是很熟练,但是相信我们也在滴水穿

24、石地成长起来。发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。同时我也体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有比较清晰的思维。同时,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心是我要加强的,同别人的交流也是必须的,这样才能不断使我进步,还要加强自己基础学科的学习 ,能把所学知识融会贯通。 在这次课程设计中,我们设计了一个对教师信息进行管理的系统,它基本满足了界面友好,易于操作的要求,因此更利于用户操作方便,运行简易,从而达到对教师信息更加有效的系统管理。在此次设计中我们实现了

25、根据用户的需求对教师信息的增加、查找和删除功能,采用链表,合理利用了空间。但软件仍存在一些不足,比如没有实现用二进制文件进行读写操作,在输入有关教师的信息时对数据没有详细的限定等。通过这段时间的学习和探索,我们发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。在设计中我们锻炼了自己同时也学到了很多,希望在以后我们能充分利用上机的时间充实自己,并希望这样的机会能被更好更多地提供。 致谢经过这一周的课程设计,我们把平时学到的知识充分的应用到这次实践中,同时我们也获得了许多在课堂上听而无法真正理解的知识。首先我们要感谢学校给我们安排的这次的C+课程设计,然后我要感谢老师们对我们热心的指导和帮助,是他们教会了我们怎样解决问题的方法,这样我们的软件设计才会更加顺利地进行,并且充分掌握了设计程序的方法。我们还要感谢许多同学的帮助,他们的帮助对于我们来说也是必不可少的。总之,是有了他们的帮助,我们才能顺利地完成这次的设计,在这里我们要向他们说一句:谢谢,非常感谢!你们辛苦了!在设计该软件期间,给予帮助和支持的老师有:陈斌、孙美凤等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号