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

上传人:b****7 文档编号:11395120 上传时间:2023-02-28 格式:DOCX 页数:34 大小:88.41KB
下载 相关 举报
人员信息管理系统课程设计.docx_第1页
第1页 / 共34页
人员信息管理系统课程设计.docx_第2页
第2页 / 共34页
人员信息管理系统课程设计.docx_第3页
第3页 / 共34页
人员信息管理系统课程设计.docx_第4页
第4页 / 共34页
人员信息管理系统课程设计.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

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

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

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

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

课程设计报告

 

课程:

人员信息管理系统

学号:

姓名:

班级:

教师:

徐州师范大学

计算机科学与技术学院

 

《课程设计指导书》

一、课程设计的目的

(1)熟练掌握C++语言的基本知识和技能;

(2)掌握面向对象程序设计的基本思路和方法;

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

(4)制作“人员信息管理系统”。

二、设计名称:

人员信息管理系统

三、设计要求

(1)建立人员信息数据,包括编号、姓名、性别、出生时间、岗位(部门)、参加工作时间和年龄(必须通过计算得到)等等其他信息;

(2)根据人员信息表,建立只含有姓名和年龄的信息简表(可选功能);

(3)使用继承的方法构造3个类,(即人员类——虚基类,教师类和学生类——派生类)使用相应的对象放置10个人员信息;

(4)编写同名display()成员函数,用来输出数组的内容;

(5)按不同类别输出人员信息,比如按系输出教师信息(可选功能);

(6)要求对“<<”和“>>”运算符进行重载。

考虑到输入人员编号时,也会因不小心引入空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求;

(7)抽取并计算人员的平均年龄;

(8)检索(查找)指定信息(如按姓名检索、按年龄检索);

(9)显示年龄分布的图形;

参考系统界面如下:

1-增加一位人员(教师、学生)记录

2-显示全部人员记录

3-计算人员平均年龄

4-删除一个人员记录

5-按岗位(部门)输出人员信息(可选)

6-按姓名检索所有信息

7-结束程序运行

四、设计过程

(1)分析题目

(2)建立Time,people类,以及People类的两个继承类Teacher,Student类

(3)定义People类的成员函数:

People();//构造函数,默认现今是2011年

virtualvoidAdd1()=0;//从文件录入

virtualvoidAdd2()=0;//从键盘录入

virtualvoidAdd()=0;//添加人员

virtualvoidDisplay();//显示人员信息

virtualvoidDisplaypart(charp[]);//按部门输出

virtualvoidcheckname(charn[]);//按姓名检索

virtualvoidcheckyear(int);//按年龄检索

virtualintaverage();//计算平均年龄

virtualvoidDel(charn[])=0;//按姓名删除

virtualvoidDel(int);//按位置删除

(4)建立main函数

(5)优化界面

五、设计细则

(1)将具体日期year,month,day成员数据定义为Time类的公有成员。

(2)类外分别实现各个类的具体实现,将People类定义为Teacher,Student类的虚基类。

(3)设计main()函数。

定义类的对象Teacherteacher1,Studentstudent1,用case语句选择对类对象的相关操作。

(4)定义People类的两个指针进行各自的操作。

六、说明

在选择类对象操作编号时,如果输入的字符不合法,跳出并再次输入,直至输入合法。

课程设计任务书

姓名

学号

班级

10计71

课题组

成员

姓名

分数

性别

班级

在本项目中的分工

赵轲

90

10计71

People类,两个继承类、main()函数,优化程序

王文闻

85

10计71

成员函数的具体实现的实现,实现多文件操作

管昌举

85

10计71

Time类的实现,界面优化

课程名称

人员信息管理系统

课程性质

综合性

设计时间

2011年09月01日——2011年09月14日

设计名称

人员信息管理系统

设计要求

(1)建立人员信息数据,包括编号、姓名、性别、出生时间、岗位(部门)、参加工作时间和年龄(必须通过计算得到)等等其他信息;

(2)根据人员信息表,建立只含有姓名和年龄的信息简表(可选功能);

(3)使用继承的方法构造3个类,(即人员类——虚基类,教师类和学生类——派生类)使用相应的对象放置10个人员信息;

(4)编写同名display()成员函数,用来输出数组的内容;

(5)按不同类别输出人员信息,比如按系输出教师信息(可选功能);

(6)要求对“<<”和“>>”运算符进行重载。

考虑到输入人员编号时,也会因不小心引入空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求;

(7)抽取并计算人员的平均年龄;

(8)检索(查找)指定信息(如按姓名检索、按年龄检索);

(9)显示年龄分布的图形;

参考系统界面如下:

1-增加一位人员(教师、学生)记录

2-显示全部人员记录

3-计算人员平均年龄

4-删除一个人员记录

5-按岗位(部门)输出人员信息(可选)

6-按姓名检索所有信息

7-结束程序运行

设计思路

设计过程

(1)分析题目

(2)建立Time,people类,以及People类的两个继承类Teacher,Student类

(3)定义People类的成员函数:

People();//构造函数,默认现今是2011年

virtualvoidAdd1()=0;//从文件录入

virtualvoidAdd2()=0;//从键盘录入

virtualvoidAdd()=0;//添加人员

virtualvoidDisplay();//显示人员信息

virtualvoidDisplaypart(charp[]);//按部门输出

virtualvoidcheckname(charn[]);//按姓名检索

virtualvoidcheckyear(int);//按年龄检索

virtualintaverage();//计算平均年龄

virtualvoidDel(charn[])=0;//按姓名删除

virtualvoidDel(int);//按位置删除

(4)建立main函数

(5)优化界面

计划与进度

计划:

9月1日—9月2日,分析人员信息管理系统的需求并抽象出people,time,及两个继承类;

9月3日,小组成员构想大体思路并明确分工;

9月4日—9月9日,小组各成员完成自己的任务,包括定义类,数据处理方式(9月6日小组成员查看进度);

9月10日,所有程序代码汇总,进行调试与运行,记录存在的问题;

9月11日—9月14日,分析运行结果,查找错误;

9月15日,书写课程设计指导书;

9月16日,上交课程设计相关材料。

进度:

9月1日—9月2日,分析人员信息管理系统的需求并理解其需求;

9月3日—9月4日,小组成员构想大体思路并明确分工;

9月5日—9月11日,小组各成员完成自己的任务,包括定义类,数据处理方式(9月8日小组成员查看进度);

9月12日,所有程序代码汇总,进行调试与运行,记录存在的问题;

9月13日,分析运行结果,查找错误,完善程序,优化界面;

9月14日,书写课程设计指导书;

9月16日,上交课程设计相关材料。

任课教师

意见

说明

设计名称:

人员信息管理系统日期:

2010年9月1日

设计内容:

函数声明与定义

设计目的与要求:

目的:

对C++实例化应用。

要求:

(1)建立人员信息数据,包括编号、姓名、性别、出生时间、岗位(部门)、参加工作时间和年龄(必须通过计算得到)等等其他信息;

(2)根据人员信息表,建立只含有姓名和年龄的信息简表(可选功能);

(3)使用继承的方法构造3个类,(即人员类——虚基类,教师类和学生类——派生类)使用相应的对象放置10个人员信息;

(4)编写同名display()成员函数,用来输出数组的内容;

(5)按不同类别输出人员信息,比如按系输出教师信息(可选功能);

(6)要求对“<<”和“>>”运算符进行重载。

考虑到输入人员编号时,也会因不小心引入空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求;

(7)抽取并计算人员的平均年龄;

(8)检索(查找)指定信息(如按姓名检索、按年龄检索);

(9)显示年龄分布的图形;

参考系统界面如下:

1-增加一位人员(教师、学生)记录

2-显示全部人员记录

3-计算人员平均年龄

4-删除一个人员记录

5-按岗位(部门)输出人员信息(可选)

6-按姓名检索所有信息

7-结束程序运行

设计环境或器材、原理与说明:

设计环境:

VC6.0操作环境

原理:

类的构造与使用

设计过程(步骤)或程序代码:

#include

#include

#include

#include

#definemaxnum2000//可以预设定最大管理人数为2000

fstreamiofile;

//Time类建立,用以记录日期,包括年月日

classTime

{

public:

intyear,month,day;

private:

};

//infor类建立,用以记录人员信息,包括姓名,性别,出生日期,编号,工作岗位,工作时间,年龄等

classinfor

{

public:

intyear;

charname[30];

charsex[10];

charnum[30];

charworkpart[30];

Timebirthtime;

Timeworktime;

friendistream&operator>>(istream&input,infor&T);//运算符重载,>>,只能为友元

friendostream&operator<<(ostream&output,infor&T);//运算符重载,<<

friendintoperator-(Time&t1,Time&t2);//运算符重载,-

private:

};

//People类建立,用以提供各种功能操作,是虚基类

classPeople//虚基类

{

public:

People();//构造函数,默认现今是2011年

virtualvoidAdd1()=0;//读取文件信息

virtualvoidAdd2()=0;//从键盘录入

virtualvoidAdd()=0;//添加人员

virtualvoidDisplay();//显示人员信息

virtualvoidDisplaypart(charp[]);//按部门输出

virtualvoidcheckname(charn[]);//按姓名检索

virtualvoidcheckyear(int);//按年龄检索

virtualintaverage();//计算平均年龄

virtualvoidDel(charn[])=0;//按姓名删除

virtualvoidDel(int);//按位置删除

protected:

infordata[maxnum];

Timenow;

intlength;//记录人员总数

};

//Teacher类建立,公有继承People类

classTeacher:

virtualpublicPeople

{

public:

voidAdd1();

voidAdd2();

voidAdd();

voidDisplay();

voidDel(inti);

voidDel(charn[]);

};

//Student类建立,公有继承People类

classStudent:

virtualpublicPeople

{

public:

voidAdd1();

voidAdd2();

voidAdd();

voidDisplay();

voidDel(inti);

voidDel(charn[]);

};

//People类的具体实现

People:

:

People()//构造函数

{

length=0;

now.year=2011;//默认现今是2011年

now.month=1;

now.day=1;

}

voidPeople:

:

Display()//Display函数

{

inti;

for(i=0;i

cout<

}

voidPeople:

:

Displaypart(charp[])//Displaypart函数

{

inti,c;

for(i=0;i

if(strcmp(data[i].workpart,p)==0)

{

cout<<"请选择输出:

1-姓名2-性别3-编号4-工作岗位5-出生日期6-工作时间7-年龄8-返回"<

while(cin>>c)

{

switch(c)

{

case1:

cout<<"姓名:

"<

case2:

cout<<"性别:

"<

case3:

cout<<"编号:

"<

case4:

cout<<"工作地点:

"<

case5:

cout<<"出生日期:

"<

case6:

cout<<"工作时间:

"<

case7:

cout<<"年龄:

"<

case8:

gotoloop;

default:

cout<<"操作错误!

"<

}

}

loop:

;//返回

}

}

voidPeople:

:

checkname(charn[])//checkname函数

{

inti;

for(i=0;i

if(strcmp(data[i].name,n)==0)

cout<

}

voidPeople:

:

checkyear(intm)//checkyear函数

{

inti;

for(i=0;i

if(data[i].year==m)

cout<

}

//计算平均年龄

intPeople:

:

average()

{

inti,sum=0;

for(i=0;i

sum+=data[i].year;

returnsum/length;

}

//按编号删除人员信息

voidPeople:

:

Del(inti)

{

intj;

if(i<1||i>length)

cout<<"不存在第"<

for(j=i;j

data[j-1]=data[j];

length--;

}

//从文件中读取数据

voidStudent:

:

Add1()

{

iofile.open("Student_information.txt",ios:

:

in|ios:

:

binary);

while(iofile.seekg(ios:

:

cur))

{

iofile.seekg(length*sizeof(data[length]),ios:

:

beg);

iofile.read((char*)&data[length],sizeof(data[length]));

length++;

}

People:

:

Del(length);

cout<<"添加人员信息成功"<

iofile.close();

}

//从键盘录入信息

voidStudent:

:

Add2()

{

charc;

iofile.open("Student_information.txt",ios:

:

out|ios:

:

binary);

do

{

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<"添加人员信息成功"<

length++;

cout<<"contine(Y|N)?

";

cin>>c;

}while('y'==c||'Y'==c);

iofile.close();

}

//添加人员信息

voidStudent:

:

Add()

{

iofile.open("Student_information.txt",ios:

:

app|ios:

:

out|ios:

:

binary);

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<"添加人员信息成功"<

length++;

iofile.close();

}

//显示信息

voidStudent:

:

Display()

{

cout<<"*********************学生信息************************"<

if(length==0)

cout<<"无信息"<

inti;

for(i=0;i

cout<

}

//按姓名删除函数

voidStudent:

:

Del(charn[])

{

inti,j,k;

for(i=0;i

if(strcmp(data[i].name,n)==0)

{

k=i+1;break;

}

if(k<1)

cout<<"不存在姓名"<

for(j=k;j

data[j-1]=data[j];

length--;

cout<<"删除成功"<

}

//按编号删除

voidStudent:

:

Del(inti)

{

intj;

if(i<1||i>length)

cout<<"不存在第"<

for(j=i;j

data[j-1]=data[j];

length--;

cout<<"删除成功"<

}

//读取文件

voidTeacher:

:

Add1()

{

iofile.open("Teacher_information.txt",ios:

:

in|ios:

:

binary);

while(iofile.seekg(sizeof(data[length]),ios:

:

cur))

{

if(iofile.seekg(length*sizeof(data[length]),ios:

:

beg))

iofile.read((char*)&data[length],sizeof(data[length]));

else

break;

length++;

}

People:

:

Del(length);

cout<<"添加人员信息成功"<

iofile.close();

}

//从键盘录入信息

voidTeacher:

:

Add2()

{

charcc;

iofile.open("Teacher_information.txt",ios:

:

in|ios:

:

out|ios:

:

binary);

do

{

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<"添加人员信息成功"<

length++;

cout<<"contine(Y|N)?

";

cin>>cc;

}while('y'==cc||'Y'==cc);

iofile.close();

}

//添加人员信息

voidTeacher:

:

Add()

{

iofile.open("Teacher_information.txt",ios:

:

app|ios:

:

out|ios:

:

binary);

cin>>data[length];

data[length].year=now-data[length].birthtime;

iofile.write((char*)&data[length],sizeof(data[length]));

cout<<"添加人员信息成功"<

length++;

iofile.close();

}

//显示函数

voidTeacher:

:

Display()

{

cout<<"*********************教师信息**************

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

当前位置:首页 > 党团工作 > 其它

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

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