C大作业职员信息管理系统.docx

上传人:b****9 文档编号:26324165 上传时间:2023-06-17 格式:DOCX 页数:37 大小:50.97KB
下载 相关 举报
C大作业职员信息管理系统.docx_第1页
第1页 / 共37页
C大作业职员信息管理系统.docx_第2页
第2页 / 共37页
C大作业职员信息管理系统.docx_第3页
第3页 / 共37页
C大作业职员信息管理系统.docx_第4页
第4页 / 共37页
C大作业职员信息管理系统.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C大作业职员信息管理系统.docx

《C大作业职员信息管理系统.docx》由会员分享,可在线阅读,更多相关《C大作业职员信息管理系统.docx(37页珍藏版)》请在冰豆网上搜索。

C大作业职员信息管理系统.docx

C大作业职员信息管理系统

(C++项目报告文档)

 C++程序设计

职员信息管理系统

VersionC++6.0

 生命科学与技术学院

生物医学工程专业1004班

指导教师:

彭娅婷

日期:

2011年07月03日

开发团队人员姓名

学号

任务

成绩

刘奔

U201012635

浏览信息模块

Word文档3,4部分 

 

张博

U201012636

信息录入模块,

添加信息模块 

 

李扬

U201012637 

信息排序

Word文档2(2,3,4,5)

张亚伦

U201012638 

修改信息模块,

显示所有信息模块

杨龙 

U201012639 

删除信息模块

Word文档5,6部分

齐中阳

U201012640

查询信息模块

main函数的完成 

 

胡宇

U201012641

保存文档模块

Word文档1,2

(1)部分 

 

 

 

(1)项目目标

(2)系统主要功能概述

(3)可行性分析

(4)项目运行环境

(1)概要设计

(2)详细设计

1)UML图(类的结构和层次)

2)字段说明

(3)项目命名约定

(4)项目分工表

(5)项目进度表

 

1项目(职员信息管理系统)需求分析

1.1项目目标

开发一职员信息管理系统,实现职员信息的录入,修改,查询,删除,保存等功能。

1.2系统主要功能概述

1.添加信息模块:

初始化成员信息,包括职工号,姓名,性别,年龄,学历,工资,住址,电话,给成员排序;

2.删除信息模块:

删除某位员工信息数据;

3.修改信息模块:

依据职工的序号修改某位员工的信息;

4.信息查询模块:

依据职员的序号查询某位职员的信息;

5.信息浏览模块:

浏览当前所有职员信息;

6:

信息排序模块:

依据职工号,姓名,薪酬为职工排序;

7:

保存信息模块:

将所录信息存入文档。

1.3可行性分析

1.1.系统可行性:

1:

硬件支持:

电脑(笔记本电脑,台式电脑)可以运行程序;

2:

软件支持:

Windows,VC++6.0作为程序运行平台

2.2.技术可行性:

依据本学期学习C++知识,运用面向对象设计,团队成员协作完成。

3.3.使用可行性

采用简单的GUI界面,用户经过短期培训即可方便使用系统。

1.4项目运行环境

CPU

奔腾Ⅳ1.4G或以上

内存

512M或以上

硬盘

80GB或以上

服务器端OS

Windows2000/NT/Server

客户端OS

Windows2000/XP

网络配置

局域网

2项目(职员信息管理系统)设计

2.1概要设计:

建立Employee类,List类,依据要求设计一个主函数,构造函数,析构函数,以及10个功能函数,分别为:

(1)InfoInput;//实现信息录入(有重载)

(2)InfoScan;//用于浏览信息

(3)InfoQuery;//查询信息

(4)InfoSort;//信息排序

(5)InfoSwap

(6)InfoDelete;//删除信息

(7)InfoModify;//修改信息

(8)InfoAdd;//添加信息

(9)showall;//显示所有信息

(10)SaveFile();//保存文档

2.2详细设计

UML图

List

私有成员变量

 num;

employee*phead;

 

 

 

 

 

 

 

 

 

Employee

私有成员变量:

num;name;sex;

age;edu;salary;

address;tele;

ordernum;

公有成员函数

employee();

Show();

Show1.

 

List

公有成员函数

List()

{

phead=newemployee;

num=0;

}

voidInfoInput(char*n,char*name,char*sex,intage,char*edu,floatsal,char*addres,char*tele);//信息录入

voidInfoInput();//信息录入函数重载

voidInfoScan();//浏览信息

voidInfoQuery();//查询信息

voidInfoSort();//信息排序

voidInfoSwap(employee*p,employee*q);

voidInfoDelete();//删除信息

voidInfoModify();//修改信息

voidInfoAdd();//添加信息

voidshowall();//显示所有信息

voidSaveFile();//保存为文件

~List();//析构函数

2.3项目命名约定

类名:

大写字母开头如:

Employee,List

类属性:

采用匈牙利命名法(即第一个字母小写并表明数据类型)如:

void,char,int,float,

类方法:

每个单词均为大写字母开头如:

InfoInput();InfoScan();InfoQuery();InfoSort();InfoSwap();InfoDelete();InfoModify();InfoAdd();showall();SaveFile();

变量:

采用匈牙利命名法(即第一个字母小写并表明数据类型)如:

char*num;char*name;char*sex;intage;char*edu;floatsalary;char*addres;

char*tele;intordernum;intnum;

 

2.4项目分工表

姓名

分配任务/完成的功能模块

备注

刘奔

浏览信息模块

Word文档3,4部分

张博

信息录入模块,

添加信息模块

李扬

信息排序

Word文档2(2,3,4,5)

张亚伦

修改信息模块,

显示所有信息模块

 杨龙

删除信息模块

Word文档5,6部分

 

齐中阳

查询信息模块

main函数的完成

 

 胡宇

保存文档模块

Word文档1,2

(1)部分

 

2.5项目进度表

第18周

项目讨论以及做项目需求分析

第18周

项目概要设计,确定分工

第19周

项目详细设计,编写文档初稿、创建数据

第19周

开发功能模块

第19周

开发模块功能,测试模块功能并修改

第19周

整体测试并修改

第20周

形成项目文档,项目检查,文档检查

3项目(职员信息管理系统)功能介绍

1.添加信息模块:

初始化成员信息,包括职工号,姓名,性别,年龄,学历,工资,住址,电话,给成员排序;

2.删除信息模块:

删除某位员工信息数据;

3.修改信息模块:

依据职工的序号修改某位员工的信息;

4.信息查询模块:

依据职员的序号查询某位职员的信息;

5.信息浏览模块:

浏览当前所有职员信息;

6:

信息排序模块:

依据职工号,姓名,薪酬为职工排序;

7:

保存信息模块:

将所录信息存入文档。

4项目(职员信息管理系统)功能测试

测试内容

预计

实际

改善情况

当前信息浏览测试

 会出现所有职员信息

 如预计

 

信息录入测试

依照提示录入职员信息 

如预计 

 

查询测试

 按职工号查询

按编号查询 

 按编号查询,无改动

排序测试

按编号排序

如预计

删除测试

删除职员信息

如预计

修改测试

改动后信息可存档

如预计

新添成员测试

增添新成员

如预计

保存文件测试

文件可正常保存

如预计

退出测试

 正常退出程序

 如预计

 

5项目使用说明

将程序正常编译后,按操作提示正常执行;如:

当前信息浏览输入2,按回车键即可;操作简单,容易掌握,

注意:

修改信息后,执行操作8,将修改后信息存档。

6项目(系统)总结

(写出项目实施过程中碰到的问题,如何解决的问题,有何收获等)

本次C++实验操作难度大,小组成员分配任务后花费很长时间,看课本,上网查询资料后,才能正常完成自己所负责模块操作,且程序编写“巡查模块”未如预期,后期改动较大;

通过本次试验,团队成员意识到互相团结协作,交流信息的重要性,且认识到自身存在的不足,以后还需多加努力

附录1程序源代码

#include

#include

#include

#include

#include

/*************************employee职工类************************/

classemployee

{

public:

char*num;

char*name;

char*sex;

intage;

char*edu;

floatsalary;

char*addres;

char*tele;

intordernum;

employee*next;

public:

employee()

{

name=NULL;

num=NULL;

sex=NULL;

edu=NULL;

salary=0.0;

addres=NULL;

tele=NULL;

ordernum=0;

next=NULL;

}

voidshow()

{

cout<

}

voidshow1()

{

cout<<"序号:

"<

"<

"<

"<

"<

"<

"<

"<

"<

}

 

};

/****************************List职工列表类************************/

classList

{

private:

intnum;

employee*phead;

public:

List()

{

phead=newemployee;

num=0;

}

voidInfoInput(char*n,char*name,char*sex,intage,char*edu,floatsal,char*addres,char*tele);//信息录入

voidInfoInput();//信息录入函数重载

voidInfoScan();//浏览信息

voidInfoQuery();//查询信息

voidInfoSort();//信息排序

voidInfoSwap(employee*p,employee*q);

voidInfoDelete();//删除信息

voidInfoModify();//修改信息

voidInfoAdd();//添加信息

voidshowall();//显示所有信息

voidSaveFile();//保存为文件

~List();//析构函数

};

/*********************InfoInput信息输入************************/

voidList:

:

InfoInput(char*n,char*name,char*sex,intage,char*edu,floatsal,char*addres,char*tele)

{

employee*p=newemployee;

employee*q=phead;

p->num=newchar[strlen(n)+1];

p->name=newchar[strlen(name)+1];

p->sex=newchar[strlen(sex)+1];

p->edu=newchar[strlen(edu)+1];

p->addres=newchar[strlen(addres)+1];

p->tele=newchar[strlen(tele)+1];

strcpy(p->num,n);

strcpy(p->name,name);

strcpy(p->sex,sex);

strcpy(p->edu,edu);

strcpy(p->addres,addres);

strcpy(p->tele,tele);

p->salary=sal;

p->age=age;

num++;

p->ordernum=num;

for(;q->next!

=NULL;q=q->next);

q->next=p;

}

 

/*********************重载InfoInput信息输入************************/

voidList:

:

InfoInput()

{

employee*p=phead;

intnumber;

charnum[20];

charname[10];

charsex[4];

intsexnum;

intage;

charedu[10];

floatsal;

charaddres[50];

chartele[20];

cout<<"请录入信息:

"<

cout<<"输入要添加的职工人数:

";

cin>>number;

for(inti=0;i

{

cout<<"\n输入第"<

cout<<"\n请输入职工号:

";

cin>>num;

intflag;

while

(1)

{

flag=0;

for(p=phead->next;p;p=p->next)

if(strcmp(num,p->num)==0){flag=1;break;}

if(flag==1)

{cout<<"该职工号已存在,请输入其它职工号:

";

cin>>num;

}

elsebreak;

}

cout<<"\n请输入职工姓名:

";

cin>>name;

cout<<"\n请输入职工性别(1、男2、女):

";

do{cin>>sexnum;

if(sexnum==1)strcpy(sex,"男");

elseif(sexnum==2)strcpy(sex,"女");

elsecout<<"\n输入有误,重新输入:

";

}

while(sexnum!

=1&&sexnum!

=2);

cout<<"\n请输入职工年龄(数字):

";

do{

cin>>age;

if(age<0||age>130)cout<<"年龄输入有误,重新输入:

";

}while(age<0||age>130);

cout<<"\n请输入职工学历:

";

cin>>edu;

cout<<"\n请输入职工工资(数字):

";

cin>>sal;

cout<<"\n请输入职工住址:

";

cin>>addres;

cout<<"\n请输入职工电话:

";

cin>>tele;

InfoInput(num,name,sex,age,edu,sal,addres,tele);

}

showall();

}

/**********************InfoScan信息浏览************************/

voidList:

:

InfoScan()

{

showall();

}

/*********************InfoQuery信息查询***********************/

voidList:

:

InfoQuery()

{

employee*p=phead->next;

cout<<"输入查询职工的序号:

"<

intorder;

cin>>order;

while(order>num)

{

cout<<"此人不存在,请在1-"<

";

cin>>order;

}

for(inti=0;i

{

if(p->ordernum==order)

{

p->show1();

break;

}

p=p->next;

}

}

/*******************InfoSwap交换信息函数***************************/

voidList:

:

InfoSwap(employee*p,employee*q)

{

employeetemp;

temp.num=p->num;

p->num=q->num;

q->num=temp.num;

temp.name=p->name;

p->name=q->name;

q->name=temp.name;

temp.sex=p->sex;

p->sex=q->sex;

q->sex=temp.sex;

temp.age=p->age;

p->age=q->age;

q->age=temp.age;

temp.edu=p->edu;

p->edu=q->edu;

q->edu=temp.edu;

temp.salary=p->salary;

p->salary=q->salary;

q->salary=temp.salary;

temp.addres=p->addres;

p->addres=q->addres;

q->addres=temp.addres;

temp.tele=p->tele;

p->tele=q->tele;

q->tele=temp.tele;

}

/*************************InfoSort排序*************************/

voidList:

:

InfoSort()

{

employee*p;

employee*q;

cout<<"---排序方式:

------------------------"<

cout<<"|*1.按职工号升序排列*|"<

cout<<"|*2.按姓名升序排列*|"<

cout<<"|*3.按职工薪酬升序排列*|"<

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

intsortway;

cin>>sortway;

switch(sortway)

{

case1:

{

for(inti=0;i

for(p=phead->next,q=p->next;q;q=q->next,p=p->next)

{

if(strlen(p->num)>strlen(q->num))

InfoSwap(p,q);

}

cout<

showall();

};break;

case2:

{

for(inti=0;i

for(p=phead->next,q=p->next;q;q=q->next,p=p->next)

{

if(strcmp(p->name,q->name)>0)

InfoSwap(p,q);

}

cout<

showall();

};break;

case3:

{

for(inti=0;i

for(p=phead->next,q=p->next;q;q=q->next,p=p->next)

{

if(p->salary>q->salary)

InfoSwap(p,q);

}

cout<

showall();

};break;

}

}

/***********************InfoDelete删除信息************************/

voidList:

:

InfoDelete()

{

employee*p=phead->next;

employee*q=phead;

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

";

intordernum;

do{

cin>>ordernum;

if(ordernum>num||ordernum<=0)cout<<"输入有误!

请重新输入1-"<

";

}while(ordernum>num||ordernum<=0);

while(p->ordernum!

=ordernum)

{

p=p->next;

q=q->next;

}

cout<name<<"吗?

(y/n)"<

charsure;

cin>>sure;

if(sure=='y')

{

q->next=p->next;

delete[]p->name;

delete[]p->num;

delete[]p->sex;

delete[]p->edu;

delete[]p->addres;

delete[]p->tele;

deletep;

p=NULL;

num--;

employee*f=phead->next;

for(inti=0;i

{

f->ordernum=i

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

当前位置:首页 > 解决方案 > 商业计划

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

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