您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 职工信息管理系统-C语言实习报告
C语言课程实习报告所在院系:__经济管理学院___班级学号:__08108120081001708_姓名:__张梦莹______程序已存档:指导老师:__赵曼____评分:____________二零一零年一月十五日C语言课程设计实习报告08108120081001708张梦莹2目录1.1题目分析1.2需求分析1.3总体设计1.4详细设计1.1.4主函数1.4.2各功能模块设计(1)输入模块(2)浏览模块(3)查找模块(包括修改)(4)插入模块1.4.3公共函数(1)保存函数(2)加载函数(3)职工号输入函数(4)输入整一个记录函数(5)显示一个记录的函数(6)结束选择浏览或返回函数(7)修改整条数据记录函数1.5程序测试1.5.1数据源1.5.2编译、连接和运行1.5.3结果1.6结束语--实习心得C语言课程设计实习报告08108120081001708张梦莹3职工信息管理系统摘要:本论文设计的程序是《C语言课程设计指导书》第11题--职工信息管理系统。这个管理系统能对职工的信息(包括职工号、姓名、性别、年龄、学历、工资、住址、电话等)进行有效地信息录入、浏览、查询、插入、删除等操作,通过操作可以给各方面的用户带来很大的便利。1.1题目分析题目要求职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作。职工信息录入功能(职工信息用文件保存)。职工信息浏览功能。职工信息查询功能,查询方式可按学历查询或按职工号查询。职工信息删除,修改功能(可选项)。[提示]建立职工信息结构体,结构体成员包括职工号、姓名、性别、年龄、学历、工资、住址、电话。1.2需求分析根据题目要求,要求对职工信息进行输入、输出等操作;在程序中需要浏览职工的信息,应提供显示、查找、浏览、插入、修改等操作;另外还应提供键盘式选择菜单实现功能选择。1.3总体设计图1.3系统功能模块图职工信息管理系统数据输入数据浏览数据查找(包括修改)数据插入退出C语言课程设计实习报告08108120081001708张梦莹41.4详细设计1.4.1主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。[流程图]:图1.4.1主函数流程图[程序]:/*****************主函数**********************/main(){menu();}/*****************menu函数********************/voidmenu(){intn,w1;/*变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围*/do{puts(\t\t*****************职工信息管理系统****************\n\n);puts(\t\t\t\t1.Enternewdata);puts(\t\t\t\t2.Browseall);puts(\t\t\t\t3.Search);puts(\t\t\t\t4.Add);puts(\t\t\t\t5.Exit);puts(\n\n\t\t***********************************\n);printf(Choiceyournumber(1-5):[]\b\b);scanf(%d,&n);if(n1||n5)/*对选择的数字作出判断,是否在菜单功能数字范围内*/{w1=1;getchar();}elsew1=0;}while(w1==1);switch(n)/*根据输入的数字,进入到相应的操作模块中*/{case1:enter();break;/*输入模块*/case2:browse();break;/*浏览模块*/根据n的值调用各功能模块函数NY输入n,判断n是否是0-5显示各功能选项C语言课程设计实习报告08108120081001708张梦莹5case3:search();break;/*查找模块,其中包括按不同类别进行查找的多个子模块*/case4:add();break;/*插入模块*/case5:exit(0);/*退出*/}}注:menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的操作模块中,此外把menu函数独立出来,可以方便随时对它进行调用,容易返回到系统界面。用结构体来存放职工信息:/********************结构体*******************/structworker{charnumber[11];charname[20];charsex[20];charadress[20];charxueli[20];chartelephone[20];charage[20];charsalary[20];}wor[N];/*wor[N]中每个数组元素对应一个职工*/其中可以根据宏定义#defineN随时对N的值进行调整,扩大信息的储存量。1.4.2各功能模块设计(1)输入模块[需求分析]对信息进行输入。[流程图]:图1输入模块流程图输入用户要输入职工记录的个数ni从0到n-1调用输入函数input(i)i!=0保存调用函数save(n)YC语言课程设计实习报告08108120081001708张梦莹6[程序]:/********************输入模块*******************/voidenter()/*输入函数*/{inti,n;printf(Howmanyworkers(0-%d):,N-1);scanf(%d,&n);/*输入记录的个数,赋值给n*/printf(\nEnterdatanow\n\n);for(i=0;in;i++)/*通过for循环语句依次输入个职工信息数据*/{printf(\nInput%dthworkerrecord.\n,i+1);input(i);/*调用单个输入函数*/}if(i!=0)save(n);/*调用保存函数*/printf_back();/*一个任务结束时让用户选择还是浏览还是返回*/}(2)浏览模块[需求分析]该模块的功能是显示所有职工记录信息。[流程图]:图2浏览模块流程图[程序]:/****************浏览(全部)模块***************/browse()/*浏览(全部模块)*/{inti,j,n;按任意键显示下一屏按任意键返回主菜单显示职工记录(10个一屏)C语言课程设计实习报告08108120081001708张梦莹7n=load();/*调用加载函数,并计算可以记录的个数*/printf_face();/*调出显示数据结构项目函数*/for(i=0;in;i++)/*for循环语句用以分屏显示*/{if((i!=0)&&(i%10==0))/*判断i值能否整除10,每10行一屏显示*/{printf(\n\nPassanykeytocontinue...);getchar();puts(\n\n);}printf_one(i);/*调用显示一个记录的函数*/}printf(\tThereare%drecord.\n,n);/*提示用户储存信息数量*/printf(\nPassanykeytoback...);getchar();/*按任意键*/menu();/*返回主菜单*/}(3)查找模块:图3查找模块流程图是否找到职工记录输入一整型数值提示没有找到BvYN查找模块1,2,31按职工号查找,调用Search1()2按学历查找,调用Search2()searc3返回主菜单3211[流程图]:C语言课程设计实习报告08108120081001708张梦莹8[程序]:/***************查找模块***************/search()/*查找模块*/{intc,w1;do/*do-while循环语句用来判断用户的选择是否在程序规定之内*/{puts(\nsearchby=\n\n1).number2}.xueli3).cancelandback);printf(Whichyouneeded?:[]\b\b);scanf(%d,&c);if(c3||c1)/*对选择的数字作出判断*/{puts(\nchoiceerror!pleaseagain!);getchar();}}while(c3||c1);{switch(c)/*switch语句提供按不同类别进行查找功能*/{case1:search1();break;/*按职工号进行查找*/case2:search2();break;/*按学历进行查找*/case3:menu();break;/*返回主菜单*/}}}/***************按职工号查找模块***************/[流程图]:图4按职工号查找模块流程图按职工号查找模块用户作出选择,输入一整型数值3返回主菜单2修改1,2,还是31继续查找C语言课程设计实习报告08108120081001708张梦莹9[程序]:search1(){inti,n,k,w1=1,w2,w3,w4;structworkers;/*定义结构体变量s,用以储存输入的number的值,便于进行比较*/n=load();/*加载将要记录的个数*/do/*该do-while循环语句判断是否继续执行该函数*/{do/*该do-while循环语句判断是否找到要查找的对象*/{k==1;printf(\n\nEnternumberthatyouwanttosearch!number:);scanf(%s,s.number);printf_face();/*调出显示数据结构项目函数*/for(i=0;in;i++)/*for循环语句用来判断原数据信息中是否有与输入职工号相同的职工号*/if(strcmp(s.number,wor[i].number)==0)/*原数据信息中找到与输入职工号相同的职工号*/{k=i;printf_one(k);break;}if(k==1)/*原数据信息中没有找到与输入职工号相同的职工号*/{printf(\n\nNoexit!please);printf(\n\nAreyouagain?\n\t1).again2).Noandback[]\b\b);scanf(%d,&w1);if(w1==2)menu();/*返回主菜单*/}}while(k==1&&w1==1);/*在没有找到且想再次查找的情况下继续进行循环*/w4=0;w3=0;if(k!==1)/*在查找到的情况下*/{printf(\n\nWhatdoyouwanttodo?\n\t1).Searchanother2).Modify3).Backmenu[]\b\b);scanf(%d,&w2);switch(w2){case1:search1();break;/*继续按照职工号查找其他对象*/case2:w3=modify_data(k,n);break;/*对查找到的对象进行修改*/case3:menu();break;/*返回主菜单*/}}}while(w2==1);menu();/*返回主菜单*/}/***************按职工学历查找模块***************/C语言课程设计实习报告08108120081001708张梦莹10[流程图]图5按职工学历查找模块流程图[程序]:search2(){inti,n,k,w1=1,w2,w3,w4;structworkers;/*定义结构体变量s,用以储存输入的xueli的值,便于进行比较*/n=load();/*加载将要记录的个数*/do/*该do-while循环语句判断是否继续执行该函数*/{do/*该do-while循环语句判断是否找到要查找的对象*/{k=-1;printf(\n\nEnterxuelithatyouwanttosearch!xueli:);scanf
本文标题:职工信息管理系统-C语言实习报告
链接地址:https://www.777doc.com/doc-5529649 .html