《c语言职工信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《c语言职工信息管理系统设计.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计(大作业)报告课程名称: C 语 言 课 程 设 计 设计题目: 职工信息管理系统设计 院 系: xxx 班 级: xxxx 设 计 者: xx 学 号: xxxx 指导教师: xxx 设计时间xxxx 信息技术学院昆明学院课程设计(大作业)任务书姓 名:x 院(系):x专 业:x 学 号:x任务起止日期:x课程设计题目:职工信息管理系统课程设计要求:职工信息包括职工号、姓名、性别、年龄、学历(研究生本科专科)、工资、住址、电话等。试设计一职工信息管理系统,使之能提供以下功能:1.系统以菜单方式工作2.职工信息录入功能(职工信息用文件保存)3.职工信息浏览功能4.职工信息查询功能查询方
2、式:按学历查询等;按职工号查询等.5.职工信息删除、修改功能工作计划及安排:2011年6月18日,拿到题目后,分析题目,并且到网上下载相关的参考资料。2011年6月19日,画出系统总设计图和程序总流程图,并且以小组成员的形式,对所有函数进行分析,分工合作。2011年6月20日,小组成员各自编写各自的函数,并实现相应的功能。2011年6月21日,对各自缩写函数的程序进行调试与测试,并根据相应的运行结果,对错误的运行结果进行相应的调试并修改其程序代码,以真正实现其功能。2011年6月22日,小组成员将各自写的函数进行讨论分析后,把各自的函数合并在一起,并把程序的完整代码写出来,进行调试与测试,运行
3、其结果。最后,完成课程设计报告。指导教师签字 年 月 日 课程设计(大作业)成绩学号:x姓名:x 指导教师:x课程设计题目:职工信息管理系统总结:通过这五天的C程序实训,我们小组既发现了许多不足,也学到了许多以前不懂的知道。使我们对这门课程有了更深一步的理解,对我们以后的学习有了重要的作用。其中,通过网络我查询了system这个函数的功能,system(“cls”)功能是实现“清除屏幕”,system(“pause”) 功能是实现“暂停批文件的的处理并显示信息”。通过对这两个函数的使用,使我对“菜单的使用”有了更深一步的认识与理解。并且我们小组通过老师对我们的帮助,对一些“缓冲区中垃圾的处理”
4、也有了进一步的认识,其中对fflush(stdin),getch()等函数的应用,使程序运行起来更加地顺畅,使程序更加的简练。而在我所编程的“查询函数”,“删除函数”,“修改函数”中大量的运用到了switch函数,使我对该函数的作用有了深刻地认识,并且对其中运用到的字符的复制,比较,用flag作标记,函数的调用,结构体数组等知识进行了巩固和更深一步的学习。以后我们还将对此进行深入了解,进一步提升自己的综合知识的运用,在次我们小组成员对老师给予我们的帮助表示感谢!指导教师评语:成绩:填表时间:2012年6月22日指导教师签名:昆 明 学 院C语言课程设计报告设计题目: 职工信息管理系统设计小组成
5、员: x 指导教师: x 所在院系: x 年级班级:xx 目录一、课程设计目的与要求- 3 -1.课程设计目的- 3 -2. 课程设计要求- 3 -二、总体设计- 3 -三、详细设计- 4 -1结构体设计- 4 -2函数设计- 4 -3.程序流程- 5 -四、程序清单和执行结果- 6 -1.头文件- 6 -2.源程序代码与运行结果- 7 -四、调试与测试- 13 -五、结语- 13 -一、课程设计目的与要求1.课程设计目的(1) 综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。(2) 充分体现和体会函数在程序设计中的必要性和实用性
6、,并反映主函数main()在程序设计中的实现思路和方法。2. 课程设计要求职工信息包括职工号、姓名、性别、年龄、学历(研究生本科专科)、工资、住址、电话等。试设计一职工信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、职工信息录入功能(职工信息用文件保存)3、职工信息浏览功能4、职工信息查询功能查询方式 (1)按学历查询等(2)按职工号查询等5、职工信息删除、修改功能二、总体设计根据系统的要求,系统总体设计如图1所示。职工信息管理系统菜单选择信息输入信息浏览信息查询信息修改信息删除按学历查询按职工号查询 图表1 系统总设计 三、详细设计1结构体设计结构体struct employee
7、用于存放存放员工的资料,包括员工的基本信息:工号,姓名,年龄,学历,工资,住址,电话号码。struct employee int num; /工号 char name15; /姓名 char sex; /性别 int age; /年龄 char edu6; /学历 int wage; /工资 char addr20; /住址 char tel12; /电话号码;2函数设计(1)主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。(2)其他各功能函数函数名功能void menu();菜单选择void entry();职工信息录入void browse();职工
8、信息浏览void query();职工信息查询void modify(); 职工信息修改void delete(); 职工信息删除void save(int n); 记录保存为文件int load(); 从文件中读记录图表2 各功能函数表 3.程序流程系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如图3所示:开始菜单选择输入?浏览?查询?修改?否否删除?信息输入信息浏览信息查询信息修改信息删除是是是是是结束否否否图表3 程序流程图 四、程序清单和执行结果 1.头文件#include#include#i
9、ncludestruct employeeint num;char name10;char sex;int age;char edu30;int wage;char addr30;long int tel;em100; /*定义一个结构体*/*以下是函数原型*/ void menu();/*菜单选择函数*/void entry();/*录入职工信息函数*/void browse();/*浏览职工信息函数*/void del();./*删除函数*/void query();/*查询函数*/void query_num();/*按职工号查询职工函数*/void query_edu();/*按学历查
10、询职工函数*/void modify(); /*定义各函数*/void save(int ) /*保存文件函数*/int load() /*导入函数*/2.源程序代码与运行结果(1)查询函数void query()int t,flag;system (cls);doprintf(n按职工号查询请按1 ; 按学历查询请按2 ; ,进入主函数按3n);scanf(%d,&t);if(t=1&t=4)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(flag=0);while(flag=1)switch(t)case 1:printf(按职工号查询
11、n);query_num();break;case 2:printf(按学历查询n);query_edu();break;case 3:main();break;default:break;图表4 运行结果一 查询函数 1(2)删除函数void del()int i,j,n,t,flag;system (cls);int m=load();char name20;printf(n 原来的职工信息:n);browse(); /* 调用浏览函数*/printf(n);printf(请输入要删除的职工的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&im;i+)if
12、(strcmp(emi.name,name)=0)printf(n已找到此人,原始记录为:n);printf(n职工号t姓名t性别t年龄t学历t工资t住址t电话 n);printf(n%dt%st%ct%dt%st%dt%st%ldn,emi.num,emi.name,emi.sex,emi.age,emi.edu,emi.wage,emi.addr,emi.tel);printf(n确实要删除此人信息请按1,不删除请按0n);scanf(%d,&n);if(n=1) /*如果删除,则其他的信息都往上移一行*/for(j=i;jm-1;j+)strcpy(emj.name,emj+1.name
13、);emj.num=emj+1.num;emj.sex=emj+1.sex;emj.age=emj+1.age;strcpy(emj.edu,emj+1.edu);emj.wage=emj+1.wage;strcpy(emj.addr,emj+1.addr);emj.tel=emj+1.tel;flag=0;if(!flag)m=m-1;elseprintf(n对不起,查无此人!n);printf(n 浏览删除后的所有职工信息:n);save(m); /*调用保存函数*/browse(); /*调用浏览函数*/printf(n继续删除请按1,不再删除请按0n);scanf(%d,&t);swi
14、tch(t)case 1:del();break;case 0:break;default :break;图表5 运行结果二 删除函数 1图表5 运行结果二 删除函数 2(3)修改函数void modify()int num;char name10;char sex;int age;char edu30;int wage;char addr30;long int tel;int b,c,i,n,t,flag;system (cls);int m=load(); /*导入文件内的信息*/printf(n 原来的职工信息:n);browse(); /* 调用浏览函数*/printf(n);prin
15、tf(请输入要修改的职工的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&i8|c1)printf(n选择错误,请重新选择!n);flag=0;if(flag=1)printf(n对不起,查无此人!n);doswitch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/case 1:printf(职工号改为: );scanf(%d,&num);emi-1.num=num;break;case 2:printf(姓名改为: );scanf(%s,name);strcpy(emi-1.name,name);
16、break;case 3:printf(性别改为: );getchar();scanf(%c,&sex);emi-1.sex=sex;break;case 4:printf(年龄改为: );scanf(%d,&age);emi-1.age=age;break;case 5:printf(学历改为: );scanf(%s,edu);strcpy(emi-1.edu,edu);break;case 6:printf(工资改为: );scanf(%d,&wage);emi-1.wage=wage;break;case 7:printf(住址改为: );scanf(%s,addr);strcpy(em
17、i-1.addr,addr);break;case 8:printf(电话改为: );scanf(%ld,&tel);emi-1.tel=tel;break;printf(n);printf(n是否确定所修改的信息?n 是 请按1 ; 不,重新修改 请按2: n);scanf(%d,&b);while(b=2);printf(n浏览修改后的所有职工信息:n);printf(n);save(m);browse();printf(n继续修改请按1,不再修改请按0n);scanf(%d,&t);switch(t) case 1:modify();break;case 0:break;default
18、:break;getchar();图表6 运行结果三 修改函数 1图表6 运行结果三 修改函数 2四、调试与测试所谓程序调试是对程序的查错和排错。对此程序我们进行了以步骤:1.人工检查,即静态检查。此过程我们对于写好的程序进行了排查,并且进行了注释。上机调试。通过上机调试发现的错误为动态检查,这时发现了许多错误和警告,我们根据提示逐一改正。2.运行程序。这一步骤我们逐一检查每个菜单是否运行正常与正确,在这个过程中我们出现了许多格式不正确,我们细心的进行修改。3.总之,在我们对程序进行了细心的调试和测试之后,我们的程序正常运行了,但是其中还是有很多不足的地方。比如我们的修改成绩这一向就是不完善的
19、,要是程序里出现了不同班但学号相同时这个问题就没有解决,在以后我们会进行改善。五、结语通过这五天的C程序实训,我们小组既发现了许多不足,也学到了许多以前不懂的知识。使我们对这门课程有了更深一步的理解,对我们以后的学习有了重要的作用。其中,通过网络我查阅了syetem这个函数,system(“cls”)功能是实现“清除屏幕”,system(“pause”)功能是实现“暂停批文件的的处理并显示信息”。通过对这两个函数的使用,使我对“菜单的使用”有了更深一步的认识与理解。并且我们小组通过老师对我们的帮助,对一些“缓冲区中垃圾的处理”也有了进一步的认识,其中对fflush(stdin),getch()等函数的应用,使程序运行起来更加地顺畅,使程序更加的简练。而在我所编程的“查询函数”,“删除函数”,“修改函数”中大量的运用到了switch函数,使我对该函数的作用有了深刻地认识,并且对其中运用到的字符的复制,比较,用flag作标记,函数的调用,结构体数组等知识进行了巩固和更深一步的学习。以后我们还将对此进行深入了解,进一步提升自己综合知识的运用,在此我们小组成员对对老师给予我们的帮助表示感谢!
限制150内