编号:68963204
类型:共享资源
大小:368.02KB
格式:DOC
上传时间:2020-03-22
上传人:1709****072
认证信息
个人认证
李**(实名认证)
浙江
IP属地:浙江
15
积分
- 关 键 词:
-
C++
职工
信息管理
系统
课程设计
- 资源描述:
-
*******************
实践教学
******************
江西理工大学软件学院
2012年春季学期
C++语言程序设计 课程设计
(第四组)
题 目: 职工信息管理系统
专业班级:_______
姓 名:________
学 号: 112121
指导教师: 吉宝玉
成 绩:____
2012年 6月 25日
目录
摘 要 0
前 言 0
正 文 0
1.系统功能分析 0
2. 系统总体设计 0
3.详细设计 0
4.系统测试 0
5.软件使用说明书 0
设计总结 0
参考文献 0
致 谢 0
附录:原程序代码 0
摘要
随着经济的高速发展,一个好的职工信息管理程序在企业及用人单位扮演着重要的角色,为了设计一个功能强大的职工信息管理系统,在设计中我们做出了明细分工,目的是要让本组成员都从这次课程设计中学到编程经验与团队精神。“职工信息管理系统”,系统以菜单方式工作,编写存放有职工基本信息,包含职工工号,姓名,性别,出生年月,学历,职务,工资,住址,电话等,并且要求录入职工号不重复;录入的职工号信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作,建立职工信息管理的文件。
关键词:职工信息管理;文件;浏览;查询;修改。
前言
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展要高效率的把内部活动有机的组织起来,就必须建立自身特点相适应的管理信息系统。
本组设计的是一个关于职工信息管理的数据库系统,通过这个系统,管理员可以简捷方便的对职工信息进行增加、删除、修改等功能,而用户也可以通过这个系统对职工信息进行查询等功能。在日益发展的现代社会,一个高效实用的职工信息管理系统已经是企业必不可少的一个管理工具,它可以使企业在管理方面减少很多时间,本课程设计针对现代社会企业对员工信息的管理而设计, 使员工的管理更加的简捷,更加的方便,界面友好,易于操作。采用的的开发环境是visual stdio 2008.在设计中,我们放弃的传统的面对过程的结构化设计思想,因为面向过程的结构体的或链表的方法存储每个员工的静态属性:编号、姓名、性别、年龄、电话、工资等数据有很多的不方便也有很多的不安全,所以我们采用C++的对象的编程思想来把每个员工的数据封装成一个人员的对象。使得操作的方式更加的合理,安全。也使本组课程设计的成员更加的了解面向对象程序设计的解决问题的思维方式。
正文
一.系统功能分析
该职工管理系统针对员工信息数据的处理设计了以下功能:
1. 添加职工信息
添加员工信息,提供员工信息的添加,在该模块中设计了安全检查机制,即确认是否添加员工的信息,若对员工信息的添加不满意,则可以选择重新输入。还设置有返回主菜单的选项以方便用户。
2. 修改职工信息
修改员工信息设置了员工人数检查,果员工人数NUM的值为0,则返回主菜单。如果员工人数NUM不为0,则进入删除员工信息的界面。修改员工信息板块功能强大,界面友好,用循环控制修改某员工属性,这样使得操作极为方便。
3. 删除职工信息
删除员工信息中设计了对员工人数的检查,如果员工人数NUM的值为0,则返回到主菜单。如果员工人数NUM不为0,则进入删除员工信息的界面。界面包括员工信息列表,和删除选项,方便用户的操作。
4. 员工职工查找
通过find()函数进行查找。该函数比较简单,通过循环一次比较Per[n].num是否与你输入的num是否相等,如果相等,则输入到屏幕上,如果未找到任何匹配的员工,则显示“未找该员工”。
5. 保存职工信息
保存员工的信息,即为将当前所有的员工的信息存入到workerlist.txt中。这里我们采用的是C++的ofstream的写入文件的对象进行控制。
6. 职工信息的排序
对员工信息进行排序,包括按员工编号排序(从小到大),按员工工资进行排序(从高到低)。其中也设置了员工人数检查机制,即:如果员工的人数为0,则直接返回主菜单。
7. 职工信息的显示
对职工信息进行显示,包括职工的工号,姓名,年龄,学历,工资地址,电话等信息。方便对员工了解。
2. 系统总体设计
1,编写要求:
1) 先声明职工人员结构,该结构中包含编号、姓名、出生年月、性别,职称,部门,基本工资等成员变量,并定义人员结构数组;
2) 编写主函数,要求提供一界面,允许工作人员输入、修改和删除员工信息;
3) 将员工信息分别按编号由小到大、基本工资由大到小的顺序进行显示,要求采用不同的排序算法;
4) 给出某员工编号,可对该员工信息进行查找,若找到,显示相应信息,否则显示“该员工不存在”,要求用顺序查找和二分查找法进行查找;
5) 将所有职工信息保存在磁盘上。
界面:
**********************************************
* 员工管理系统 *
* ------------------------------- *
* 1. 职工信息输入 *
* 2. 职工信息修改 *
* 3. 职工信息删除 *
* 4. 职工信息查找 *
* 5. 职工信息保存 *
* 6. 职工工资排行 *
* 7. 职工信息显示 *
* 0. 退出 *
**********************************************
2,编写目的:
完成题目所要求的全部功能,并加入本组自己的设计风格,在界面友好的基础上,增加一些附加功能,使得功能更为强大,最终得到一个可靠性高,易于操作的职工信息管理的系统。
3,功能划分
该系统可以按功能进行模块划分,如图
主菜单
添加职工信息
修改职工信息
职工删除信息
职工信息查询
职工信息排序
保存员工信息
Switch()
退出
While()
开始main()
读取数据
系统模块图
其中:
(1) 主菜单模块完成用户命令的接受,此模块也是职工信息管理的入口,用户所要进行的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。
(2) 信息添加模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别,出生年月、学历、职务、工资、住址、电话等。
(3) 信息显示模块完成已录入职工信息的显示。
(4) 信息查询模块完成职工信息的查询,查询时对应有按编号查询和按姓名查询两种方式。
(5) 信息修改模块完成职工信息的修改功能。
(6) 信息删除功能模块完成职工信息的删除功能。
(7) 信息排序模块完成对职工信息的排序,排序内容包括工号,工资等。
(8) 信息保存模块完成对职工信息的保存。
4.数据结构
本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理。
5.程序流程
系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如图所示:
开始
菜单选择
输入?
浏览?
查询?
修改?
否
否
删除?
信息输入
信息浏览
信息查询
信息修改
信息删除
是
是
是
是
是
结束
否
否
否
UML图
Class
_cout:string
_num:string
_workerlist:string
+add:void
+dele:void
+modify:void
+save:void
+search:void
+showworker:void
+sort:void
+workerlist:void
3. 详细设计(编码实现)
小组模块分工(本人负责:职工信息修改模块与保存模块)
void WorkerList::modify()//职工信息修改函数实现
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<>num1;
int j=0,k;
int flag=1;
while(flag)
{
for(;j>num1;
}
}
cout<<"你选择的职工的信息为:"<>i3;
while(i3<0||i3>8)
{
cout<<"输入有误,请重新输入:"<>i3;
}
switch(i3)
{
case 1:
cout<<"请输入新的职工工号:";
cin>>w[k].num;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].name;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].sex;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].edu;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].age;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].salary;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].address;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].tel;
cout<<"修改信息已保存,现返回主菜单:"<
#include"string"
#include
#include
#include
#define N 100//N作为最大职工总数
int f=0;//f作为开关
using namespace std;
string p;//p作为接收菜单选项的字符串
void menu();//显示菜单
class worker
{
public:
worker(){}
void show();//职工信息显示
~worker(){}
friend class WorkerList;
private:
string num,name,sex,edu,address,tel;
int age,salary;
};
class WorkerList
{
private:
worker w[N];
int NUM;//用来计算职工数目
int count;//用来暂时记录当前操作第几个职工
public:
void add();//职工信息录入
void sort();//职工信息排序
void search();//职工信息查找
void dele();//职工信息删除
void modify();//职工信息修改
void save();//职工信息以文件形式保存
void showworker();//显示职工信息在屏幕上
WorkerList(){
NUM=0;
count=0;
}
};
void menu()
{
cout<>i1;
while(!(i1>=0&&i1<=7))
{
cout<<"输入有误,请重新输入:"<>i1;
}
switch(i1)
{
case 1:
wl.add();break;
case 2:
wl.modify();break;
case 3:
wl.dele();break;
case 4:
wl.sort();break;
case 5:
wl.search();break;
case 7:
wl.save();break;
case 6:
wl.showworker();break;
case 0:
cout<<"系统退出!!"<>p;
if(p=="n"||p=="N")
{ cout<<"系统退出!!"<>num;
for(int i=0;i>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;
count=NUM;
}
void worker::show()//显示职工信息函数实现
{
cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"<>num1;
int j=0,k;
int flag=1;
while(flag)
{
for(;j>num1;
}
}
cout<<"你选择的职工的信息为:"<>i3;
while(i3<0||i3>8)
{
cout<<"输入有误,请重新输入:"<>i3;
}
switch(i3)
{
case 1:
cout<<"请输入新的职工工号:";
cin>>w[k].num;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].name;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].sex;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].edu;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].age;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].salary;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].address;
cout<<"修改信息已保存,现返回主菜单:"<>w[k].tel;
cout<<"修改信息已保存,现返回主菜单:"<>p;
while(1)
{
if(p=="y"||p=="Y")
{
menu();
}
else if(p=="n"||p=="N")
{
cout<<"系统退出!!"<>p;
}
}*/
}
void WorkerList::search()
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<>i4;
while(i4<0||i4>4)
{
cout<<"输入有误,请重新输入:"<>i4;
}
if(i4==1)
{
string num2;
cout<<"请输入要查询的职工的工号:"<>num2;
int j=0,k;
int flag=1;
while(flag)
{
for(;j>name2;
int j2=0,k2;
int flag2=1;
while(flag2)
{
for(;j2>salary2;
int j3=0,k3;
int flag3=1;
while(flag3)
{
for(;j3>edu2;
int j4=0,k4;
int flag4=1;
while(flag4)
{
for(;j4>i5;
while(i5<0||i5>6)
{
cout<<"输入有误,请重新输入:"<>i5;
}
if(i5==1)
{
for(int i=0;iw[j+1].num)
{
string temp;
temp=w[j].num;
w[j].num=w[j+1].num;
w[j+1].num=temp;
}
cout<<"按工号升序后的信息如下:"<w[j+1].name)
{
string temp;
temp=w[j].name;
w[j].name=w[j+1].name;
w[j+1].name=temp;
}
cout<<"按姓名升序后
- 内容简介:
-
-
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。