C语言课程设计报告职工信息管理系统.doc
C语言课程设计报告班 级: 10电子科学与技术2班 学生姓名: 学 号: 指导老师:日 期: 2011-6-27目 录1 总体设计方案2 使用说明及运行实例3 项目源程序代码4 设计心得1.前言(标题四号宋体加黑,正文五号宋体)职工信息管理系统2.需求分析(参考课程设计任务书)1目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能; 基本掌握结构化程序设计的基本思路和方法。要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。3、浏览功能:完成对全部职工信息的显示。4、查找功能:完成按职工的职工号查询职工的相关信息,并显示。 完成按职工的姓名查询职工的相关信息,并显示。5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。6、添加功能:完成添加新职工的信息的任务。7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。8、退出职工信息管理系统。2、信息描述职工信息包括职工号、姓名、部门、工资、等。3、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。5、进度安排 课程设计时间为两周,分为五个阶段完成:1、 分析设计阶段。在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。按照需求分析、总体设计、详细设计几个步骤进行。这一阶段前1-2天完成;2、 编码调试阶段。根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。这一阶段在3-7天完成;3、总结报告阶段。总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。这一阶段在8-9天完成;4、考核阶段。6、参考资料程序设计基础(C语言)(第三版)陈维 编著 清华大学出版社C程序设计题解与上机指导(第三版 ) 谭浩强 编著 清华大学出版社3.总体设计(包括功能划分、数据结构、总流程图)三.各模块的功能和实现菜单开始根据菜单输入n的值选择程序保存结束操作完毕请选择 错N正确 YY1添加职工信息3修改职工信息5输出职工2查询职工信息4删除职工信息0退出流程图分析图4.详细设计(各模块的流程、函数介绍)1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void main()函数来实现。2:添加模块:添加所有职工的相关信息,通过自己定义的void append()函数来实现。3.删除模块:删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。4.按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的void numberway()函数来实现。5.修改模块:可以修改需要修改的职工的相关信息,通过自己定义的void modify()函数 来实现。0.退出系统模块:退出职工信息管理系统,通过头文件随土地噢。Stdio.h中的exit()函数来实现。一主菜单while(1) printf("nnntt _n"); printf("tt 欢迎进入华中科技大学文华学院员工信息系统n"); printf("tt 设计者:10电科陈方元 学号100110021115n"); printf("tt n"); printf("ntttt添加,请按1"); printf("ntttt查找,请按2"); printf("ntttt修改,请按3"); printf("ntttt删除,请按4"); printf("ntttt输出,请按5");printf("ntttt退出,请按0n"); scanf("%d",&m);二选择(1)添加void output() if(fp=fopen("worker.xls","r")=NULL) printf("n不能打开该文件!");exit();printf("nn%20sn","职工信息管理系统");while(!feof(fp)fscanf(fp,"%s%s%s%s%sn",one.name,one.num,one.department,one.position,one.wanges);(2)查找void search() int l;printf("tttt姓名查找按:1n");printf("tttt职工号查按:2n"); scanf("%d",&l);if(l>0&&l<3)switch(l)case 1:nameway();break;case 2:numway();break; printf("nn操作完毕!");else printf("tttt输入有误!");(3)修改void modify() int k=0;long a;char namekey8;printf("n请输入您要修改的职工的姓名:");scanf("%s",namekey);if(fp=fopen("worker.xls","r+")=NULL) printf("n不能打开该文件!");exit();while(!feof(fp)a=ftell(fp); fscanf(fp,"%s%s%s%s%sn",one.name,one.num,one.department,one.position,one.wanges);if(!strcmp(namekey,one.name)k=1;break;(4)删除void delete() int m,k=0;long a;char namekey8, valid4;printf("n请输入您要删除的职工姓名:");scanf("%s",namekey);if(fp=fopen("worker.xls","r+")=NULL) printf("n不能打开该文件!");exit();5.程序清单#include<stdio.h>struct char name8;char num10;char position15;char wanges10;char department15;one; FILE *fp; void output(); void search(); void append(); void modify(); void delete(); void exit(); void nameway();void numway();void main() int m;while(1) printf("nnntt _n"); printf("tt 欢迎进入华中科技大学文华学院员工信息系统n"); printf("tt 设计者:10电科陈方元 学号100110021115n"); printf("tt n"); printf("ntttt添加,请按1"); printf("ntttt查找,请按2"); printf("ntttt修改,请按3"); printf("ntttt删除,请按4"); printf("ntttt输出,请按5");printf("ntttt退出,请按0n"); scanf("%d",&m);if(m>=0&&m<=5)switch(m)case 1: append();break;case 2: search();break;case 3: modify();break;case 4: delete();break;case 5: output();break;case 0: exit();printf("nn操作完毕,请再次选择!");elseprintf("nn选择错误,请再次选择!"); void output() if(fp=fopen("worker.xls","r")=NULL) printf("n不能打开该文件!");exit();printf("nn%20sn","职工信息管理系统");while(!feof(fp)fscanf(fp,"%s%s%s%s%sn",one.name,one.num,one.department,one.position,one.wanges);printf("%-10s%-8s%-8s%-8s%-8sn",one.name,one.department,one.num,one.position,one.wanges);fclose(fp); void append() if(fp=fopen("worker.xls","a")=NULL) printf("n不能打开该文件!");exit();printf("n请输入添加职工信息(姓名、职工号、部门、职位、工资)n");scanf("%s%s%s%s%s",one.name,one.num,one.department,one.position,one.wanges);fprintf(fp,"%-10s%-8s%-8s%-8s%-8sn",one.name,one.num,one.department,one.position,one.wanges);fclose(fp); void search() int l;printf("tttt姓名查找按:1n");printf("tttt职工号查按:2n"); scanf("%d",&l);if(l>0&&l<3)switch(l)case 1:nameway();break;case 2:numway();break; printf("nn操作完毕!");else printf("tttt输入有误!"); void nameway()int k=0;char nam8;printf("n请输入您要查找的职工姓名:");scanf("%s",nam);if(fp=fopen("worker.xls","rb")=NULL) printf("n不能打开文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%sn",one.name,one.num,one.department,one.position,one.wanges);if(strcmp(nam,one.name)=0)printf("nn已查到,记录为:");printf("n%-10s%-8s%-8s%-8s%-8sn",one.name,one.num,one.department,one.position,one.wanges);k=1;if(k=0)printf("nn对不起,查无此人!。");fclose(fp);void numway() int i=0; char numb10;printf("tttt输入你要查询的共号n");scanf("%s",numb);if(fp=fopen("worker.xls","rb")=NULL) printf("n不能打开文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%sn",one.name,one.num,one.department,one.position,one.wanges);if(!strcmp(numb,one.num)printf("nn已查到,记录为:");printf("n%-10s%-8s%-8s%-8s%-8s%n",one.name,one.num,one.department,one.position,one.wanges);i=1;if(!i)printf("nn对不起,查无此人!。");fclose(fp); void modify() int k=0;long a;char namekey8;printf("n请输入您要修改的职工的姓名:");scanf("%s",namekey);if(fp=fopen("worker.xls","r+")=NULL) printf("n不能打开该文件!");exit();while(!feof(fp)a=ftell(fp); fscanf(fp,"%s%s%s%s%sn",one.name,one.num,one.department,one.position,one.wanges);if(!strcmp(namekey,one.name)k=1;break;if(k)printf("n已查到,记录为:");printf("n%-10s%-8s%-8s%-8s%n",one.name,one.num,one.position,one.wanges);printf("n请输入信息(按照姓名、职工号、部门、职位、工资的顺序输入):");scanf("%s%s%s%s",one.name,one.num,one.position,one.wanges);fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-8s%-8s%-8s%n",one.name,one.num,one.department,one.position,one.wanges);elseprintf("n对不起,查无此人,无法进行修改。");fclose(fp); void delete() int m,k=0;long a;char namekey8, valid4;printf("n请输入您要删除的职工姓名:");scanf("%s",namekey);if(fp=fopen("worker.xls","r+")=NULL) printf("n不能打开该文件!");exit();while(!feof(fp)a=ftell(fp); fscanf(fp,"%s%s%s%s%sn",one.name,one.num,one.department,one.position,one.wanges);if(strcmp(namekey,one.name)=0)k=1;break;if(k=1)printf("n已查到,记录为");printf("n%-10s%-8s%-8s%-8s%-8sn",one.name,one.num,one.department,one.position,one.wanges);printf("n确实要删除,按1;不删除,按0:");scanf("%d",&m);if(m=1)fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-8s%-8s%-8sn" "","","","","");elseprintf("n对不起,查无此人。");fclose(fp); 5、调试过程(1)主页版(2)添加(2)查找(3)修改(4)删除(5)输出(6)退出6.结束语(包括程序有待改进的地方、收获与体会)参考文献程序设计基础(C语言)(第三版)陈维 编著 清华大学出版社C程序设计题解与上机指导(第三版 ) 谭浩强 编著 清华大学出版社