课程设计报告封面及格式.docx

上传人:b****8 文档编号:23795501 上传时间:2023-05-20 格式:DOCX 页数:24 大小:111.40KB
下载 相关 举报
课程设计报告封面及格式.docx_第1页
第1页 / 共24页
课程设计报告封面及格式.docx_第2页
第2页 / 共24页
课程设计报告封面及格式.docx_第3页
第3页 / 共24页
课程设计报告封面及格式.docx_第4页
第4页 / 共24页
课程设计报告封面及格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

课程设计报告封面及格式.docx

《课程设计报告封面及格式.docx》由会员分享,可在线阅读,更多相关《课程设计报告封面及格式.docx(24页珍藏版)》请在冰豆网上搜索。

课程设计报告封面及格式.docx

课程设计报告封面及格式

(此文档为word格式,下载后您可任意编辑修改!

 

重庆科技学院

 

《面向对象程序设计》

课程设计报告

学院:

_电气与信息工程学院_专业班级:

计科1103

学生姓名:

兰倩学号:

设计地点(单位)________计算机自主学习中心__________

设计题目:

___公司员工信息管理系统设计___________________

完成日期:

2013年1月18日

指导教师评语:

_______________________________________

____________________________________________________________________________________________________________________________________________________________________________________________________________________

成绩(五级记分制):

________________

指导教师(签字):

________________

重庆科技学院

课程设计任务书

设计题目:

公司员工信息管理系统设计

学生姓名

兰倩

课程名称

面向对象程序设计

专业班级

计科1103

地点

I304/I306

起止时间

2013年1月7日~1月18日

设计内容及要求

1)问题描述

某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。

其中,雇员分为经理、技术人员、销售人员和销售经理。

设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。

2)功能要求

(1)添加功能:

程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:

可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;

(3)显示功能:

可显示当前系统中所有记录,每条记录占据一行。

(4)编辑功能:

可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:

主要实现对已添加的人员记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!

”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。

(6)统计功能:

能根据多种参数进行人员的统计。

例如,统计四类人员数量以及总数,

或者统计男、女员工的数量等信息。

3)问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。

设计

参数

(1)系统分析、设计正确。

(2)结果以图表方式显示。

(3)界面简洁、美观。

(4)报告格式规范。

进度

要求

周一:

明确设计任务,学习相关基础知识

周二:

熟悉各知识点,进行基础练习

周三:

根据题目要求,进行设计和实现

周四:

根据题目要求,进行设计和实现

周五:

程序测试

参考资料

[1]RichardJohnsonbaugh.MartinKalin.《面向对象程序设计—C++语言描述》.机械工业出版社.2009年

[2]钱能.《C++语言程序设计教程》.清华大学出版社.2005年

其它

说明

1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。

2.若填写内容较多可另纸附后。

3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

教研室主任:

指导教师:

裴仰军/伍建全/焦晓军/陈应祖2013年1月1日

摘要

本程序是能够对公司人员进行管理,而公司需要存储的是雇员的编号、姓名、性别、所在部门、级别,并进行对工资的计算。

其中,雇员分为经理、技术人员、销售人员和销售经理。

而日常生活中的人员管理有添加、查询、显示、编辑、删除和统计等基本功能。

该程序也同样拥有这些功能。

在程序运行开始,系统将首先进行的是从文件中读取数据,而只要管理人员正确的结束程序时,系统将自动保存所修改的数据。

在系统运行中,必须按照提示进行操作,否则系统报错,而往往操作人员只有6次机会,若连续6次操作失败,该界面将自动退出,若该页面为主页面,则退出该系统。

关键字:

公司管理雇员数据

目录

摘要3

第一章软件需求分析说明书5

第二章系统分析与设计6

2.1软件界面设计6

2.2软件的数据(结构)设计10

2.2.1基类的私有成员10

2.2.2公司对各派生类的管理中的私有成员10

2.2.3主要函数10

2.3软件的算法设计11

第三章软件的实现15

3.1添加功能模块15

3.2查询功能模块16

3.3编辑功能模块16

3.4删除功能模块17

3.5统计功能模块19

第四章软件测试21

4.1voidAdd();//添加功能21

4.2voidFind();//查询人员21

4.3voidPrint();//显示21

4.4voidRewrite();//修改人员22

4.5voidDelete();//删除人员22

4.6voidSum();//统计22

第五章软件使用说明书23

致谢25

参考文献26

第一章软件需求分析说明书

本产品共包含七大功能:

添加功能、查询功能、显示功能、编辑功能、删除功能、统计功能和退出系统。

“添加”中有经理、技术人员、销售人员和销售经理四个类别可供用户选择,而其判定是否可供添加的依据是编号,在添加的人员类别中要求员工的编号要唯一。

若输入的编号已存在,系统将给予提示并提示是否继续;而当用户成功添加时,系统也会给予是否继续的提示,若继续,则重复上次操作,否则再按任意键返回主界面。

在用户操作过程中,若用户输入错误,系统报错并给予是否继续的提示。

“查询”中有编号、姓名、性别、级别四个判断依据。

其中级别有四个判断依据,1指经理,2指技术人员,3指销售人员,4指销售经理,当用户选择要查询的类别时,系统会显示相关的全部信息,若系统中不存在此信息,系统将会提示记录为空。

在查询完成后,系统会给予是否继续的提示,若继续则重复操作,否则回到主界面。

“显示”是显示当前系统中所有记录,每条记录占一行。

若系统中不存在任何记录,系统将显示记录为空,并按任意键回到主界面。

“编辑”中有编号和姓名两个判断依据,用户可任意选择进行编辑,其中编号和性别是固定不变的,不能更改。

在正确编辑或系统不存在用户所要编辑的信息时,系统会给予是否继续的提示,若继续则重复操作,否则按任意键回到主界面。

“删除”中有编号、姓名、级别和所有记录四个判定依据,用户选择任意选项将自动删除所选删除的记录,若该系统数据为空,系统将显示记录为空,并按任意键回到主界面。

“统计”中有总数、男员工、女员工、经理、技术人员、销售人员和销售经理七个选项可供用户选择,而用户选择任意选项,系统将显示该类员工的人数,并提示是否继续,若继续则重复操作,否则按任意键回到主界面。

“退出系统”是系统结束的标志,而当用户选择该选项时,系统将保存所修改的数据。

第二章系统分析与设计

2.1软件界面设计

运行程序则出现

图2.1制作人显示

按任意键到主菜单

图2.2主菜单

在主菜单中输入相应的序号在进入对应的界面,若输入非主菜单中的序号,系统会报错并要求重新输入,而用户只要6次机会。

在图2.2中输入1,则

图2.3添加功能

添加功能的依据有经理、技术人员、销售人员和销售经理。

在输入1后,则添加的类别属于经理类,若输入2则添加的类别属于技术人员类,若输入3则添加的类别属于销售人员类,若输入4则添加的类别属于销售经理类,否则系统报错,而用户只要6次机会,若6次都失败,则退出该界面,按任意键回到主菜单。

在添加过程中,必须满足编号的唯一性,若输入的编号存在,系统给出提示,若不存在,则继续输入操作。

在完成操作后,系统会给出是否继续的的提示,若输入y或Y,则重复操作,若输入n或N,则再按任意键回到主菜单,如图2.3所示。

在图2.2中输入2,则

图2.4查询功能

查询功能中有编号、姓名、性别和级别3个依据,输入1,系统将提示输入编号;输入2,系统将提示输入姓名;输入3则男和女2中判定依据,再其中输入1,则显示所有男员工的信息,若输入2则显示所有女员工的信息;输入4则又1^4个级别可供选择,其中1指经理,2指技术人员,3指销售人员,4指销售经理,选择相应数字,则系统将显示相应的所有信息。

在系统操作中,若要查询对象不存在,系统将给予提示,并显示是否继续查询。

而若完成一次操作后,系统也将提示是否继续查询,若继续,则重复操作,否则按任意键回到这菜单,如图2.4所示。

在图2.2中输入3,则

图2.5显示功能

显示功能是显示当前记录的所有信息,若系统中不存在任何记录,则系统会显示记录为空。

在显示功能中按任意键则回到主菜单。

如图2.5所示。

在图2.2中输入4,则

图2.6编辑功能

编辑功能中有编号和姓名2个判定依据,输入1,则系统会要求输入需要编辑的编号,若该编号不存在,系统会给予提示,并显示是否继续;若系统中存在该编号,则系统会显示编号下的所有信息,并提示编辑,当编辑完成,系统会提示是否继续。

若输入2,系统会要求输入需要编辑的姓名,其相关规定同编号选项类似。

如图2.6所示。

在图2.2中输入5,则

图2.7删除功能

删除功能有编号、姓名、级别和所有记录4个判定依据。

输入1,则系统会提示输入要删除的编号,并提示是否继续;若输入2,则系统会提示输入要删除的姓名,这指代删除系统中首次出现的该姓名;若输入3,怎系统会提示输入级别,而级别有4个部分组成,分别是1经理,2技术人员,3销售人员,4销售经理,输入其代表的数字,便可删除相应的类别;若输入4,则系统将删除所有记录。

如图2.7所示。

在图2.2中输入6,则

图2.8统计功能

统计功能中有总数、男员工、女员工、经理、技术人员、销售人员、销售经理7个判定依据。

输入1,系统将显示总人数,并显示是否继续;若输入2,系统将显示男员工的人数并显示是否继续,其它5个类别也类似,如图2.8所示。

在图2.2中输入0,则

图2.9退出系统

当进入退出系统时,代表该程序结束,并且在之前的操作过程中对系统数据的修改也会自动保存在文件中,如图2.9所示。

2.2软件的数据(结构)设计

2.2.1基类的私有成员

string类型的number表示编号

string类型的name表示姓名

string类型的sex表示性别

string类型的department表示所在部门

int类型的sort表示级别

double类型的wages工资

2.2.2公司对各派生类的管理中的私有成员

vectorM;//经理

vectorT;//技术人员

vectorS;//销售人员

vectorL;//销售经理

2.2.3主要函数

voidAdd();//增加人员

voidFind();//查询人员

intFindid(stringnum);//查找编号

intFindname(stringnam_e);//查找姓名

intFindsex(stringse);//查找性别

intFindsort(int&sor);//查找级别

voidPrint();//显示

voidRewrite();//修改人员

voidDelete();//删除人员

voidSum();//统计

voidRead();//读文件

voidWrite();//写文件

2.3软件的算法设计

图2.10主菜单流程图

图2.11添加功能流程图

图2.12查询功能流程图

图2.13编辑功能

图2.13删除功能

图2.14统计功能

第三章软件的实现

3.1添加功能模块

添加功能模块中有经理、技术人员、销售人员和销售经理4个选项。

选择选项后要判断要添加的信息中的编号是否存在,若输入的编号存在,提示该编号已存在,若不存在,则执行下步操作。

在添加时,要对类别进行判定,并将添加的信息压入该类别的向量的末尾。

完成操作后,将判断是否继续,若继续则执行递归。

其伪代码如下:

voidcompany:

:

Add()

{……//定义数据类型

cout<<"\n\n\t添加功能\n";

cout<<"1、经理2、技术人员\n\n";

cout<<"3、销售人员4、销售经理\n\n";

cout<<"请选择(1^4):

";

sor=choice(4,1);//判定输入的sor必须是1^4中的数字

if(!

sor)

return;

cout<<"请输入雇员的信息:

\n";

cout<<"编号:

";fflush(stdin);cin>>num;cin.clear();

……//判断编号是否存在

……//在输入的编号不存在的情况下编辑信息

if(sor==x)

{

……//判断添加的信息的类别并加入该类别的向量中

}

cin.clear();

if(judge())//判定是否继续

Add();//继续则重复操作

}

3.2查询功能模块

查询功能模块中有编号、姓名、性别和级别4个选项,其中首先调用的是choice(inta,intb),它的作用是判断输入的必须是数字,且大于等于b,小于等于a的,在下步操作中再判定输入的值并调用相关函数,以达到查询的目的。

其伪代码如下:

voidcompany:

:

Find()

{……//定义数据类型

cout<<"\n\n\t\t查询功能\n\n";

cout<<"\t1、编号2、姓名\n\n";

cout<<"\t3、性别4、级别\n\n";

cout<<"请选择(1^4):

";

x=choice(4,1);//判定输入的x必须是1^4中的数字

if(x==1)

{if(Findid(num))Find();//查找编号,若Findid(num)返回值为1,则继续查找,否则结束查找。

elsereturn;

}

if(x==2)

{if(Findname(nam))Find();

elsereturn;

}//查找姓名,若Findname(nam)返回值为1,则继续查找,否则结束查找。

if(x==3)

{if(Findsex(se))Find();

elsereturn;;

}//查找性别,若Findsex(se)返回值为1,则继续查找,否则结束查找。

if(x==4)

{if(Findsort(sor))Find();

elsereturn;;

}}//查找级别,若Findsort(sor)返回值为1,则继续查找,否则结束查找。

3.3编辑功能模块

编辑功能模块包含有编号和姓名2个选择,它的函数制作的思路是判定该编号或姓名是否存在,在存在的情况下判定它存在的类别,找到所处的类别并把它的编号和性别记录下来,并删除该编号或姓名下的相关信息,然后添加除编号和性别以外的信息,根据添加的信息判定添加的类别,然后将添加的信息压入该类别的向量中,从而达到编辑的目的。

其伪代码如下:

voidcompany:

:

Rewrite()

{……//定义数据类型

cout<<"\n\n\t\t编辑功能\n\n";

cout<<"\t1、编号2、姓名\n\n";

cout<<"请选择序号(1/2):

";

x=choice(2,1);

if(!

x)return;

if(……)

{……}//判断x的值

cin.clear();

for(i=0;i

{……}//删除该编号或该姓名下的全部信息

if(t==0)

{……}//该编号或姓名不存在

else

{……//该编号或姓名存在,并编辑

……//判定编辑的类别并压入相关类别的向量中

}

cin.clear();

if(judge())Rewrite();//判断是否继续

}

3.4删除功能模块

删除功能模块中首先判断的是记录是否为空,若为空则停止操作,否则继续下步操作。

选择要删除的类别的序号则可删除对应的记录,若删除成功,系统会有所提示;若删除的信息不存在,系统会显示该信息不存在。

其伪代码如下:

voidcompany:

:

Delete()

{……定义数据类型

if(M.empty()&&T.empty()&&S.empty()&&L.empty())

{cout<<"记录为空!

\n";

return;}//判断记录是否为空,若为空,则停止操作,否则执行下面操作

cout<<"\n\n\t\t删除功能\n\n";

cout<<"\t1、编号2、姓名\n\n";

cout<<"\t3、级别4、所有记录\n\n";

cout<<"请选择序号(1^4):

";

x=choice(4,1);

if(!

x)

return;

if(x==1||x==2)

{……输入要删除的编号或姓名

for(i=0;i

if(M[i].getnumber()==num||M[i].getname()==nam)

{m=1;M.erase(&M[i]);}

for(i=0;i

if(T[i].getnumber()==num||T[i].getname()==nam)

{m=1;T.erase(&T[i]);}

for(i=0;i

if(S[i].getnumber()==num||S[i].getname()==nam)

{m=1;S.erase(&S[i]);}

for(i=0;i

if(L[i].getnumber()==num||L[i].getname()==nam)

{m=1;L.erase(&L[i]);}

}//删除该编号或姓名下的全部信息

if(x==3)

{cout<<"请输入级别(1^4):

";

t=choice(4,1);

if(!

t)return;//若为0则停止操作

if(t==1)

{m=1;M.clear();}//若选择经理类,则删除所有经理类的信息

if(t==2)

{m=1;T.clear();}//若选择技术人员类,则删除所有经理类的信息

if(t==3)

{m=1;S.clear();}//若选择销售人员类,则删除所有经理类的信息

if(t==4)

{m=1;L.clear();}//若选择销售经理类,则删除所有经理类的信息

}

if(x==4)

{M.clear();T.clear();S.clear();L.clear();m=1;}//删除所有记录

if(m==0)

cout<<"该信息不存在!

\n";

else

cout<<"删除成功\n";

cin.clear();

if(judge())

Delete();//判断是否继续

}

3.5统计功能模块

统计功能模块中包含总数、男员工、女员工、经理、技术人员、销售人员和销售经理7个选择,主要运用了函数自带的size()函数来获取人数,其中的男、女员工是通过sum来计数的。

其伪代码如下:

voidcompany:

:

Sum()

{……定义数据类型

cout<<"\n\n\t\t统计功能\n\n";

cout<<"\t1、总数2、男员工\n\n";

cout<<"\t3、女员工4、经理\n\n";

cout<<"\t5、技术人员6、销售人员\n\n";

cout<<"\t7、销售经理\n\n";

cout<<"请选择序号(1^7):

";

x=choice(7,1);

if(!

x)return;

if(x==1)

cout<<"\n总人数为:

"<

elseif(x==2||x==3)

{for(i=0;i

if(M[i].getsex()=="男")sum++;

for(i=0;i

if(T[i].getsex()=="男")sum++;

for(i=0;i

if(S[i].getsex()=="男")sum++;

for(i=0;i

if(L[i].getsex()=="男")sum++;

if(x==2)cout<<"\n男员工人数为:

"<

else

cout<<"\n女员工人数为:

"<

}

elseif(x==4)cout<<"\n经理人数为:

"<

elseif(x==5)cout<<"\n技术人员人数:

"<

elseif(x==6)cout<<"\n销售人员人数:

"<

elsecout<<"\n销售经理人数:

"<

if(judge())Sum();

}

第四章软件测试

4.1voidAdd();//添加功能

用例:

input:

1output:

请输入雇员的信息:

编号:

input:

1001output:

姓名

input:

tttoutput:

性别

input:

女output:

部门

input:

财务部门output:

工资

input:

4444output:

是否继续(y/n):

用例:

input:

1output:

请输入雇员的信息:

编号:

input:

1001output:

该编号已存在

是否继续(

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1