2012课程设计模板

更新时间:2024-06-15 15:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

存档资料 成绩:

华 东 交 通 大 学

课 程 设 计 报 告 书

(本页面不需打印,要到教材科购买牛皮纸封面按要求填写,全班统一购买)

所属课程名称 C++程序设计

题 目 职工信息管理系统 院 (系) 软 件 学 院

班 级 软件+桥梁 2011-- 1 班 学 号 20112110060113 学生姓名 熊雄 指导教师 廖辉传 辅导教师 廖辉传

2012年 6 月 15 日

第 1 页

课程设计(论文)任务书

软件 学 院 桥梁 专 业 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)参考文献:

第 2 页

《c++语言程序设计》(第四版)清华大学出版社 《c++语言程序设计》(第二版)北京邮电大学出版社 百度文库

6)课程设计进度安排

内容 天数 地点 构思及程序设计 1 实训中心 程序调试 1 实训中心 撰写论文 1 实训中心

学生签名:

2012 年 6 月 4 日

课程设计(论文)评审意见

(1)完成原理分析(20分):优( )、良( )、中( )、一般( )、差( ); (2)设计分析 (30分):优( )、良( )、中( )、一般( )、差( ); (3)完成调试 (30分):优( )、良( )、中( )、一般( )、差( ); (4)回答问题 (20分):优( )、良( )、中( )、一般( )、差( ); (5)综合等级:

评阅人: 职称:

2012 年 6 月 10 日

第 3 页

目 录

一、课程设计任务概述 二、各功能模块的具体实现 三、程序清序

四、程序调试与运行结果五、设计心得(小结) 六、参考文献

第 4 页

一、课程设计任务概述

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)职工信息录入功能--输入 (3)职工信息浏览功能--输出 (4)职工信息查询功能

查询方式:

按学历查询;

按职工号查询;

(5)职工信息删除、修改功能 (根据职工号)

(提示:职工信息可采用结构数组或对象数组存放)

主要由worker类中的成员函数来完成对数据成员 num(工号),name(姓名),sex(性别),edu(学历),adress(地址),tel(电话),age(年龄),salary(薪水)的操作来实现系统的运行。系统以菜单方式运行。成员函数主要如下:

要求:达到熟练掌握C++语言的基本知识和技能; 基本掌握面向对象程序设计的基本思路和方法;

能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

第 5 页

二、各功能模块的具体实现

(功能模块总图、设计思路、各个类及函数的具体实现等,此部分内容为报告的重点,尽可能详细)

1) 先声明员工结构,该结构中包含编号、姓名、出生年月、性别、联系电话、基本

工资等成员变量,并定义worker结构数组;

2) 编写主函数,要求提供一界面,允许工作人员输入、修改和删除员工信息; 3) 给出某员工编号,可对该员工信息进行查找,若找到,显示相应信息,否则显示

“该员工不存在”;

三、程序清序

using namespace std;

第 6 页

#define N 100//N作为最大职工总数 int NUM=0;//用来计算职工数目 string p;//p作为接收菜单选项的字符串 class worker { public: worker(){}

void menu();//显示菜单

void add();//职工信息录入 void show();//职工信息显示 void search();//职工信息查找 void dele();//职工信息删除 void modify();//职工信息修改

~worker(){}

private: string num,name,sex,edu,address,tel; int age,salary;

};

worker w[N];

void worker::menu()//主菜单函数实现 { cout<<\ cout<<\ 职工信息管理系统主菜单 cout<<\ cout<<\ 1.职工信息添加 cout<<\ 2.职工信息修改 cout<<\ 3.职工信息删除

cout<<\ 4.职工信息查找 第 7 页\ \\\\\\

cout<<\ 5.职工信息显示 \cout<<\ 0.退出 \cout<

cout<<\请选择数字编号0~5\int i1; cin>>i1;

while(!(i1>=0&&i1<=5)) { } switch(i1) { case 1:

add();break;

cout<<\输入有误,请重新输入:\cin>>i1;

case 2:

modify();break;

case 3:

dele();break;

case 4:

search();break;

case 5:

show();break;

case 0:

cout<<\系统退出!!\exit(0);

default:

break;

第 8 页

}

}

void worker::add()//职工信息添加函数实现 {

cout<<\请输入职工信息:\

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\

string num; cin>>num;

for(int i=0;i

w[NUM].num=num;

cin>>w[NUM].name>>w[NUM].sex>>w[NUM].edu>>w[NUM].age>>w[NUM].salary>>w[N

cout<<\此职工编号已存在,请重新输入:\cin>>num;

UM].address>>w[NUM].tel;

++NUM;

cout<<\是否返回主菜单? Y/N\cin>>p; while(1) {

if(p==\{ }

else if(p==\{

cout<<\系统退出!!\

第 9 页

menu();

}

}

}

exit(0);

else { }

cout<<\输入有误,请重新输入:\cin>>p;

void worker::show()//显示职工信息函数实现 {

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\for(int i=0;i

cout<

alary<<'\\t'<

void worker::modify()//职工信息修改函数实现 {

if(NUM<=0) { } else {

cout<<\职工信息如下:\

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\for(int i=0;i

第 10 页

cout<

cout<<\没有职工信息存入,系统将返回主菜单\menu();

cout<

alary<<'\\t'<

}

cout<<\请输入需要修改信息职工的工号:\string num1; cin>>num1; int j=0,k; int flag=1; while(flag) { }

cout<<\你选择的职工的信息为:\

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\

第 11 页

for(;j

cout<<\不存在此员工,请重新输入:\j=0; cin>>num1; if(num1==w[j].num) { }

flag=0; k=j; break;

cout<

k].salary<<'\\t'<

cout<<\ 1.修改工号 \cout<<\ 2.修改姓名 \cout<<\ 3.修改性别 \cout<<\ 4.修改学历 \cout<<\ 5.修改年龄 \cout<<\ 6.修改工资 \cout<<\ 7.修改地址 \cout<<\ 8.修改电话 \cout<<\ 0.返回主菜单 \cout<

cout<<\请选择数字编号0~8\int i3; cin>>i3; while(i3<0||i3>8) { } switch(i3) { case 1:

cout<<\请输入新的职工工号:\

cin>>w[k].num;

cout<<\修改信息已保存,现返回主菜单:\menu();

cout<<\输入有误,请重新输入:\cin>>i3;

break;

第 12 页

case 2:

cout<<\请输入新的职工姓名:\

cin>>w[k].name;

cout<<\修改信息已保存,现返回主菜单:\menu();

break;

case 3:

cout<<\请输入新的职工性别:\

cin>>w[k].sex;

cout<<\修改信息已保存,现返回主菜单:\menu();

break;

case 4:

cout<<\请输入新的职工学历:\

cin>>w[k].edu;

cout<<\修改信息已保存,现返回主菜单:\menu();

break;

case 5:

cout<<\请输入新的职工年龄:\

cin>>w[k].age;

cout<<\修改信息已保存,现返回主菜单:\menu();

break;

case 6:

cout<<\请输入新的职工工资:\

cin>>w[k].salary;

cout<<\修改信息已保存,现返回主菜单:\

第 13 页

menu();

break;

case 7:

cout<<\请输入新的职工地址:\

cin>>w[k].address;

cout<<\修改信息已保存,现返回主菜单:\menu();

}

break;

case 8:

cout<<\请输入新的职工电话:\

cin>>w[k].tel;

cout<<\修改信息已保存,现返回主菜单:\menu();

break;

case 0:

menu();

default: }

break;

void worker::search() {

if(NUM<=0) { } else

第 14 页

cout<<\没有职工信息存入,系统将返回主菜单\menu();

cout<<\请选择查找方式:\

cout<<\ 1.按工号查找 \cout<<\ 2.按学历查找 \cout<<\ 0.返回主菜单 \cout<

cout<<\请选择数字编号0~2\int i4; cin>>i4; while(i4<0||i4>4) { } if(i4==1) {

string num2;

cout<<\请输入要查询的职工的工号:\cin>>num2; int j=0,k; int flag=1; while(flag)

{

for(;j

if(num2==w[j].num)

{

flag=0; k=j;

第 15 页

cout<<\输入有误,请重新输入:\cin>>i4;

cout<<\查询的职工信息如下:\

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\

cout<

k].salary<<'\\t'<

} } {

string edu2;

cout<<\请输入要查询的职工的学历:\cin>>edu2;

int j4=0,k4; int flag4=1; while(flag4) {

for(;j4

if(edu2==w[j4].edu)

{

第 16 页

}

}

break;

if(flag) { }

flag=0;

cout<<\不存在此职工!!\\n返回主菜单 \break;

else if(i4==2)

flag4=0; k4=j4;

cout<<\查询的职工信息如下:\

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\

cout<

<

void worker::dele()//职工信息删除功能实现 {

if(NUM<=0) { }

第 17 页

}

}

}

}

break;

if(flag4) { }

flag4=0;

cout<<\不存在此职工!!\\n返回主菜单 \break;

else if(i4==0)

menu();

cout<<\没有职工信息存入,系统将返回主菜单\menu();

else

cout<

cout<<\职工信息如下:\

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\for(int i=0;i

alary<<'\\t'<

cout<<\请输入需要删除信息职工的工号:\

string num3; cin>>num3; int j=0,k; int flag=1; while(flag) {

for(;j

第 18 页

if(num3==w[j].num) { }

flag=0; k=j; break;

cout<<\不存在此员工,请重新输入:\j=0; cin>>num3;

}

cout<<\你选择的职工的信息为:\

cout<<\工号\\t姓名\\t性别\\t学历\\t年龄\\t工资\\t地址\\t电话\

cout<

k].salary<<'\\t'<

}

else if(p==\{ } else {

第 19 页

cout<<\确认请输入 Y\\t返回主菜单请输入 N \string p; cin>>p; while(1) {

if(p==\{

cout<<\员工信息已删除!\for(int i=0;i

if(w[i].num==num3)

int j=i;

for(;j<=NUM-1;j++) w[j]=w[j+1];

NUM--;

break;

menu();

cout<<\输入有误,请重新输入:\ cin>>p;

}

}

}

void main() { w[0].menu(); }

第 20 页

四、程序调试与运行结果

程序运行时,首先出现主界面菜单,由用户进行功能选择,选择不同的数字,进入不同的功能区。如图所示

选择1,则显示次级菜单,进入职工信息添加界面,如图所示。

选择2,进入职工信息修改菜单

在上一步中选择(1),进入需要修改的选项

选择3,进入职工信息删除菜单

第 21 页

选择4,进入职工信息查找菜单

选择5,能将职工信息显示在桌面上

选择0,退出

第 22 页

五、设计心得(小结)

1.上机过程中出现的问题及其解决方案

上机调试时总会出现细节性的错误,编译时会出错。反复发现错误,修正错误。 2.程序中可以改进的地方说明

职工信息管理系统还应该提供更细节的选择菜单,以方便用户的操作。还有就是提供选择的菜单编号的类型应定义为string类。现在数字编号是int类型,用户输入字母时虽然会提示出错,但是有时候会造成死循环。

3.经过老师指点,发现程序存在许多不足,但在老师的指点下,一一改正过来了,比如,职工信息的输出就存在很大问题,但最终还是改正了,还有,参数的使用不当,等等很多很难发现的问题。

4.自己动手编一个大一点的程序,真的面临了很多问题,在今后的学习中,要多编程序,锻炼自己,这样才能真正学会编程。

5.课程设计真正培养了我的动手能力以及编程能力,这是一种很好的锻炼。

第 23 页

六、参考文献

[1] 《c++语言程序设计》(第四版)清华大学出版社

[2] 《c++语言程序设计》(第二版)北京邮电大学出版社

第 24 页

本文来源:https://www.bwwdw.com/article/xn93.html

Top