范例_C语言课程设计报告

上传人:飞*** 文档编号:43251918 上传时间:2018-06-05 格式:DOC 页数:24 大小:114KB
返回 下载 相关 举报
范例_C语言课程设计报告_第1页
第1页 / 共24页
范例_C语言课程设计报告_第2页
第2页 / 共24页
范例_C语言课程设计报告_第3页
第3页 / 共24页
范例_C语言课程设计报告_第4页
第4页 / 共24页
范例_C语言课程设计报告_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《范例_C语言课程设计报告》由会员分享,可在线阅读,更多相关《范例_C语言课程设计报告(24页珍藏版)》请在金锄头文库上搜索。

1、范例范例:职工信息管理系统职工信息管理系统一一.需求分析需求分析1.1 编写目的:通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分 析员进行系统分析和测试人员进行测试时的手册1.2 需求概述:设计一个职工信息管理系统,使之能提供以下功能: 录入职工信息并保存 显示所有职工信息 查询职工信息 修改职工信息并保存 删除职工信息1.3 需求说明:职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,并且要求职工 号不重复; 录入的职工信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作; 职工信息的显式要求有一定的规范格式;

2、 对职工信息应能够分别按工资及按学历两种方式进行,要求能返回所有符合条件的职工的信息; 对职工信息的修改应逐个地进行,一个职工信息的更改不应影响其他的职工记录; 所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理, 并要求在此过程中能够尽可能的兼容用户使用过程中的异常情况二二.总体设计总体设计2.1 编写目的:根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并 写出书面文档总体设计说明书,为下一步进行详细设计做准备。2.2 总体设计:1.该系统可以按功能进行模块划分,其模块图如下:系统模块图 其中: 信息输入模块完成职工信

3、息的输入功能,输入信息包括职工号、姓名、性别、出生年月、学历、职 务、工资、住址、电话等; 信息浏览模块完成已录入职工信息的显示; 信息查询模块完成职工信息的查询,查询时对应有按工资查询和按学历查询两种方式; 信息修改模块完成职工信息的修改功能; 信息删除模块完成职工信息的删除功能; 菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操 作均需在此模块中进行选择并进而调用其他模块实现相应的功能; 2.数据结构 本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工 资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进

4、行处理 3.程序流程 系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统 为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下:程序流程图三三.详细设计详细设计3.1 编写目的:根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程 序编码工作。3.2 详细设计:对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:1.信息输入模块:信息输入模块:打开职工信息文件; while ( 继续输入 ) 读入职工信息;将读入信息添加到职工信息文件中;提示是否继续输入; 关闭职工信息文件;2.信息浏览模块:信息浏览模块:

5、打开职工信息文件; while ( 不到文件结束 ) 从文件中顺序读出一个职工的信息;按指定格式输出该职工的信息; 关闭职工信息文件;3.信息查询模块:信息查询模块:while ( 仍继续查询 ) if( 按工资查询 ) 读入查询的职工工资条件;打开职工信息文件;while( 不到文件结束 )顺序读出一个职工的信息;if( 该职工信息的工资符合条件 ) 输出该职工的信息; 关闭职工信息文件; 提示共有几条符合条件的记录; else if ( 按学历查询 ) 读入学历查询的条件;打开职工信息文件;while( 不到文件结束 )顺序读出一个职工的信息;if( 该职工信息的学历符合条件 ) 输出该职

6、工的信息; 关闭职工信息文件; 提示符合条件的记录数;else 提示输入不合适;提示是否继续查询; 4.信息修改模块:信息修改模块:while( 继续修改 ) 从给出信息文件中所有的记录情况; 提示并读入待修改的记录的职工的职工号; 打开职工信息文件; 查找并读出该职工的信息到一个中间变量中; 提示并读入要针对该职工的哪个属性进行修改; 根据用户的选择提示并读入所要修改属性的新值; 在该职工的中间变量中修改刚刚读入的属性值; 提示是否确定要进行修改; 如果用户确定则将中间变量重新写回到原职工信息文件中; 关闭职工信息文件; 5.信息删除模块:信息删除模块:while( 继续删除 ) 显示所有职

7、工的信息;提示并读入待删除的职工的职工号;打开职工信息文件;查找是否有符合条件的职工记录;if( 有符合条件的记录) 提示是否确认该删除操作; if (用户确认此操作) 创建一个新的临时文件;打开原信息文件;while( 原信息文件中记录未读完 )读出原信息文件中的下一条记录;if( 此条记录不是待删除记录) 写入临时文件中去; 关闭原信息文件; 关闭临时文件;读方式打开临时文件; 写方式重建与原信息文件同名的新信息文件; 将临时文件中的内容写入到新信息文件中去; 关闭新信息文件; 关闭临时文件; 删除临时文件; else 提示没有符合条件的记录存在; 6.菜单选择模块:菜单选择模块:给出信息

8、提示; 清屏; 绘制菜单(包含输入、显示、查询、修改、删除、退出) ; 提示菜单选择并读入到变量; 根据读入变量的值调用不同的模块函数;数据结构: 性别: enum Sex male, female ; 学历 :enum Education high, junior, college, master, doctor; 日期 :struct Date int year; int month;int day; ; 职工信息:struct Info char num5; /* 职工号 */ char name8; /* 姓名 */enum Sex sex; /* 性别 */struct Date b

9、irthday; /* 出生年月*/ enum Education education; /* 学历 */ char duty8; /* 职务 */ double wage; /* 工资 */ char addr12; /* 地址 */ char phone8; /* 电话 */ ;#include #include #include enum Sex male, female ; /* 性别 */enum Education high, junior, college, master, doctor; /* 学历 */struct Date /* 日期 */ int year;int mon

10、th;int day; ;struct Info char num5; /* 职工号 */char name8; /* 姓名 */enum Sex sex; /* 性别 */struct Date birthday; /* 出生年月*/enum Education education; /* 学历 */char duty8; /* 职务 */double wage; /* 工资 */char addr12; /* 地址 */char phone8; /* 电话 */ ;void menu();int load(char * a) /*计算参数所指定的文件中的记录的个数的函数*/ struct

11、Info info;FILE *fp;int i;if(fp=fopen(a,“rb“)=NULL)printf(“nCannot open filen“); getch();return 0;for(i=0;!feof(fp);i+)fread(fclose(fp);return(i-1); /*返回记录个数*/ void append() /* 信息添加函数 */ struct Info info;FILE * fp;int flag = 1;char temp10;if(fp=fopen(“inform.txt“,“ab“) = NULL)if(fp=fopen(“inform.txt“

12、,“wb“)=NULL)printf(“tCan not open the inform file!“);getch();exit(1);doprintf(“tnum:“);gets(info.num);printf(“tname:“);gets(info.name);printf(“tsex:“);gets(temp);if(!strcmp(temp,“female“) info.sex=female;else info.sex=male;printf(“tbirthday(yyyy/mm/dd):“);scanf(“%d/%d/%d“, getchar();printf(“teducati

13、on:“);gets(temp);if(!strcmp(temp,“doctor“) info.education=doctor;else if(!strcmp(temp,“master“) info.education=master;else if(!strcmp(temp,“college“) info.education=college;else if(!strcmp(temp,“junior“) info.education=junior;else info.education=high;printf(“tduty:“);gets(info.duty);printf(“twage:“)

14、;gets(temp); info.wage=atof(temp);printf(“taddress:“);gets(info.addr);printf(“tphone:“);gets(info.phone);if(fwrite(getch();exit(1);printf(“Any more ? t1).Yest2).No: bb“);scanf(“%d“, getchar();while(flag = 1);fclose(fp);menu(); void display() /* 职工信息显示函数 */ int amount; /* 信息文件中的记录总数 */struct Info inf

15、o;FILE * fp;int total = 0;char temp10, temp110;amount=load(“inform.txt“);if(fp=fopen(“inform.txt“,“rb“) = NULL)printf(“tCan not open the inform file!“);getch();exit(1);printf(“%-5s%-8s%-8s%-11s%-10s%-8s%-8s%-12s%- 8sn“,“nun“,“name“,“sex“,“birthday“,“education“,“duty“,“wage“,“address“,“phone“);for(;totalvalue or ) flag1=1;else if(operator=value or value)total+;if(total = 1) printf(“%-5s%-8s%-8s%-11s%-10s%-8s%-8s%-12s%-8sn“,“n

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号