C++人事管理系统设计程序
《C++语言程序设计》课程设计(论文)
目: 人事管理系统
院(系): 软 件 学 院
专业班级:
学 号:
学生姓名:
指导教师:
教师职称:
起止时间:
课程设计(论文)任务及评语
院(系):软件学院 教研室:软件教研室
学 号 学生姓名 专业班级
课程设计
(论文)人事管理系统
题目
(1).掌握面向对象程序设计语言C++的基本语法
(2).掌握C++面向对象设计的思想
(3).掌握VC++6.0与DEV C++ 开发工具的使用
(4). 运用
C++规范设计应用程序 课 程 设
设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完计
)
成上述内容,规范完整地撰写出设计
。 论
文
)
任
务
指 导
教
师 评 语
及
成 绩 成绩: 指导教师签字:
年 月 日
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
目 录
第1章 课程设计目的与要求 ............................................ 1
1.1 课程设计目的 ........................................................ 1
1.2 课程设计的实验环境 .................................................. 1
1.3 课程设计的预备知识 .................................................. 1
1.4 课程设计要求 ........................................................ 1 第2章 课程设计内容 ................................................... 2
2.1 C++语言程序设计------《人事管理系统》问题分析 ....................... 2
2.1.1 功能分析 ...................................................... 2
2.2 算法设计及程序设计中技术重点 ........................................ 3
2.2.1程序运行平台 .................................................. 3
2.2.2模块分析 ...................................................... 3
2.2.3程序类说明 .................................................... 3
2.2.4比较有特色的函数 .............................................. 5
2.2.5存在的不足与对策 .............................................. 6
2.3程序中涉及的类的UML类图和主要函数流程图或框图。 .................... 7
2.3.1UML类图 ....................................................... 7
2.3 程序源代码 .......................................................... 9 第3章 课程设计总结 .................................................. 21 参考文献 ................................................................. 22
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第1章 课程设计目的与要求
1.1 课程设计目的
将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:
(1)进一步巩固、加深学生所学专业课程《C++语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握面向对象程序设计的方法。
语言的基本语法,灵活运用各种数据类型。 (6)熟练掌握C++
(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察
达式,分块调试)和修改程序。
1.2 课程设计的实验环境
硬件要求能运行Windows 操作系统的微机系统。C++语言应用程序开发软件使用:VC++ 系统,或其他C++语言应用程序开发软件。
1.3 课程设计的预备知识
熟悉C++语言程序设计的基本知识及VC++编辑器的使用方法。
1.4 课程设计要求
1. 仔细分析设计题目,画出程序流程图,编写程序源代码。
2. 积极上机调试源程序,增强编程技巧与调程能力。
3. 认真书写课程设计预习报告,课程设计说明书。
4. 遵守课程设计要求和机房#管理
#,服从指导教师的安排,确保课程设计的顺利完
成课程设计内容
1
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第2章 课程设计内容
2.1 C++语言程序设计------《人事管理系统》问题分析
在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。某小型企业出与这种目的制作了这个人事管理系统, 在企业管理中,人事管理无疑也是最核心的部分。人事管理系统可以及时准确得对员工信息进行记录,可分类或在同一界面查看员工在企业工作期间的所有信息(包括各类基本信息,如姓名、年龄、联系方式、员工照等,以及记录员工的教育培训经历、家庭情况等其他信息);可根据企业实际需要自定义员工档案项目;跟踪管理员工从进入企业到离职全过程的历史记录,包括薪资变动、职位变动、奖惩情况等;可挂接与员工相关的各类文档,如Word 文件, Excel文件,扫描文件等;提供多种不同形式的员工信息报表;强大的排序,过滤,定位查询等功能,能快速方便地从众多数据中定位到所需的信息。
机关和事业单位现在存在着诸多的人事管理方面问题,可以通过开发一个基于J2SE架构的人事管理系统。使用计算机对人事信息进行管理;具有着手工管理所无法比拟的优点‘例如:检索迅速,查找方便,可靠性高,存储量大,保密性好等。 2.1.1 功能分析
1、添加功能:
添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务。
2、删除功能:
能够对一个职员的信息进行删除按姓名进行删除。
3、除全部职员信息:
能够对于全部职员的信息进行删除~
4、显示功能:
显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日。 5、查找功能:
根据你键入的职员姓名,显示其详细信息~
2
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
6、修改功能:
对职员的信息进行修改。
2.2 算法设计及程序设计中技术重点
2.2.1程序运行平台
BC30。具体操作如下:
首先进入bc,打开原代码person.cpp,然后进入原程序,接着选择Options下的Linker,选择Libraries,弹出一个对话框,再选择Graphics library,然后确认即可~
2.2.2模块分析
1. 添加模块
系统将提示用户输入新添加的职员的信息,插入在链表中
2. 显示模块
显示模块将输出所有职员的主要资料 。
3. 修改模块
首先由用户输入要修改的职员的姓名,然后系统用修改函数查找,显示该名职员的资料,然后系统提示用户输入需要修改的项目和新的资料。
4. 查找模块
首先由用户输入要查找的职员姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的职员资料。
5. 删除模块
首先由用户输入要删除的单个职员姓名,然后调用删除函数,删除该名职员的资料。 6. 清空模块
系统将会把所有职员的资料全部删除,将链表清空。
2.2.3程序类说明
3
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
, Date类的声明
class Date
{
public:
Date(); //Date类的构造函数
void set(); //Date类的设置函数
friend istream & operator >>(istream &in,Date &da); //重载“》”
friend ostream & operator <<(ostream &out,Date d); //重载“《
void operator =(Date d); 重载“=”
private:
int year; //年
int month; //月
int day; //日
};
, people类的声明
class people
{
public:
people(); //people类的构造函数
friend ostream & operator <<(ostream &out,people p); //重载“〈〈”
friend istream & operator >>(istream &in,people &p); //重载“〈〈”
void operator =(people p); //重载“=”
void set(); //people类的设置函数
char *getname(); //获得姓名
char *getsex(); //获得性别
char *getid(); //获得id
char *gettelephone(); //获得电话号码
Date getbirthday(); //获得生日
char *getnumber(); //获得工作证号
void setname(char *); //设置姓名
void setsex(char *); //设置性别
void setid(char *); //设置id
void setnumber(char *); //设置工作证号
void setaddress(char *); //设置家庭地址
void settelephone(char *); //设置电话号码
void setbirthday(Date); //设置出生日期
void setsalary(char *); //设置薪水
void setpost(char *); //设置职务
void setdepartment(char *); //设置工作部门 protected:
char name[20]; //姓名
char sex[5]; //性别
char id[20]; //身份证号
4
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
char telephone[10]; //电话号码
Date birthday; //出生日期
char number[20]; //工作证号
char address[100]; //家庭地址
char salary[10]; //薪水
char post[20]; //职务
char department[30]; //工作部门 public:
people *next; //下一个节点
people *previous; //上一个节点
};
cclass peoplelist:public people
{
public:
peoplelist(); //peoplelist类的构造函数
void set(); //peoplelist类的设置函数
void add(); //添加函数
void display(); //显示函数
void find(); //查找函数
void deleteAll(); //清空函数
void save(); //写入文件
void load(); //读进内存
void modify(); //修改函数
void remove(); //删除函数 private:
people *start; //链表头
people *end; //链表尾
};
2.2.4比较有特色的函数
void peoplelist::remove()
{
textmode(C80);
textbackground(BLUE);
clrscr();
gotoxy(10,10);
cout<<"please input the name of the studnet you want to remove:";
char n[20];
cin>>n;
clrscr();
people *temp;
temp=start;
5
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
while(temp)
{
if(strcmp(temp->getname(),n)==0)
break;
}
if(temp==NULL)
{
gotoxy(20,10);
cout<<"the student name dosenot exist!"<
previous)//删除的节点不是第一个
{
temp->previous->next=temp->next;
if(temp->next)//删除的节点不是最后一个
temp->next->previous=temp->previous;
else
end=temp->previous;
}
else//删除的节点是第一个
{
if(temp->next)//删除的节点不是最后一个
{
temp->next->previous=NULL;
start=temp->next;
}
else
start=end=NULL;//删除节点是最后一个,链表只有一个节点
}
gotoxy(30,10);
cout<<"remove succeed!"<>(istream &in,Date &da);
friend ostream & operator <<(ostream &out,Date d);
void operator =(Date d);
private:
int year;
int month;
int day;
};
///////////////////////////////////////////
Date::Date()
{
year=month=day=0;
}
/////////////////////////////////////////////////////
istream & operator >>(istream &in,Date &da)
{
A:
int y,m,d;
in>>y>>m>>d;
if(y>2002)
{
cout<<"error!"<12||m<1)
{
cout<<"error!"<daysmonth[m]||d<1)
{
cout<<"error!"<29)
{
cout<<"error!"<28)
{
15
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
cout<<"error!"<>(istream &in,people &p);
void operator =(people p);
void set();
void change();
char *getname();
char *getsex();
char *getid();
char *gettelephone();
Date getbirthday();
char *getnumber();
void setname(char *);
16
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
void setsex(char *);
void setid(char *);
void setnumber(char *);
void setaddress(char *);
void settelephone(char *);
void setbirthday(Date);
void setsalary(char *);
void setpost(char *);
void setdepartment(char *); protected:
char name[20];
char sex[5];
char id[20];
char telephone[10];
Date birthday;
char number[20];
char address[100];
char salary[10];
char post[20];
char department[30];
public:
people *next;
people *previous;
};
///////////////////////////// void people::setdepartment(char *d) {
strcpy(department,d); }
////////////////////////////// void people::setpost(char *p) {
strcpy(post,p);
}
void people::setsalary(char *s) {
strcpy(salary,s);
}
////////////////////////////// void people::setname(char *n) {
strcpy(name,n);
}
17
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) ////////////////////////////// void people::setsex(char *s) {
strcpy(sex,s);
}
////////////////////////////
void people::setid(char *i){
strcpy(id,i);
}
/////////////////////////////// void people::setnumber(char *n) {
strcmp(number,n);
}
////////////////////////////////// void people::setaddress(char *a) {
strcpy(address,a);
}
/////////////////////////////////// void people::settelephone(char *t) {
strcpy(telephone,t);
}
/////////////////////////////////// void people::setbirthday(Date d) {
birthday=d;
MENU:
graphdriver=VGA;
graphmode=VGAHI;
initgraph(&graphdriver,&graphmode,"d:\\bc\\bgi");
cleardevice();
size=imagesize(0,0,90,22); if(size!=1)
buf=malloc(size);
setfillstyle(1,YELLOW);
bar(0,0,90,22);
getimage(0,0,90,22,buf);
setfillstyle(1,BLACK);
bar(0,0,91,23);
18
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) setcolor(YELLOW);
rectangle(0,0,639,479);
setfillstyle(1,BLUE);
rectangle(542,20,635,89); bar(543,21,634,88);
setcolor(YELLOW);
for(int k=0;k