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

下载本文档

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

文档简介

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<stdio.h> /*引用库函数*/#include <conio.h>

7、/*输入输出函数*/#include <stdlib.h>#include <string.h>typedef structint number; /*职工号*/char name20; /*姓名*/char sex8; /*性别*/float year; /*出生年月日*/char educat20; /*学历*/char duty20; /*职务*/float wage; /*工资*/char place20; /*住址*/double tel; /*电话*/student; student stu100; /*结构体数组变量*/int menu() /*菜单函数*

8、/ char c; do /system("cls"); /*运行前清屏*/printf("-m e n u-");/*菜单选择*/ printf(" <<1>> 录入职工信息 ");printf(" <<2>> 显示所有职工信息 ");printf(" <<3>> 查询职工信息 ");printf(" <<4>> 修改职工信息并保存 ");printf(" <&l

9、t;5>> 删除职工信息 ");printf(" <<6>> 按职工号降序排列 ");printf(" <<0>> 退出本系统 ");printf(" *作者:1009301班 完美组合* ");printf("-请 选 择 你 需 要 的 操 作-");printf("=>请输入数字 09:n");c=getchar(); /*读入选择*/ while(c<'0'|c>'5'

10、); return(c-'0'); /*返回选择*/ int input(student stud,int n) /*输入若干条记录*/ int i=0;char sign='y',x10; /*x10为清除多余的数据所用*/ while(sign!='n'&&sign!='n') /*选择判断*/ printf(" -请输入职工号-:"); /*交互输入*/scanf("%d",&studn+i.number);printf(" -请输入职工的姓名-:&q

11、uot;);scanf("%s",&studn+);printf(" -请输入职工的性别-:");scanf("%s",&studn+i.sex);printf(" -请输入职工的出生年月日:");scanf("%f",&studn+i.year);printf(" -请输入职工的学历-:");scanf("%s",&studn+cat);printf(" -请输入职工的职务-:")

12、;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&q

13、uot;,studn+);printf(" =>提示:继续写入成绩?(y/n)");scanf("%c",&sign); /*输入判断*/i+; return(n+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(&q

14、uot;-n");for(i=1;i<n+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",studi-1. educat);printf("%s",studi-1. duty);printf("%8.0ft"

15、;,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)/*选

16、择判断*/case 1:/*按职工号查找*/printf("输入需要查找职工的职工号:n");scanf("%d",&s);while(studi.number-s)!=0&&i<n) i+; /*查找判断*/ if(i=n) printf("=>提示:对不起,无法找到该职工的信息!n"); /*输入失败信息*/ return; printf("-n"); /*输出该职工信息*/printf(" 职工号:%dn",studn-1. number); print

17、f(" 姓名:%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);prin

18、tf(" 电话:%11.0lfn",studn-1. tel);printf("n");break;case 2:/*按姓名查找*/printf("输入需要查找职工的工资:n");scanf("%d",&s);while(studi.wage-s)!=0&&i<n) i+; /*查找判断*/ if(i=n) printf("=>提示:对不起,无法找到该职工的信息!n"); /*输入失败信息*/ return; printf("-n"); /

19、*输出该职工信息*/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",studn-1. duty);printf(" 工资:%fn",

20、studn-1.wage);printf(" 住址:%sn",studn-1. place);printf(" 电话:%11.0lfn",studn-1. tel);printf("n");break;void modify(student stud,int n) /*修改职工信息*/int s=0;int i=0;printf("输入需要修改职工信息的职工号:n");scanf("%d",&s);while(studi.number-s)!=0&&i<n) i+;

21、 /*查找判断*/ if(i=n) printf("=>提示:对不起,无该职工的信息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("

22、%st",studi-1. name);printf("%st",studi-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);

23、printf("n");printf("请输入职工号:"); /*交互输入*/scanf("%d",&studn+i.number);printf("请输入职工的姓名:");scanf("%s",&studn+);printf("请输入职工的性别:");scanf("%s",&studn+i.sex);printf("请输入职工的出生年月日:");scanf("%f",&s

24、tudn+i.year);printf("请输入职工的学历:");scanf("%s",&studn+cat);printf("请输入职工的职务:");scanf("%s",&studn+i.duty);printf("请输入职工的工资:");scanf("%f",&studn+i.wage);printf("请输入职工的住址:");scanf("%s",&studn+i.place);prin

25、tf("请输入职工的电话:");scanf("%lf",&studn+i.tel);printf("%sn",studn+);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) i+; /*查找判断*

26、/if(i=n) printf("=>提示:对不起,无法找到该职工号n"); /*返回失败信息*/ return(n); for(j=i;j<n-1;j+) /*删除操作*/ strcpy(studj. name,studj+1. name);studj.number=studj+1.number;strcpy(studj. sex,studj+1. sex);studj.year=studj+1.year;strcpy(studj. educat,studj+1. educat);strcpy(studj. duty,studj+1. duty);studj.

27、wage=studj+1.wage;strcpy(studj. place,studj+1. place);studj.tel=studj+1.tel; printf("=>提示:已成功删除!n"); /*返回成功信息*/return(n-1); void sort(student stud,int n) /*按职工号排序*/ int i,j,k; float s;char t20; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(studj.number<studj+1.number) k=st

28、udj+1.number; studj+1.number=studj.number;studj.number=k;strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t);strcpy(t,studj+1.sex); strcpy(studj+1.sex,studj.sex); strcpy(studj.sex,t);s=studj+1.year; studj+1.year=studj.year; studj. year =s;strcpy(t,studj+1.educat); strcpy(st

29、udj+1.educat,cat); strcpy(cat,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(studj+1.place,studj.place); strcpy(studj.place,t);s=studj+1.tel; studj+1.tel =studj.t

30、el; studj. tel=s;printf("-n"); /*格式头*/ printf(" 职工号t姓名t性别t生日t学历t职务t工资t住址t电话n"); printf("-n");for(i=1;i<n+1;i+) /*循环输入*/printf(" %dt",studi-1. number);printf("%st",studi-1. name);printf("%st",studi-1. sex);printf("%6.0f",studi-1

31、. 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"); void main() /*主函数*/ int n=0; for(;) switch(menu() /*选择判断*/ case 1:print

32、f("n=>> 输入信息 <<=n"); /*输入若干条记录*/ n=input(stu,n);system("pause");break; case 2:printf("n=>> 显示所有记录 <<=n"); /*显示所有记录*/ display(stu,n); system("pause");break; case 3: printf("n=>> 查找并显示一组信息<<=n"); search(stu,n); /*插入一

33、条记录*/ printf("ttt");system("pause");break; case 4: printf("n=>> 修改职工信息 <<=n");modify(stu,n); /*查找并显示一个记录*/ printf("ttt"); system("pause");break; case 5: printf("n=>>按职工号查找,删除一条记录<<=n");delete(stu,n); /*按职工号查找,删除一条记录*

34、/ printf("删除成功!n");printf("ttt"); system("pause");break;case 6: printf("n=>> 按职工号降序排列 <<=n");sort(stu,n); /*按学号排序*/ printf("排序成功!n");printf("ttt");system("pause");break;case 0: printf("n=>> 谢谢您的使用!<<=n"); /*结束程序*/ printf("ttt");system("pause"); exit(0); 3.4、算法调试过程中出现的问题及解决方法整个的调试过程中,我遇到的问题可以分为两大类,一类是输入错误,第二类是算法的严密性有问题,对于某个功能的执行,有时候会出错。算法调试过程,大部分的出错都是程序的输入错误,这类问题通过上网和组员时间的讨论,容易解决。(1)我在输入input()函数后,最后一个“”忘记加上

温馨提示

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

评论

0/150

提交评论