职工信息管理系统课程设计报告(定版)

合集下载

职工信息管理系统课程设计报告定版

职工信息管理系统课程设计报告定版

面向对象课程设计汇报课程设计题目:职工信息管理系统姓名:班级:学号:指导老师:2011年11月8日目录摘要 (3)第一章绪论 (4)1.1面向对象C++语言程序设计 (4)1.2职工信息管理系统 (4)1.3程序编译环境 (4)第二章职工信息管理系统需求分析 (5)2.1编写目旳 (5)2.2需求概述 (5)2.3需求阐明 (6)第三章:详细设计 (7)3.1编写目旳 (7)3.2详细设计 (10)第四章:源程序编码及实现 (11)4.1程序源代码 (16)4.2程序实现成果 (17)第五章:系统测试 (18)第六章:结束语 (21)参照文献: (21)摘要在当今社会,互联网空间旳发展,给人们旳工作和生活带来了极大旳便利和高效,信息化,电子化已经成为节省运行成本,提高工作效率旳首选。

目前大量企业旳职工管理尚处在手工作业阶段,不仅效率低下,还常常由于管理旳不慎而出现纰漏。

伴随信息技术在管理上越来越深入而广泛旳应用,管理信息系统旳实行在技术上已逐渐成熟。

管理信息系统是一种不停发展旳新型学科,任何一种单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应旳管理信息系统。

本程序是一种有关职工信息管理旳系统,通过这个系统顾客可以简捷、以便旳对职工信息进行增长、修改、添加、查询、浏览等功能,它不仅可以协助企业单位到达员工管理办公自动化、节省管理成本、更能到达提高企业单位工作效率旳目旳。

关键词:职工,信息管理,系统,程序一.绪论1.1面向对象C++语言程序设计C++是种面向对象旳程序设计语言,它是在C语言基础上发展起来旳。

虽然它不是最早旳面向对象旳程序设计语言,不过它是目前使出比较广泛旳面向对象旳程序设计语言。

什么是面向对象?简朴地说,它和面向过程—样都是软件开发旳一种措施。

不过它与面向过程不一样,面向对象是—种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统旳软件开发措施。

职工管理系统课程设计报告

职工管理系统课程设计报告

课程设计报告书专业:计算机科学与技术课程设计名称:《网站建设技术》题目:职工管理系统摘要在当今社会,互联网空前的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。

考虑到当前大量企业的企业职工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。

因此根据部分企业提供的需求,设计企业职工管理系统,以帮助企业达到企业职工管理办公自动化、节约管理成本、提高企业工作效率的目的。

根据实际需求,“企业职工信息管理系统”项目采用模块化的设计思想,在Windows XP操作系统环境下,搭建JSP运行环境JDK+TOMCAT,通过使用JAVA脚本语言完成动态的、交互的web服务器应用程序,实现职工个人信息查询、浏览及用户密码修改的功能。

本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了企业职工信息管理的工作效率和企业的信息化的水平。

关键词:java;jsp;数据库表;信息管理、企业员工目录目录 (1)一、设计目的 (1)1.1 开发背景 (1)1.2 研究现状 (1)二、需求分析 (3)2.1 系统需求分析 (4)2.1.1 功能需求 (4)2.1.2 数据需求 (4)2.2 技术可行性 (5)2.2.1 程序语言的选择 (5)2.2.2 JSP技术特点 (6)2.2.3 操作可行性 (7)2.2.4 经济可行性 (7)2.3 环境可行性分析 (8)2.3.1 软件环境 (8)2.3.2 硬件环境 (8)2.4 系统结构可行性 (8)2.4.1 模式采用 (8)2.4.2 经典MVC模式 (9)三、模块分析及设计 (10)3.1 数据库分析 (10)3.2 数据库概念结构设计 (11)3.3 数据库逻辑结构设计 (12)3.4 系统模块划分 (13)3.4.1系统登录 (13)3.4.2编辑模块 (15)四、制作过程及要点 (17)4.1 首页 (17)4.2 查看职工信息页 (19)4.3 ID查询页 (20)4.4 浏览职工信息页 (21)4.5 添加职工信息页 (22)4.6 修改职工信息页 (23)4.7 删除职工信息页:(同查询页) (24)4.8 修改密码页: (25)4.9 职工登录页: (26)五、设计总结 (27)六、参考资料 (29)一、设计目的1.1 开发背景现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的企业职工管理的形式和内涵都在发生着根本性的变化。

课程设计实验报告-职工管理系统

课程设计实验报告-职工管理系统

课程设计报告课程名称:院(系):专业班级:学号:姓名:指导老师:承诺书郑重声明:本人所呈交的课程设计是本人在导师指导下独立撰写并完成的,课程设计没有剽窃、抄袭、造假等违反学术道德、学术规范和侵权行为。

本课程设计不包含任何其他个人或集体已经发表或撰写过的研究成果,如果引用则标识出了出处。

对本课程设计的研究做出贡献的个人和集体,均已在文中以明确方式标明。

课程设计与资料若有不实之处,本人承担一切相关责任。

特此声明。

签名:年月日目录1 课程设计任务与要求 (4)1.1 课程设计目的 (4)1.1.1 问题描述 (4)1.1.2 详细要求 (4)1.2 问题分析 (5)2 概要设计 (5)2.1 总体设计思想 (5)2.2 系统功能设计 (6)2.3 模块函数构造 (6)3 详细设计 (7)3.1 抽象数据类型定义 (7)3.2 主函数设计 (8)3.3 查找算法设计 (9)3.4 排序算法设计 (9)4 课程设计总结 (11)5.1 该课程设计的特点 (11)5.2 存在的不足 (11)5.3 心得体会 (11)参考文献 (12)简单的职工管理系统1 课程设计任务与要求1.1 课程设计目的《数据结构》是计算机专业一门重要的专业技术基础课程。

本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。

本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础。

为了学好《数据结构》,必须掌握编写一些在特定数据结构上的算法,并通过上机调试,更好地掌握各种数据结构及其特点,此次《数据结构》课程设计目的正在于此。

经过本次课程设计,我们对于数据结构基本理论和存储结构及算法设计将有更加深入的理解,并提高我们在实际设计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力,提高我们的C/C++语言程序设计能力,以及培养学我们编写程序设计文档的能力。

1.1.1 问题描述根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览职工的信息,应提供显示、查找、排序等操作;另外还应提供键盘式选择菜单实现功能选择。

职工管理系统课程设计报告

职工管理系统课程设计报告

职工管理系统课程设计报告1.引言职工管理系统是一种企业管理软件,它的主要作用是帮助企业管理职工的基本信息、工资、考勤、培训等内容。

本文将介绍我们小组设计的职工管理系统。

2.概述职工管理系统拥有多个功能模块,包括人事管理、工资管理、考勤管理、培训管理等。

其中,人事管理模块包括职工的基本信息、职务信息、部门信息等;工资管理模块包括职工的薪资计算、社保、公积金等;考勤管理模块包括职工的出勤记录、加班、请假等;培训管理模块则包括职工的培训计划、课程安排、培训记录等。

3.功能设计我们小组的职工管理系统,采用了Java语言进行开发,使用MVC 架构模式进行开发。

具体功能设计如下:3.1人事管理模块人事管理模块用于管理职工的基本信息、职务信息、部门信息等。

其中,职工的基本信息包括姓名、性别、出生日期、身份证号等;职务信息包括职务名称、职级、任职时间等;部门信息包括部门名称、部门经理、部门编号等。

除此之外,人事管理模块还可以进行权限管理,设置不同角色的权限不同。

3.2工资管理模块工资管理模块包括职工的薪资计算、社保、公积金等。

职工的薪资计算需要考虑个人工资、绩效、考勤等因素,同时还要进行税前扣减、税后扣减等计算。

社保、公积金等则需要根据国家政策进行计算。

3.3考勤管理模块考勤管理模块用于管理职工的出勤记录、加班、请假等。

出勤记录需要记录职工的出勤时间、迟到早退、旷工等,加班需要统计职工的加班时间和加班费用,请假需要记录职工的请假类型、请假时间等。

3.4培训管理模块培训管理模块用于管理职工的培训计划、课程安排、培训记录等。

培训计划需要包括培训的目标、内容、时间、地点等,课程安排需要包括课程名称、讲师、授课时间、授课地点等,培训记录需要记录职工的培训情况、培训效果等。

4.技术选型我们小组采用了Spring Boot、MyBatis等技术进行开发,前端采用了Bootstrap、jQuery等技术进行开发。

其中,Spring Boot提供了优雅的开发方式,MyBatis则提供了便捷的数据库交互方式,Bootstrap、jQuery则为前端提供了丰富的UI组件和JavaScript库。

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#程序设计》课题名称职工信息管理系统专业信息管理与信息系统班级信管xxxxx学号xxxxxx姓名xxx指导教师xxx 、xxx、xxx2015年6 月10 日xxx工程学院课程设计任务书课程名称《C#程序设计》课题职工信息管理系统专业班级信管xxxx学生姓名xxx学号xxxxxxxx指导老师xxx、xxx、xxx审批任务书下达日期2015 年 6 月10 日任务完成日期2015 年 6 月27 日一、设计内容与设计要求1.课程设计目的:全面熟悉、掌握计算机系统与系统软件基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,增强面向对象程序设计概念,熟悉C++语言编程,养成提供文档资料的习惯和规范编程的思想,为后继课程的实验以及课程设计打下较扎实的基础。

进一步提高上机动手能力,培养使用计算机解决实际问题的能力,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计,特别是自学、毕业论文的完成打下扎实的基础。

2.课题题目职工信息管理系统3.设计要求:具有功能:1、添加信息2、显示统计数据3、查找学生成绩4、修改信息5、删除信息6、插入信息7、显示全部信息8、退出本系统课程设计报告规范1、完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。

2、完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

3、完成系统详细设计:包括采用C++语言定义相关的数据类型;写出各模块的类C++码算法;画出函数的调用关系图。

4、调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。

职工管理系统课程设计

职工管理系统课程设计

职工管理系统课程设计一、教学目标本课程旨在使学生掌握职工管理系统的理论知识,培养学生运用职工管理系统进行实际操作的能力,并树立正确的职工管理理念。

具体目标如下:1.知识目标:•了解职工管理系统的定义、功能和应用范围;•掌握职工信息录入、查询、修改和删除的操作方法;•理解职工管理系统的数据分析和报表生成过程。

2.技能目标:•能够熟练使用职工管理系统进行职工信息的录入、查询、修改和删除;•能够根据需求设置职工管理系统的参数和权限;•能够运用职工管理系统进行数据分析和报表生成。

3.情感态度价值观目标:•培养学生对职工管理工作的重视和责任感;•培养学生遵守数据安全和隐私保护的原则;•培养学生积极向上、团结协作的工作态度。

二、教学内容本课程的教学内容主要包括职工管理系统的理论知识、操作方法和实践应用。

具体安排如下:1.职工管理系统的理论知识:•职工管理系统的定义、功能和应用范围;•职工信息录入、查询、修改和删除的基本操作;•职工管理系统的数据分析和报表生成原理。

2.职工管理系统的操作方法:•职工信息录入、查询、修改和删除的具体步骤;•职工管理系统的参数设置和权限管理;•数据分析和报表生成的实践操作。

3.职工管理系统的实践应用:•结合具体案例,分析职工管理系统的实际应用场景;•讨论职工管理系统在提高工作效率和促进团队协作方面的作用;•分析职工管理系统在企业管理和人力资源规划中的重要性。

三、教学方法为了提高教学效果和学生的参与度,本课程将采用多种教学方法相结合的方式进行教学。

具体方法如下:1.讲授法:通过教师的讲解,使学生了解职工管理系统的理论知识,为学生提供系统的知识结构。

2.讨论法:学生进行小组讨论,分享职工管理系统的操作经验和实践案例,促进学生之间的交流和合作。

3.案例分析法:通过分析具体案例,使学生了解职工管理系统在实际应用中的作用和效果,培养学生解决问题的能力。

4.实验法:安排上机实验环节,让学生亲自动手操作职工管理系统,巩固所学知识和技能。

C语言课程设计---职工管理系统设计报告

C语言课程设计---职工管理系统设计报告

课程名称:程序设计语言课程设计设计题目:职工信息管理系统设计学院:应用技术学院专业:电子信息工程目录:摘要: (2)任务书: (2)总结与体会: (10)摘要:通过这次的短学期,在老师的辅导下,我完成了课程设计。

通过课程设计的完成对C和C++有更深的了解。

我做的课程设计题目是职工信息管理系统设计,我主要用到了结构体,结构体数组,指针,文件等等。

对函数的调用,和指针有了更深的理解。

但我做的这个课程设计,职工信息管理系统还存在不足,还希望老师的指点。

我的这个管理系统能处理的是对公司员工的信息存储,还有对职工的查找和排序,还有对职工的信息修改。

有不足的地方还请老师指点。

昆明理工大学课程设计任务书应用技术学院学院电子信息工程专业2009 级学生姓名(学号):袁瑞(200911513127)课程设计目的:通过设计一个较为简单的管理系统,进一步熟悉C++中类的概念、类的封装、继承的实现方式。

了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。

课程设计(论文)题目及具体内容:写程序题目:职工信息管理系统设计设计说明与要求:职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)职工信息录入功能(职工信息用文件保存)(3)职工信息浏览功能(4)查询和排序功能:按工资查询、按学历查询(5)职工信息删除、修改功能(4)各函数调用关系(流程图):(6)编码及调试:(注:此系统由三个人设计,本人只设计了其中的两个功能)功能二. 修改员工信息模块:此功能代码如下:modify() /*修改员工信息*/{struct people p;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请记住要修改的员工号.任意键继续...\n");getch();puts("\n\n");}printf_one(i);}do{printf("\n\n请输入要修改信息的员工号! 员工号:");scanf("%s",p.num);for(i=0;i<n;i++)if(strcmp(p.num,people[i].num)==0){k=i;p=people[i];}if(k==-1)printf("\n\n不存在,请重试");}while(k==-1);printf_face();printf_one(k);w1=modify_data(k,n);if(w1==1){printf("\n操作成功^_^.\n\n继续修改吗?\n\n\t 1).是2).保存并返回\t[ ]\b\b"); scanf("%d",&w0);w2=1;}else{w0=0;if(w2==1)people[k]=p;}if(w0!=1&&w2==1)save(n);}while(w0==1);system("cls");menu();}调试截图:功能三. 员工信息查询模块:此功能代码如下:search() /*查找功能*/ {int i,n,k,w1=1,w2,w3,w4,m,a;struct people p;n=load();{printf("\n\n以哪种方式查找? \n\t1).学历2).员工号[ ]\b\b"); scanf("%d",&m);switch(m){case 1:do{ k=-1;printf("\n\n请输入学历! 学历:");scanf("%s",p.xueli);printf_face();for(i=0;i<n;i++)if(strcmp(p.xueli,people[i].xueli)==0){ k=i;printf_one(k);break;}if(k==-1){ printf("\n\n没有该学历的员工");printf("\n\n重新查找吗?\n\t1).是2).否,返回[ ]\b\b"); scanf("%d",&w1);if(w1==2)printf_back();}}while(k==-1&&w1==1);break;case 2:do{k=-1;printf("\n\n输入您要查询的员工号! 员工号:");scanf("%s",p.num);printf_face();for(i=0;i<n;i++)if(strcmp(p.num,people[i].num)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\n该员工号不存在");printf("\n\n是否重新选择?\n\t1).是2).否,离开[ ]\b\b"); scanf("%d",&w1);if(w1==2)printf_back();}while(k==-1&&w1==1);break;}w4=0;w3=0;if(k!=-1){printf("\n\n请选择操作\n\t 1).继续查找2).修改3).删除4).返回菜单[ ]\b\b"); scanf("%d",&w2);switch(w2){case 2:w3=modify_data(k,n);break;case 3:{printf("\n确定吗?\n\t 1).确定2).返回[ ]\b\b");scanf("%d",&w4);if(w4==1)for(a=k;a<n;a++){strcpy(people[a].num,people[a+1].num);strcpy(people[a].name,people[a+1].name);strcpy(people[a].sex,people[a+1].sex);strcpy(people[a].age,people[a+1].age); /*删除所选员工信息*/ strcpy(people[a].xueli,people[a+1].xueli);strcpy(people[a].gongzi,people[a+1].gongzi);strcpy(people[a].address,people[a+1].address);strcpy(people[a].telephone,people[a+1].telephone);}break;}}if(w3==1||w4==1){save(n);printf("\n\n操作成功.^_^.");printf("\n\n请选择操作\n\t 1).继续查找2).返回[ ]\b\b" );scanf("%d",&w2);}}}while(w2==1);system("cls");menu();}此功能截图:员工信息是用用文本文件存储的,资料分别存储在这些文本文件中,具体如下:总结与体会:通过本次的课程设计,对C和C++又更一步的了解,了解了C上的结构体,并对结构体有了熟练的掌握,并且熟悉了指针,通过指针可以使程序很好的实现,结构体类型是一个很好的类型,在现实生活中,应用结构体可以使问题很好的解决。

职工信息管理系统设计报告

职工信息管理系统设计报告
prin tf("\n");
printf("请输入姓名:");
sca nf("%s",em[i]. name);
getchar();
printf("请输入性别(f--女m--男):");scanf("%c",&em[i].sex); printf("请输入年龄:");
{
case 1:del();break;
case 0:break;
default:break;
}
}
void add()
{FILEຫໍສະໝຸດ fp;int n;int coun t=0;
int i;
int m=load();
printf("\n原来的职工信息:\n");
display();
prin tf("\n");
进入查询信息:则屏幕会出现两个对话框一一 按员工,工号查找,查处相应的所需信息,当查询不 能显示需要时进入修改程序,把所输入的信息进行修 改,使之正确能够正常运行或进入删除信息中,重新 输入自己所要的信息。
当信息输入正确,进入你所需要的菜单程序中: 员工信息:显示员工工作号、性别、学历、等。
#in elude <stdio.h>
prin tf("\n%d\t\t%s\t%c\t\t%d\t\ n",em[i]. nu m,em[i]. name,em[i].sex,em[i].age);
printf("\n学历\t\t工资\t\t住址\t\t电话\n");
prin tf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

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

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

上海应用技术学院课程设计报告课程名称程序设计语言c课程设计设计题目职工信息管理系统姓名陈学文专业班级13104009 学号1310400901 组别无同组者无指导教师余艳芳日期2014.6.30——2014.7.11 成绩1 目的及要求本课程的设计目的:1.巩固和加深学生对C语言课程的基本知识的理解和掌握;2.掌握C语言编程和程序调试的基本技能;3.利用C语言进行基本的软件设计;4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力。

本课程的设计要求:1.分析课程设计题目(即:职工信息管理系统)的要求;2.写出详细设计说明;3.编写程序代码,调试程序使其能正确运行;4.设计完成的软件要便于操作和使用,有整齐、美观的使用界面;5.设计完成后提交课程设计报告和源代码文件的电子文档。

2 课程设计内容说明2.1 功能简介职工信息管理系统的主要功能包括:(1)机构管理(2)信息录入(3)查询输出(4)工资管理(5)用户管理(6)人员类别管理。

公司机构包括董事会、经理、人事部、市场部、营销部、财务部、销售部、售后服务部信息录入信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话(职工号不重复),这个功能的实现用C语言的文件保存;其次还有信息的查询、排序、添加、删除。

这个系统可以输入信息,保存到文件里,再从文件里调出来,使之显示在屏幕上,进行删除、添加等对信息的修改。

2.2设计流程职工管理系统功能流程图编写各个构成主界面功能的函数,其中各个函数代码如下:1.主菜单函数,主界面的显示void menu(){printf(" ************欢迎进入职工信息管理系统**********\n");printf(" 1.录入职工信息");printf(" 2.浏览部门信息\n");printf(" 3.查询职工信息");printf(" 4.删除职工信息\n");printf(" 5.添加职工信息");printf(" 6.修改职工信息\n");printf(" 7.退出\n");printf("\n");}2.录入函数,为整个库的记录,第二次录入时将清空之前数据,如需添加需点击添加函数void input(){int i,m;printf("请输入需要创建信息的职工人数(1--1000):\n");scanf("%d",&m);for (i=0;i<m;i++){printf("请输入职工号:");scanf("%d",&em[i].num);printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f-女m-男): ");scanf("%c",&em[i].sex);getchar();printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);getchar();printf("请输入部门: ");scanf("%s",em[i].dep);getchar();printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);getchar();printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");}printf("\n创建完毕!\n");save(m);}3. 保存文件函数void save(int m){int i;FILE*fp;if ((fp=fopen("employee_list","wb"))==NULL){printf ("cannot open file\n");exit(0);}for (i=0;i<m;i++) /*将内存中职工的信息输入到磁盘文件中去*/if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1) printf("file write error\n");fclose(fp);}4. 导入函数int load(){FILE*fp;int i=0;if((fp=fopen("employee_list","rb"))==NULL) {printf ("cannot open file\n");exit(0);}else{do{fread(&em[i],sizeof(struct employee),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}5. 浏览函数void display(){int i;int m=load();printf("\n 职工号\t姓名\t\t性别\t\t年龄\t\t部门\n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/printf("\n %3d%16s%16c%16d%16s\n",em[i].num,em[i].name,em[i].sex,em[i] .age,em[i].dep);printf("\n 学历\t\t工资\t\t住址\t\t电话\n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/printf("\n %3s%14d%16s%16s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}6. 删除函数void del(){int m=load();int i,j,n,t,flag;char name[20];printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要删除的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++)if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\t\t部门\n");printf("\n %3d%16s%16c%16d%16s\n",em[i].num,em[i].name,em[i].se x,em[i].age,em[i].dep);printf("\n 学历\t\t工资\t\t住址\t\t电话\n");printf("\n %3s%14d%16s%16s\n",em[i].xueli,em[i].wage,em[i].addr,em[i ].tel);printf("\n确实要删除此人信息请按1,不删除请按0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++){strcpy(em[j].name,em[j+1].name);em[j].num=em[j+1].num;em[j].sex=em[j+1].sex;em[j].age=em[j+1].age;strcpy(em[j].xueli,em[j+1].xueli);em[j].wage=em[j+1].wage;strcpy(em[j].addr,em[j+1].addr);strcpy(em[j].tel,em[j+1].tel);}flag=0;}}if(!flag)m=m-1;elseprintf("\n对不起,查无此人!\n");printf("\n 浏览删除后的所有职工信息:\n");save(m); /*调用保存函数*/display(); /*调用浏览函数*/printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t){case 1:del();break;case 0:break;default :break;}}7. 添加函数void add(){FILE*fp;int n;int count=0;int i;int m=load();printf("\n 原来的职工信息:\n");display();printf("\n");fp=fopen("emploee_list","a");printf("请输入想增加的职工数:");scanf("%d",&n);for (i=m;i<(m+n);i++){printf("\n 请输入新增加职工的信息:\n"); printf("请输入职工号: ");scanf("%d",&em[i].num);printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f-女m-男): ");scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入部门: ");scanf("%s",em[i].dep);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");count=count+1;printf("已增加的人数:\n");printf("%d\n",count);}printf("\n添加完毕!\n");m=m+count;printf("\n浏览增加后的所有职工信息:\n"); printf("\n");save(m);display();fclose(fp);}8. 查询函数void search(){int t,flag;do{printf("\n按职工号查询请按1;按学历查询请按2;按电话号码查询请按3;进入主函数请按4\n");scanf("%d",&t);if(t>=1&&t<=4){break;}else{flag=0;printf("您输入有误,请重新选择!");}}while(flag==0);while(flag==1){switch(t){case 1:printf("按职工号查询\n");search_num();break;case 2:printf("按学历查询\n");search_xueli();break;case 3:printf("按电话号码查询\n");search_tel();break;case 4:main();break;default:break;}}}9.查询函数中按职工号查询void search_num(){int num;int m=load();printf("请输入要查找的职工号:\n");scanf("%d",&num);for(i=0;i<m;i++)if(num==em[i].num){printf("\n已找到此人,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\t\t部门\n");printf("\n %3d%16s%16c%16d%16s\n",em[i].num,em[i].name,em[i].sex, em[i].age,em[i].dep);printf("\n 学历\t\t工资\t\t住址\t\t电话\n");printf("\n %3s%14d%16s%16s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].t el);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询职工号请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2: break;default:break;}}10.查询函数中按学历查询void search_xueli(){char xueli[30];int i,t;int m=load();printf("请输入要查找的学历:\n");scanf("%s",xueli);for(i=0;i<m;i++)if(strcmp(em[i].xueli,xueli)==0){printf("\n已找到,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\t\t部门\n");printf("\n %3d%16s%16c%16d%16s\n",em[i].num,em[i].name,em[i].se x,em[i].age,em[i].dep);printf("\n 学历\t\t工资\t\t住址\t\t电话\n");printf("\n %3s%14d%16s%16s\n",em[i].xueli,em[i].wage,em[i].addr,em[i ].tel);}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询学历请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}11.查询函数中按电话号码查询void search_tel(){char tel[20];int i, t;int m=load();printf("请输入要查找的电话号码:\n");scanf("%s",tel);for(i=0;i<m;i++)if(strcmp(tel,em[i].tel)==0){printf("\n已找到此人,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\t\t部门\n");printf("\n %3d%16s%16c%16d%16s\n",em[i].num,em[i].name,em[i].se x,em[i].age,em[i].dep);printf("\n 学历\t\t工资\t\t住址\t\t电话\n");printf("\n %3s%14d%16s%16s\n",em[i].xueli,em[i].wage,em[i].addr,em[i ].tel);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询电话号码请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}11.修改函数void modify(){int num;char name[20];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];char dep[30];int b,c,i,n,t,flag;int m=load();printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\t\t部门\n");printf("\n %3d%16s%16c%16d%16s\n",em[i].num,em[i].name,em[i].se x,em[i].age,em[i].dep);printf("\n 学历\t\t工资\t\t住址\t\t电话\n");printf("\n %3s%14d%16s%16s\n",em[i].xueli,em[i].wage,em[i].addr,em[i ].tel);printf("\n确实要修改此人信息请按1不修改请按0\n");scanf("%d",&n);if(n==1){printf("\n需要进行修改的选项\n1.职工号2.姓名3.性别4.年龄5.学历6.工资7.住址8.电话9.部门\n");printf("请输入你想修改的那一项序号:\n");scanf("%d",&c);if(c>9||c<1)printf("\n选择错误,请重新选择!\n");}flag=0;}}if(flag==1)printf("\n对不起,查无此人!\n");do{switch(c) /*因为当找到第i个职工时,for语句后自加了1, 所以下面的应该把改后的信息赋值给第i-1个人*/{case 1:printf("职工号改为: ");scanf("%d",&num);em[i-1].num=num;break;case 2:printf("姓名改为: ");scanf("%s",name);strcpy(em[i-1].name,name);break;case 3:printf("性别改为: ");getchar();scanf("%c",&sex);em[i-1].sex=sex;break;case 4:printf("年龄改为: ");scanf("%d",&age);em[i-1].age=age;break;case 5:printf("学历改为: ");scanf("%s",xueli);strcpy(em[i-1].xueli,xueli);break;case 6:printf("工资改为: ");scanf("%d",wage);break;case 7:printf("住址改为: ");scanf("%s",addr);strcpy(em[i-1].addr,addr);break;case 8:printf("电话改为: ");scanf("%s",tel);strcpy(em[i-1].tel,tel);break;case 9:printf("部门改为: ");scanf("%s",dep);strcpy(em[i-1].dep,dep);break;}printf("\n");printf("\n是否确定所修改的信息?\n是,请按1不,重新修改,请按2: \n");scanf("%d",&b);}while(b==2);printf("\n浏览修改后的所有职工信息:\n");printf("\n");save(m);display();printf("\n继续修改请按1,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break;}}3 运行结果进入主界面,可按提示进行操作在选项一已录入相关职工数据时点击数字2可以浏览全部职工信息界面之后将提示直接退出或继续进入主界面再次进行其它操作,在此选y继续进行,然后进行查询职工信息功能,在此以按职工号查询为例:下面的截图是为按学历查询为例:下面是按电话号码查询为例:查询函数的运行过程到此示范结束,下面是以删除职工信息功能进行示范操作:点击数字键4进入删除职工信息功能之后点击浏览信息功能再次验证是否删除完毕,验证的下图表明职工信息确实从存储文件列表中删除了。

VB职工信息管理系统设计报告

VB职工信息管理系统设计报告

职工信息管理系统设计报告一、设计思路1.要达到的目的①培养学生综合利用VB语言进行程序设计的能力,提高学生综合、熟练地使用基本控件,文件读写,数组操作的能力。

②为了公司更加简单方便的管理公司员工信息,可以简单方便的查询到职工的信息。

②利用读取数据按钮,以顺序文件的度操作打开“职工信息.txt”文件,读取文件信息,并显示到list1中,以便接下来对职工信息进行操作。

③通过清除按钮,清除list1中的职工的信息。

④在list1中显示职工的信息。

⑤按照职工号查询职工信息,并显示。

⑥按照姓名查询职工信息,并显示。

⑦按照职工号修改职工信息,并显示。

⑧按照姓名修改职工信息,并显示。

⑨追加一条记录数据,并显示。

2.关键问题的解决(1)通过“读取数据”按钮能利用右侧图示样式窗体形式,打开选中的数据文件职工.txt,并从该文件中读取职工的职工号、姓名、职称和工资,保存在数组中,并显示在list1中。

(2)通过“清除数据”按钮能够清除list1中的内容。

(3)从“按职工号查询”按钮左端文本框输入职工号,单击“按职工号查询”,在窗体list1中显示查询结果。

从“按姓名查询”按钮左端文本框输入姓名,单击“按姓名查询”按钮,在窗体大的list1中显示查询结果。

(4)从“按职工号修改”(“按姓名修改”)按钮,在输入对话框中输入职工号,对查询到职工的职工号(姓名)进行修改,在窗体list1中显示修改结果。

(5)从输入一条记录后文本框中输入一条记录信息,再将记录信息通过追加数据按钮添加到list1中,再通过数组将内容写入到文件中。

三、部分程序关键源代码及注释Private Sub Command1_Click()Form2.Show ’显示窗体2,以简单易懂End SubDim fileno As Integer, strl As Stringfileno = FreeFileOpen "职工信息.txt" For Input As #fileno ’用open语句以Input式打开文件i = 0Do While Not EOF(fileno) ’循环至文件尾Input #fileno, str1 ’将数据读入对应的框中Form1.List1.AddItem str1i = i + 1LoopClose #fileno ‘关闭文件Private Sub Form_Load()‘初始化,为组合框添加文件类型项目Item = "所有文件(*.*)"Combo2.AddItem Item + Space(20 - Len(Item))Item = "窗体文件(*.frm)"Combo2.AddItem Item + Space(20 - Len(Item))Item = "文本文件(*.txt)"Combo2.AddItem Item + Space(20 - Len(Item))Combo2.ListIndex = 2Private Sub Command8_Click()List1.AddItem Text1.Text ’将追加的记录添加的框中Private Sub Command2_Click()List1.Clear ’清除用过的数据End SubPrivate Sub Command3_Click()e = TrueUnload Me ’退出系统End SubPrivate Sub Command5_Click()Dim a As StringDim b As Stringb = InputBox("请输入要修改的职工的职工号")a = InputBox("请输入新的职工姓名")List1.AddItem "新职工姓名" & " " & "职工号"If b = "143101" ThenList1.AddItem a & " " & bElseIf b = "143102" ThenList1.AddItem a & " " & bElseIf b = "143103" ThenList1.AddItem a & " " & bElseIf b = "143104" ThenList1.AddItem a & " " & bElseIf b = "143105" ThenList1.AddItem a & " " & bElseIf b = "143106" ThenList1.AddItem a & " " & bElseIf b = "143107" ThenList1.AddItem a & " " & bElseIf b = "143108" ThenList1.AddItem a & " " & bElse: MsgBox "请输入正确的职工号"End IfEnd SubPrivate Sub Command6_Click()’用姓名查询职工信息List1.ClearIf Text2.Text = "葛茹" ThenList1.AddItem "葛茹143101 经理6000(元)" ElseIf Text2.Text = "林海" ThenList1.AddItem "林海143002 副经理5500(元)" ElseIf Text2.Text = "王丹" ThenList1.AddItem "王丹143103 秘书3000(元)" ElseIf Text2.Text = "唐乐" ThenList1.AddItem "唐乐143104 司机3000(元)" ElseIf Text2.Text = "王倩" ThenList1.AddItem "王倩143005 工程师4000(元)" ElseIf Text2.Text = "林强" ThenList1.AddItem "林强143106 总工程师4500(元)" ElseIf Text2.Text = "李仁" ThenList1.AddItem "李仁143007 工人3500(元)" ElseIf Text2.Text = "高翔" ThenList1.AddItem "高翔143108 工人3500(元)" Else: MsgBox "请输入正确的职工姓名"End IfEnd SubPrivate Sub Command7_Click()’按姓名修改职工号Dim a As StringDim b As Stringa = InputBox("请输入要修改的职工姓名")b = Str(InputBox("请输入新职工号"))List1.AddItem "职工姓名" & " " & "新职工号"If a = "葛茹" ThenList1.AddItem a & " " & bElseIf a = "林海" ThenList1.AddItem a & " " & bElseIf a = "王丹" ThenList1.AddItem a & " " & bElseIf a = "唐乐" ThenList1.AddItem a & " " & bElseIf a = "王倩" ThenList1.AddItem a & " " & bElseIf a = "林强" ThenList1.AddItem a & " " & bElseIf a = "李仁" ThenList1.AddItem a & " " & bElseIf a = "高翔" ThenList1.AddItem a & " " & bElse: MsgBox "请输入正确的职工姓名" ’ MsgBox 提示信息错误End IfEnd Sub四、设计方案的完善及目前存在的问题1.设计方案要完善的地方①该设计方案创新部分完成较少,对于创新部分已有自己的思路,但细节不太会,导致程序不能运行,所以没有写。

职工信息管理系统课程设计

职工信息管理系统课程设计

职工信息管理系统课程设计江西理工大学软件学院《面向对象程技术》课设计报告—第二学期课程名称面向对象技术设计题目职工信息管理系统专业班级 11机械电子(2)班姓名杨锦其学号 11212203指导教师吉宝玉6 月日目录职工信息管理系统 (2)1前言 (2)1.1项目背景 (2)1.2问题描述 (2)1.3详细要求 (2)1.4问题分析 (3)2.概要设计 (3)2.1系统总体设计 (3)2.1.1功能描述 (3)2.1.2系统操作功能图 (4)2.2系统详细设计·············································2.2.1数据库设计··························2.2.2系统主界面设计·····································2.2.3·模块流程图·······························3.系统测试·······································3.1测试举例······················3.2测试项目及方法·····························4.课程设计总结······································4.1该课程设计的特点及不足·····································4.3心得体会·····························5.小组成员分工说明······························6.附件(源程。

职工管理系统课程设计报告

职工管理系统课程设计报告

职工管理系统课程设计报告一、项目背景随着信息技术的迅速发展,企业对于职工管理系统的需求日益增长。

职工管理系统作为一种集成化的管理工具,可以帮助企业高效地管理员工信息、薪资福利等相关数据,提升管理效率、节省人力成本。

本课程设计旨在通过开发一个职工管理系统来帮助学生深入理解管理信息系统的基本原理和应用。

二、项目目标本项目旨在设计并实现一个功能完善的职工管理系统,主要包括以下目标: 1. 实现职工信息的录入、修改和查询功能; 2. 实现薪资福利的管理和计算功能; 3. 实现权限管理和安全控制功能; 4. 提升系统的用户友好性和操作性; 5. 实现系统的数据备份和恢复功能。

三、系统需求分析3.1 功能需求1.职工信息管理模块:包括职工信息的录入、修改和查询功能;2.薪资福利管理模块:包括薪资发放、津贴计算等功能;3.权限管理模块:包括用户权限分配和访问控制功能;4.数据备份模块:包括定期数据备份和恢复功能。

3.2 非功能需求1.用户友好性:系统界面简洁明了,操作简单易懂;2.数据安全性:系统应具有良好的数据加密和权限控制机制;3.稳定性:系统应具有一定的容错能力,能够稳定运行。

四、系统设计与实现4.1 系统架构设计本系统采用B/S架构,前端使用HTML、CSS、JavaScript等技术开发,后端采用Java语言搭建,数据库采用MySQL存储数据。

4.2 模块设计1.职工信息管理模块:包括职工信息的增删改查功能;2.薪资福利管理模块:包括薪资发放、津贴计算等功能;3.权限管理模块:包括用户权限分配和访问控制功能;4.数据备份模块:包括数据备份和恢复功能。

4.3 系统界面设计系统界面简洁明了,采用响应式设计,适配不同大小屏幕的设备,提供友好的用户交互体验。

五、系统测试与维护5.1 系统测试系统测试包括单元测试、集成测试、系统测试和用户验收测试,确保系统功能正常、性能稳定。

5.2 系统维护系统上线后需要定期进行数据备份、安全检查和性能优化,确保系统稳定运行。

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

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

case 0: exit(); } printf("\n\n 操作完毕,请再次选择!"); } else printf("\n\n 选择错误,请再次选择!"); } } 2 数据添加 【程序】
void append() { if((fp=fopen("worker.xls","a"))==NULL) { printf("\n 不能打开该文件!"); exit(); } printf("\n 请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、 工资、电话、地址)\n"); scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.recor d,one.position,one.wanges,one.tel,one.addr); fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.n um,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr); fclose(fp); }
5 数据删除 【程序】
void delete() { int m,k=0; long a,b; char namekey[8], valid[4]; printf("\n 请输入您要删除的职工姓名:"); scanf("%s",namekey); if((fp=fopen("worker.xls","r+"))==NULL) { printf("\n 不能打开该文件!"); exit(); } while(!feof(fp)) { a=ftell(fp); fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",,one.num,one.sex,one.age,one. record,one.position,one.wanges,one.tel,one.addr); if(strcmp(namekey,)==0) { k=1; break; } } if(k==1) {

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

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

printf(”请输入职工电话(文字):”);
scanf(”%s",&q->w.phone);
q-〉next=p—〉next;
p—>next=q;
printf("。^_^。录入成功!。^_^.\n");
return -1;
}
/*按姓名查询*/ PLINK findname(PLINK p,char *name) { message(); printf(”按姓名 查询\n"); printf(”职工号\t 姓名\t 性别\t 年龄\t 学历\t 工资\t 住址\t 电话\n"); while(NULL!=p—〉next)
职工信息管理系统设计
一、设计任务
课题:职工信息管理系统设计
职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职
工号不重复)。是设计一职工信息管理系统,使之能提供以下功能:
系统以菜单方式工作
职工信息录入功能(职工信息用文件保存)—-输入
职工信息浏览功能
——输出
查询和排序功能
——算法
按工资查询
/*程序结束释放内存*/ void release(PLINK p) { PLINK q; while(NULL!=p—>next) { q=p; p=p-〉next; free(q);
分析:及时的在程 序结束时释放内 存,避免占用多余 的空间充分显示出 了链表使用的优越 性,占用最小的空 间满足用户更多的 需求
2。应用高级语言程序设计中的基本控制结构,如选择和循环等,并且包含对文 件的读、写等基本操作,在软件开发过程中应用了软件工程的基本理论。因此, 系统的设计方法是结构化设计方法,开发手段是 C 语言.

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

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

c语言职工信息管理系统 课程设计一、课程目标知识目标:1. 学生能理解C语言中结构体的概念,掌握结构体在职工信息管理中的运用。

2. 学生能掌握文件操作的基本方法,实现对职工信息数据的存储与读取。

3. 学生了解并掌握C语言中字符串处理、数据排序等基本算法。

技能目标:1. 学生能够运用C语言编写简单的职工信息管理系统,实现职工信息的增加、删除、修改和查询功能。

2. 学生能够利用结构体和文件操作,实现数据的持久化存储。

3. 学生能够运用所学知识解决实际问题,提高编程实践能力。

情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,激发创新精神。

2. 学生能够认识到编程在现实生活中的应用价值,提高对信息技术的认识。

3. 学生在课程实践过程中,培养团队合作意识,提高沟通与协作能力。

课程性质:本课程为C语言编程实践课程,旨在让学生通过职工信息管理系统的设计与实现,掌握C语言的基本知识和编程技能。

学生特点:本课程面向高中生,学生对C语言有一定了解,具备基本的编程能力,但实践经验不足。

教学要求:结合学生特点和课程性质,教师需注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决实际问题的能力。

教学过程中,注重培养学生的自主学习能力和团队合作精神。

通过本课程的学习,使学生能够达到上述课程目标,为后续课程打下坚实基础。

二、教学内容1. 结构体的定义和使用:以职工信息管理系统为例,讲解结构体的定义方法,如何定义职工信息结构体,以及结构体在程序中的使用。

相关教材章节:C语言基础,结构体与共用体。

2. 文件操作:介绍文件的基本操作,如文件的打开、关闭、读写等,结合职工信息管理系统,实现数据的持久化存储。

相关教材章节:文件操作,数据存储。

3. 字符串处理:讲解字符串的基本操作,如字符串的连接、比较、查找等,应用于职工信息管理系统中的输入输出处理。

相关教材章节:字符串处理。

4. 数据排序算法:介绍一种简单的排序算法,如冒泡排序、选择排序等,应用于职工信息的排序显示。

【课程设计】职工信息管理系统

【课程设计】职工信息管理系统

【课程设计】职工信息管理系统第一篇:【课程设计】职工信息管理系统题目:职工信息系统功能包括:λ建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话)λ根据职工编号查询职工信息(查询时需要身份确认。

单位领导和人事秘书可以看到职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信息简表)λ增加新职工信息(由人事秘书完成,需要身份确认)λ删除职工信息(由人事秘书完成,需要身份确认)λ修改职工工资(由财务处人员完成,需要身份确认)λ要求所有信息能够存储在文件中,并具有良好的用户界面#include #include #include #include using namespace std;const char * file = “staff.dat”;const int LIM =8;int ct=0;int Admin;int na;//ct用来储存文件中数据组数,Admin用来储存登陆后该用户的权限,//na用来储存登录所输的编号,方便主菜单内使用其显示当前用户void hline(int);inline void eatline(){while(cin.get()!='n')continue;} class staff {/*职工编号,姓名,性别,年龄,职务,电话,工资和家庭成员信息*/ public: };void staff::printf()//输出的选择,判断其职务,选择调用哪个输出{ if(Admin==1||Admin==2)printf1();else int num;char name[LIM],sex[3];int age;char job[10],phone[15];double wages;char home[20];int admin;void printf();void printf1();void printf2();void printf3();}if(Admin==3)printf2();else printf3();void staff::printf1()//领导及人事秘书能见的输出 {} void staff::printf2()//财务人员能见的输出 {} void staff::printf3()//普通员工能见的输出 { cout<} hline(3);cout<//输出信息的头部{switch(n){ case 1:{cout<<};break;case 2:{cout<};break;case 3:{cout<}} <};break;void menu()//主菜单 { cout<//二级菜单 { cout<//登陆的实现部分 { cout<intw=0;while(!(cin>>na)){ cin.clear();while(cin.get()!='n')continue;co ut<for(int i=1;i<=ct;i++)} fstream find;find.open(file,ios_base::in|ios_base::out|ios_base::binary);eatl ine();staff stu;{streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){cerr << “■查找出错!程序将退出!■n”;system(“pause”);exit(EXIT_FAILURE);} find.read((char *)&stu, sizeof stu);if(stu.num==na){ } w=1;Admin=stu.admin;}if(w==0){cout<}int stu_num()//计算数据组数 {} staff stu;ifstream stunum;stunum.open(file,ios_base::in|ios_base::binary);if(stunum .is_open()){} stunum.close();return ct;stunum.seekg(0);while(stunum.read((char *)&stu,sizeof stu))ct++;system(“pause”);system(“cls”);void setadmin(staff &stu,char jobs[10])//增加职工时根据职务设置权限{ char job1[10]=“总经理”;char job2[10]=“副总经理”;char job3[10]=“人事秘书”;char job4[10]=“财务人员”;}void add()// 输入数据的函数,增加职工 {if(Admin==2){ staff stu;if((!strcmp(stu.job,job1))||(!strcmp(stu.job,job2)))stu.admin=1 ;elseif(!strcmp(stu.job,job3))stu.admin=2;elseif(!strcmp(stu.job,job4))stu.admin=3;ofstream fout(file, ios_base::out | ios_base::app | ios_base::binary);if(!fout.is_open()){cerr << “不能打开” << file << “ 文件:n”;exit(EXIT_FAILURE);}cout << “★增加职员信息★请输入职工姓名:(按Enter键退出输入!):n”;eatline();cin.get(, LIM);while([0]!= ''){cout << “★增加职员信息★请输入职工编号:”;cin>>stu.num;cout << “★增加职员信息★请输入职工性别:”;eatline();cin.get(stu.sex, 3);cout << “★增加职员信息★请输入职工年龄:”;cin>>stu.age;cout << “★增加职员信息★请输入职工职务:”;eatline();cin.get(stu.job, 10);cout << “★增加职员信息★请输入职工电话:”;eatline();cin.get(stu.phone, 15);cout << “★增加职员信息★请输入职工工资:”;cin>>stu.wages;cout << “★增加职员信息★请输入职工家庭信息:(按Enter键退出输入!):n”;eatline();cin.get(stu.home, 20);setadmin(stu,stu.job);fout.write((char *)&stu, sizeof stu);cout << “■增加职员信息■请输入职工姓名:(按Enter键退出输入!):n”;eatline();cin.get(,LIM);}fout.close();} else cout<void output()//输出全部职工信息的函数 { staff stu;} ifstream find;find.open(file,ios_base::in|ios_base::binary);hline(1);while(fin d.read((char *)&stu,sizeof stu)){ cout<<//修改数据函数 {if(Admin==3){fstream change;int w=0;staff stu;streampos place;change.open(file,ios_base::in|ios_base::out|ios_base::binary);i f(change.eof())change.clear();//清除EOF cout<>rec;eatline();for(int i=0;iplace =i* sizeof stu;change.seekg(place);if(change.fail()){cerr << “■查找出错!程序将退出!■n”;system(“pause”);exit(EXIT_FAILURE);} change.read((char *)&stu, sizeof stu);if(stu.num==rec){ } w=1;cout << “你选择的是:n”;stu.printf2();break;}if(w==1){ cout << “请输入你要修改职员的工资: ”;while(cin >> stu.wages){if(stu.wages<0||stu.wages>100000){cout<cin.clear();while(cin.get()!='n');continue;}break;} change.seekp(place);// 回到查找到的地点change.write((char *)&stu, sizeof stu)<< flush;if(change.fail()){cerr << ”■--查找失败!程序将退出--■n“;system(”pause“);n”;}exit(EXIT_FAILURE);} change.close();cout<void del()//删除指定编号的职工信息 {if(Admin==2){while(1){ eatline();int delnum;cout<cin>>delnum;fstreamin;in.open(“staff.dat”,ios_base::in|ios_base::binary);if(!in){ cout< } in.close();temp.close();//修改完成,将原文件清空,并将临时文件内容q=0;if(stu.num==delnum){ } if(q==0)temp.write((char*)&stu,sizeof(stu));in.read((char*)&stu,si zeof(stu));q=1;复制回原文件中}{ out.write((char*)&stu,sizeof(stu));temp.read((char*)&stu,sizeof( stu));out.open(“staff.dat”,ios_base::out|ios_base::trunc|ios_base ::binary);temp.read((char*)&stu,sizeof(stu));while(!temp.eof())//将文件内容修改后临时寸到另一个文件temp.open(“temp.dat”,ios_base::in|ios_base::binary);if(!te mp){ cout<cout<>x;if(!(x=='y'||x=='Y'))break;} else cout<void find()//查找职工的实现部分 {while(1){ menu2();//eatline();int a;int w=0;cin>>a;int na;char sna[LIM];fstreamfind;find.open(file,ios_base::in|ios_base::out|ios_base::binary);eatl ine();staff stu;switch(a){ case 1:cout<>na;break;case 2:cout<>sna;break;case 3:{w=1;if(Admin==1||Admin==2)output();else cout<}break;default:{} for(int i=1;i<=ct;i++){streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){cout<cerr << “■查找出错!程序将退出!■n”;system(“pause”);exit(EXIT_FAILURE);} find.read((char *)&stu, sizeof stu);switch(a){ case 1:if(stu.num==na){w=1;stu.printf();};break;case 2:if(!strcmp(,sna)){w=1;stu.printf();};break;case 3:break;default:{cout<cin.clear();while(cin.get()!='n');continue;}} }n”;} if(w==0)cout<>x;if(!(x=='y'||x=='Y'))break;} /* 建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话)根据职工编号查询职工信息(查询时需要身份确认。

职工消息管理系统课程设计

职工消息管理系统课程设计

职工消息管理系统课程设计一、课程目标知识目标:1. 学生能理解职工消息管理系统的基本概念,掌握其功能与操作流程;2. 学生能掌握数据库的基本操作,如增加、删除、修改和查询职工信息;3. 学生了解职工消息管理系统的应用场景,理解其在企业信息化管理中的重要性。

技能目标:1. 学生能独立操作职工消息管理系统,完成职工信息的增删改查操作;2. 学生能通过编程实现职工消息管理系统的部分功能,如录入新职工信息、修改职工信息等;3. 学生能运用所学知识解决实际问题时,具备分析问题、设计解决方案的能力。

情感态度价值观目标:1. 学生通过学习职工消息管理系统,培养对信息管理的兴趣,提高信息素养;2. 学生在学习过程中,培养团队合作精神,学会尊重他人,共同解决问题;3. 学生认识到职工消息管理系统在现代企业管理中的重要作用,增强对信息安全的意识。

课程性质:本课程为信息技术课程,以实践操作为主,理论讲解为辅,结合实际案例进行教学。

学生特点:学生为初中年级学生,具备一定的计算机操作基础,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:教师应注重实践操作与理论知识的结合,引导学生主动参与,培养其独立思考和解决问题的能力。

同时,关注学生的个体差异,因材施教,确保每位学生都能掌握职工消息管理系统的基本操作和应用。

通过课程学习,使学生达到课程目标所要求的知识、技能和情感态度价值观方面的具体学习成果。

二、教学内容1. 职工消息管理系统概述- 系统功能介绍- 系统操作流程- 系统在实际中的应用案例2. 数据库基础知识- 数据库概念- 数据表结构与设计- 数据类型及字段属性3. 职工信息管理操作- 职工信息录入- 职工信息查询- 职工信息修改与删除- 数据备份与恢复4. 编程实现职工信息管理功能- 编程环境与工具介绍- 编程实现职工信息录入- 编程实现职工信息查询与修改- 编程实现职工信息删除与备份5. 实践与案例分析- 案例分析:企业职工信息管理需求- 实践操作:根据需求设计并实现职工信息管理系统- 课堂讨论:优化系统功能与操作流程6. 期末项目设计与展示- 项目需求分析与设计- 项目实施与功能测试- 项目成果展示与评价教学内容安排与进度:第一周:职工消息管理系统概述第二周:数据库基础知识第三周:职工信息管理操作第四周:编程实现职工信息管理功能第五周:实践与案例分析第六周:期末项目设计与展示教学内容与课本关联性:本教学内容紧密结合课本中关于数据库应用、编程实现和系统设计的相关知识,确保学生能够学以致用,提高实际操作能力。

课程设计之职工信息管理系统(doc 8页)

课程设计之职工信息管理系统(doc 8页)

课程设计之职工信息管理系统(doc 8页)山东信息职业技术学院软件工程系课程设计报告书题目:职工信息管理系统系部:软件工程系专业:网络系统管理班级:07软件7班学号:2007030701姓名:同组者:_______________________组号:组长:指导教师:开始时间:2008-6-10完成时间:2008-6-16年月日下间距为:段前0.5行,段后0.5行)总体设计的目的是根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案,为下一步进行详细设计做准备。

3.1 功能模块图(作为正文2级标题,用4号黑体,加粗)3.1.1 各模块逻辑图(作为正文3级标题,用小4号黑体,不加粗)该系统可以按功能进行模块划分,其模块图如下:其中:信息输入模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等;信息浏览模块完成已录入职工信息的显示;信息查询模块完成职工信息的查询,查询时对应有按工资查询和按学历查询两种方式;信息修改模块完成职工信息的修改功能;信息删除模块完成职工信息的删除功能;菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;3.1.2 项目分工组长的设计报告中应有各模块分工情况。

如:角色姓名学号分工(5号宋体)组长2007030701张某项目总体规划设计、模块划分、界面设计组员2007030702王某登录模块、删除模块2007030703李某查询模块2007030704孙打印模块某各组员的设计报告中应明确写明自己负责的模块名称。

3.2 数据结构(作为正文2级标题,用4号黑体,加粗)本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理。

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

面向对象课程设计报告课程设计题目:职工信息管理系统姓名:班级:学号:指导老师:2011年11月8日目录摘要 (3)第一章绪论 (4)1.1面向对象C++语言程序设计 (4)1.2职工信息管理系统 (4)1.3程序编译环境 (4)第二章职工信息管理系统需求分析 (5)2.1编写目的 (5)2.2需求概述 (5)2.3需求说明 (6)第三章:详细设计 (7)3.1编写目的 (7)3.2详细设计 (10)第四章:源程序编码及实现 (11)4.1程序源代码 (16)4.2程序实现结果 (17)第五章:系统测试 (18)第六章:结束语 (21)参考文献: (21)摘要在当今社会,互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。

当前大量企业的职工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。

管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。

本程序是一个关于职工信息管理的系统,通过这个系统用户可以简捷、方便的对职工信息进行增加、修改、添加、查询、浏览等功能,它不仅可以帮助企业单位达到员工管理办公自动化、节约管理成本、更能达到提高企业单位工作效率的目的。

关键词:职工,信息管理,系统,程序一.绪论1.1面向对象C++语言程序设计C++是种面向对象的程序设计语言,它是在C语言基础上发展起来的。

虽然它不是最早的面向对象的程序设计语言,但是它是目前使出比较广泛的面向对象的程序设计语言。

什么是面向对象?简单地说,它和面向过程—样都是软件开发的一种方法。

但是它与面向过程不同,面向对象是—种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。

1.2职工信息管理系统在当今信息技术高速发展的时代,企业单位迫切需要这样一个系统:它能高效的管理企业或单位内部所有员工的个人信息,并能正确快速的对系统的使用者的操作做出回应,以提高效率,降低成本。

该系统能够满足以上的要求,使用户可以快速准确的管理员工的信息。

1.3程序编译环境使用Visual C++ 6.0集成环境来编辑、编译并运行程序。

Visual C++ 不仅仅是一个编译器。

它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的C++ 来开发出专业级的Windows 应用程序。

为了能充分利用这些特性,你必须理解C++ 程序设计语言。

二.需求分析2.1 编写目的:通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进行系统分析和测试人员进行测试时的手册2.2需求概述:设计一个职工信息管理系统,使之能提供以下功能:➢录入职工信息并保存➢浏览所有职工信息➢查询职工信息➢修改职工信息并保存➢添加职工信息2.3 需求说明:本系统所实现的主要功能:(1)添加新成员,实现对新加入职工信息的录入,所有的信息当中主码即职工信息编号必须填写。

(2)删除职工信息,当公司有职工因故离职时,需要删除员工信息时,释放掉它所占据的数据库空间,就可以在列表中选中所要删除的记录,然后点击删除。

如果确认删除则在弹出的消息框中点击确定即可删除所选的记录。

(3)修改员工信息,由于某种原因可能导致在记录员工信息时出现错误,需要对员工信息进行修改。

在员工信息系统主窗口中选择所要修改的成员信息进行修改,点击修改后将会弹出消息框,如果确认修改则点击确定,则修改数据成功。

(4)显示职工信息,在删除职工信息和添加职工信息成功后,点击显示按钮则可对职工信息记录进行更新,显示职工信息的最新记录。

(5)姓名检索信息,点击此按钮则可以显示出当前那一条或几条员工信息,用名字来查看员工信息。

综上本系统可以对员工信息实现科学自动的管理,其中包括显示职工基本信息,并实现信息的添加、删除、显示、及检索。

经过调试,程序性能良好。

三.详细设计3.1编写目的:根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。

3.2详细设计:对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:系统功能模块图:(1)系统的主要模块:增加模块、显示模块、删除模块、计算模块、检索模块(2)员工管理系统的主界面设置如下图:图一员工管理系统的主界面(3)职工信息记录的显示界面设计如下图:图二职工信息增加记录的显示界面教师的:工人的:在页面上用按键1/2来选择是添加教师或者工人,如上两图显示。

显示按钮完成的功能:在对员工进行信息记录完成时,单击此按钮可以对其进行查看。

当显示成功时,系统会下图所四.源程序编码及实现·4.1源程序代码:#include <iostream>#include <string>using namespace std;class employee{public:virtual void display()=0;protected:int num;string name;string sex;float income;int birthday;int workday;int age;};class teacher:public employee{public:void getdata(){cout<<"请输入编号:"<<endl;cin>>num;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请输入姓别:"<<endl;cin>>sex;cout<<"请输入薪水:"<<endl;cin>>income;cout<<"请输入生日:"<<endl;cin>>birthday;cout<<"请输入工作年龄:"<<endl;cin>>workdayage=workday-birthday;}void display(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"姓别:"<<sex<<endl;cout<<"薪水:"<<income<<endl;cout<<"生日:"<<birthday<<endl;cout<<"参加工作时间:"<<workday<<endl; cout<<"年龄:"<<age<<endl;}int getage(){age=workday-birthday;return age;}int getnum(){return num;}string getname(){return name;}};class worker:public employee{public:void getdata(){cout<<"请输入编号:"<<endl;cin>>num;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请输入姓别:"<<endl;cin>>sex;cout<<"请输入薪水:"<<endl;cin>>income;cout<<"请输入生日:"<<endl;cin>>birthday;cout<<"请输入工作年龄:"<<endl; cin>>workday;}void display(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"姓别:"<<sex<<endl;cout<<"薪水:"<<income<<endl;cout<<"生日:"<<birthday<<endl;cout<<"参加工作时间:"<<workday<<endl; cout<<"年龄:"<<age<<endl;}int getage(){age=workday-birthday;return age;}int getnum(){return num;}string getname(){return name;}};void menu(int &choice){cout<<"\t\t\t 职工信息管理系统"<<endl; cout<<"\t\t\t1、增加一位教师记录"<<endl; cout<<"\t\t\t2、增加一位工人记录"<<endl; cout<<"\t\t\t3、显示全部职工记录"<<endl; cout<<"\t\t\t4、计算教师平均年龄"<<endl; cout<<"\t\t\t5、计算工人平均年龄"<<endl; cout<<"\t\t\t6、删除一个教师"<<endl;cout<<"\t\t\t7、删除一个工人"<<endl;cout<<"\t\t\t8、按姓名检索所有信息"<<endl; cout<<"\t\t\t0、结束程序运行"<<endl;cout<<"\t\t 请输入你的选择:";cin>>choice;}int main(){int choice=0;int indx1=0,indx2=0;bool flag=false;teacher t[50];worker w[50];while (1){int i=0;int average=0;int temp;string tname;menu(choice);switch (choice){case 1:t[indx1++].getdata();break;case 2:w[indx2++].getdata();break;case 3:cout<<"显示所有教师信息:"<<endl; for (i=0;i!=indx1;++i){t[i].display();}cout<<"显示所有工人信息:"<<endl; for (i=0;i!=indx2;++i){w[i].display();}break;case 4:cout<<"教师平均年龄:"<<endl;for (i=0;i!=indx1;++i){average+=t[i].getage();}cout<<average/indx1;break;case 5:cout<<"工人平均年龄:"<<endl;for (i=0;i!=indx2;++i){average+=w[i].getage();}cout<<average/indx2;break;case 6:cout<<"请输入要删除教师的编号"<<endl; cin>>temp;for (i=0;i!=indx1;++i){if (temp==t[i].getnum()){do{t[i]=t[i+1];++i;} while (i!=indx1);cout<<"已删除"<<endl;--indx1;break;}}break;case 7:cout<<"请输入要删除工人的编号"<<endl; cin>>temp;for (i=0;i!=indx2;++i){if (temp==w[i].getnum()){do{w[i]=w[i+1];++i;} while (i!=indx2);cout<<"已删除"<<endl;--indx2;break;}}break;case 8:cout<<"请输入姓名:"<<endl;cin>>tname;for (i=0;i!=indx1;++i){if (tname==t[i].getname()){cout<<"这位是教师"<<endl;t[i].display();}}for (i=0;i!=indx2;++i){if (tname==w[i].getname()){cout<<"这位是工人"<<endl;w[i].display();}}break;case 0:flag=true;break;}if (flag){break;}}return 0;}·4.2程序实现结果:五.系统测试5.1 测试方法首先运行程序,进入主界面选定要增加的员工信息,在职工编号中填入所要增加的职工编号,添加职工信息。

相关文档
最新文档