1、C语言程序设计C语言程序设计课程设计报告题 目: 职工信息管理系统 专 业: 数学与计算科学 班 级: 1009-301 姓 名: 李军 陈辉煌 曾超群 阳恩成 张琦 指导教师: 李又良 成 绩: 二一一年六月一日课程设计报告职工信息管理系统1、研究背景及意义由于现今的职工信息管理非常繁琐,管理人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,为了减轻轻单位人工对职工信息进行登记,查找的工作,进而设计出一个功能更完善,合理,先进的职工信息管理系统来管理。开发此职工信息管理系统软件,以供教学人员及操作者进行职工管理,方便操作者随时添加、查询、修改职工信息。2、 课程设计题目描述和要求对
2、职工信息的管理是每企业中的重要组成部分,其内容较多,为了简化讨论,职工信息主要包括:职工号、姓名、性别、出生年月、学历、职务、工资、地址、电话。系统功能:1)、输入功能:可以多次次完成多个职工所有信息2)、浏览功能:可以一次性浏览职工的所有信息3)、查询功能:可以按职工号和工资两种方式查询4)、修改功能:可以随时对职工的信息进行修改5)、删除功能:可以对职工的信息进行删除6)、排序功能:可以按职工号降序排列0)、推出本系统功能模块分工:李军 :程序设计与信息输入、浏览 陈辉煌:页面设计与信息查询 曾超群:信息修改阳恩成:信息删除张琦 :信息排序3、课程设计报告内容3.1职工管理系统的理论依据及
3、算法主要数据结构:typedef struct int number; /*职工号*/char name20; /*姓名*/char sex8; /*性别*/float year; /*出生年月日*/char educat20; /*学历*/char duty20; /*职务*/float wage; /*工资*/char place20; /*住址*/double tel; /*电话*/Student; Student stu100; /*结构体数组变量*/各函数的功能和实现:整个系统除了主函数外,另外还有10个函数,实现七大功能:输入功能、显示功能、查找功能、修改功能、删除功能、排序功能。
4、各个函数的详细设计说明分别如下:1、 主函数 main()利用无限次循环for(;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。2、 菜单选择函数switch(menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!3、 输入记录函数int Input(Student stud,int n)这是一个无参函数,用来执行职工信息的输入,当学生九类信息全部输入后,系统提示 “继续写入成绩?Y/N”,选择“N”函数结束。4、 显示记录
5、函数void Display(Student stud,int 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 流程图 3.3、源程序如下:#include /*引用库函数*/#include /*输入输出函数*/#include #include typedef struct int number; /*职工号*/ char name20; /*姓名*/char sex8; /*性别*/float year; /*出生年月
7、日*/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-);/*菜单选择*/ printf( 录入职工信息 );printf( 显示所有职工信息 );printf( 查询职工信息 );printf( 修改职工信息并保存 );printf( 删除
8、职工信息 );printf( 按职工号降序排列 );printf( 退出本系统 );printf( *作者:1009301班 完美组合* );printf(-请 选 择 你 需 要 的 操 作-);printf(=请输入数字 09:n); c=getchar(); /*读入选择*/ while(c5); return(c-0); /*返回选择*/ int Input(Student stud,int n) /*输入若干条记录*/ int i=0; char sign=y,x10; /*x10为清除多余的数据所用*/ while(sign!=n&sign!=N) /*选择判断*/ printf(
9、 -请输入职工号-:); /*交互输入*/ 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+i.educat); printf( -请输入职工的职务-:); scanf(%s,&studn+i.duty); printf( -请输入职
10、工的工资-:); 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+i); void Display(Student stud,int n) /*显示所有记录*/ int i; if(!
11、stud) printf(没有记录); else printf(-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,studi-1. educat); printf(%s,studi-1. duty); printf(%8.0
12、ft,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:/*按职工号查找*/ printf(输入需要查找职工的职工号:n); scanf(%d,&s); while(
13、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,studn-1. duty);printf( 工资:%fn,studn-1.w
14、age);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); printf( 姓名:%sn,studn-1. name);prin
15、tf( 性别:%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) /*修改职工信息*/ int s=0; int i=0; pri
16、ntf(输入需要修改职工信息的职工号: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-1. sex); printf(
17、%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(请输入职工的性别:); scanf(%s
18、,&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,stud
19、n+i.name);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;
20、 char t20; 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
21、,t); s=studj+1.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.
22、place); strcpy(studj+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;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,studi-1. educat); printf(%s,studi-1. duty); printf(%8
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1