C语言职工管理系统课程设计报告_第1页
C语言职工管理系统课程设计报告_第2页
C语言职工管理系统课程设计报告_第3页
C语言职工管理系统课程设计报告_第4页
C语言职工管理系统课程设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告(本)

言11104410621110441039陈飞汪家东2011级计算机科学与术(嵌入式应用技术)班计算机科学与技术系

设计名称:职工信息管理系统设计设计内容、目的与要求:内容:职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)目的与要求:设计一职工信息管理系统,使之能提供以下功能:1、职工信录入功能(职工信息用文件保存)--输入2、职工信浏览功能--输出3、职工信查询功能--算法查询方式:按学历查询、按职工号查询、条件组合查询职工信息删除、修改功能计划与进度安排:12月16日—12月17日(陈飞、汪家东设计算法、画出流程图;12月18日—12月20日(陈飞编写

菜单函数、浏览函数、查询函数、保存函数;12月18日—12月20日(汪家东编写

信息录入函数、信息修改、删除函数、信息增加函数;12月21日—12月25日(陈飞完成设计思路并作出草稿;完成程序的输入;12月26日—12月30日(汪家东完成对基本功能的编译、链接、修改并运行无误;增加对开始的源程序的功能;12月31日—1月2日(陈飞、汪家东寻找程序的缺点并改进,对程序进一不进行优化;1月3日—1月6日(陈飞、汪家东对程序进行进一步修改并完成,提交设计任务。1

设计过程、步骤(可加页1.此程序要用到结构体Structemployee{intnum;charname[10];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[12];};2.函数的声明和调用:voidmenu();//声明菜单函数voidinput();//声明信息录入函数voidsave(int);//声明信息保存函数voiddisplay();//声明信息浏览函数voiddel();//声明信息删除函数voidadd();//声明信息增加函数voidsearch();//声明查询函数voidsearch_num();voidsearch_xueli();voidsearch_tel();voidmodify();//声明信息修改函数3.在录入函数中使用for循环语句、if…else句:printf("请输入需要创建信息的职工人数1--100):\n");scanf("%d",&m);for(i=0;i<m;i++){printf("职工号(号码范围:2012001--2012100)");scanf("%d",&em[i].num);for(n=1;n==1;){for(p=0;p<i;p++){if(em[i].num==em[p].num)j=1;}if(j==1){j=0;printf("\n您输入的职工号重复,请重新输入n");printf("职工号:");scanf("%d",&em[i].num);}2

elsen=0;}printf("\n");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("%d",&em[i].wage);printf("请输入住址:");scanf("%s",em[i].addr);printf("请输入电话:");scanf("%s",em[i].tel);printf("\n");}printf("\n");printf("\n创建完毕!\n");4.在菜单函数改函数息增加函数和查询函数中使用语句和语句:(1)菜单函数while(flag==0);while(flag==1){switch(n){case1:printf("◆◆\n");printf("\n");input();break;case2:printf("职◆◆\n");printf("\n");display();break;case3:printf("◆◆◆按职工号查询职工信息◆◆◆\n");printf("\n");search();break;case4:printf("职◆◆\n");printf("\n");del();break;case5:printf("职◆◆\n");printf("\n");add();break;case6:printf("◆\n");printf("\n");modify();break;case7:exit(0);break;3

default:break;}(2)修改函数switch(t){case1:del();break;case0:break;default:break;}(3)查询函数while(flag==0);while(flag==1){switch(t){case1:printf("按职工号查询\n");search_num();break;case2:printf("按学历查询\n");search_xueli();break;case3:printf("按电话号码查询\n");search_tel();break;case4:main();break;default:break;}}5.在信息保存函数中使用文件保存、打开与关闭函数:FILE*fp;if((fp=fopen("employee_list","wb"))==NULL)//创建文件并判断是否能打开{printf("cannotopenfile\n");exit(0);}for(i=0;i<m;i++)//将内存中职工的信息输出到磁盘文件中去if(fwrite(&em[i],sizeof(structemployee),1,fp)!=1)printf("filewriteerror\n");fclose(fp);6.该职工信息查询系统可实现职工信息录入功能(职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等职工信息浏览功能、职工信息查询功能(按学历查询、按职工号查询、条件组合查询职工信息修改功能、职工信息删除功能。4

7.组织结简图职工信息管理系统信息录入

信息浏览

信息查询

信息删除

信息添加

信息修改输入职工信息

按职工号查询

按学历查询

条件组合查询(电

添加一条或多条信

修改一条或多条信话)

息5

结果与分析(可以加页1.菜单函数使用界面(提示用户按键选择)2.浏览职工信息界面(可使用户更清晰的浏览职工信息)6

3.职工信息查询(可按职工号、学历以及条件组合查询4.职工信息删除(先输入职工姓名,然后选则按提示删除项目)7

5.职工信息添加(根据提示选择添加项目)6.职工信息修改8

设计体会与建议:三周的课程设计已经结束了回想学习C语言的过程中既有快乐又有烦恼。从领到书的那一刻,我就很郁闷《C言程序设计》到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过半个学期的学习我掌握了基本知识第一周结束的时候,我感觉自己收获挺大的从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来心里挺开心的。但是,到了第二周,我们由不得不再次陷入困境。在整个程序的编写过程中难的就是修改和删除这两个模块也是我们第二周要解决的重点问题。开始编写修改和删除时很头疼向其他人寻求帮助别人的帮助和提示下,我编完了修改程序编译时老出错改后的内容将文本内的信息全部覆盖了。这样的话,整个程序基本上全部完成了,就剩下完善工作了。序,最后,我和汪家东两个人的程序相互组合,互补,大功告成。短短的三周课程序设计结束了,但是这段时间里,我又学到了更多知识,如:对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。陈飞20121月6日我的题目是职工信息管理系统的设计于我们这些新手来说很大的考验,我一千次一万次的问自己么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单在使用价值上丰富?经过自己的琢磨听取了师兄们的建议还查阅了很多书籍才做到了心中有数,才了解C语言课程设计的真正用意——培养自学能力养成程序编辑的好习惯我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程从理论到实践在整整三个星期的日子里我学到了很多很多的的东西,同时不仅可以巩固了以前所学过的知识且学到了很多在书本上所没有学到过的知识通过这次课程设计使我懂得了理论与实际相结合是很重要的只有理论知识是远远不够的只有把所学的理论知识与实践相结合起来从而提高自己的实际动手能力和独立思考的能力在设计的过程中遇到问题可以说得是困难重重这毕竟第一次做的,难免会遇到过各种各样的问题同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。汪家东20121月6日9

附录:程序源代码<windows.h>Nstructemployee{intsex;intage;xueli[30];intwage;addr[30];tel[12];//义一个结构体voidmenu();//声明菜单函数void声明信息录入函数void//声明信息保存函数voiddisplay();//声明信息浏览函数voiddel();//声明信息删除函数void//声明信息增加函数voidsearch();//声明查询函数voidsearch_num();voidvoidsearch_tel();voidmodify();//声信息修改函数voidmenu()//菜单函数{********计机科学与技术学系********\n");printf("\n");2011级入式应用技术班:汪家东,陈飞\n");printf("\n");******************工息管理****************\n");录职信息\n");浏职工信\n");10

3.查询职工信息\n");4.删除职工信息\n");添加职工信\n");

修职工信息\7.出\n");********************谢使用******************\n");printf("\n");printf("\n");}void{intn,flag;a;menu();//调用菜单函数{printf("选择你需要操作的步(1--7):\n");if(n>=1&&n<=7){flag=1;break;}{flag=0;printf("输入有误,请重新选!");}}while(flag==1){{1:printf("\n");printf("\n");input();break;2:printf("3:printf("\n");printf("\n");search();break;4:printf("5:printf("

◆◆◆输入职工信息◆◆◆◆◆◆浏览职工信息◆◆◆◆◆◆按职工号查询职工信息◆◆◆◆◆◆删除职工信息◆◆\n");printf("\n");del();break;◆◆◆添加职工信息◆◆◆11

6:printf("\n");printf("\n");modify();break;default:break;}getchar();printf("\n");printf("否继续进(yorn):\n");scanf("%c",&a);{flag=1;//清屏menu();调菜单函数printf("再次选择你需要操作的步(1--6):\n");printf("\n");}}}

◆◆◆修改职工信息◆◆◆voidinput()//录入数{intprintf("输入需要创建信息的职工人1--100):\n");for(i=0;i<m;i++){printf("工号(码范围2012001--2012100):");for{for{if(em[i].num==em[p].num)j=1;}{j=0;12

printf("\n您输入的职工号重复,请重新输\n");printf("工号:");}n=0;}printf("\n");printf("输入姓名:getchar();printf("输入性别f--女m--男:");scanf("%c",&em[i].sex);printf("输入年龄:scanf("%d",&em[i].age);printf("输入学历:printf("输入工资:scanf("%d",&em[i].wage);printf("输入住址:scanf("%s",em[i].addr);printf("输入电话:scanf("%s",em[i].tel);printf("\n");}printf("\n");printf("\n创建完毕!\n");}voidm)/*保存文件函数*{inti;FILE*fp;if((fp=fopen("employee_list","wb"))==NULL)//建文件并判断是否能打开{printf}for(i=0;i<m;i++)//将内存中职工的信息输出到磁文件中去if(fwrite(&em[i],sizeof(structemployee),1,fp)!=1)13

writeerror\n");fclose(fp);}int//入函数{FILE*fp;inti=0;if((fp=fopen("employee_list","rb"))==NULL){printf}{{fread(&em[i],sizeof(structemployee),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}void//浏览函数{inti;intm=load();printf("\n职工号\t姓\t性别t年\t学历\t工\t住址t电for(i=0;i<m;i++)/*m为入部分的职工人*

\n");printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}void//除函数{14

intm=load();intprintf("\n原的职工信息:\n");display();//调用浏览函数printf("\n");printf("请入要删除的职工的姓名\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){{printf("\n已找到此人,原始录为\n");printf("\n职号\t姓\t性\t龄\t学\t工\t住\t电话

\n");ueli,em[i].wage,em[i].addr,em[i].tel);printf("\n确要删除此人信息请按1,不除请按0\n");//如果删除,则其他的信息都往上移一行{for(j=i;j<m-1;j++){strcpy(em[j].name,em[j+1].name);em[j].sex=em[j+1].sex;em[j].age=em[j+1].age;strcpy(em[j].tel,em[j+1].tel);}flag=0;}}}if(!flag)printf("\n对不起,查无此!printf("\n浏删除后的所有职工信息\n");//用保存函数display();//调浏览函数15

printf("\n继删除请按,不再删除请按scanf("%d",&t);switch(t){1:del();break;default:break;}}voidadd()//添加函数{FILE*fp;intintinti,k,p,j;intm=load();printf("\n原的职工信:\n");display();/*调浏览函数*printf("\n");printf("输入想增加的职工数\n");for(i=m;i<(m+n);i++){printf("\n请入新增加职工的信息\n");printf("输入职工:for(k=1;k==1;){for{if(em[i].num==em[p].num)j=1;}{j=0;printf("\n您输入的职工号重复,请重新输\n");printf("工号:");}k=0;}printf("输入姓名:");16

getchar();printf("输入性别(女m--男):");scanf("%c",&em[i].sex);printf("输入年龄:scanf("%d",&em[i].age);printf("输入学历:printf("输入工资:scanf("%d",&em[i].wage);printf("输入住址:scanf("%s",em[i].addr);printf("输入电话:scanf("%s",em[i].tel);printf("\n");printf("增加的人:\n");printf("%d\n",count);}printf("\n添加完毕!\n");printf("\n浏增加后的所职工信:\n");printf("\n");display();fclose(fp);}void查询函数*{intt,flag;{printf("\n按职工号查询请;按学历查询请按2;按话号码查询请按3,入主函数按4\n");scanf("%d",&t);if(t>=1&&t<=4){flag=1;break;}{17

flag=0;printf("输入有误,请重新选!");}}while(flag==1){switch(t){职工号查\学历查\n");search_xueli();break;电话号码查询4:main();break;default:break;}}}voidsearch_num(){intinti,t,g=0;intm=load();printf("输入要查找的职工号2012001---2012100):\n");scanf("%d",&num);for(i=0;i<m;i++){{printf("\n已找到此人,其录为\n");printf("\n职工号\t名\t性别t年\t学\t工\t住\t电

\n");ueli,em[i].wage,em[i].addr,em[i].tel);}}printf("\n对不起,查无此\n");printf("\n");printf("回查询函数请按1,续查询职工号请按其他键2)\n");scanf("%d",&t);switch(t){18

1:search();break;default:break;}}void{xueli[30];inti,t,g=0;intm=load();printf("输入要查找的学历:\n");for(i=0;i<m;i++){{printf("\n已找到,其记录\n");printf("\n职工号\t姓名\t性别\年龄\t学\t工\住\t电

\n");ueli,em[i].wage,em[i].addr,em[i].tel);}}printf("\n对不起,查无此\n");printf("\n");printf("回查询函数请按1,续查询学历请按其他键)\n");scanf("%d",&t);switch(t){1:search();break;default:break;}}void{19

tel[12];inti,t,g=0;intm=load();printf("输入要查找的电话号:\n");for(i=0;i<m;i++){if(strcmp(em[i].tel,tel)==0){printf("\n已找到此人,其录为\n");printf("\n职工号\t名\t性别\t年\t学\t工\t址\t话

\n");ueli,em[i].wage,em[i].addr,em[i].tel);}}printf("\n对不起,查无此\n");printf("\n");printf("回查询函数请按1,续查询电话号码请按其他键()\n");scanf("%d",&t);switch(t){1:search();break;default:break;}}voidmodify()/*修函数*{intsex;intage;xueli[30];intwage;addr[30];tel[12];intintm=load();/*导入文件内的信息*printf("\n原的职工信:\n");display();/*调浏览函

温馨提示

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

评论

0/150

提交评论