人员信息管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1:系统功能框架设计
三: 系统详细设计
1: 设计思路
使用面向对象的程序设计思想进行分析, 整个系统涉及两大类信息和操作, 公司, 人员。因此系统主要涉及两个大类: 公司类business、 人员类person。系统的总体框架就是公司类, 人员类的定义; 主函数中定义一个公司对象, 循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数)。
在实现程序功能的基础上, 尽量运用所学知识, 改进程序实现方法, 提高程序的可读性、 模块性、 可扩展性、 可重用性和健壮性。
工资计算公式:
经理 : 固定为8000
技术人员: 工作时间*每小时酬金( 100RMB)
销售经理: 1%提成+固定工资( 5000RMB)
推销员 : 4%提成
二: 系统总体设计
4)void show()——显示
用while判断语句打印出所有人员信息。
5)void repair()——修改
利用ofstream h1("f2.txt",ios :: binary|ios :: out);覆盖要修改的人员信息。
6)错误判断
四: 系统源代码
#include<iostream.h>
2:功能模块设计
1)voidwrite()——新增
将向要新增的人员经过文件指令
ofstream myfile("f1.txt",ios :: binary|ios :: ate);
myfile.write((char*)&p,sizeof p);
myfile.close();
将信息自动存入txt文档中。
cout<<"请输入职工的姓名:" ;
cin>>name ;
cout<<"请输入职工的年龄:" ;
cin>>age ;
cout<<"该职工的月薪为:"<<monthpay<<endl;
}
void in()
{
cout<<"编号:"<<number<<' '<<"姓名:"<<name<<' '<<"年龄:"<<age<<' '<<"职称:"<<"经理 "<<' '<<"月薪:"<<monthpay<<endl;
(2)人员类person:所有人员都具有的公共信息及操作能够使用人员类进行描述。由于系统具有4类人员且4类人员数据, 操作有所不同, 如销售员包含销售额, 而兼职技术人员包含工作小时数且计算工资的方法不同, 因此应当为4类人员创立相应的person类的派生类。
(3)为了使公司类能够方便处理人员信息, 能够考虑将公司类确定为人员类的友元类或者人员类提供公共的方法以便公司类进行操作。为了公司类能够用共同方法操作人员类, 能够将人员类的方法确定为虚函数。
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
class person
{
public :
char name[20],post[20],hour[20];
int age,number ;
};
class business :public person
人员信息管理系统
《C++课程设计》
题目:人员信息管理系统
学生姓名:
学号:
专业班级:
同组人员:
指导老师:
设计时间:
指导老师意见:
评定成绩:签名:日期:
C++课程设计实验报告
——人员信息管理系统
一: 系统要求分析
1: 功能需求
(1) 人员信息基本管理, 包括人员信息的录入、 修改和删除;
( 2) 能够自动设置员工的编号, 即每增加一位新员工, 编号增一;
( 3) 能够分别对不同级别的员工( 如经理、 技术人员、 推销人员等) 按照不同的公式计算其工资收入;
( 4) 能够将人员信息保存到磁盘上, 以便程序下次运行时使用;
( 5) 具有一定的排错功能, 如当用户输入错误数据时提示用户;
( 6) 能够实现一定程度的查询和统计功能。
( 7) 其它你能想到并对系统有用的功能。
(1)公司类business:考虑系统操作的人员信息的数量具有不确定性, 因此考虑使用链表保存、 处理人员信息。公司类包含: 所有人员信息的一个不带头结点的链表( 作为数据成员) 及能够对人员信息进行增, 删, 改, 查询经营信息, 基础数据设置, 数据存盘, 数据装入等操作的相关模块(write,build,search,repair,delete,list)作为成员函数。
{
public :
int time ;
}
;
//经理( 一次派生类)
class mgr : public person
{
public:
int monthpay;
mgr :: mgr()
{
monthpay=8000 ;
}
void out()
{
cout<<"请输入职工的编号:" ;
cin>>number ;
{பைடு நூலகம்
cout<<"编号:"<<number<<' '<<"姓名:"<<name<<' '<<"年龄:"<<age<<' '<<"职称:"<<"技术人员"<<' '<<"月薪:"<<pay<<endl ;
}
void out()
{
cout<<"请输入职工的编号:" ;
cin>>number ;
cout<<"请输入职工的名字:" ;
cin>>name ;
cout<<"请输入工作的小时:" ;
cin>>workHours ;
cout<<"请输入职工的年龄:" ;
cin>>age ;
pay=hourlyRate*workHours ;
cout<<"该职工的月薪为:"<<pay<<endl ;
2)void search()——查找
经过读取源文件内容,
再利用判断语句
if(number==p.number)
判断是否输入的序号与存档内容序号相同, 相同则输出。
3)void delete()——删除
先查找出要删除的人员信息,
再经过ofstream file2("f1.txt",ios :: binary|ios :: out);创立空白文件覆盖要删除的人员信息。
}
};
//技术人员
class technician :public person
{
public:
int hourlyRate ;
//每小时酬金
int workHours ;
//当月工作时数
int pay;
technician :: technician()
{
hourlyRate=100 ;
};
virtual void in()
相关文档
最新文档