


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山西大学软件学院程序设计基础课程设计报告书题目:职工工资管理系统指导教师:亢临生班级:软件工程1611姓名:李国栋学号:2016028*课设时间:2017.6.20成绩二。一七年六月课程设计任务书题目职工工资管理系统一、设计内容及要求一个职工的工资信息包含姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金。编写程序实现对职工工资的录入、显示、修改、查询、保存等功能。参考数据ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资01张望1286794198109135203402李明118562813594114174003王小民895438986473129404张效章1350868
2、2101161502162、设计原始资料无、设计完成后提交的成果及其相关资料。1. 完整的源程序2. 课程设计报告书电子版一份1. 课程设计报告书纸质版一份四、主要参考资料<Cprimerplus>人民邮电出版社<c程序设计>活华大学出版社五、进程安排1.2017年6月13日:下达任务,指导老师做出必要讲解2.2017年6月13日-2017年6月22日,指导老师在机房定时辅导学生完成课程设计项第1章课程设计的目的与要求错误!未定义书签。1.1课程设计目的31.2课程设计的实验环境31.3课程设计的预备知识31.4课程设计要求3第2章课程设计内容42.1程序功能介绍42.
3、2程序整体设计说明42.2.1设计思路42.2.2数据结构设计及用法说明52.2.3各模块的功能及程序说明62.2.4程序结果72.3程序源代码及注释9第3章课程设计总结错误!未定义书签。第1章课程设计的目的与要求1.1课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计语言(C)课程后进行的一次全面的综合练习。本课程设计的目的和任务:巩固和加深学生对C语言课程的基本知识的理解和掌握掌握C语言编程和程序调试的基本技能利用C语言进行基本的软件设计掌握书写程序设计说明文档的能力提高运用C语言解决实际问题的能力1.2课程设计的实验环境硬件要求能运行Windows2
4、000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。1.3课程设计的预备知识熟悉C语言及C语言开发工具。1. 1.4课程设计要求分析课程设计题目的要求写出详细设计说明编写程序代码,调试程序使其能正确运行设计完成的软件要便于操作和使用设计完成后提交课程设计报告2.1程序功能介绍每一个职工的工资信息包含姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金。编写程序实现对职工工资的录入、显示、修改、查询、保存等功能。参考数据ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资01张望1286794198109135203402李明118562813594114174003王小民
5、895438986473129404张效章1350868210116150216205彭山74539884616810982.2程序整体设计说明根据题目要求,应该把职工工资信息用结构体形式输入,再定义一个变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作。在程序中需实现职工工资浏览、查询、修改等功能的操作,所以要建立相应的功能模块来实现。在头文件中将所需包含的函数进行输入,再进行变量的定义,如:定义数据结构,有关职工工资管理需要输入的基本信息再用指针的方法将这些有关变量进行地址存储。再定义出工资管理整个程序中所需要的函数原型;然后进行主
6、函数的书写,并显示所有数据。主函数无限循环,数据的录入、修改、查询等均是对内存中的链表进行操作,每次操作后将数据保存到文件。2.2.1设计思路首先利用while(1)对提示页面无限调用,帮助用户输入对应的正确数字编码,在输入职工信息时,运用voidimport()调用函数对文件的使用,首先定义一个指针文件,又以写的方式打开此文件,在打开的文件中输入要管理的职工人数,用一个for循环按照姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金的格式循环获取职工的记录,使用fwrite()将职工记录写入文件“word”中,并fclose关闭文件。在查询职工信息时,按职工号查询,首先是以只读(二
7、进制)的方式打开文件“word”,然后输入要查询的职工号,用一个for循环来控制查询的人数,之后在显示器上显示某一个职工信息,然后关闭文件。在修改职工信息时,按职工号修改,首先是以读写的方式打开文件“word”。输入要修改的职工号,用一个for循环来控制输入的数量。然后对职工的信息进行修改,就可获得新的职工记录。之后文件指针指向该修改的记录开头,此时用fwrite覆盖当前记录,修改完成时系统会显示修改后的文件数据:姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金然后关闭文件。在显示职工信息时,运用voidbrowse()调用函数对文件的使用。首先以只读的方式打开一个文本文件”wor
8、d”。操作无误则用for循环输出正在查询职工的:记录号职工号姓名性别年龄工资。这些完成后用fclose(fp)函数关闭文件。2.2.2数据结构设计及用法说明数据结构:定义结构体people,用于存放职工的基本信息和工资信息.使用struct结构体编辑主菜单,定义全局变量,用于存放结构体数组。使用一维数组。用for语句编辑输入模块,用switch、for语句编辑查找职工数据,用if,for语句编辑修改职工信息。用法说明:启动后屏幕上会显示下面菜单:1录入信息2修改信息3显示所有4查询信息5退出执行者若要执行某一功能,就按下该功能所对应的数字即可。输入职工信息:在主菜单中输入1则系统会进入新界面并
9、白动提示你输入职工号,输入完成后按回车键系统会逐一提示输入姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金,输入完成后会继续提示输入下一个职工的职工号。修改职工信息:在主菜单中输2,系统会白动提示你输入要修改的职工号,然后进行修改。修改成功显示已修改后的文件数据;输入错职工号显示查无此人。显示职工信息:在主菜单中输入3系统界面是输出菜单界面,按照输入格式:姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金,逐个的输出职工的信息,输出所有职工信息后系统白动退出。查询职工信息:主菜单中输入4则进入查询子菜单界面,输入职工号后会出现该职工的信息。输入错误职工号,显示查无此人。退
10、出:在主菜单中输入5则退出系统。并显示“退出成功请关闭”。2.2.3各模块的功能及程序说明首先是定义了一个输入输出头文件,接着是一个宏定义,下面是函数声明部分,用结构体存储和录入该程序的所有数据,主函数部分包括设计的全部信息,之后是输出主菜单和调用函数,退出程序。此程序中包括:输入模块、查询模块、修改模块、显示模块。输入模块:该模块先是对姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金的录入并保存到文件“word”中。查询模块:实现按职工号查询每个职工的信息,查询显示姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金修改模块:该模块实现按职工号对职工所有信息的修改。显示模
11、块:该模块实现按职工号输出职工的所有信息。退出模块:保存并且关闭,用来退出while(1)的死循环2.2.4程序结果展示录入模块:律*半宗享*宰率字*半宗犀柔*请输入数字编码2输入要惨改的的职工号:。06请输入职工新的编号请输入姓名信息李婷请输入基本工资3500请输入职务工资请输入津贴90。请输入医疗保险5。0请输入公积金4。0率*罪率*1. 录入信息2一修改信息3-显示所有3. 查询信息5一退出*#寻*#*您*林请输入数字编码3职工号姓名基本工资职务工资津贴医疗保险公积金总工资001王丽20006005002004003700002李婷35003009005004005600*事牢耳:*水辜
12、辛*事辛暮*事拿等:*宰修改模块:*/Jfc"?U*JK*J;!.'J?U*JX*Ja:;1.'J11"=Tfc'JU,:.J。1.'JryiB"Jrr:rrirTrJrr:rrjnrjtr:-r:rrHi,r7nri«";弋rt请输入数字编码1输入职工人数:2请输入第1个职工的编号001请转入第1甦信信息主丽请输入第1基本工资2000请输入职务工资600请输入津贴500请辎入医疗保险200请输入公积金400请输入第2个职工的编号006请输入第2姓名信息李婷请输入第2基本工资3000请辎入职务工资600请输入津贴
13、了00请辎入医疗保险500请输入公积金900查询模块:R录入信息修改信息显示所有查询信息退出请输入数字编码4要查询的职工号:001津贴医疗保险4003700公积金总工资前工号姓名基本工资职务工资pOl王丽2000600500200显示模块:1.录(5息Z修改信息3一显示所有查询信息退出率享*率*宰*率率*:*:宇*率率率*:*:请输入数字编码3职工号姓名基本工资职务工俺001王丽2000600006李婷3000600占贝oO津5070医疗保险200500公积金总工资40037009005700退出模块:2了二j|二2了七jjj录入信息修改信息显7F所有查询信息退出11'dLfc4t&q
14、uot;JK.®UI.'.-!U®U气二TU'Jt'Jfc'1tfc®JL"dU'J.'-tS.'J虹Jt"J*:一u"JK.*dF:、/:rr"nr"n咋btrirptyxj""nr»,s?-*、rir"if"rr"nq:、请输入数字编码5退出成功请关闭Processexitedafter119,6secondswithreturnvalue0请按任意键继续.2.3程序源代码及注释/*每一个职工的工
15、资信息包含姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金。编写程序实现对职工工资的录入、显示、修改、查询、保存等功能。参考数据ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资01张望1286794198109135203402李明118562813594114174003王小民895438986473129404张效章1350868210116150216205彭山7453988461681098*/源码:#include<stdio.h>#include<string.h>#include<stdlib.h>#definemax30/定
16、义voidmenu();/菜单voidimport();voidbrowse();/显示所有voidsearch_num();/查询信息voidrevise();/修改信息structpeople/定义个人信息结构体charno5;/编号charnamemax;/名字intbasepay;/基本工资intwage;/职务工资intsubsidy;/津贴intsurance;/医疗保险intfund;/公积金inttotal;/z总和;structpeoplenummax;/定义人员信息数组voidmain()/主函数menu();voidmenu()/菜单inta;inti=0;while(1
17、)printf("n*n");printf("1.录入信息n");printf("2.修改信息n");printf("3.显示所有n");printf("4.查询信息n");printf("5.退出n");printf("n*n");printf("请输入数字编码");scanf("%d”,&a);switch(a)case1:录入数据import();break;case2:修改信息revise();break;ca
18、se3:显示信息browse();break;case4:查询信息search_num();break;case5:/退出printf("退出成功请关闭");exit(0);defaul:(输入错误printtf(-请重新输入");break;voidimport()(/录入信息FILE*fp;intn,i;/n用来存储职工数i用来存储第几个员工if(fp=fopen("word","wb")=NULL)/(/printf("不能建立word文件n");/这四行用来判断是否可以正确打开exit(1);/p
19、rintf(-输入职工人数:");scanf("%d”,&n);for(i=0;i<n;i+)printf(-请输入第%d个职工的编号",i+1);scanf("%s”,&numi.no);职工号printf(-请输入第%d姓名信息",i+1);scanf("%s”,&);/姓名printf(-请输入第%d基本工资",i+1);scanf("%d”,&numi.basepay);基本工资printf(-请输入职务工资");scanf("%d
20、”,&numi.wage);职务工资printf(-请输入津贴");scanf("%d”,&numi.subsidy);/津贴printf("请输入医疗保险");scanf("%d”,&numi.surance);/保险printf("请输入公积金");scanf("%d”,&numi.fund);/公积金numi.total=numi.basepay+numi.wage+numi.subsidy+numi.surance+numi.fund;计算总和fwrite(&numi
21、,sizeof(structpeople),1,fp);/写入到文件中fclose(fp);关闭文件voidrevise()修改信息FILE*fp;inti;charnumber5;/二进制读的方式打开if(fp=fopen("word","rb+")=NULL)printf("不能打开word文件n");exit(1);printf("输入要修改的的职工号:,scanf("%s”,number);for(i=0;fread(&numi,sizeof(structpeople),1,fp);i+)if(!s
22、trcmp(numi.no,number)break;对比职工号如果没有这个职工号就退出if(feof(fp)/如果fp文件指针到达文件尾printf("t查无此人n");exit(2);/fseek(fp,i*sizeof(structpeople),SEEK_SET);printf(-请输入职工新的编号");scanf("%s”,&numi.no);printf(-请输入姓名信息");scanf("%s”,&);printf(-请输入基本工资");scanf("%d”,&
23、;numi.basepay);printf(-请输入职务工资");scanf("%d”,&numi.wage);printf(-请输入津贴");scanf("%d”,&numi.subsidy);printf("请输入医疗保险");scanf("%d”,&numi.surance);printf("请输入公积金");scanf("%d”,&numi.fund);numi.total=numi.basepay+numi.wage+numi.subsidy+numi.
24、surance+numi.fund;fseek(fp,-(long)sizeof(structpeople),SEEK_CUR);移动指针到所在数组的第一个地址上fwrite(&numi,sizeof(structpeople),1,fp);写入数据fclose(fp);voidbrowse()显示信息inti;FILE*fp;if(fp=fopen("word","r")=NULL)printf("不能打开word文件n");exit(0);printf("职工号t姓名t基本工资t职务工资t津贴t医疗保险t公积金t
25、t总工资n");for(i=0;fread(&numi,sizeof(structpeople),1,fp)!=0;i+)printf("%st%st%dtt%dtt%dt%dtt%dtt%dtn”,numi.no,,numi.basepay,numi.wage,numi.subsidy,numi.surance,numi.fund,numi.total);fclose(fp);voidsearch_num()/查询信息FILE*fp;inti;charnumber5;if(fp=fopen("word","rb")=NULL)printf("不能打开word文件n");exit(1);printf("要查询的职工号:");scanf(&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司协议书范本格式字体
- 精细化管理班组施工安全责任合同范本
- 烧烤店试用期配菜员烧烤技艺聘用合同
- 留学行前准备协议:出国留学全方位辅导服务
- 科技园区场地租赁与研发创新合作合同
- 场地监管与廉政责任落实合同
- 超声回弹综合法测强技术
- 溶洞区桩基注浆压力调控
- 大数据管理能力评估和数据工程资料分享
- 医院重点部位消防安全培训
- GB 6245-1998消防泵性能要求和试验方法
- 酒店会议协议书(4篇)
- 高血糖高渗状态课件
- 一年级10以内加减混合计算题比大小
- 闲置资源统计表
- 画册设计制作报价单
- DBJ∕T13-354-2021 既有房屋结构安全隐患排查技术标准
- 铁路危险货物运输及货物安检查危技术业务考核题库
- 某市印染纺织公司清洁生产审核报告全文
- 维修电工高级技师论文(6篇推荐范文)
- 人民币教具正反面完美打印版
评论
0/150
提交评论