C公司人员信息管理系统课程设计报告

合集下载

C课程设计报告公司人员管理系统

C课程设计报告公司人员管理系统

C课程设计报告公司人员管理系统Company number【1089WT-1898YT-1W8CB-9UUT-92108】内蒙古科技大学《面向对象程序设计》课程设计报告设计题目:公司人员管理系统学院:信息学院专业:电子信息工程班级:xxxxx班学号:xxxxxxxxxx学生姓名: xxxxxxxxx指导教师:余金林2011.6内蒙古科技大学课程设计任务书一、教学要求1. 巩固和加深学生对C++语言课程的基本知识的理解和掌握2. 掌握C++语言编程和程序调试的基本技能3. 利用C++语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C++语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,可根据设计内容适当修改题目名称。

公司人员管理系统定义人员基类,并派生出兼职技术人员类、经理类、部门管理人员类并在类中声明各自的成员函数;要求至少设计以下各功能模块:输入记录查询功能计算工资显示信息三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。

3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

六、建议参考资料1.《C++面向对象程序设计》,吴敏、杨国林主编,内蒙古大学出版社2.《C++语言程序设计(第三版)》,郑莉,清华大学出版社目录一.摘要——————————————二.需求分析————————————三.概要设计————————————四.详细设计———————————五.总结——————————————六.参考文献————————————一.摘要C++简介:Stroustrup工作起于1979年的C with Classes。

C++公司人员信息管理系统-课程设计报告

C++公司人员信息管理系统-课程设计报告

目录1 系统需求分析 (1)2 总体设计 (2) (92)图3.13 经理信息修改界面 (92)5 结论 (94)6 心得体会 (95)1. 谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2014. (96)2. S.B.Lippman,Joie.C++ Primer(中文版)[M].4版.李师贤,译.北京:电子工业出版社,2007. (96)1 系统需求分析1.1系统设计的目的与意义:现在的公司人员数量及职位种类较多,各样的人事管理活动也比较频繁,因此需要设计一个公司人员信息管理系统来对公司员工信息进行管理。

1.2 系统功能需求:本系统有五个类:基类:employee、派生类:manager、technician、salesman、salesmanager,储存经理、技术人员、销售人员、销售经理信息。

(1)添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。

(2)查询功能可根据编号、姓名等信息对已添加的记录进行查询。

如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能可显示当前系统中所有记录。

(4)修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能对已添加的人员记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。

(6)统计功能能根据多种参数进行人员的统计。

例如:统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。

(7)保存功能将当前系统中各类人员记录存入文件中。

(8)读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。

2 总体设计2.1 系统功能分析:系统通过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、以及数据读取保存文件等功能。

C++公司管理系统人员信息管理系统-课程设计报告材料

C++公司管理系统人员信息管理系统-课程设计报告材料

目录1 系统需求分析 (3)2 总体设计 (4)3 详细设计及实现 (7)4 系统调试 (69)5 结论 (73)6心得体会 (74)7参考书目 (75)1 系统需求分析1.1系统设计的目的与意义:现在的公司人员数量及职位种类较多,各样的人事管理活动也比较频繁,因此需要设计一个公司人员信息管理系统来对公司员工信息进行管理。

1.2系统功能需求:本系统有五个类:基类:employee、派生类:manager、technician、salesman、salesmanager,储存经理、技术人员、销售人员、销售经理信息。

(1)添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。

(2)查询功能可根据编号、等信息对已添加的记录进行查询。

如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能可显示当前系统中所有记录。

(4)修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能对已添加的人员记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。

(6)统计功能能根据多种参数进行人员的统计。

例如:统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。

(7)保存功能将当前系统中各类人员记录存入文件中。

(8)读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。

2 总体设计2.1 系统功能分析:系统通过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、以及数据读取保存文件等功能。

add()函数用于录入信息;search()函数用来查询信息;show()函数用来显示信息;alter()函数用来修改信息;del()函数用来删除信息;stat()函数用来统计信息read()函数用于将文件中的数据读取到存中;save()函数用于将存中的信息存入文件;主函数main ()用于调用这些函数。

C++小型公司员工信息管理系统设计报告

C++小型公司员工信息管理系统设计报告

高职学院C++程序设计语言上学期课程设计报告(2011 -2012第1学期)课程设计类型: C语言程序设计题目: 人员信息管理系统学号:姓名:专业: 计算机应用基础指导教师:课程设计日期: 2012.12.23-2012.12.27.目录1.问题分析 (1)2.总体设计 (1)2.1 功能分析 (2)3.详细设计 (2)3.1 程序结构图 (2)3.2 程序类结构图 (3)3.3 程序类结构图 (4)4.功能测试 (4)4.1 本系统的主界面 (5)4.2 录入功能的主界面 (5)4.3 显示功能的主界面 (6)4.4 查找功能的主界面 (6)4.5 修改功能的主界面 (7)4.6 删除功能的主界面 (7)4.7 清理功能的主界面 (8)4.8 退出功能的主界面 (8)5.课设小结 (7)参考文献 (9)附录: 源代码清单 (8)1.问题分析1.1 问题描述1.题目《人员信息管理系统》设计2.设计说明与要求(1)公司主要有4类人员: 经理、技术人员、销售员、销售经理, 要求存储这些人的姓名、年龄、工资信息。

(2)工资的计算方法A、经理: 固定为8000元;B、技术员: 工作时间*每小时酬金(100RMB);C、销售员: 4%提成;(3)销售经理: 1%提成+固定工资(5000RMB);(4)实现功能①录入: 输入各种数据, 并录入TXT文件保存;②显示: 显示员工的数据信息;③查找: 查找员工的数据信息;④修改: 修改员工的数据信息;⑤删除: 删除员工的数据信息;⑥退出: 退出本系统;清理存储文件: 清理系统产生的TXT文件;2.总体设计2.1 功能分析使用面向对象的程序设计思想进行分析, 整个系统涉及两大类信息和操作, 公司, 人员。

所以系统主要涉及两个大类: 公司类business、人员类person。

系统的总体框架就是公司类, 人员类的定义;主函数中定义一个公司对象, 循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数)。

C课程设计报告:公司员工管理系统

C课程设计报告:公司员工管理系统

1公司员工管理系统(2014 届)《面向对象课程设计》课程设计报告课程设计题目:公司员工管理系统学院:软件学院专业:软件工程(电子商务)学生姓名:班级:学号:指导老师:2015年 6月 25日2公司员工管理系统目录1.需求分析 (2)2.具体要求 (2)3.总体设计 (3)4.详细设计 (4)5.测试结果 (13)6.软件操作说明书 (18)7.总结 (19)8.源代码 (19)公司员工管理系统课程设计报告1.需求分析根据对公司人员管理的需要,编写一个“公司人员管理系统”,以方便对公司人员数据的录入、修改、删除、显示、和查询功能。

2.具体要求设计一个虚基类 Staff(员工),包括编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff 派生出工程师类Engineer 包含专业和职称保护数据成员以及相关的成员函数,再由Staff 派生出领导类Leader,包括职务和部门保护数据成员以及相关的成员函数;然后由Engineer 和 Leader 类派生出主任工程师类Chairman。

具体实现以下要求:1.增加员工数据信息2.更新员工数据信息3公司员工管理系统3.查询员工数据信息4.删除员工数据信息5.良好的人际交互界面、方便操作3.总体设计根据问题描述和要求,系统要求能够按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。

确定程序至少应该具备如下功能:“增加各类人员数据”、“查询各类人员数据” 、“显示各类成员数据” 、“修改各类人员数据” 、“删除各类人员数据”、“各类人员数据存盘” 、“各类人员数据读入”基本模块。

公司人员管理系统添查删员员加询除工工员员员数数工工工据据数数数存读据据据盘盘图 3.1 程序基本功能结构图为体现面向对象编程的优点,本系统除过显示菜单函数、文件读写以及主函数为全局函数外,其他所有函数功能均封装于类之中。

4公司员工管理系统LeaderStaffList<T>共同派生Chairman(类模版 )Engineer图 3.2 类结构一览图4.详细设计本系统公有五个类,其中一个抽象类,一个模版类,三个派生类。

C语言课程设计报告(企业职工信息管理系统)

C语言课程设计报告(企业职工信息管理系统)

课程设计报告学院:信息科学与工程学院专业:计算机科学与技术(软件外包)班级:计算机1101学号:20111214121学生姓名:王栋指导教师:李崇威课程名称:程序设计基础设计名称:企业职工人事信息管理系统一、设计内容及要求企业职工人事基本信息包括:职工编号、姓名、性别、出生年份、职称(助工、工程师、高级工程师)、任现职年限、实发工资。

系统的主要功能包括:1. 创建职工人事基本信息文件,根据提示输入职工的各项信息,将职工信息存储到一个二进制文件中。

2. 增加职工人事基本信息,在原有职工人事基本信息文件的基础上增加新的职工信息,要求保存至原文件,并提示用户选择是否继续进行添加操作。

3. 删除职工人事基本信息,提示用户输入要进行删除操作的职工编号,如果在文件中有该信息存在,则将该编号所对应的职工信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。

4. 修改职工人事基本信息,提示用户输入要进行修改操作的职工编号,如果在文件中有该息存在,则提示用户输入要修改的选项(职称、任现职年限),结果保存至原文件,并提示用户选择是否继续进行修改操作。

5. 按不同条件进行查询操作,输出满足条件的职工信息。

(1) 按职工编号查询,输入一个编号,输出对应的职工信息。

(2) 按姓名查询,输入全名。

6. 按不同条件对职工信息进行统计工作。

(1) 统计各职称岗位的职工人数是多少,计算高级工程师的比例。

(2) 计算企业职工的平均实发工资,并输出。

(3) 统计职工工资低于平均工资的人数,并输出他们的姓名和实发工资。

二、设计思路该系统分为六大功能,分别为创建、增加、删除、修改、查询、统计,所以总体上先从界面部分定义了六个函数,这些功能通过定义的函数一步步实现。

每一个功能的实现通过字符数组的定义和使用以及各种函数的运用来解决。

三、设计结果及分析第一次写的程序虽然说能运行通过,但是没有把按不同条件统计职工信息以及删除工作功能实现,所以继续重做,一遍一遍的改正,结果程序改的乱七八糟,而且出现了许多错误,慢慢努力,总算勉强通过。

C语言课程设计报告:职工信息管理系统程序设计

C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。

(2)职工信息录入功能(职工信息用文件保存)。

(3)职工浏览功能。

(4)职工信息查询功能,查询方式可按学历查询或者工号查询。

(5)职工信息的删除、修改功能(可选项)。

2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。

3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。

流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。

显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。

流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。

职工信息管理系统c语言课程设计报告

职工信息管理系统c语言课程设计报告

职工信息管理系统c语言课程设计报告本职工信息管理系统的设计旨在提高职工信息管理的效率和准确度,方便企业对职工信息的管理和维护。

二、设计内容1. 系统结构本系统采用模块化设计,包括登录模块、职工信息模块、数据查询模块、数据修改模块、数据删除模块、数据添加模块和退出系统模块。

2. 系统实现(1) 登录模块本系统采用账号密码登录方式,用户需输入正确的账号和密码才能进入系统。

(2) 职工信息模块本模块主要功能是显示职工的基本信息,包括姓名、性别、年龄、工号、职位等。

(3) 数据查询模块本模块可以查询所有职工的基本信息,用户可以输入关键字进行模糊查询。

(4) 数据修改模块本模块可以修改已有职工的基本信息,包括姓名、性别、年龄、工号、职位等。

(5) 数据删除模块本模块可以删除已有职工的基本信息,用户需要输入正确的工号才能进行删除操作。

(6) 数据添加模块本模块可以添加新的职工信息,用户需要输入正确的信息进行添加操作。

(7) 退出系统模块本模块可以退出系统,返回到登录界面。

三、设计思路本系统采用文件读写的方式进行数据存储,所有职工的信息都保存在一个文本文件中。

每次用户进行操作时,系统会先读取文件中的数据,进行相应的操作后再将数据重新写入文件,保证数据的正确性和完整性。

四、设计效果经测试,本职工信息管理系统可以准确地进行数据的增删改查操作,并且可以保持数据的一致性和完整性,提高了职工信息管理的效率和准确度。

五、总结本系统的设计和实现对于提高企业的职工信息管理效率和准确度具有重要意义,同时也为学生深入掌握c语言编程技术提供了一个很好的实践机会。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1 系统需求分析.............................................................................................................. 错误!未指定书签。

2 总体设计...................................................................................................................... 错误!未指定书签。

3 详细设计及实现.......................................................................................................... 错误!未指定书签。

4 系统调试...................................................................................................................... 错误!未指定书签。

5 结论 (73)6心得体会...................................................................................................................... 错误!未指定书签。

7参考书目. (75)1 系统需求分析1.1系统设计的目的与意义:现在的公司人员数量及职位种类较多,各样的人事管理活动也比较频繁,因此需要设计一个公司人员信息管理系统来对公司员工信息进行管理。

1.2系统功能需求:本系统有五个类:基类、派生类:、、、,储存经理、技术人员、销售人员、销售经理信息。

(1)添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。

(2)查询功能可根据编号、姓名等信息对已添加的记录进行查询。

如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能可显示当前系统中所有记录。

(4)修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能对已添加的人员记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。

(6)统计功能能根据多种参数进行人员的统计。

例如:统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。

(7)保存功能将当前系统中各类人员记录存入文件中。

(8)读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。

2 总体设计2.1 系统功能分析:系统通过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、以及数据读取保存文件等功能。

()函数用于录入信息;()函数用来查询信息;()函数用来显示信息;()函数用来修改信息;()函数用来删除信息;()函数用来统计信息()函数用于将文件中的数据读取到内存中;()函数用于将内存中的信息存入文件内;主函数()用于调用这些函数。

2.2系统功能模块划分与设计:系统定义了类、类、类、类这四个类,定义了()、()、()、()、()、()、()、()、()、()等函数来实现系统所需功能。

2.3 系统功能模块图:(1)类(抽象类)的设计图 3.1 类(2)经理类的设计图 3.2经理类(3)技术人员类的设计图3.3技术人员类(4)销售人员类的设计图3.4 销售人员类(5)成绩类的设计图3.5销售经理类(6)各个类的关系描述<>;{:();();()=0;()=0;()=0;()=0;()=0;()=0;()=0;()=0;()=0;()=0;:;;;;;;};3.2经理类的实现"":{:();();();();();();();();();();();();};""""<><><><>;100;M[];1=0;(){}(){}(){<<"输入编号:"<<;>>;<<"输入姓名:"<<;>>;<<"输入性别:"<<;>>;<<"输入部门:"<<;>>;<<"输入级别:"<<;>>;<<"输入固定月薪:"<<;>>;}(){ <<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<; }(){1=0;("");("经理");(){<<"打开失败!"<<;;}0;(>>M[i]>>M[i]>>M[i]>>M[i]>>M[i]>>M[i]){;1;}();}(){("经理");(){<<"打开失败!"<<;;}i;(0<1){<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<;}<<"保存成功!"<<;();}(){("");();(1>){<<"人员已满"<<;;}<<"输入要添加的编号:"<<;n;>>n;( 0<1)([i]){<<"该编号的人员已存在"<<;;}m;<<"请再次输入新添加人员的信息"<<;();<<"是否确认添加?1、是2、否"<<;a;>>a;(1){M[1];11+1;();}{<<"放弃添加"<<;;}}(){("");();(10){<<"当前系统没有储存记录!"<<;;};<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<;>>;(){1:{<<"请输入要查找的编号:"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();;}}<<"查无此人!"<<;};2:{<<"请输入要查找的姓名"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();}}<<"查无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}}(){("");();(10){<<"无数据!"<<;;}<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;( 0<1)M[i]();}(){("");();(10){<<"当前系统没有储存记录"<<;;};<<"请输入要修改的经理编号:"<<;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<;<<" 5、修改部门6、修改级别7、修改月薪"<<;<<" 0、退出修改"<<;;>>;(){1:{<<"输入修改后的编号:"<<;n;>>n;( 0<1)([j]){<<"该编号的人员已存在"<<;;}<<"输入修改后的姓名:"<<;;>>;<<"输入修改后的性别:"<<;s;>>s;<<"输入修改后的部门:"<<;d;>>d;<<"输入修改后的级别:"<<;r;>>r;<<"输入修改后的月薪:"<<;;>>;<<"是否确认修改?1、是2、否"<<;a;>>a;(1){M[i];M[i];M[i];M[i];M[i];M[i];}{<<"放弃修改"<<;;}();};2:{<<"请输入修改后的编号"<<;n;>>n;( 0<1)([i]){<<"该编号的人员已存在"<<;;}<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};3:{<<"请输入修改后的姓名"<<;;>>;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};4:{<<"请输入修改后的性别"<<;s;>>s;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};5:{<<"请输入修改后的部门"<<;d;>>d;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};6:{<<"请输入修改后级别"<<;r;>>r;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};7:{<<"请输入修改后的月薪"<<;;>>;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};0<<"退出修改"<<;<<"无此选项!请输入0~7的数字"<<("");}<<"修改完成"<<;;}}<<"查无此人"<<;}(){("");();(10){<<"当前系统没有储存记录"<<;;};<<"请删除查找方式:1、按编号删除2、按姓名删除0、退出"<<;>>;(){1:{<<"请输入所要删除人员的编号:"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <1)M[j][1];<<"删除成功!"<<;11-1;}();2;<<"没有此选项!"<<;};}}<<"无此人!"<<;}("")();2:{<<"请输入所要删除人员的姓名:"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <1)M[j][1];<<"删除成功!"<<;11-1;}();2;<<"没有此选项!"<<;}}};<<"无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}();}(){("");();;<<"1、人数统计2、性别统计3、平均工资4、最高工资5、最低工资0、退出"<<;<<"请输入所要执行的编号:"<<;>>;(){1<<"经理的人数为:"<<1<<("")();2:{00;"男";"女";( 0<1){(M[i]);(M[i]);}<<"男性人数:"<<a<<;<<"女性人数:"<<b<<;}("")();3:{0;0;( 0<1){[i];}1;<<"平均工资:"<<;}("")();4:{0;( 0<1-1){(M[i]>M[1]){[i];M[1];}[1];}<<"最高工资:"<<;}("")();5:{0;( 0<1-1){(M[i]<M[1]){[i];M[1];}[1];}<<"最低工资:"<<;}("")();0;: <<"无此选项!请输入0~5的数字"<<("")();}}3.3技术人员类的实现"":{:();();();();();();();();();();();();:;;};""""<><><><>;100;T[];2=0;(){}(){}(){<<"请输入输入编号:"<<;>>;<<"请输入输入姓名:"<<;>>;<<"请输入输入性别:"<<;>>;<<"请输入输入部门:"<<;>>;<<"请输入输入级别:"<<;>>;<<"请输入输入工时:"<<;>>;<<"请输入输入时薪:"<<;>>;*;}(){ <<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<; }(){2=0;("");("技术人员");(){<<"打开失败!"<<;;}0;(>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]){;2;}();}(){("技术人员");(){<<"打开失败!"<<;;}i;(0<2){<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T [i]<<"\t"<<T[i]<<;}<<"保存成功!"<<;();}(){("");();(2>){<<"人员已满"<<;;}<<"输入要添加的编号:"<<;n;>>n;( 0<2)([i]){<<"该编号的人员已存在"<<;;}t;<<"请再次输入新添加人员的信息"<<;();<<"是否确认添加?1、是2、否"<<;a;>>a;(1){T[2];22+1;();}{<<"放弃添加"<<;;}}(){("");();(20){<<"当前系统没有储存记录!"<<;;};<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<;>>;(){1:{<<"请输入要查找的编号:"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();;}}<<"查无此人!"<<;};2:{<<"请输入要查找的姓名"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();;}}<<"查无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}}(){("");();(20){<<"无数据!"<<;;}<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;( 0<2)T[i]();}(){("");();(20){<<"当前系统没有储存记录"<<;;};<<"请输入要修改的技术人员编号:"<<;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<;<<" 5、修改部门6、修改级别7、修改工时8、修改时薪"<<;<<" 0、退出修改"<<;;>>;(){1:{<<"输入修改后的编号:"<<;n;>>n;( 0<2)([j]){<<"该编号的人员已存在"<<;;}<<"输入修改后的姓名:"<<;;>>;<<"输入修改后的性别:"<<;s;>>s;<<"输入修改后的部门:"<<;d;>>d;<<"输入修改后的级别:"<<;r;>>r;<<"输入修改后的工时:"<<;;>>;<<"输入修改后的工时:"<<;;>>;<<"是否确认修改?1、是2、否"<<;a;>>a;(1){T[i];T[i];T[i];T[i];T[i];T[i];T[i];T[i]*;}{<<"放弃修改"<<;;}();};2:{<<"请输入修改后的编号"<<;n;>>n;( 0<2)([i]){<<"该编号的人员已存在"<<;;}<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};3:{<<"请输入修改后的姓名"<<;;>>;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};4:{<<"请输入修改后的性别"<<;s;>>s;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;}();};5:{<<"请输入修改后的部门"<<;d;>>d;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};6:{<<"请输入修改后级别"<<;r;>>r;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};7:{<<"请输入修改后的工时"<<;;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){T[i];T[i][i]*;}{<<"放弃修改"<<;;}();};8:{<<"请输入修改后的时薪"<<;;>>;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){T[i];T[i][i]*;}{<<"放弃修改"<<;;}();};0<<"退出修改"<<;<<"无此选项!请输入0~8的数字"<<("");}<<"修改完成"<<;;}}<<"查无此人"<<;}(){("");();(20){<<"当前系统没有储存记录"<<;;};<<"请删除查找方式:1、按编号删除2、按姓名删除0、退出"<<;>>;(){1:{<<"请输入所要删除人员的编号:"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <2)T[j][1];<<"删除成功!"<<;22-1;}();2;<<"没有此选项!"<<;};}}<<"无此人!"<<;}("")();2:{<<"请输入所要删除人员的姓名:"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <2)T[j][1];<<"删除成功!"<<;22-1;}();2;<<"没有此选项!"<<;}}};<<"无此人!"<<;}("")();0;<<"输入错误!请输入0~3的数字"<<("")();}();}(){("");();;<<"1、人数统计2、性别统计3、平均工资4、最高工资5、最低工资0、退出"<<;<<"请输入所要执行的编号:"<<;>>;(){1<<"技术人员的人数为:"<<2<<("")();2:{00;"男";"女";( 0<2){(T[i]);(T[i]);}<<"男性人数:"<<a<<;<<"女性人数:"<<b<<;}("")();3:{0;0;( 0<2){[i];}2;<<"平均工资:"<<;}("")();4:{0;( 0<2-1){(T[i]>T[1]){[i];T[1];}[1];}<<"最高工资:"<<;}("")();5:{0;( 0<2-1){(T[i]<T[1]){[i];T[1];}[1];}<<"最低工资:"<<;}("")();0;: <<"无此选项!请输入0~5的数字"<<("")();}}3.4销售人员类的实现"":{:();();();();();();();();();();();();:;;};""""<><><><>;100;S[];3=0;(){}(){}(){<<"输入编号:"<<;>>;<<"输入姓名:"<<;>>;<<"输入性别:"<<;>>;<<"输入部门:"<<;>>;<<"输入级别:"<<;>>;<<"请输入输入其当月销售额:"<<; >>;<<"请以小数形式输入提成率:"<<; >>;*;}(){<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<" "<<<<" "<<<<;}(){3=0;("");("销售人员");(){<<"打开失败!"<<;;}0;(>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]){;3;}();}(){("销售人员");(){<<"打开失败!"<<;;}i;(0<3){<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[ i]<<"\t"<<S[i]<<;}<<"保存成功!"<<;}(){("");();(3>){<<"人员已满"<<;;}<<"输入要添加的编号:"<<;n;>>n;( 0<3)([i]){<<"该编号的人员已存在"<<;;}s;<<"请再次输入新添加人员的信息"<<;();<<"是否确认添加?1、是2、否"<<;a;>>a;(1){S[3];33+1;();}{<<"放弃添加"<<;;}}(){("");();{<<"当前系统没有储存记录!"<<;;};<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<;>>;(){1:{<<"请输入要查找的编号:"<<;;>>;( 0<3){(S[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;S[i]();}}<<"查无此人!"<<;};2:{<<"请输入要查找的姓名"<<;;>>;( 0<3){(S[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;S[i]();;}}<<"查无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}}(){("");();(30){<<"无数据!"<<;;}<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;( 0<3)S[i]();}(){("");();(30){<<"当前系统没有储存记录"<<;;};<<"请输入要修改的经理编号:"<<;>>;( 0<3){(S[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;S[i]();<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<;<<" 5、修改部门6、修改级别7、修改月销售额8、修改提成率"<<;<<" 0、退出修改"<<;;>>;(){1:{<<"输入修改后的编号:"<<;n;>>n;( 0<3)([j]){<<"该编号的人员已存在"<<;;}<<"输入修改后的姓名:"<<;;>>;<<"输入修改后的性别:"<<;s;>>s;<<"输入修改后的部门:"<<;d;>>d;<<"输入修改后的级别:"<<;r;>>r;<<"输入修改后的月销售额:"<<;;>>;<<"输入修改后的提成率:"<<;;>>;<<"是否确认修改?1、是2、否"<<;a;>>a;(1){S[i];S[i];S[i];S[i];S[i];S[i];S[i];S[i]*;}{<<"放弃修改"<<;;}();};2:{<<"请输入修改后的编号"<<;n;>>n;( 0<3)([i]){<<"该编号的人员已存在"<<;;}<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};3:{<<"请输入修改后的姓名"<<;;>>;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};4:{<<"请输入修改后的性别"<<;s;>>s;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};5:{<<"请输入修改后的部门"<<;d;>>d;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};6:{<<"请输入修改后级别"<<;r;>>r;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};7:{<<"请输入修改后的月销售额"<<;;>>;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){S[i];S[i][i]*;}{<<"放弃修改"<<;;}();};8:{<<"请输入修改后的提成率"<<;;>>;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){S[i];S[i][i]*;}{<<"放弃修改"<<;;}();};0<<"退出修改"<<;<<"无此选项!请输入0~8的数字"<<("");}<<"修改完成"<<;;}}<<"查无此人"<<;}(){("");();(30){<<"当前系统没有储存记录"<<;;};<<"请删除查找方式:1、按编号删除2、按姓名删除0、退出"<<;>>;(){1:{<<"请输入所要删除人员的编号:"<<;;。

相关文档
最新文档