课程设计人事信息管理系统.docx

上传人:b****3 文档编号:3467850 上传时间:2022-11-23 格式:DOCX 页数:18 大小:47.71KB
下载 相关 举报
课程设计人事信息管理系统.docx_第1页
第1页 / 共18页
课程设计人事信息管理系统.docx_第2页
第2页 / 共18页
课程设计人事信息管理系统.docx_第3页
第3页 / 共18页
课程设计人事信息管理系统.docx_第4页
第4页 / 共18页
课程设计人事信息管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

课程设计人事信息管理系统.docx

《课程设计人事信息管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计人事信息管理系统.docx(18页珍藏版)》请在冰豆网上搜索。

课程设计人事信息管理系统.docx

课程设计人事信息管理系统

湖南科技学院

课程设计报告

 

课程名称:

计算机高级语言(C++)课程设计

课程设计题目:

人事信息管理系统

系:

数学系

专业:

信息与计算科学

年级、班:

信计0801

姓名:

XXX

学号:

200805002128

指导教师:

XXX

职称:

讲师

 

200X年XX月XX日

 

目录

 

1.需求分析--------------------------------------------------------------2

2.概要设计--------------------------------------------------------------2

3.程序实现思路--------------------------------------------------------4

4.设计总结--------------------------------------------------------------6

5.参考文献--------------------------------------------------------------7

6.源代码-----------------------------------------------------------------7

1

一、需求分析

本课程设计要求设计一个人事信息管理系统,主要功能有:

①建立职工信息数据,包括职工号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。

②实现数据录入、数据删除、数据修改、数据浏览和数据查询等功能。

③用文件保存数据

二、概要设计

(一)抽象数据类型定义表

序号

成员名

数据类型

含义

1

sno

int

编号

2

name

string

姓名

3

birthday

int

出生时间

4

Adate

int

参工时间

5

salary

double

工资

6

sex

string

性别

7

age

int

参工年龄

8

flag

bool

记录修改标志

9

sm[100]

Staff

记录数组

 

2

(二)主程序的流程

 

3

(三)各程序模块的功能

voidStaffClear(SList&slist);//清空职工记录

voidStaffInsert(SList&slist);//插入职工记录

voidStaffDelete(SList&slist);//删除职工记录

voidStaffFind(SList&slist);//查找某编号的职工记录

voidStaffView(SList&slist);//显示所有职工的记录

voidStaffInit(SList&slist);//初始化职工数据

voidStaffXG(SList&slist);//修改职工数据

voidStaffSave(SList&slist);//将数据保存到文件

intSearch(SList&slist,intsno);//查找编号为sno的职工,返回记录元素的下标

voidExit(SList&slist);//退出程序

 

三、程序实现思路

(1)设计菜单实现功能

①建立职工信息数据,包括职工号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。

②实现数据录入、数据删除、数据修改、数据浏览和数据查询等功能。

③用文件保存数据

4

(2)设计类与对象

structStaff

{

intsno;//编号

intage;

intbirthday,Adate;

doublesalary;

stringsex;

stringname;//姓名

};

structSList

{

intcount;//职工人数

boolflag;//记录修改标志,false-没改变,true-已改变

Staffsm[100];//记录数组

};

voidStaffClear(SList&slist);//清空职工记录

voidStaffInsert(SList&slist);//插入职工记录

voidStaffDelete(SList&slist);//删除职工记录

voidStaffFind(SList&slist);//查找某编号的职工记录

voidStaffView(SList&slist);//显示所有职工的记录

voidStaffInit(SList&slist);//初始化职工数据

voidStaffXG(SList&slist);//修改职工数据

voidStaffSave(SList&slist);//将数据保存到文件

intSearch(SList&slist,intsno);//查找编号为sno的职工,返回记录元素的下标

voidExit(SList&slist);//退出程序

(3)通过类的调用实现功能设计

case'1':

StaffInsert(slist);

break;

case'2':

StaffView(slist);

break;

case'3':

StaffFind(slist);

break;

5

case'4':

StaffXG(slist);

break;

case'5':

StaffDelete(slist);

break;

case'6':

StaffSave(slist);

break;

case'7':

StaffClear(slist);

break;

case'0':

Exit(slist);

break;

default:

cout<<"输入错误!

";

四、设计总结

经过了几周的摸索与探讨,终于在老师和同学的帮助下完成了这次的课程设计,又完成了一次挑战,从中学到了很多。

知道了只要坚持就会有收获,只要付出就会成功。

对我而言,这次课程设计并不是那么容易完成的,不过我还是努力的去做,遇到不懂的就问同学、查资料等等,终于有了这次的成果,虽然不是很完美,但却还是很欣慰的。

此次课程设计使我更好的理解了所学过的知识,进一步学习和了解了对程序的设计和编写,从中体会到了面向对象程序设计的便利。

懂得了在进行编写程序之前,要有明确的目标和整体的设计思想,对整个程序的框架结构的思考是十分重要和关键的。

另外还需注意细节,往往被我们所忽视的细节部分成了是否成功的关键。

从中我也发现了自己还有许多的不足之处,比如说书本上的知识

6

都不是很熟悉,也没有仔细的去看,很多细节部分也没注意,导致在编程过程中出现了许多的差错。

虽然这次编程中还有参考程序,使编程难度下降了很多,但我依然花费了不少时间,这让我感到很不满意。

同时也感到自己在这门课程上下的功夫还不足。

下定决心以后要好好学习,尽努力自己最大的把该门课程学好。

五、参考文献

1)谭浩强《C++程序设计》清华出版社2007,5

六、源代码

人事信息管理系统程序

staff.h

#ifndefSTAFF_H_INCLUDED

#defineSTAFF_H_INCLUDED

usingnamespacestd;

structStaff

{

intsno;//编号

intage;

intbirthday,Adate;

doublesalary;

stringsex;

stringname;//姓名

};

7

 

{

intcount;//职工人数

boolflag;//记录修改标志,false-没改变,true-已改变

Staffsm[100];//记录数组

};

voidStaffClear(SList&slist);//清空职工记录

voidStaffInsert(SList&slist);//插入职工记录

voidStaffDelete(SList&slist);//删除职工记录

voidStaffFind(SList&slist);//查找某编号的职工记录

voidStaffView(SList&slist);//显示所有职工的记录

voidStaffInit(SList&slist);//初始化职工数据

voidStaffXG(SList&slist);//修改职工数据

voidStaffSave(SList&slist);//将数据保存到文件

intSearch(SList&slist,intsno);//查找编号为sno的职工,返回记录元素的下标

voidExit(SList&slist);//退出程序

 

#endif//STAFF_H_INCLUDED

Menu.h

#ifndefMENU_H_INCLUDED

#defineMENU_H_INCLUDED

#include"staff.h"

voidShowMenu();

voidShowTip();

8

voidDoMenu(charn,SList&slist);

#endif//MENU_H_INCLUDED

Staff.cpp

#include

#include

#include

#include"staff.h"

voidStaffInit(SList&slist)//初始化职工数据

{

ifstreaminfile("data.txt");

slist.count=0;//职工改变标志置false

if(!

infile)

cerr<<"错误:

数据文件不能打开!

\n";

else

{

infile>>slist.count;//读入职工人数

for(inti=0;i

infile>>slist.sm[i].sno>>slist.sm[i].name>>slist.sm[i].sex>>slist.sm[i].salary>>slist.sm[i].birthday>>slist.sm[i].Adate>>slist.sm[i].age;

}

infile.close();//关闭文件

}

voidStaffClear(SList&slist)//清空职工记录

9

{

slist.count=0;//职工人数清0

slist.flag=true;//数据已修改

}

voidStaffInsert(SList&slist)//插入职工记录

{

intsno=0,n=-1,birthday=0,Adate=0;

doublesalary=0;

stringname,sex;

cin.sync();//清空输入缓冲区

cout<<"请输入编号:

";

cin>>sno;

cout<<"请输入姓名:

";

cin>>name;

cout<<"请输入性别:

";

cin>>sex;

cout<<"请输入职工工资:

";

cin>>salary;

cout<<"请输入出生年龄:

";

cin>>birthday;

cout<<"请输入参工时间:

";

cin>>Adate;

if(sno<0)

{

cout<<"输入的编号有误,插入记录失败!

"<

return;//结束函数

}

else

10

{

n=Search(slist,sno);//查找编号为sno的职工

if(n!

=-1)//已有该编号

{

cout<<"该编号已存在,插入记录失败!

"<

return;

}

else//该编号不存在,执行数据插入操作

{

slist.sm[slist.count].sno=sno;

slist.sm[slist.count].name=name;

slist.sm[slist.count].sex=sex;

slist.sm[slist.count].salary=salary;

slist.sm[slist.count].birthday=birthday;

slist.sm[slist.count].Adate=Adate;

slist.sm[slist.count].age=Adate/10000-birthday/10000;

slist.count++;

slist.flag=true;//数据已修改

cout<<"成功插入一个职工信息!

"<

}

}

}

intSearch(SList&slist,intsno)//查找编号为sno的职工,返回记录元素的下标

{

for(inti=0;i

if(slist.sm[i].sno==sno)

returni;

return-1;

11

}

voidStaffDelete(SList&slist)//删除职工记录

{

intsno=-1,n=-1;

cout<<"请输入要删除的职工的编号:

";

cin.sync();//清空输入缓冲区

cin>>sno;

n=Search(slist,sno);

if(n!

=-1)//找到该编号的记录,执行删除操作

{

for(inti=n;i

slist.sm[i]=slist.sm[i+1];

slist.flag=true;//数据已修改

slist.count--;//职工人数减1

cout<<"已成功删除该职工信息!

"<

}

else

cout<<"没有找到该职工的编号!

"<

}

voidStaffFind(SList&slist)//查找某编号的职工记录

{

intsno=-1,n=-1;

if(slist.count==0)

cout<<"没有职工记录!

"<

else

{

12

cout<<"请输入要查找的编号:

";

cin.sync();//清空输入缓冲区

cin>>sno;

n=Search(slist,sno);//找该编号的记录元素的下标

if(n!

=-1)//找到,输出职工信息

{

cout<

cout<

}

else

cout<<"没有找到编号为"<

"<

}

}

voidStaffView(SList&slist)//显示所有职工的记录

{

Stafftemp;

if(slist.count!

=0)//职工数不为0则执行排序操作

for(inti=0;i

for(intj=i;j

{

if(slist.sm[j].sno>slist.sm[j+1].sno)

{

13

temp=slist.sm[j];

slist.sm[j]=slist.sm[j+1];

slist.sm[j+1]=temp;

}

}

cout<<"共有职工"<

cout<

for(inti=0;i

cout<

}

voidStaffSave(SList&slist)//将数据保存到文件

{

ofstreamoutfile("data.txt");//创建文件输出流

if(!

outfile)

cerr<<"错误:

数据文件不能打开!

\n";

else

{

outfile<

for(inti=0;i

outfile<

14

slist.flag=false;//数据修改标志置false

cout<<"保存成功!

"<

}

}

voidStaffXG(SList&slist)

{

intsno=0,n=-1,birthday=0,Adate=0;

doublesalary=0;

stringname,sex;

cin.sync();//清空输入缓冲区

cout<<"请输入你要修改的职工编号:

";

cin.sync();//清空输入缓冲区

cin>>sno;

if(sno<0)

{

cout<<"输入的编号有误,插入记录失败!

"<

return;//结束函数

}

n=Search(slist,sno);//查找编号为sno的职工

if(n!

=-1)//已有该编号

{

cout<<"请输入姓名:

";

cin>>name;

cout<<"请输入性别:

";

cin>>sex;

cout<<"请输入职工工资:

";

cin>>salary;

cout<<"请输入出生年龄:

";

cin>>birthday;

15

cout<<"请输入参工年龄:

";

cin>>Adate;

slist.sm[n].name=name;

slist.sm[n].sex=sex;

slist.sm[n].salary=salary;

slist.sm[n].birthday=birthday;

slist.sm[n].Adate=Adate;

slist.sm[n].age=Adate/10000-birthday/10000;

slist.flag=true;//数据已修改

cout<<"成功修改一个职工信息!

"<

}

 

}

 

voidExit(SList&slist)//退出程序

{

charch='Y';

if(slist.flag)//判断数据是否修改

{

cout<<"数据已经改变,是否保存?

(y/n):

";

cin.sync();//清空输入缓冲区

cin>>ch;

if(ch=='y'||ch=='Y')

StaffSave(slist);

}

cout<<"已安全退出,";

system("pause");//程序暂停,按任一键继续

16

exit(0);//退出程序

}

Menu.cpp

#include

#include"menu.h"

usingnamespacestd;

voidShowMenu()

{

cout<<"|------------------------------------------------|"<

cout<<"|职工信息管理系统|"<

cout<<"|------------------------------------------------|"<

cout<<"|1.数据录入|"<

cout<<"|2.数据浏览|"<

cout<<"|3.数据查询|"<

cout<<"|4.数据修改|"<

cout<<"|5.数据删除|"<

cout<<"|6.数据保存|"<

cout<<"|7.数据初始化|"<

cout<<"|0.安全地退出本系统|"<

cout<<"|------------------------------------------------|"<

}

voidShowTip()

{

cout<

17

cout<<"-------------------操作完成---------------------"<

cout<<"-----------------选择0-7继续-------------------"<

cout<<"请选择:

";

}

voidDoMenu(charn,SList&slist)

{

switch(n)

{

case'1':

StaffInsert(slist);

break;

case'2':

StaffView(slist);

break;

case'3':

StaffFind(slist);

break;

case'4':

StaffXG(slist);

break;

case'5':

StaffD

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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