课程设计模板.docx
《课程设计模板.docx》由会员分享,可在线阅读,更多相关《课程设计模板.docx(32页珍藏版)》请在冰豆网上搜索。
课程设计模板
存档资料成绩:
华东交通大学
课程设计报告书
(本页面不需打印,要到教材科购买牛皮纸封面按要求填写,全班统一购买)
所属课程名称C++程序设计
题目职工信息管理系统
院(系) 软件学院
班级软件+桥梁2011--1班
学 号20112110060113
学生姓名熊雄
指导教师 廖辉传
辅导教师 廖辉传
2012年6月15日
课程设计(论文)任务书
软件 学 院桥梁专 业 1 班
一、课程设计(论文)题目 职工信息管理
二、课程设计(论文)工作自2012年6月4日起至2012年6月10日止。
三、课程设计(论文)地点:
软件学院实训中心
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)使学生掌握系统各功能模块的基本工作原理;
(2)培养学生程序设计的基本思路和方法;
(3)使学生掌握程序调试方法;
(4)培养学生分析、解决问题的能力;
(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)职工信息录入功能--输入
(3)职工信息浏览功能--输出
(4)职工信息查询功能
查询方式:
按学历查询;
按职工号查询;
(5)职工信息删除、修改功能(根据职工号)
(提示:
职工信息可采用结构数组或对象数组存放)
2)创新要求:
(1)利用类的成员函数调用类的数据成员完成系统的工作。
(2)利用面向对象来编写程序。
3)课程设计论文编写要求
(1)要按照书稿的规格打印誊写课程设计报告
(2)论文包括目录、绪论、正文、小结、参考文献、谢辞、附录等
(3)毕业论文装订按学校的统一要求完成
4)答辩与评分标准:
(1)完成原理分析:
20分;
(2)完成设计过程:
30分;
(3)完成调试:
30分;
(4)回答问题:
20分。
5)参考文献:
《c++语言程序设计》(第四版)清华大学出版社
《c++语言程序设计》(第二版)北京邮电大学出版社
XX文库
6)课程设计进度安排
内容天数 地点
构思及程序设计1 实训中心
程序调试1 实训中心
撰写论文1 实训中心
学生签名:
2012年6月4日
课程设计(论文)评审意见
(1)完成原理分析(20分):
优( )、良( )、中( )、一般( )、差( );
(2)设计分析 (30分):
优( )、良( )、中( )、一般( )、差( );
(3)完成调试 (30分):
优( )、良( )、中( )、一般( )、差( );
(4)回答问题 (20分):
优( )、良( )、中( )、一般( )、差( );
(5)综合等级:
评阅人:
职称:
2012年6月10日
目 录
一、课程设计任务概述
二、各功能模块的具体实现
三、程序清序
四、程序调试与运行结果
五、设计心得(小结)
六、参考文献
一、课程设计任务概述
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)职工信息录入功能--输入
(3)职工信息浏览功能--输出
(4)职工信息查询功能
查询方式:
按学历查询;
按职工号查询;
(5)职工信息删除、修改功能(根据职工号)
(提示:
职工信息可采用结构数组或对象数组存放)
主要由worker类中的成员函数来完成对数据成员num(工号),name(姓名),sex(性别),edu(学历),adress(地址),tel(电话),age(年龄),salary(薪水)的操作来实现系统的运行。
系统以菜单方式运行。
成员函数主要如下:
要求:
达到熟练掌握C++语言的基本知识和技能;
基本掌握面向对象程序设计的基本思路和方法;
能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
二、各功能模块的具体实现
(功能模块总图、设计思路、各个类及函数的具体实现等,此部分内容为报告的重点,尽可能详细)
1)先声明员工结构,该结构中包含编号、姓名、出生年月、性别、联系电话、基本工资等成员变量,并定义worker结构数组;
2)编写主函数,要求提供一界面,允许工作人员输入、修改和删除员工信息;
3)给出某员工编号,可对该员工信息进行查找,若找到,显示相应信息,否则显示“该员工不存在”;
三、程序清序
usingnamespacestd;
#defineN100//N作为最大职工总数
intNUM=0;//用来计算职工数目
stringp;//p作为接收菜单选项的字符串
classworker
{
public:
worker(){}
voidmenu();//显示菜单
voidadd();//职工信息录入
voidshow();//职工信息显示
voidsearch();//职工信息查找
voiddele();//职工信息删除
voidmodify();//职工信息修改
~worker(){}
private:
stringnum,name,sex,edu,address,tel;
intage,salary;
};
workerw[N];
voidworker:
:
menu()//主菜单函数实现
{
cout<<""<cout<<"职工信息管理系统主菜单"<cout<<""<cout<<"1.职工信息添加"<cout<<"2.职工信息修改"<cout<<"3.职工信息删除"<cout<<"4.职工信息查找"<cout<<"5.职工信息显示"<cout<<"0.退出"<cout<cout<<"请选择数字编号0~5"<inti1;
cin>>i1;
while(!
(i1>=0&&i1<=5))
{
cout<<"输入有误,请重新输入:
"<cin>>i1;
}
switch(i1)
{
case1:
add();break;
case2:
modify();break;
case3:
dele();break;
case4:
search();break;
case5:
show();break;
case0:
cout<<"系统退出!
!
"<exit(0);
default:
break;
}
}
voidworker:
:
add()//职工信息添加函数实现
{
cout<<"请输入职工信息:
"<cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<stringnum;
cin>>num;
for(inti=0;iwhile(num==w[i].num)
{
cout<<"此职工编号已存在,请重新输入:
"<cin>>num;
}
w[NUM].num=num;
cin>>w[NUM].name>>w[NUM].sex>>w[NUM].edu>>w[NUM].age>>w[NUM].salary>>w[NUM].address>>w[NUM].tel;
++NUM;
cout<<"是否返回主菜单?
Y/N"<cin>>p;
while
(1)
{
if(p=="y"||p=="Y")
{
menu();
}
elseif(p=="n"||p=="N")
{cout<<"系统退出!
!
"<exit(0);
}
else
{
cout<<"输入有误,请重新输入:
";
cin>>p;
}
}
}
voidworker:
:
show()//显示职工信息函数实现
{
cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<for(inti=0;icout<cout<}
voidworker:
:
modify()//职工信息修改函数实现
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<menu();
}
else
{cout<<"职工信息如下:
"<cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<for(inti=0;icout<}
cout<<"请输入需要修改信息职工的工号:
"<stringnum1;
cin>>num1;
intj=0,k;
intflag=1;
while(flag)
{
for(;j{
if(num1==w[j].num)
{
flag=0;
k=j;
break;
}
}
if(flag)
{
cout<<"不存在此员工,请重新输入:
"<j=0;
cin>>num1;
}
}
cout<<"你选择的职工的信息为:
"<cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<cout<cout<<"1.修改工号"<cout<<"2.修改姓名"<cout<<"3.修改性别"<cout<<"4.修改学历"<cout<<"5.修改年龄"<cout<<"6.修改工资"<cout<<"7.修改地址"<cout<<"8.修改电话"<cout<<"0.返回主菜单"<cout<cout<<"请选择数字编号0~8"<inti3;
cin>>i3;
while(i3<0||i3>8)
{
cout<<"输入有误,请重新输入:
"<cin>>i3;
}
switch(i3)
{
case1:
cout<<"请输入新的职工工号:
";
cin>>w[k].num;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case2:
cout<<"请输入新的职工姓名:
";
cin>>w[k].name;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case3:
cout<<"请输入新的职工性别:
";
cin>>w[k].sex;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case4:
cout<<"请输入新的职工学历:
";
cin>>w[k].edu;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case5:
cout<<"请输入新的职工年龄:
";
cin>>w[k].age;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case6:
cout<<"请输入新的职工工资:
";
cin>>w[k].salary;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case7:
cout<<"请输入新的职工地址:
";
cin>>w[k].address;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case8:
cout<<"请输入新的职工电话:
";
cin>>w[k].tel;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case0:
menu();
default:
break;
}
}
voidworker:
:
search()
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<menu();
}
else
cout<<"请选择查找方式:
"<cout<<"1.按工号查找"<cout<<"2.按学历查找"<cout<<"0.返回主菜单"<cout<cout<<"请选择数字编号0~2"<inti4;
cin>>i4;
while(i4<0||i4>4)
{
cout<<"输入有误,请重新输入:
"<cin>>i4;
}
if(i4==1)
{
stringnum2;
cout<<"请输入要查询的职工的工号:
"<cin>>num2;
intj=0,k;
intflag=1;
while(flag)
{
for(;j{
if(num2==w[j].num)
{
flag=0;
k=j;
cout<<"查询的职工信息如下:
"<cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<cout<break;
}
}
if(flag)
{
flag=0;
cout<<"不存在此职工!
!
\n返回主菜单"<break;
}
}
}
elseif(i4==2)
{
stringedu2;
cout<<"请输入要查询的职工的学历:
"<cin>>edu2;
intj4=0,k4;
intflag4=1;
while(flag4)
{
for(;j4{
if(edu2==w[j4].edu)
{
flag4=0;
k4=j4;
cout<<"查询的职工信息如下:
"<cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<cout<break;
}
}
if(flag4)
{
flag4=0;
cout<<"不存在此职工!
!
\n返回主菜单"<break;
}
}
}
elseif(i4==0)
menu();
}
voidworker:
:
dele()//职工信息删除功能实现
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<menu();
}
else
cout<<"职工信息如下:
"<cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<for(inti=0;icout<cout<<"请输入需要删除信息职工的工号:
"<stringnum3;
cin>>num3;
intj=0,k;
intflag=1;
while(flag)
{
for(;j{
if(num3==w[j].num)
{
flag=0;
k=j;
break;
}
}
if(flag)
{
cout<<"不存在此员工,请重新输入:
"<j=0;
cin>>num3;
}
}
cout<<"你选择的职工的信息为:
"<cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<cout<cout<<"确认请输入Y\t返回主菜单请输入N"<stringp;
cin>>p;
while
(1)
{
if(p=="y"||p=="Y")
{
cout<<"员工信息已删除!
"<for(inti=0;iif(w[i].num==num3)
intj=i;
for(;j<=NUM-1;j++)
w[j]=w[j+1];
NUM--;
break;
}
elseif(p=="n"||p=="N")
{
menu();
}
else
{
cout<<"输入有误,请重新输入:
";
cin>>p;
}
}
}
voidmain()
{w[0].menu();
}
四、程序调试与运行结果
程序运行时,首先出现主界面菜单,由用户进行功能选择,选择不同的数字,进入不同的功能区。
如图所示
选择1,则显示次级菜单,进入职工信息添加界面,如图所示。
选择2,进入职工信息修改菜单
在上一步中选择
(1),进入需要修改的选项
选择3,进入职工信息删除菜单
选择4,进入职工信息查找菜单
选择5,能将职工信息显示在桌面上
选择0,退出
五、设计心得(小结)
1.上机过程中出现的问题及其解决方案
上机调试时总会出现细节性的错误,编译时会出错。
反复发现错误,修正错误。
2.程序中可以改进的地方说明
职工信息管理系统还应该提供更细节的选择菜单,以方便用户的操作。
还有就是提供选择的菜单编号的类型应定义为string类。
现在数字编号是int类型,用户输入字母时虽然会提示出错,但是有时候会造成死循环。
3.经过老师指点,发现程序存在许多不足,但在老师的指点下,一一改正过来了,比如,职工信息的输出就存在很大问题,但最终还是改正了,还有,参数的使用不当,等等很多很难发现的问题。
4.自己动手编一个大一点的程序,真的面临了很多问题,在今后的学习中,要多编程序,锻炼自己,这样才能真正学会编程。
5.课程设计真正培养了我的动手能力以及编程能力,这是一种很好的锻炼。
六、参考文献
[1]《c++语言程序设计》(第四版)清华大学出版社
[2]《c++语言程序设计》(第二版)北京邮电大学出版社