c++课程设计教师管理系统报告Word文档下载推荐.docx
- 文档编号:20397102
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:24
- 大小:287.02KB
c++课程设计教师管理系统报告Word文档下载推荐.docx
《c++课程设计教师管理系统报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c++课程设计教师管理系统报告Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
第一章课程设计内容
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.1设计环境与模块的划分
2.1.1软件设计环境
MicrosoftVisualC++6.0
2.1.2软件模块的划分
该软件主要组成模块和各个模块之间的调用关系如下图:
2.2软件设计主要原理
2.2.1采用的主要数据结构类型
该程序采用的是结构体类型来处理教师的所有基本信息,如下所述。
包含的库函数有:
#include<
iostream>
#include<
string>
iomanip>
包含的函数有:
Main()/*主函数*/
Menu()/*菜单函数*/
voidselect();
/*查找信息函数*/
voidcancle();
/*删除信息函数*/
voidaddToHead();
/*从表头增加信息函数*/
voidaddToTail();
/*从表尾增加信息函数*/
voidgetCount();
/*统计人数函数*/
voiddisplay();
/*显示信息函数*/
包含的类:
classTeacher()
2.2.2各个模块之间的调用关系和数据存储格式说明
各函数模块之间的调用关系主要是主函数调用所有其它函数功能和菜单函数,并利用循环使各个功能函数运行完毕后都会回到菜单。
2.2.3主要流程图
一、从表尾增加教师信息
二、删除教师信息
三、查找教师信息
四、显示教师信息
否
是
第三章软件的设计过程
3.1各软件模块之间的调用方式
程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。
3.2软件中实现各项功能的函数与程序代码
一、一个包含教师基本信息的结构体
typedefstructnode{
intNO;
stringname;
intage;
stringsex;
stringbirth;
stringaddress;
stringphoneNO;
stringemail;
stringposition;
structnode*next;
}TeacherDataNode;
//定义一个结构体,存放教师的相关信息。
typedefTeacherDataNode*TeacherData;
//定义一个结构体类型的指针。
二、定义一个教师类
classTeacher{//定义一个教师类
private:
//成员变量,其中count设为静态成员变量。
staticintcount;
TeacherDatadataLinkHead,dataLinkTail;
public:
Teacher(TeacherDatahead=NULL,TeacherDatatail=NULL){
dataLinkHead=head;
dataLinkTail=tail;
}//构造函数及其初始化。
voidselect();
//按教师编号查找相应的教师。
voidcancle();
//按教师编号删除相应的教师。
voidaddToHead();
//将增加的教师放在链表的头部。
voidaddToTail();
//将增加的教师放在链表的尾部。
voidgetCount();
//统计得到教师的人数。
};
intTeacher:
:
count=0;
//将静态成员变量初始化为0.三从表尾增加教师信息
三、从表尾增加教师信息
voidTeacher:
addToTail(){//将增加的教师放在链表的尾部。
system("
color2"
);
//将屏幕上的字体设为绿色。
intNO,age;
stringname,sex,birth,address,phoneNO,email,position;
charanswer='
y'
;
//定义一个循环变量。
while(answer=='
){//通过循环来加入教师信息。
TeacherDatapNew=newTeacherDataNode;
//定义一个TeacherData指针。
if(pNew==NULL){//判断是否申请到空间。
cout<
<
"
空间不足!
return;
}
endl<
请输入教师的信息:
endl;
请输入编号:
从控制台输入该教师的详细信息。
cin>
>
NO;
请输入姓名:
name;
请输入年龄:
age;
请输入出生日期:
birth;
请输入住址:
address;
请输入电话号码:
phoneNO;
请输入email:
email;
请输入在校职位:
position;
pNew->
NO=NO;
//将输入的信息存入新申请的链表中。
name=name;
age=age;
birth=birth;
address=address;
phoneNO=phoneNO;
email=email;
position=position;
next=NULL;
if(dataLinkHead==NULL){//若头链表为空,将申请的链表设为头链表
dataLinkTail=pNew;
dataLinkHead=pNew;
else{//若头链表不为空,将新申请的链表加到链表的尾部。
dataLinkTail->
next=pNew;
count++;
继续加入教师的信息吗?
(y/n)"
answer;
}
四、查找教师信息
select(){
TeacherDatapNew=dataLinkHead;
//定义的新指针指向链表的头部。
输入编号:
while(pNew){//循环查找该教师的信息。
if(pNew->
NO==NO){
该职工的信息是:
setw(6)<
编号"
名字"
年龄"
生日"
住址"
setw(10)<
电话号码"
setw(6)
<
e-mail"
在校职位"
endl
setw(4)<
pNew->
NO<
name<
setw(7)<
age<
birth<
address<
setw(8)<
phoneNO<
email<
position<
break;
//若找的相关教师,则打印出相关信息,且退出循环。
pNew=pNew->
next;
//若没找到,指向下一个节点。
if(pNew==dataLinkTail->
next){//若循环执行完成,则说明没有找到,通知用户。
没有找到!
五、删除教师信息
cancle(){//按教师编号删除相应的教师。
NO==NO){//若链表头部即为所要求删除的,则删除头节点。
dataLinkHead=pNew->
//将下一个节点设为头结点。
deletepNew;
count--;
删除成功!
TeacherDataqNew=dataLinkHead;
//定义另一个新指针,也指向头部。
//将p节点指向下一个节点。
while(pNew){//按编号循环查找该教师。
qNew->
next=pNew->
//将删除的节点的前节点与后节点相连。
//删除所要求删除的节点。
qNew=pNew;
//将两个指针尾随。
deleteqNew;
next){//若没有找到相应的教师,则通知用户
没有找到该教师,无法删除!
六、显示教师信息
display(){
if(pNew==NULL){
不存在文件"
while(pNew){
address
七、统计教师人数
getCount(){//统计得到教师的人数。
人数共计为:
count<
八、菜单函数
voidprintTheMainMenu(){
**************欢迎使用教师简易管理系统***********"
-------------------------------------------------------------------------"
**1.从文件尾部加入教师的信息**"
**2.从文件头部加入教师的信息**"
**3.查找相关教师的信息**"
**4.删除某位教师**"
**5.统计教师人数**"
**6.显示所有教师信息**"
**7.退出系统**"
九、主函数
intmain(){
color4"
//将控制台屏幕上的文字设为红色。
intitem;
Teacherteacher;
//定义一个教师类的对象。
printTheMainMenu();
//显示菜单。
while
(1){
请输入你的选项:
(1~7之间选择)"
item;
switch(item){
case1:
cls"
//清除屏幕。
teacher.addToTail();
//调用Teacher类的尾部增加函数。
case2:
teacher.addToHead();
//调用Teacher类的头部增加函数。
case3:
teacher.select();
//调用Teacher类的查找函数。
case4:
teacher.cancle();
//调用Teacher类的删除函数。
case5:
teacher.getCount();
//调用Teacher类的统计教师人数函数。
case6:
teacher.display();
case7:
谢谢使用,再见!
pause"
gotop;
//goto语句,跳转到pause结束程序。
p:
system("
pau
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 教师 管理 系统 报告