版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘
要计算机的飞速发展职工信息管理系统的应用已经十分广泛它在人们的生产、生活、工作和学习中发挥着重要的作用。这时,开发一个功能完善的职工信息管理系统就必不可少了本文介绍了在C言框架下采“自上而下地总体规划,自下而上地应用开发策略开发本系统的详细过程提出了实现职工信息查询管理更新的基本目标并阐述系统结构设计和功能设计从软件工程的角度进行了科学而严谨的阐述从职工信息的查询到管理实现了自动化的模式从而提高了工作效率。为了设计一个功能强大的职工信息管理系统,在设计中我们做出了明细分工,目的是要让本组成员都从这次课程设计中学到编程经验与团队精神职工信息管理系统系统以菜单方式工作写存放有职工基本信息包含职工号,姓名,性别,学历,工资,住址,电话等,并且要求录入职工号不重复;可以对录入的信息进行浏览查询修改除等基本操作立职工信息系统的管理。关键词工;系统;程序
目
录1前言1.1项目背景.1.2问题描述.1.3详细.1.4问题分析.2系统总体设计2.1.功能描述2.2系统的总体流程图.3系统详细设计3.2模块流程图.4系统测试4.1测试举例.5遇到的问题及解决办法6总结参考文献致谢附录
1言1.1目背景职
工信息管理
系统是一个企业单位不可绝少的部分,它的内容对于企业的决策者和管理者来说都是至关重要的以职工信息管理系统应该能够为用户提供充足的信息和快捷的查询手段一直以来各个公司基本上都是靠传统的人工方式来管理职工信息,这种管理方式存在着许多缺点,如效率低,保密性差,另外时间一长将产生大量的文件和数据这对于信息的查找更新和维护都带来不少困难。当今社会信息迅速膨胀随着各个公司的规模扩大有关信息管理工作所涉及的数据量越来越大职工信息量也大大增加利用传统的手工查询等登记和修改等方法的处理速度远远跟不上公司的需求,有的公司不得不靠增加人力,物力来进行信息管理。随着计算机级数的不断提高计算机作为知识经济时代的产物其强大的功能已为人们深刻认识已进入人类社会的各个行业和领域并发挥着越来越重要的作用,成为人们工作和生活中不可缺少的一部分。而作为计算机应用的一部分使用计算机对职工进行信息管理具有手工管理所无法比拟的优点。例如检查迅速,查询方便,可靠性高,存储量大,保密性好,寿命长,成本低等。这些优点能够极大地提高职工信息管理的效率,也是公司的科学化正规化管理与世界接轨的重要条件职工信息管理系统作为一种管理软件正在各公司中得到越来越广泛的应用,且以达到良好的效果。1.2题描述根据题目要求于职工信息是存放在文件中所以应提供文件的输入,查询等操作;在程序中需要浏览职工的信息,应提供显示,查找,更改,删除等功能;另外还提供键盘式选择菜单实现功能选择。1.3细(1)问题说明设计一个简单的职工信息管理系统按照课程设计的要求实现对职工信息的添加,查询,修改以及删除操作。(2)输入要求
由信息管理员输入现有职工和新增职工的以下信息:职工号,姓名,性别,年龄,学历,工资数,住址,联系电话等信息,并且注意输入时姓名为字符串形式,性别为字符,其余的为长整型数字。(3)输出要求系统管理员根据公司的人员流动情况,选择系统提供的各项功能进行操作,并输出相应的结果。1.4题析(1)具体要求简单的职工信息管理系统主要实现以下功能:①新增一名职工:将新增职工对象按姓名存入职工管理文件中。②删除一名职工:从职工管理文件中删除一名职工对象。③查询:从职工管理文件中查询符合一些条件的职工。④修改:检索某个职工对象,对其某些属性进行修改。要求:职工信息包括:职工号,姓名,性别,年龄,学历,工资数,住址,联系电话等。(2)实现提示①有键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。②对职工对象进行增,删,查询,修改等操作。2统总体设计2.1.功能述①员工信息管理实现对员工基本信息的管理员工基本信息的添加查询修改以及删除,员工基本信息主要包括:职工号,姓名,性别,年龄,学历,工资数,住址,联系电话等基本信息情况,可在系统软件中快速查询得到。②工资管理包括工资变动,分配及其查询。③系统管理主要是对用户和密码的管理包括添加系统用户信息及密码的修改系统启动后首先要做的就是用户登录若不登陆系统所有功能都无法使用只有用户
登陆系统后才可以根据用户权限进行一定的操作。2.2统的总体流程开始主程序根据菜单输入的值选择程序录入职工信息
添加职工信息
修改职工信息
浏览职工信息
查询职工信息
删除职工信息
退出保存Y
是否继续进行
N结束图2.1
3统详细设计3.1据设employee//义一个职工信息的结构体{intnum;sex;intxueli[30];intwage;tel[20];}em[100];3.2块流程图1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的voidmenu()函数来实现。开始显示菜单输入功能代码录入职工信息
浏览职工信息
查询职工信息
删除职工信
添加职工信息
修改职工信息
退出结束
2.输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void函数来实现。开始输入菜单输入信息已保存是否继续N结束
Y3.浏览模块:浏览所有职工的相关信息,通过自己定义void()函数来实现。开始浏览菜单所有职工信息是否继续N结束4.删除模块删除需要删除的职工的所有信息通过自己定义的del()数来实现。
开始删除菜单所有职工信息输入姓名职工信息Y确认删除N是否继续N结束5.添加模块:添加需要添加的职工的相关信息,通过自己定义的add()函数来实现。
开始修改菜单所有职工信息输入姓名职工信息输入修改信息确认修改N是否继续N结束
Y6.按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的search_num()函数来实现。
开始查询菜单输入查询职工号职工信息是否继续N结束
Y7.按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的函数来实现。开始查询菜单输入查询学历职工信息是否继续N结束
Y8.按职工的电话号码查询模块:可以按职工的电话来查询职工的相关信息,通过自己定义的search_tel函数来实现。
开始查询菜单输入查询电话职工信息是否继续N结束
Y9.修改模块可以修改需要修改的职工的相关信息通过自己定义的modify()函数来实现。开始修改菜单所有职工信息输入姓名职工信息修改信息确认删除N是否继续N结束
Y
4统测试4.1试举例运程,入工息理统主单图4.1进入主菜单界面4.1.2.入字1进录职信:图4.2录入职工信息4.1.3.入y”回菜(面图4.1.1。4.1.4.入2”浏览职工息10
图4.3浏览职工信息4.1.5.入y”继,入”行询工息按职工号及学历查询职工信息图4.5按电话号码查询4.1.6.入菜,入4”行除工息11
图4.6删除职工信息4.1.7.入菜输“5”行加工息图4.7添加职工信息4.1.8.入菜输“6”行改工息图修职信4.1.9.入菜输””退职信管12
5
遇到的问及解决办法1.在一些字符或字符串的定义上出项错误,如定义职工电话号码的时候,用成了float类型,而正确的应该是型。2.在进行块函数设计时,部分函数功能没有设计好,导致部分函数代码过长,可读性降低,以至于再次重写里面的一小部分代码,浪费了大量的时间。3.在整个序设计编写完成后,编译时出现了大量的错误,而且里面大部分是因为大小写问题,还有void拼错拼成viod,还有有写,后来经过程序错误查询,一一更改了过来。4.在编写代码时没有添加注解,降低了在调试测试时程序的可读性,同时也降低了与其他同学的交流虽然在测试过程中我把全部的注解加上但也延长了整个程序的开发时间。
6
总结经过这段时间开发过程我们小组了解了c程序的具体涵义,大体熟悉了开发流程也熟悉了软件文档的编写学到了很多以前没有了解到的知识也对以前一些不懂的知识有了更深层的理解,但由于时间的不够充分和知识上的不足,大量的时间都用作学习相关的编写程序的相关知识以留给软件开发的时间相对较少一些,造成的结果是,开发的过程不是均匀,但是经过这段时间的开发,终于完成了课题间有很多不能解决的问题都是依赖上网查询和询问老师同学得以解决但是也获得了一定的知识有了很大的进步学到的知识都是很值得珍惜的。而且深刻的理解到了,软件开发,是一件很艰难却也简单的事,我们要熟悉掌握必备的基础知识这是第一的次学习与探究是与此同等重要的,要想取得可观可喜的进步来源于自身的不懈努力和汗水的付出。在编写程序的过程中我们得到了老师的精心指导以及孜孜不倦的教诲在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!
参考文献王连相.c/c++程序设计武汉大学出版社,2013谭浩强.C语言程序设计(第二版)学习指导清华大学出版社,2012杨莉,龚义建.C语言程序设计实训指导教程华中科技大学出版社,2009张小东,郑宏珍.C语言程序设计与应用人民邮电出版社,2009郭翠英.C语言课程设计案例精编.中国水利水电出版社,2004郭有强.C语言程序设计清华大学出版社,2009李丹程,刘莹,那俊C语言程序设计案例实践.清华大学出版社,2009李丽娟.C语言程序设计教程.人民邮电出版社,2013武雅丽,王永玲,解亚利C语言程序设计.清华大学出版社,200915
致
谢历时一周的时间终于将这篇课程设计写完课设的过程中遇到了无数的困难和障碍,但是都在老师和同学的帮助下度过了。尤其要感谢我的指导老师---谢娟文老师她对我进行了无私的教导和帮助不要其烦的帮助进行课设的修改和改进另外在校图书馆查找资料的时候图书馆的老师也给我提供了很多方面的支持与帮助。在此想帮助我和指导过我的各位老师表示心中最衷心的感谢。由于我的学术水平有限所写课设难免有不足之处恳请各位师和学友批评和指正。同时我还要感谢我们小组同学对我的帮助和指点在课设即将完成之际我的心情无法平静从开始进入课题到课设的顺利完成有多少可敬的师长学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。
附录:#include<stdio.h>#include<string.h>#defineN100structemployee{intnum;charname[20];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[20];}em[100];/*定义一个结构体*/voidmenu();voidinput();voidsave(int);voiddisplay();voiddel();voidadd();voidsearch();17
voidsearch_num();voidsearch_xueli();voidsearch_tel();voidmodify();/*定义各函数*/voidmain(){voidmenu();intn,flag;chara;do{printf("Pleasechooseyouneedoperationsteps(1--7):\n");scanf("%d",&n);if(n>=1&&n<=7){flag=1;break;}else{flag=0;18
printf("Itiswrong,pleasechooseagain!");}}while(flag==0);while(flag==1){switch(n){case1:printf("*******Inputtheworkerinformation*******\n");printf("\n");input();break;case2:printf("*******Browsetheworkerinformation*******\n");printf("\n");display();break;case3:printf("*******Basedontheinformationofworkernumberqueryworker*******\n");printf("\n");search();break;case4:printf("*******Deleteemployeeinformation*******\n");printf("\n");del();break;case5:printf("*******Addemployeeinformation*******\n");printf("\n");add();break;case6:printf("*******Modifytheworkerinformation*******\n");printf("\n");modify();break;case7:exit(0);break;default:break;}getchar();printf("\n");printf("Whethertocontinue(yorn):\n");scanf("%c",&a);19
if(a=='y'){flag=1;system("cls");/*清屏*/menu();/*调用菜单函数*/printf("Pleasechooseagainyouneedoperationsteps(1--7):\n");scanf("%d",&n);printf("\n");}elseexit(0);}}voidmenu()/*菜单函数*/{printf("************Welcometotheworkerinformationmanagementsystem************\n");printf("1.Inputinformationworker");printf("2.Browsetheworkerinformation\n");printf("3.Querytheworkerinformation");printf("4.Deleteemployeeinformation\n");printf("5.Addemployeeinformation");20
printf("6.Modifytheworkerinformation\n");printf("7.Exit\n");printf("********************Thanksforusing********************\n");printf("\n");printf("\n");}voidinput()/*录入函数*/{inti,m;printf("Pleaseentertheinformationyouneedtocreatethenumberofemployees(1--100):\n");scanf("%d",&m);for(i=0;i<m;i++){printf("Pleaseentertheemployeenumber:");scanf("%d",&em[i].num);printf("Pleaseentertheemployee'sname:");scanf("%s",em[i].name);getchar();printf("Pleaseenterthegender(f--femalem--male):");scanf("%c",&em[i].sex);printf("Pleaseentertheage:");21
scanf("%d",&em[i].age);printf("Pleaseentertherecordofformalschooling:");scanf("%s",em[i].xueli);printf("Pleaseenterthesalary:");scanf("%d",&em[i].wage);printf("Pleaseentertheaddress:");scanf("%s",em[i].addr);printf("Pleaseenterthephone:");scanf("%s",em[i].tel);printf("\n");}printf("\nItiscreated!\n");save(m);}voidsave(intm)/*保存文件函数*/{inti;FILE*fp;if((fp=fopen("employee_list","wb"))==NULL){printf("cannotopenfile\n");exit(0);22
}for(i=0;i<m;i++)if(fwrite(&em[i],sizeof(structemployee),1,fp)!=1)printf("filewriteerror\n");fclose(fp);}intload()/*导入函数*/{FILE*fp;inti=0;if((fp=fopen("employee_list","rb"))==NULL){printf("cannotopenfile\n");exit(0);}else{do{fread(&em[i],sizeof(structemployee),1,fp);i++;}23
while(feof(fp)==0);}fclose(fp);return(i-1);}voiddisplay()/*浏览函数*/{inti;intm=load();printf("Number\tName\t\tGender\t\tAge\n");for(i=0;i<m;i++)printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\nEducation\t\tWage\t\tAddress\t\tPhone\n");for(i=0;i<m;i++)printf("\n%s\t\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}voiddel()/*删除函数*/{intm=load();inti,j,n,t,flag;24
charname[20];printf("\nTheworkeroftheoriginalinformation:\n");display();printf("\n");printf("Pleaseentertheworker'snametodelete:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\nThemanhasbeenidentified,fortherecords:printf("Number\tName\t\tGender\t\tAge\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\nDegree\t\tWage\t\tAddress\t\tPhone\n");printf("\n%s\t\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf("\nReallywanttodeletethispersoninformationpleasepress1,don'tdeletepleasepress0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++){strcpy(em[j].name,em[j+1].name);25
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("\nSorry,nosuchperson!\n");printf("\nAfterdeletingbrowsingallemployeeinformation:\n");save(m);/*调用保存函数*/display();/*调用浏览函数*/printf("\nContinuetodelete,pleasepress1,nolongerdeletepleasepress0\n");scanf("%d",&t);switch(t){26
case1:del();break;case0:break;default:break;}}voidadd()/*添加函数*/{FILE*fp;intn;intcount=0;inti;intm=load();printf("\nTheworkeroftheoriginalinformation:\n");display();printf("\n");fp=fopen("emploee_list","a");printf("Pleaseinputtoincreasethenumberofemployees:\n");scanf("%d",&n);for(i=m;i<(m+n);i++){printf("\nPleaseenterthenewinformationoftheemployees:\n");printf("Pleaseentertheemployeenumber:");27
scanf("%d",&em[i].num);printf("\n");printf("Pleaseinputthename:");scanf("%s",em[i].name);getchar();printf("Pleaseenterthegender(f-femalem-man):");scanf("%c",&em[i].sex);printf("Pleaseentertheage:");scanf("%d",&em[i].age);printf("Pleaseentertherecordofformalschooling:");scanf("%s",em[i].xueli);printf("Pleaseenterthesalary:");scanf("%d",&em[i].wage);printf("(Pleaseinputtheaddress:");scanf("%s",em[i].addr);printf("Pleaseinputthetelephone:");scanf("%s",em[i].tel);printf("\n");count=count+1;printf("Hasincreasedthenumberofpeople:\n");printf("%d\n",count);}printf("\nItisadded!\n");28
m=m+count;printf("\nReadingincreasesafterallthestaffinformation:\n");printf("\n");save(m);display();fclose(fp);}voidsearch()/*查询函数*/{intt,flag;do{printf("\nAccordingtotheworkernumberquerypleasepress1.Accordingtotherecordofformalschoolingqueriespleasepress2;Accordingtothetelephonenumberquerypleasepress3;Enterthemainfunctionpleasepress4\n");scanf("%d",&t);if(t>=1&&t<=4){flag=1;break;}else{29
flag=0;printf("Itiswrong,pleasechooseagain!");}}while(flag==0);while(flag==1){switch(t){case1:printf("Accordingto
the
worker
numberquery\n");search_num();break;case2:printf("Queryby
record
of
formalschooling\n");search_xueli();break;case3:printf("According
to
the
numberquery\n");search_tel();break;case4:main();break;default:break;}}}voidsearch_num(){intnum;inti,t;30
intm=load();printf("Pleaseenteraworkertofindnumber:\n");scanf("%d",&num);for(i=0;i<m;i++)if(num==em[i].num){printf("\nThemanhasbeenidentified,fortherecord:\n");printf("Number\tName\t\tGender\t\tAge\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\nDegree\t\tWage\t\tAddress\t\tPhone\n");printf("\n%s\t\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}if(i==m)printf("\nSorry,nosuchperson\n");printf("\n");printf("Returnthequeryfunctionpleasepress1,continuetoquerytheworker,pleasepress2\n");scanf("%d",&t);switch(t){case1:search();break;case2:break;31
default:break;}}voidsearch_xueli(){charxueli[30];inti,t;intm=load();printf("Pleaseentertofinddegree:\n");scanf("%s",xueli);for(i=0;i<m;i++)if(strcmp(em[i].xueli,xueli)==0){printf("\nHasbeenfound,fortherecord:\n");printf("Number\tName\t\tGender\t\tAge\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\nDegree\t\tWage\t\tAddress\t\tPhone\n");printf("\n%s\t\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}if(i==m)32
printf("\nSorry,nosuchperson\n");printf("\n");printf("Returnthequeryfunctionpleasepress1,continuetoquerydegreepleasepress2\n");scanf("%d",&t);switch(t){case1:search();break;case2:break;default:break;}}voidsearch_tel(){chartel[20];inti,t;intm=load();printf("Pleaseinputtofindthephonenumber:\n");scanf("%s",tel);for(i=0;i<m;i++)if(strcmp(tel,em[i].tel)==0){printf("\nThemanhasbeenidentified,fortherecord:\n");33
printf("Number\tName\t\tGender\t\tAge\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\nDegree\t\tWage\t\tAdress\t\tPhone\n");printf("\n%s\t\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}if(i==m)printf("\nSorry,nosuchperson\n");printf("\n");printf("Returnthequeryfunctionpleasepress1,continuetoquerythephonenumber,pleasepress2\n");scanf("%d",&t);switch(t){case1:search();break;case2:break;default:break;}}voidmodify()/*修改函数*/{intnum;34
charname[20];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[20];intb,c,i,n,t,flag;intm=load();printf("\nTheworkeroftheoriginalinformation:\n");display();printf("\n");printf("Pleaseinputtomodifythenameoftheworker:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\nThemanhasbeenidentified,fortheoriginalrecords:\n");printf("Number\tName\t\tGender\t\tAge\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\nDegree\t\tWage\t\tAdress\t\tPhone\n");35
printf("\n%s\t\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf("\nConfirm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年重庆应用技术职业学院单招综合素质考试备考试题附答案详解
- 2026年阜新高等专科学校单招综合素质考试备考题库带答案解析
- 外卖平台商家协议2025年食品安全条款
- 土地租赁合同(农村商业)2025年费用明细
- 2026年广西教育学院单招职业技能笔试参考题库带答案解析
- 2026年黑龙江能源职业学院单招职业技能笔试备考试题带答案解析
- 投资合同协议(2025年退出机制约定)
- 2026年广西建设职业技术学院单招综合素质考试备考试题带答案解析
- 2026年德宏师范高等专科学校高职单招职业适应性考试备考题库有答案解析
- 2026年合肥共达职业技术学院单招综合素质笔试参考题库带答案解析
- 2025年湖北警官学院马克思主义基本原理概论期末考试真题汇编
- 河道工程测量施工方案
- 2025岚图汽车社会招聘参考题库及答案解析(夺冠)
- 2025河南周口临港开发区事业单位招才引智4人考试重点题库及答案解析
- 2025年无人机资格证考试题库+答案
- DB42-T 2462-2025 悬索桥索夹螺杆紧固力超声拉拔法检测技术规程
- 大学生择业观和创业观
- 车载光通信技术发展及无源网络应用前景
- 工程伦理-形考任务四(权重20%)-国开(SX)-参考资料
- YS/T 1148-2016钨基高比重合金
- 蒂森克虏伯无机房MC2安装说明
评论
0/150
提交评论