




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
职工信息管理系统设计一、课题简述题目:职工信息管理系统设计职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、职工信息录入 3、职工信息浏览 4、职工信息查询 查询方式: 按学历查询等 按职工号查询等 5、职工信息删除、修改功能(可选项)二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能; 基本掌握结构化程序设计的基本思路和方法。要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。3、浏览功能:完成对全部职工信息的显示。4、查找功能:完成按职工的职工号查询职工的相关信息,并显示。 完成按职工的学历查询职工的相关信息,并显示。5、删除功能:通过输入职工的姓名完成对该名职工的信息进行。6、添加功能:完成添加新职工的信息的任务。7、退出职工信息管理系统。三、解决方案 1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。四、进度安排课程设计时间为两周,分为四个阶段完成。1、分析设计阶段。在老师的指导下自主学习,明确设计要求,找出现实方法。按照需求分析、总体设计、详细设计几个步骤进行。这一阶段前2-3天完成。2、编码调试阶段。根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。这一阶段在5-7天完成。 3、总结报告阶段。总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。这一阶段在2-4天完成。 4、考核阶段。五、总设计方案 1、总流程图菜单开始根据菜单输入n的值选择程序保存结束是否继续进行 NY YY4添加职工信息2浏览职工信息3查询职工信息5删除职工信息6退出1录入职工信息2、为了方便使用结构此系统结构均为全局类型定义 struct employee /定义一个结构体 int num; char name20; char sex; int age; char xueli40; int wage; char addr30; char tel20; em100; 3、各模块的功能和实现菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void input()函数来实现。保存模块:将内存中职工的信息输出到磁盘文件中,可以通过自己定义的void save(int)函数来实现。浏览模块:浏览所有职工的相关信息,通过自己定义的void display()函数来实现。删除模块:删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。添加模块:添加需要添加的职工的相关信息,通过自己定义的void add()函数来实现。按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的void search_num()函数来实现。按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的void search_xuelil函数来实现。退出系统模块:退出职工信息管理系统,通过通过在即定义的void quit()函数来实现。六、使用说明及运行实例 1、进入程序图一:进入主菜单界面2、输入 “1”进行录入职工信息图2:录入职工信息3、输入“Y”返回(界面同图一)4、输入“2”浏览职工信息 图3:浏览职工信息5、输入“Y”后继续,输入“3”进行查询职工信息 图4:按职工号和学历查询职工信息6、输入“Y”返回主菜单,输入“4”进行添加职工信息图5:添加职工信息 7、输入“Y”返回主菜单,输入“5”进行删除职工信息 图6:删除职工信息 8、输入“Y”进入主菜单,输入“6”退出程序七、职工信息管理程序源代码#include #include #include struct employeeint num; char name20; char sex; int age; char xueli40; int wage; char addr30; char tel20;em100; /定义一个结构体void menu();void input();void save(int);void display();void add();void del();void search();void search_num();void search_xueli();void quit(); /定义各函数void main()system(cls); /清屏int i=0;system(color f9); printf(nn); printf( tn); printf( t*n); printf( t*n); printf( t*n); printf( t* *n); printf( t* 欢迎使用职工信息管理系统 *n); printf( t* *n); printf( t* *n); printf( t* Sandy *n); printf( t* *n);printf( t* 2012.06.18 *n); printf( t* *n); printf( t*n); printf( t*n); printf( t*n); printf( tn);for(i=0;i=1&n=6)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!n);while(flag=0); while(flag=1) switch(n) case 1:printf( 输入职工信息n);printf(n);input();break; case 2:printf( 浏览职工信息n);printf(n);display();break; case 3:printf( 查询职工信息n);printf(n);search();break; case 4:printf( 添加职工信息n);printf(n);add();break; case 5:printf( 删除职工信息n);printf(n);del();break; case 6:quit();break; default :break; getchar(); printf(n); printf(是否继续进行(y or n):n); scanf(%c,&a); if(a!=n) flag=1; system(cls); menu(); printf(请再次选择你需要操作的步骤(1-6):n); scanf(%d,&n); printf(n); else quit();void menu() /菜单函数printf(nn); printf(tn); printf(t*n);printf(t* * *n); printf(t* 1.录入职工信息 * 2.浏览职工信息 *n); printf(t* * *n); printf(t*n); printf(t* * *n);printf(t* 3.查询职工信息 * 4.添加职工信息 *n); printf(t* * *n); printf(t*n);printf(t* * *n);printf(t* 5.删除职工信息 * 6.退出 *n); printf(t* * *n); printf(t*n); printf(tn);void input() /录入函数int i,m; printf(请输入需要创建信息的职工人数(1-100):n); scanf(%d,&m); for (i=0;im;i+)printf(请输入职工号: ); scanf(%d,&emi.num); printf(请输入姓名: ); scanf(%s,); getchar(); printf(请输入性别(f-女 m-男): ); scanf(%c,&emi.sex); printf(请输入年龄: ); scanf(%d,&emi.age); printf(请输入学历: ); scanf(%s,emi.xueli); printf(请输入工资: ); scanf(%d,&emi.wage); printf(请输入住址: ); scanf(%s,emi.addr); printf(请输入电话: ); scanf(%s,emi.tel);printf(n);printf(n创建完毕!n);save(m);void save(int m) /保存文件函数int i; FILE *fp; if (fp=fopen(employee_list,wb)=NULL) /wb为已只读方式打开OR建立一个二进制文件,只允许写数据printf (cannot open filen);quit(); for (i=0;im;i+) /将内存中职工的信息输出到磁盘文件中去 if (fwrite(&emi,sizeof(struct employee),1,fp)!=1) printf(file write errorn); fclose(fp);int load() /导入函数FILE*fp;int i=0;if(fp=fopen(employee_list,rb)=NULL) /rb为已只读方式打开一个二进制文件,只允许读数据printf (cannot open filen);quit();elsedofread(&emi,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);void display() /浏览函数int i;int m=load();printf( 职工号t姓名tt性别tt年龄 n);for(i=0;im;i+) /m为输入部分的职工人数printf(n %dtt%-16s%ctt%dtn,emi.num,,emi.sex,emi.age); printf(n 学历tt工资tt住址tt电话 n);for(i=0;im;i+) /m为输入部分的职工人数 printf(n %-14s%dtt%stt%sn,emi.xueli,emi.wage,emi.addr,emi.tel);void add()/添加函数FILE*fp;int n; int count=0; int i; int m=load(); printf(n 原来的职工信息:n); display(); printf(n); fp=fopen(emploee_list,a); printf(请输入想增加的职工数:n);scanf(%d,&n); for (i=m;i(m+n);i+)printf(n 请输入新增加职工的信息:n);printf(请输入职工号: );scanf(%d,&emi.num);printf(n);printf(请输入姓名: );scanf(%s,);getchar();printf(请输入性别(f-女 m-男): );scanf(%c,&emi.sex); printf(请输入年龄: );scanf(%d,&emi.age);printf(请输入学历: );scanf(%s,emi.xueli);printf(请输入工资: );scanf(%d,&emi.wage);printf(请输入住址: );scanf(%s,emi.addr);printf(请输入电话: );scanf(%s,emi.tel);printf(n);count=count+1;printf(已增加的人数:n);printf(%dn,count);printf(n添加完毕!n); m=m+count;printf(n浏览增加后的所有职工信息:n);printf(n);save(m);display();fclose(fp);void del() /删除函数int m=load();int i,j,n,t,flag;char name20;printf(n 原来的职工信息:n);display(); printf(n);printf(请输入要删除的职工的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&im;i+)if(strcmp(,name)=0)printf(n已找到此人,原始记录为:n);printf( 职工号t姓名tt性别tt年龄 n);printf(n %dtt%-16s%ctt%dtn,emi.num,,emi.sex,emi.age);printf(n 学历tt工资tt住址tt电话 n);printf(n %st%dtt%st%sn,emi.xueli,emi.wage,emi.addr,emi.tel); printf(n确实要删除此人信息请按1,不删除请按0n);scanf(%d,&n);if(n=1)for(j=i;j=1&t=3)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(flag=0);while(flag=1)switch(t)case 1:printf(按职工号查询n);search_num();break;case 2:printf(按学历查询n);search_xueli();break;case 3:main();break;default:break;void search_num()int num;int i,t;int m=load();printf(请输入要查找的职工号:n);scanf(%d,&num);for(i=0;im;i+)if(num=emi.num)printf(n已找到此人,其记录为:n);printf( 职工号t姓名tt性别tt年龄 n);printf(n %dtt%-16s%ctt%dtn,emi.num,,emi.sex,emi.age); printf(n 学历tt工资tt住址tt电话 n); printf(n %st%dtt%stt%sn,emi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询职工号请按2n);scanf(%d,&t);switch(t)case 1:search();break;case 2: break;default:break;void search_xueli()char xueli30;int i,t;int m=load();printf(请输入要查找的学历:n);scanf(%s,xueli);for(i=0;im;i+)if(strcmp(emi.xueli,xueli)=0) /strcmp 为比较字符串printf(n已找到,其记录为:n);printf( 职工号t姓名tt性别tt年龄 n);printf(n %dtt%-16s%ctt%dtn,emi.num,,emi.sex,emi.age);printf(n %st%dtt%stt%sn,emi.xueli,emi.wage,emi.addr,emi.tel);elseprintf(n对不起,查无此人n);printf(n);printf(返回查询函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业污染场地修复技术革新与成本优化研究
- 2025-2026人教版九年级数学上册专项突破:弧、弦、圆心角 圆周角(附详解)
- 2025-2026年人教版中考英语阅读填表题分类提高综合练习
- 110工法培训课件
- 婴幼儿产品市场需求趋势分析
- 药品安全监督执法课件
- 科幻小说课件教学
- 2025年河北省辅警协警笔试笔试真题含答案
- 不动产登记纠纷中民事与行政交叉问题探析
- 农药交叉污染培训课件
- 2024(统编版)语文六年级上册 开学第一课 课件
- GB∕T 17794-2021 柔性泡沫橡塑绝热制品
- Q∕SY 01747-2020 热力采油过热蒸汽锅炉运行规程
- CRT植入推荐步骤和工具课件
- 建筑施工岗位安全风险明白卡
- Q∕GDW 10827-2020 三相智能电能表技术规范
- 空气轴承技术培训教程
- (完整版)法理学试题库附答案
- 客户服务管理10421考试大纲
- 典范剧本Coming Clean
- 硫酸生产工艺计算
评论
0/150
提交评论