已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告 课程设计名称 数据结构课程设计 专 业 班 级 学号 姓 名 指导教师 成 绩 年 月 日数据结构课程设计 教职工信息管理系统目 录一、设计任务与要求31.1 总体目标与任务要求31.2 题目选择与目的意义31.3 课程设计的具体工作4二、系统分析42.1 系统需求分析4三、系统设计53.1总体设计53.1.1编写目的:53.1.2功能模块设计:53.2系统实现73.2.1各模块实现函数73.2.2运行环境73.3 详细设计73.3.1编写目的73.2.2详细设计7四、系统应用144.1 用户界面154.2 系统功能154.3 辅助功能15五、总结体会155.1 分析设计评价155.2 技术方案评价155.3 经验与体会15一、设计任务与要求1.1 总体目标与任务要求1. 目的:(1)要求学生熟练掌握c语言的基本知识和编程技能; (2)基本掌握结构化程序设计的基本思路和方法;2. 要求 基本要求:(1)试设计一个职工信息管理系统,使之能提供以下功能:(2)系统以菜单方式工作(3)职工信息录入功能(职工信息用文件保存)输入(4)职工信息浏览功能输出(5)查询功能:(6)系统进入画面(静态或动画)(7)职工信息删除功能(8)职工信息修改功能1.2 题目选择与目的意义随着计算机的飞速发展,它的应用已经十分广泛,它在人们的生产、生活、工作和学习中发挥着重要的作用。例如一个现代化的公司,拥有数千名的员工,那么如何管理这么庞大的职工信息档案呢?这时,开发一个功能完善的职工信息管理系统就必不可少了。从职工信息的查询到管理实现了自动化的模式,从而提高了工作效率,即可以对企业内部的员工管理更加方便。这种采用网络管理的好处是可以对企业的众多员工的信息进行动态的管理,修改、添加和删除都非常方便,不必再像原来准备一个巨大的档案库,在诸多文挡中查找资料,减少了这些重要工作出错的可能性。1.3 课程设计的具体工作在本次课程设计过程中,本人主要完成了:选题、系统分析、系统设计、系统测试、系统应用等工作。二、系统分析2.1 系统需求分析编写目的:通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进行系统分析和测试人员进行测试时的手册需求概述:设计一个职工信息管理系统,使之能提供以下功能:1) 录入职工信息并保存2) 显示所有职工信息3) 查询职工信息4) 修改职工信息并保存5) 删除职工信息需求说明:职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,并且要求职工号不重复;录入的职工信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作;职工信息的显式要求有一定的规范格式;对职工信息应能够分别按工资及按学历两种方式进行,要求能返回所有符合条件的职工的信息;对职工信息的修改应逐个地进行,一个职工信息的更改不应影响其他的职工记录;所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并要求在此过程中能够尽可能的兼容用户使用过程中的异常情况三、系统设计3.1总体设计3.1.1编写目的:根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细设计做准备。3.1.2功能模块设计:1 该系统可以按功能进行模块划分,其模块图如下:教职工信息管理系统教职工信息的录入教职工信息的浏览教职工信息的查询教职工信息的修改教职工信息的删除按职工号查询按学历查询按电话号码查询图31系统模块图其中:信息输入模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等;信息浏览模块完成已录入职工信息的显示;信息查询模块完成职工信息的查询,查询时对应有按工资查询和按学历查询两种方式;信息修改模块完成职工信息的修改功能;信息删除模块完成职工信息的删除功能;菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;2. 数据结构本系统是一个数组的应用问题。中主要的数据结点就是职工的信息(结构体类型数据),包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理3.程序流程系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下:图3-2系统的流程图3.2系统实现3.2.1各模块实现函数模块名称实现函数录入模块 void input();浏览模块void display();查询模块void search();void search_num();void search_xueli();void search_tel();删除模块void del();添加模块void add();修改模块void modify();保存模块void save(int m);调出模块int load ();3.2.2运行环境本系统采用c语言编写,在microsoft visual c+6.0集成开发环境下编译通过。3.3 详细设计3.3.1编写目的:根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。3.2.2详细设计:对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:1. 自定义结构体定义了一个结构体用来保存教职工信息:struct employee int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int tel;employ100;2 主菜单流程图函数声明:void menu()功能简介:显示菜单界面,接受用户输入并调用相应模块进行数据处理开始选择功能(flag)flag0&flag=1&flag=7)yn提示输入错误,重新选择对flag多分支选择switch(flag)flag=7flag=1flag=2flag=3flag=4flag=5flag=6结束程序input();void display()search();输入排序规则load()display()输入要删除的教职工的姓名load()display();输入想增加的教职工数:scanf(%d,&n);m=load(); display(); 输入要修改的职工的姓名:save(m);load()search_num();search_xueli();search_tel();del()add()save(m)sure=modifstudent(q,n);scanf(%c,&a);modify();if(a=y)if(a=y)if(a=y)if(a=y)if(a=y)if(a=y)yyy n y n y n y yn n跳转至begin结束程序跳转至begin结束程序跳转至begin结束程序跳转至begin结束程序跳转至begin结束程序跳转至begin结束程序信息输入模块:打开职工信息文件;while (继续输入 ) 读入职工信息;将读入信息添加到职工信息文件中;提示是否继续输入;关闭职工信息文件;信息浏览模块:打开职工信息文件;while ( 不到文件结束 ) 从文件中顺序读出一个职工的信息;按指定格式输出该职工的信息;关闭职工信息文件;信息查询模块:while ( 仍继续查询 ) if( 按工资查询 ) 读入查询的职工工资条件; 打开职工信息文件;while( 不到文件结束 ) 顺序读出一个职工的信息;if( 该职工信息的工资符合条件 ) 输出该职工的信息;关闭职工信息文件;提示共有几条符合条件的记录; else if ( 按学历查询 ) 读入学历查询的条件; 打开职工信息文件;while( 不到文件结束 ) 顺序读出一个职工的信息;if( 该职工信息的学历符合条件 ) 输出该职工的信息;关闭职工信息文件;提示符合条件的记录数; else 提示输入不合适;提示是否继续查询;信息修改模块:while( 继续修改 )从给出信息文件中所有的记录情况;提示并读入待修改的记录的职工的职工号;打开职工信息文件;查找并读出该职工的信息到一个中间变量中;提示并读入要针对该职工的哪个属性进行修改;根据用户的选择提示并读入所要修改属性的新值;在该职工的中间变量中修改刚刚读入的属性值;提示是否确定要进行修改;如果用户确定则将中间变量重新写回到原职工信息文件中;关闭职工信息文件;信息删除模块:while( 继续删除 ) 显示所有职工的信息; 提示并读入待删除的职工的职工号; 打开职工信息文件; 查找是否有符合条件的职工记录; if( 有符合条件的记录) 提示是否确认该删除操作;if (用户确认此操作) 创建一个新的临时文件; 打开原信息文件; while( 原信息文件中记录未读完 ) 读出原信息文件中的下一条记录; if( 此条记录不是待删除记录) 写入临时文件中去;关闭原信息文件;关闭临时文件;读方式打开临时文件;写方式重建与原信息文件同名的新信息文件;将临时文件中的内容写入到新信息文件中去;关闭新信息文件;关闭临时文件;删除临时文件;else 提示没有符合条件的记录存在; 菜单选择模块:给出信息提示;清屏;绘制菜单(包含输入、显示、查询、修改、删除、退出);提示菜单选择并读入到变量;根据读入变量的值调用不同的模块函数;数据结构:职工信息struct employee int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int tel;em100;四、系统应用4.1 用户界面主菜单窗口:图41主菜单窗口4.2 系统功能依照模块给出简要介绍,可视化截图4.3 辅助功能登录、退出、帮助等五、总结体会5.1 分析设计评价5.2 技术方案评价5.3 经验与体会实习指导教师签字: 年 月 日附:源代码employee.hstruct employee int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int tel;employ100;work.cpp:#include #include #include #include #define n 100#include employee.hvoid menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定义各函数*/void menu() /*菜单函数*/ printf(ttt欢迎使用教职工信息管理系统n); printf(n); printf( tttttttt2009-11n); printf(n); printf(t-教职工信息管理-n); printf(n); printf(tttt1.录入信息n); printf(tttt2.浏览信息n); printf(tttt3.查询信息n); printf(tttt4.删除信息n); printf(tttt5.添加信息n); printf(tttt6.修改信息n); printf(tttt7.退出n); printf(n); printf(t-谢谢使用-n); printf(n); printf(n); void main() menu(); /*调用菜单函数*/ int n,flag; char a; do printf(请选择功能:n); scanf(%d,&n); if(n=1&n=7) flag=1; break; else flag=0; printf(您输入有误,请重新选择!); while(flag=0); while(flag=1) switch(n) case 1:printf(ttttt*输入职工信息*n);printf(n);input();break; case 2:printf(ttttt*浏览职工信息*n);printf(n);display();break; case 3:printf(ttttt*按职工号查询职工信息*n);printf(n);search();break; case 4:printf(ttttt*删除职工信息*n);printf(n);del();break; case 5:printf(ttttt*添加职工信息*n);printf(n);add();break; case 6:printf(ttttt*修改职工信息*n);printf(n);modify();break; case 7:exit(0);break; default :break; getchar(); printf(n); printf(是否继续进行(y or n):n); scanf(%c,&a); if(a=y) flag=1; system(cls); /*清屏*/ menu(); /*调用菜单函数*/ printf(请再次选择你需要操作的步骤(1-6):n); scanf(%d,&n); printf(n); else exit(0); void input() /*录入函数*/ int i,m; printf(请输入需要录入的教职工人数:n); scanf(%d,&m); for (i=0;im;i+) printf(教职工号: ); srand(int)time(0); employi.num=rand()%10000+20000000; if(employi.num!=employi-1.num) printf(%8d ,employi.num); printf(n); printf(请输入教职工姓名: ); scanf(%s,); getchar(); printf(请输入教职工性别(f-女 m-男): ); scanf(%c,&employi.sex); printf(请输入教职工年龄: ); scanf(%d,&employi.age); printf(请输入教职工学历: ); scanf(%s,employi.xueli); printf(请输入教职工工资: ); scanf(%d,&employi.wage); printf(请输入教职工住址: ); scanf(%s,employi.addr); printf(请输入教职工电话: ); scanf(%d,&employi.tel); printf(n); printf(n创建完毕!n); save(m);void save(int m) /*保存文件函数*/ int i; file*fp; if (fp=fopen(employee_list,wb)=null) /*创建文件并判断是否能打开*/ printf (cannot open filen); exit(0); for (i=0;im;i+) /*将内存中职工的信息输出到磁盘文件中去*/ if (fwrite(&employi,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) printf (cannot open filen); exit(0); else do fread(&employi,sizeof(struct employee),1,fp); i+; while(feof(fp)=0); fclose(fp); return(i-1); void display() /*浏览函数*/ int i; int m=load(); printf(n 职工号t姓名t性别t年龄t学历t工资t住址t电话 n); for(i=0;im;i+) /*m为输入部分的职工人数*/ printf(n %dt%st%ct%dt%st%dt%st%ldn,employi.num,,employi.sex,employi.age,employi.xueli,employi.wage,employi.addr,employi.tel); 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(n职工号t姓名t性别t年龄t学历t工资t住址t电话 n); printf(n%dt%st%ct%dt%st%dt%st%ldn,employi.num,,employi.sex,employi.age,employi.xueli,employi.wage,employi.addr,employi.tel); printf(n确实要删除此人信息请按1,不删除请按0n); scanf(%d,&n); if(n=1) /*如果删除,则其他的信息都往上移一行*/ for(j=i;jm-1;j+) strcpy(,employj+1.name); employj.num=employj+1.num; employj.sex=employj+1.sex; employj.age=employj+1.age; strcpy(employj.xueli,employj+1.xueli); employj.wage=employj+1.wage; strcpy(employj.addr,employj+1.addr); employj.tel=employj+1.tel; flag=0; if(!flag) m=m-1; else printf(n对不起,查无此人!n); printf(n 浏览删除后的所有职工信息:n); save(m); /*调用保存函数*/ display(); /*调用浏览函数*/ printf(n继续删除请按1,不再删除请按0n); scanf(%d,&t); switch(t) case 1:del();break; case 0:break; default :break; 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=1&t=4) flag=1; break; else flag=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:printf(按电话号码查询n);search_tel();break; case 4:main();break; default:break; void search_num() int num; int i,t; int m=load(); printf(请输入要查找的教职工号(20001111-20009999):n); scanf(%d,&num); for(i=0;im;i+) if(num=employi.num) printf(n已找到此人,其记录为:n); printf(n职工号t姓名t性别t年龄t学历t工资t住址t电话 n); printf(n%dt%st%ct%dt%st%dt%st%ldn,employi.num,,employi.sex,employi.age,employi.xueli,employi.wage,employi.addr,employi.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(employi.xueli,xueli)=0) printf(n已找到,其记录为:n); printf(n教职工号t姓名t性别t年龄t学历t工资t住址t电话 n); printf(n%dt%st%ct%dt%st%dt%st%ldn,employi.num,,employi.sex,employi.age,employi.xueli,employi.wage,employi.addr,employi.tel); 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_tel() long int tel; int i, t; int m=load(); printf(请输入要查找的电话号码:n); scanf(%ld,&tel); for(i=0;im;i+) if(tel=employi.tel) printf(n已找到此人,其记录为:n); printf(n教职工号t姓名t性别t年龄t学历t工资t住址t电话 n); printf(n%dt%st%ct%dt%st%dt%st%ldn,employi.num,,employi.sex,employi.age,employi.xueli,employi.wage,employi.addr,employi.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 modify() /*修改函数*/ int num; char name10; char sex; int age; char xueli30; int wage; cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024工程维修合同样本
- 2024种猪销售合同范文
- 2024广告互换合同范文
- 2024个人汽车的租赁合同范本
- 权威借款合同范文汇编
- 2024的进出口贸易合同范文
- 品牌代理合作协议
- 2024小产权房买卖合同模板2
- 2024临时工合同协议书关于临时工的协议书
- 2024工业设备采购合同书
- 国开(甘肃)2024年春《地域文化(专)》形考任务1-4终考答案
- 档案整理及数字化服务方案(技术标 )
- 建筑桩基技术规范 JGJ942008
- C站使用说明JRC
- 习作:推荐一个好地方 推荐ppt课件
- 角的度量 华应龙(课堂PPT)
- 公路铣刨机整机的设计含全套CAD图纸
- 机器人学课程教学大纲
- 浙江世贸君澜酒店集团介绍
- GHTF—质量管理体系--过程验证指南中文版
- 铝及铝合金焊接作业指导书
评论
0/150
提交评论