《C语言程序设计》课程设计报告-职工信息管理系统.doc

上传人:西安人 文档编号:5016548 上传时间:2020-01-28 格式:DOC 页数:25 大小:306.50KB
返回 下载 相关 举报
《C语言程序设计》课程设计报告-职工信息管理系统.doc_第1页
第1页 / 共25页
《C语言程序设计》课程设计报告-职工信息管理系统.doc_第2页
第2页 / 共25页
《C语言程序设计》课程设计报告-职工信息管理系统.doc_第3页
第3页 / 共25页
《C语言程序设计》课程设计报告-职工信息管理系统.doc_第4页
第4页 / 共25页
《C语言程序设计》课程设计报告-职工信息管理系统.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《《C语言程序设计》课程设计报告-职工信息管理系统.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计报告-职工信息管理系统.doc(25页珍藏版)》请在三一文库上搜索。

1、C语言程序设计课程设计报告题 目: 职工信息管理系统 专 业: 数学与计算科学 班 级: 1009-301 姓 名: 指导教师: 成 绩: 二一一年六月一日课程设计报告职工信息管理系统1、研究背景及意义由于现今的职工信息管理非常繁琐,管理人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,为了减轻轻单位人工对职工信息进行登记,查找的工作,进而设计出一个功能更完善,合理,先进的职工信息管理系统来管理。开发此职工信息管理系统软件,以供教学人员及操作者进行职工管理,方便操作者随时添加、查询、修改职工信息。2、 课程设计题目描述和要求对职工信息的管理是每企业中的重要组成部分,其内容较多,为了简

2、化讨论,职工信息主要包括:职工号、姓名、性别、出生年月、学历、职务、工资、地址、电话。系统功能:1)、输入功能:可以多次次完成多个职工所有信息2)、浏览功能:可以一次性浏览职工的所有信息3)、查询功能:可以按职工号和工资两种方式查询4)、修改功能:可以随时对职工的信息进行修改5)、删除功能:可以对职工的信息进行删除6)、排序功能:可以按职工号降序排列0)、推出本系统功能模块分工:李军 :程序设计与信息输入、浏览 陈辉煌:页面设计与信息查询 曾超群:信息修改阳恩成:信息删除张琦 :信息排序3、课程设计报告内容3.1职工管理系统的理论依据及算法主要数据结构:typedef structint nu

3、mber; /*职工号*/char name20; /*姓名*/char sex8; /*性别*/float year; /*出生年月日*/char educat20; /*学历*/char duty20; /*职务*/float wage; /*工资*/char place20; /*住址*/double tel; /*电话*/Student; Student stu100; /*结构体数组变量*/各函数的功能和实现:整个系统除了主函数外,另外还有10个函数,实现七大功能:输入功能、显示功能、查找功能、修改功能、删除功能、排序功能。各个函数的详细设计说明分别如下:1、 主函数 main()利

4、用无限次循环for(;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。2、 菜单选择函数switch(menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!3、 输入记录函数int Input(Student stud,int n)这是一个无参函数,用来执行职工信息的输入,当学生九类信息全部输入后,系统提示 “继续写入成绩?Y/N”,选择“N”函数结束。4、 显示记录函数void Display(Student stud,in

5、t n)这是一个不返回值的有参函数,形参为数组,负责对全部职工信息的输出,不足之处就是不能对职工信息进行分页显示。5、 查找记录函数void Search(Student stud,int n)这是一个不返回值的有参函数,形参为数组,分别实现按职工号或工资对某个职工进行查找,并显示所查找到的记录。6、修改函数void Modify(Student stud,int n)这是一个有参函数,形参为数组,能将之前输入的数据进行修改。7、删除记录函数int Delete(Student stud,int n)这是一个有参函数,形参为数组,先输入要删除的职工的职工号,找到后显示该职工信息,直接进行删除。

6、8、排序函数void Sort(Student stud,int n)在Student stud这个结构数组中按职工号进行由大到小排序:void Sort(Student stud,int n) /*冒泡法排序*/。3.2 流程图显示所有职工信息查询职工信息修改职工信息并保存的信息删除职工信息按职工号降序排列输入职工信息系统运行结束退出管理系统a=0a!=0请输入一个要操作的菜单项a并根据a值判断执行的操作输出相应的运行结果职工信息管理系统的main()函数 3.3、源程序如下:#include /*引用库函数*/#include /*输入输出函数*/#include #include typ

7、edef structint number; /*职工号*/char name20; /*姓名*/char sex8; /*性别*/float year; /*出生年月日*/char educat20; /*学历*/char duty20; /*职务*/float wage; /*工资*/char place20; /*住址*/double tel; /*电话*/Student; Student stu100; /*结构体数组变量*/int menu() /*菜单函数*/ char c; do /system(cls); /*运行前清屏*/printf(-M E N U-);/*菜单选择*/

8、printf( 录入职工信息 );printf( 显示所有职工信息 );printf( 查询职工信息 );printf( 修改职工信息并保存 );printf( 删除职工信息 );printf( 按职工号降序排列 );printf( 退出本系统 );printf( *作者:1009301班 完美组合* );printf(-请 选 择 你 需 要 的 操 作-);printf(=请输入数字 09:n);c=getchar(); /*读入选择*/ while(c5); return(c-0); /*返回选择*/ int Input(Student stud,int n) /*输入若干条记录*/ i

9、nt i=0;char sign=y,x10; /*x10为清除多余的数据所用*/ while(sign!=n&sign!=N) /*选择判断*/ printf( -请输入职工号-:); /*交互输入*/scanf(%d,&studn+i.number);printf( -请输入职工的姓名-:);scanf(%s,&studn+i.name);printf( -请输入职工的性别-:);scanf(%s,&studn+i.sex);printf( -请输入职工的出生年月日:);scanf(%f,&studn+i.year);printf( -请输入职工的学历-:);scanf(%s,&studn

10、+i.educat);printf( -请输入职工的职务-:);scanf(%s,&studn+i.duty);printf( -请输入职工的工资-:);scanf(%f,&studn+i.wage);printf( -请输入职工的住址-:);scanf(%s,&studn+i.place);printf( -请输入职工的电话-:);scanf(%lf,&studn+i.tel);gets(x); /*清除多余的输入*/ printf(%sn,studn+i.name);printf( =提示:继续写入成绩?(Y/N);scanf(%c,&sign); /*输入判断*/i+; return(n

11、+i); void Display(Student stud,int n) /*显示所有记录*/ int i; if(!stud)printf(没有记录);elseprintf(-n); /*格式头*/ printf( 职工号t姓名t性别t生日t学历t职务t工资t住址t电话n); printf(-n);for(i=1;in+1;i+) /*循环输入*/printf( %dt,studi-1. number);printf(%st,studi-1. name);printf(%st,studi-1. sex);printf(%6.0f,studi-1. year);printf(%st,stud

12、i-1. educat);printf(%s,studi-1. duty);printf(%8.0ft,studi-1. wage);printf(%st,studi-1. place);printf(%11.0lf,studi-1. tel);printf(n);printf(tttn); void Search(Student stud,int n) /*查找并显示一个记录*/ int s=0; int i=0; int t=0;printf(按职工号查找请输入1,按工资查找请输入2n);scanf(%d,&t);switch(t)/*选择判断*/case 1:/*按职工号查找*/prin

13、tf(输入需要查找职工的职工号:n);scanf(%d,&s);while(studi.number-s)!=0&i提示:对不起,无法找到该职工的信息!n); /*输入失败信息*/ return; printf(-n); /*输出该职工信息*/printf( 职工号:%dn,studn-1. number); printf( 姓名:%sn,studn-1. name);printf( 性别:%sn,studn-1. sex);printf( 出生年月日:%8.0fn,studn-1. year);printf( 学历:%sn,studn-1. educat);printf( 职务:%sn,st

14、udn-1. duty);printf( 工资:%fn,studn-1.wage);printf( 住址:%sn,studn-1. place);printf( 电话:%11.0lfn,studn-1. tel);printf(n);break;case 2:/*按姓名查找*/printf(输入需要查找职工的工资:n);scanf(%d,&s);while(studi.wage-s)!=0&i提示:对不起,无法找到该职工的信息!n); /*输入失败信息*/ return; printf(-n); /*输出该职工信息*/printf( 职工号:%dn,studn-1. number); prin

15、tf( 姓名:%sn,studn-1. name);printf( 性别:%sn,studn-1. sex);printf( 出生年月日:%8.0fn,studn-1. year);printf( 学历:%sn,studn-1. educat);printf( 职务:%sn,studn-1. duty);printf( 工资:%fn,studn-1.wage);printf( 住址:%sn,studn-1. place);printf( 电话:%11.0lfn,studn-1. tel);printf(n);break;void Modify(Student stud,int n) /*修改职

16、工信息*/int s=0;int i=0;printf(输入需要修改职工信息的职工号:n);scanf(%d,&s);while(studi.number-s)!=0&i提示:对不起,无该职工的信息n); /*输入失败信息*/ return;printf(-该职工的信息-n); /*格式头*/ printf(-n); /*格式头*/ printf( 职工号t姓名t性别t生日t学历t职务t工资t住址t电话n); printf(-n);printf(-n);printf( %dt,studi-1. number);printf(%st,studi-1. name);printf(%st,studi

17、-1. sex);printf(%6.0f,studi-1. year);printf(%st,studi-1. educat);printf(%s,studi-1. duty);printf(%8.0ft,studi-1. wage);printf(%st,studi-1. place);printf(%11.0lf,studi-1. tel);printf(n);printf(请输入职工号:); /*交互输入*/scanf(%d,&studn+i.number);printf(请输入职工的姓名:);scanf(%s,&studn+i.name);printf(请输入职工的性别:);scan

18、f(%s,&studn+i.sex);printf(请输入职工的出生年月日:);scanf(%f,&studn+i.year);printf(请输入职工的学历:);scanf(%s,&studn+i.educat);printf(请输入职工的职务:);scanf(%s,&studn+i.duty);printf(请输入职工的工资:);scanf(%f,&studn+i.wage);printf(请输入职工的住址:);scanf(%s,&studn+i.place);printf(请输入职工的电话:);scanf(%lf,&studn+i.tel);printf(%sn,studn+i.name

19、);int Delete(Student stud,int n) /*按职工号查找,删除一条记录*/ int s=0; int i=0,j; printf(输入需要删除职工的职工号:n); /*交互式问寻*/ scanf(%d,&s);while(studi.number-s)!=0&i提示:对不起,无法找到该职工号n); /*返回失败信息*/ return(n); for(j=i;j提示:已成功删除!n); /*返回成功信息*/return(n-1); void Sort(Student stud,int n) /*按职工号排序*/ int i,j,k; float s;char t20;

20、for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;jn-1-i;j+) if(studj.numberstudj+1.number) k=studj+1.number; studj+1.number=studj.number;studj.number=k;strcpy(t,studj+1.name); strcpy(studj+1.name,studj.name); strcpy(studj.name,t);strcpy(t,studj+1.sex); strcpy(studj+1.sex,studj.sex); strcpy(studj.sex,t);s=studj+1.

21、year; studj+1.year=studj.year; studj. year =s;strcpy(t,studj+1.educat); strcpy(studj+1.educat,studj.educat); strcpy(studj.educat,t);strcpy(t,studj+1.duty); strcpy(studj+1.duty,studj.duty); strcpy(studj.duty,t);s=studj+1.wage; studj+1.wage=studj.wage; studj.wage=s;strcpy(t,studj+1.place); strcpy(stud

22、j+1.place,studj.place); strcpy(studj.place,t);s=studj+1.tel; studj+1.tel =studj.tel; studj. tel=s;printf(-n); /*格式头*/ printf( 职工号t姓名t性别t生日t学历t职务t工资t住址t电话n); printf(-n);for(i=1;i 输入信息 显示所有记录 查找并显示一组信息 修改职工信息 按职工号查找,删除一条记录 按职工号降序排列 谢谢您的使用!=n); /*结束程序*/ printf(ttt);system(pause); exit(0); 3.4、算法调试过程中出现

23、的问题及解决方法整个的调试过程中,我遇到的问题可以分为两大类,一类是输入错误,第二类是算法的严密性有问题,对于某个功能的执行,有时候会出错。算法调试过程,大部分的出错都是程序的输入错误,这类问题通过上网和组员时间的讨论,容易解决。(1)我在输入Input()函数后,最后一个“”忘记加上,导致出现一系列报错:在我加上“”后,次错误立即消失。(2)还有一个典型的错误就是对于已定义的数组变量,却在调用的时候输错名称:当我把上述BUG中“wate”改为“wage”后,便不再有此类错误。(3)对于定义为double的变量,在输出时却使用整型十进制格式输出,导致输出结果完全偏离预设,远输入电话号码为:15

24、27726722,但结果显示为-1743718883.5、程序运行结果 本程序的菜单界面如下: 信息输入界面:信息显示界面:信息查询界面:信息修改界面信息删除界面4、课程设计心得体会通过这次课程设计的学习,我了解到了C程序设计教程1这门功课对于我们大学生的重要性和学校开设课程设计课的重要意义。课程设计总的来说是要我们自己去实际运用所学到的知识,让理论变成实践,使书本上的知识更加的拓展开来,让我们在实际操作中知道自己计算机知识和相关软件操作的优势与不足,从而扬长避短,更好的学习。计算机与数学本是一家,C语言编程是程序设计的第一部,同时也是我们应用数学与数学专业所必须掌握的一门学科,一种工具。程序

25、设计需要严谨的思维能力和缜密的判断能力,考验人的逻辑思维,可以说是在大学一项详实的能力锻炼。各人独立完成设计自己的设计项目也是考验我们的自我学习工作的能力,如同大学毕业前的实习一样重要。但是C语言的理论性很强,分枝细节很多,所要掌握的基本知识对我们来说比较烦琐,在整个的编译过程中,细心往往起到关键性的作用。尤其是我自己选择的这个课题,做起来十分的麻烦,要调用的函数很多,而且要求整个程序的连贯性要好,所以做起来相当的费时间,白天赶工夜晚熬夜。正因为程序的复杂,本来已经拟好了运行程序,自己觉得是没有问题,一定可以通过了,而实际的操作却是困难重重,轻微的一个错误就有可能导致整个程序的崩盘,不得不一一

26、检查,慢慢来过,重新找到错误地方,加以改正,再次调试。同时,有时又会有电脑检查不出的错误,这时只好完全靠人工来寻找错误,这种错误通常很隐秘,要靠经验来判断,对于我们初学者来说,是非常的辛苦的,需要冷静对待,细细搜索,直到程序完全正确。在这次的课程学习中,我遇到了许多自己不能解决的问题,很庆幸有我的指导老师给予了我耐心的帮助和指导,使得我在课程设计的过程中对C语言有了更加系统的认识,非常地谢谢您!很高兴学校能给了我们一个锻炼自己,实践知识的平台,让我们锻炼自己的实践操作运用能力!虽然过程很累很辛苦,但是成功之后,真的很开心!参考文献:1 谭浩强. . 清华大学出版社, 北京清华大学学研大厦A座,2010 2 谭浩强. . 清华大学出版社,北京清华大学学研大厦A座,201025

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1