职工信息管理系统_第1页
职工信息管理系统_第2页
职工信息管理系统_第3页
职工信息管理系统_第4页
职工信息管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

职工信息管理系统设计1 绪论1.1 课题背景及目的 公司的扩张和人员的变动都需要处理相应职工的信息,凭借人力很难用最短的时间整理出需要的职工信息。运用计算机系统对职工档案进行管理,能够提高管理效率、节约时间、方便管理人员管理信息。因此需要设计一个职工信息管理系统,系统以菜单的方式工作,可以录入、查询、删除等。职工的信息包括工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不可重复),使查询职工信息变得又快又简单。1.2课题的研究方法本系统主要的设计思想是实现对职工信息的录入、删除、排序、查询等主要功能。职工信息以文件的形式存储,这要用到文件存储数据结构。数据结构的构造类型包括结构体变量、结构体数组、结构体指针等。基本类型有整形字符型,其中字符型用来定义职工编号、姓名、工资、电话、地址等。一维数组struct worker work用于定义员工的总人数,结构体struct worker用于存放员工的资料。系统的人机接口采用简单的字符界面进行交互。系统的设计方法是结构化设计方法,采用C语言进行开发。软件开发平台采用Visual C+6.0。1 2 概要设计2.1软件模块结构图职工信息管理系统可以分为显示员工资料、录入员工资料、查询员工信息、删除员工信息、对员工信息进行排序、退出信息系统。职工信息管理系统显示主菜单删除员工信息显示员工信息输入员工信息查询员工信息按工号查询按工资查询图2.1 职工信息管理系统模块结构图3 详细设计3.1数据结构设计定义一维数组struct worker work50;用于定义员工的总人数,当员工总人数超过50后便不能再录入员工资料。1结构体struct worker用于存放存放员工的资料,包括员工的基本信息:工号,姓名,年龄,学历,工资,住址,电话号码。struct worker int num; 工号 char name15; 名字 char xingbie; 性别 int age; 年龄 char exp6; 学历 int wage; 工资 char address20; 住址 char tel12; 电话号码;int count=0; 当前工人个数int sort_type=0; 当前排序类型3.2界面设计3.2.1 登录主界面设置用户名和密码,输入正确方可进入主界面。由strcmp函数判断,代码实现:if(strcmp(username,abcde)=0)&(strcmp(pwd,123456)=0) 2如果输入用户名和密码错误超过三次,则自动退出程序。代码实现: for(i=0;i3;i+) printf(n请输入用户名:); gets(username); printf(n请输入6位密码:); gets(pwd); if(k=0) printf(n连续输入三次错误将退出程序:n); Sleep(2000); quit();3.2.2主界面进入主界面后用户可以根据自己的需要选择相应的选项1.显示员工资料;2.录入员工资料;3.员工信息查询;4.删除员工信息;0.退出信息系统。3代码实现:while (n!=1)&(n!=2)&(n!=3)&(n!=4)&(n!=5)&(n!=0) printf(n请选择:) case 1: display(); break;case 2: if(count50) input(); else printf(记录数已满n); Sleep(2000); system(cls); homepage(); break; default: printf(n选项错误n); 3.2.3 显示员工信息界面一条信息由员工的工号、姓名、性别、年龄、学历、工资、住址和电话组成,用户登录此界面可查看相应的信息,用switch()语句来实现。代码实现:void display() int i; char c; printf(备注:学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):nnn); switch(sort_type) case 0: printf(tt未排序:nn); break; case 1:printf(tt按工号排序:nn); /sort();break; case 2:printf(tt按工资排序:nn);/sort();break; printf(t工号t姓名t性别t年龄t学历t工资t住址t电话n); 3.2.4 录入员工信息界面登录此界面可以录入新员工的信息,当系统中的员工人数达到上限时不可以录入新信息。if(workcount.num=worki.num);numcheck=0判定录入的工号是否重复,重复的话会有重新输入的提示,避免职工信息的重复。当记录数已满时,通过sleep(2000),使之回到主界面,进行其他选项设置。2代码实现:void input() int i,numcheck; char c; do printf(工号:n); scanf(%d,&workcount.num); numcheck=1; if(workcount.num0) printf(请输入正整数:n); do c=getchar(); if(c=y|c=Y) count+; 3.2.5 查询员工信息界面员工信息的查询可以按工号或学历进行查询。用if函数来实现。通过while (choice!=1)&(choice!=2);这个选择来实现查询的方式,选择“1”为工号查询,选择“2”则为按学历查询。 if (find_num=worki.num)即为根据职工号进行查询,strcmp(findedu,worki.exp)根据学历进行职工信息查询。代码实现:void find()int i,j; int choice=0;int find_num;char findedu6;char c;system(cls);printf(tt请选择查询功能:n); while (choice!=1)&(choice!=2);if (choice=1)printf(nt请输入要查询的职工号n);scanf(%d,&find_num);printf(n正在查询,请稍候); for(i=0;i20;i+) printf(.); Sleep(100); system(cls);printf(nn按任意键返回n); c=getch(); system(cls); homepage();3.2.6 删除员工信息界面首先要进行职工信息查询,然后再对查询到的职工进行删除。printf(%d,&del_num);即为显示要删除的职工号,if(c=y|c=Y)则是确定是否删除选定的职工信息。最后通过homepage()回到主界面。 代码实现: void del() int i,j,del_num,match=0; char c; system(cls); printf(请输入要删除的员工工号:n); scanf(%d,&del_num); waiting(); for(i=0;icount;i+) if(worki.num=del_num) match=1; for(j=i;jcount;j+) workj=workj+1;4 使用说明及运行实例(1) 登录主界面按提示输入用户名和密码登录主界面,输入累计错误三次自动退出系统。用户名:abcde;密码:123456图4.1 登陆界面(2) 主界面进入主界面选择相应的选项进行操作图4.2 主界面(3) 查询员工信息界面如图4.3按所选功能输入相应的信息查询员工资料。图 4.3 查询信息界面(4)显示员工信息图 4.4 无序显示员工信息(5) 删除员工信息界面如图4.5.1按提示输入信息,并确认。图 4.5 删除员工信息界面(6) 录入界面如图4.6输入员工的相应信息,输入工号重复后系统提示重新输入。图4.6 录入员工界面(7) 退出程序显示界面图4.7 退出系统显示界面5 总结5.1 遇到的问题及解决办法(1)些字符或字符串的定义上出项错误,如定义职工电话号码的时候,用成了float类型,而正确的应该是char类型。(2)对排序模块进行设计时流程图没设计好,导致运行程序时间过长。(3)在进行模块函数设计时,find()函数功能没有设计好,导致部分函数代码过长,可读性降低。再次重写里面的一部分代码,浪费了大量的时间。5.2 心得体会这次的课程设计让我学会了许多函数的使用,培养了分析问题、解决问题的能力,同时也体会到了C语言操作灵活、执行效率高等特点。在整个课程设计中,我认为最重要的就是耐心和细心。在编写过程中注意拼写,仔细编写程序;在程序编译中出现很多错误的时候能够耐心去修改,这些都是需要学习的。只有这样,才能很好的完成程序。上机操作可以加深对数组、循环等语句的理解。刚开始拿到题目不知道从哪里下手,只有去搜集一些课外资料和咨询师兄师姐们的意见。设计流程图的时候由于逻辑性不是很强,源代码也没有注释,在实际中总会出现一些乱码。以后设计程序一定不能偷懒把注释漏掉了。在运行过程中除了错,可以看看代码和注释是否表达的意思是一样的。因此,一个系统的菜单和提示信息非常重要,有了这些信息用户才能够了解怎么使用这个系统。有了VC+的一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。通过这次课程设计,我觉得自己还需改进的还有很多。路还很长,需要学习的东西还很多。参考文献1 李峰,谢中科.C语言程序设计.上海:复旦大学出版社,2011:21,133-138。2 谭浩强. C程序设计(第三版).北京:清华大学出版社,2005:95-99。3 刘维富,陈建平.C语言程序设计一体化案例教程.北京:清华大学出版社:2009:118-121,125。附录 源程序清单#include#include#include#includevoid homepage(); /主界面void display(); /显示全部信息void input(); /录入 插入void find(); /查询void del(); /删除记录void waiting(); /等待界面void quit(); /退出界面struct worker int num; /工号 char name15; /名字 char xingbie; /性别 int age; /年龄char exp6; /学历int wage; /工资char address20;/住址char tel12; /电话号码;int count=0; /当前工人个数int sort_type=0; /当前排序类型struct worker work50;void main() int i=0,k=0; char username15,pwd6; system(color 3f); printf(nn); printf( tn); printf( t*n); printf( t*n); printf( t*n); printf( t* *n); printf( t* 欢迎使用职工信息管理系统 *n); printf( t* *n); printf( t* *n); printf( t* 苏静 *n); printf( t* *n); printf( t* 201153100206 *n); printf( t* *n); printf( t*n); printf( t*n); printf( t*n); printf( tn); for(i=0;i3;i+) printf(n请输入用户名:); gets(username); printf(n请输入6位密码:); gets(pwd); if(strcmp(username,abcde)=0)&(strcmp(pwd,123456)=0) printf(n您已经成功登录); k=1; for(i=0;i20;i+) printf(.); Sleep(100); system(cls); homepage(); break; else printf(n用户名或密码无效 请重新输入:n); continue; if(k=0) printf(n连续输入错误3次 将退出程序n); Sleep(2000); quit();void homepage() char n; printf(nn); printf(tn); printf(t*n); printf(t* * *n); printf(t* 1.显示员工资料 * 2.录入员工资料 *n); printf(t* * *n); printf(t*n); printf(t* * *n); printf(t* 3.员工信息查询 * 4.删除员工记录 *n); printf(t* * *n); printf(t*n); printf(t* *n); printf(t* 0.退出信息系统 *n); printf(t* * *n); printf(t*n); printf(tn); while (n!=1)&(n!=2)&(n!=3)&(n!=4)&(n!=5)&(n!=0) printf(n请选择:); fflush(stdin); scanf(%c,&n); switch(n) case 1: display(); break;case 2: if(count50) input(); else printf(记录数已满n); Sleep(2000); system(cls); homepage(); break;case 3: find(); break; case 4: del();break; case 0: quit(); break; default: printf(n选项错误n); void display() int i; char c; system(cls);printf(备注:学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):nnn); switch(sort_type) case 0: printf(tt未排序:nn); break; case 1: printf(tt按工号排序:nn); /sort();break; case 2: printf(tt按工资排序:nn);/sort(); break; printf(t工号t姓名t性别t年龄t学历t工资t住址t电话n);if (count=0) printf(nt无员工信息!n); for(i=0;icount;i+) printf(t%dt%st%ct%dt%st%dt%st%sn,worki.num,,worki.xingbie,worki.age,worki.exp,worki.wage,worki.address,worki.tel); printf(nn按任意键返回n); c=getch(); system(cls); homepage();void input() int i,numcheck; char c; system (cls); do printf(工号:n); scanf(%d,&workcount.num); numcheck=1; if(workcount.num0) printf(请输入正整数:n); for(i=0;icount;i+) if(workcount.num=worki.num) numcheck=0; printf(工号重复,重新输入:n); while(!numcheck); printf(姓名:); fflush(stdin); scanf(%s,);fflush(stdin); printf(性别(F女:M男):); scanf(%c,&workcount.xingbie);printf(年龄:);scanf(%d,&workcount.age);fflush(stdin);printf(学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):n);scanf(%s,workcount.exp);printf(工资:);scanf(%d,&workcount.wage);printf(住址:);scanf(%s,workcount.address);printf(电话:);scanf(%s,workcount.tel); printf(n是否继续输入(y/n):n); do c=getchar(); if(c=y|c=Y) count+; if(count50) input(); else printf(记录数已满n); Sleep(2000); system(cls); homepage(); else if(c=n|c=N) count+; system(cls); homepage(); else; while(c!=y)&(c!=n)&(c!=Y)&(c!=N);void del() int i,j,del_num,match=0; char c; system(cls); printf(请输入要删除的员工工号:n); scanf(%d,&del_num); waiting(); for(i=0;icount;i+) if(worki.num=del_num) match=1; for(j=i;jcount;j+) workj=workj+1;count-; if(!match) printf(n没有要找的工号.n); printf(n是否继续删除?(y/n); fflush(stdin); do c=getchar(); if(c=y|c=Y) del(); else if(c=n|c=N) system(cls); homepage(); while(c!=y)&(c!=n);void find()int i,j; int choice=0;int find_num;char findedu6;char c;system(cls);printf(tt请选择查询功能:n); printf(t1.按工号查询n); printf(t2.按学历查询n);printf(请输入选择:);doscanf(%d,&choice);while (choice!=1)&(choice!=2);if (choice=1)printf(nt请输入要查询的职工号n);scanf(%d,&find_num);printf(n正在查询,请稍候); for(i=0;i20;i+) printf(.); Sleep(100); system(cls);for (i=0;i=count;i+)if (find_num=worki.num)printf(nnt工号t姓名t性别t年龄t学历t工资t住址t电话n);printf(t%dt%st%ct%dt%st%dt%st%sn,w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论