首页 简单职工管理系统设计

简单职工管理系统设计

举报
开通vip

简单职工管理系统设计简单职工管理系统设计 课程设计(大作业)报告 课程名称: 数据结构 设计题目: 简单职工管理系统 院 系: 信息技术学院 班 级:2012计算机科学与技术2班 设 计 者: 学 号: 指导教师: 设计时间: 2013.12.28—2013.12.31 昆明学院课程设计(大作业)任务书 姓 名: 院(系):信息技术学院 专 业:计算机科学与技术 学 号: 任务起止日期:2013.12.28—2013.12.31 课程设计题目: 简单职工管理系统 课程设计要求: 在此次课程设计中,通过对数据结构...

简单职工管理系统设计
简单职工管理系统 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 课程设计(大作业)报告 课程名称: 数据结构 设计题目: 简单职工管理系统 院 系: 信息技术学院 班 级:2012计算机科学与技术2班 设 计 者: 学 号: 指导教师: 设计时间: 2013.12.28—2013.12.31 昆明学院课程设计(大作业)任务 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 姓 名: 院(系):信息技术学院 专 业:计算机科学与技术 学 号: 任务起止日期:2013.12.28—2013.12.31 课程设计题目: 简单职工管理系统 课程设计要求: 在此次课程设计中,通过对数据结构的逻辑特性和物理 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示,进一步理解和掌握各种数据结构的使用及算法设计实现等方面知识,加深对课程基本内容的理解。 设计一个简单的职工管理系统,按照课程设计的要求,实现对职工信息的新增、删除、修改、插入、以及排序等功能。 1、新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。 2、删除一名职工:从职工管理文件中删除一名职工对象。 3、查询:从职工管理文件中查询符合某些条件的职工。 4、修改:检索某个职工对象,对其某些属性进行修改。 5、排序:按某种需要对职工对象文件进行排序。 实现提示: 1、由键盘输入职工对象,以文件方式保存。程序执行。 2、对职工对象中的“姓名”按字典顺寻进行排序。 3、对排序后的职工对象进行增、删、查询、修改、排序等操作。 工作 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 及安排: 1、复习相关的课程设计所需要的内容,提出要求、提供选题并检索资料、确定设计题目。4小时。 2、数据类型定义、确定存储结构、算法设计。8小时。 3、算法实现。10小时。 4、编写课程设计报告。4小时。 指导教师签字 年 月 日 课程设计(大作业)成绩 学号: 姓名: 指导教师: 课程设计题目: 简单职工管理系统 总结: 通过这次课程设计,我们不仅加深巩固了数据结构、算法、C语言等知识,并对数据结构和算法知识的影响有了更深一步的了解,更为的明白其中的重要意义。 我们在本次课程设计中遇到一些问题,我使我明白,对于问题的解决于现实生活来说也是必要的。数据结构中,但我们遇到一个实际问题时,应该想到有可能把问题抽象成一种或是多种数据结构,每种数据结构有不同算法,然后由算法来解决这类问题,选择一种合适的程序语言来实现。 本次课程设计虽然时间较短但我我却学到了很多,之前上课没弄懂的问题在课程设计中遇到之后也解决了,还要感谢老师的耐心指导与对程序的校正。在程序的测试与通过中,应予以耐心与仔细,很多程序运行的错误往往都是编写过程的粗心导致的。 指导教师评语: 成绩: 填表时间: 指导教师签名: 课程设计(大作业)报告 一、数据结构及算法描述 1. 数据类型定义。 typedef struct worker /*职工结点类型定义*/ { int num; /*输入职工号*/ char name[20]; /*输入职工名字*/ char sex[3]; /*输入职工性别*/ char time[100]; /*职工的出生年月及工作年月*/ char edu[50]; /*输入职工学历*/ int wages; /*输入职工工资*/ char job[30]; /*输入职工职务*/ char adr[255]; /*输入职工地址*/ char phone[13]; /*输入职工号码*/ }WORKER, *PWORKER; 2. 说明主要变量含义 num:职工编号 name:姓名 sex:性别 time:年月 edu:学历 wages:工资 job:职务 adr:地址 phone:号码 typedef struct Node: 定义表结点 typedef struct WORKER *PWORKER :定义职工信息 void ListInitiate(SLNode **head):初始化链表 PLINK create() /*创建职工链表*/ 3. 说明数据输入的要求和格式----即输入数据的类型、值的范围及输入的形式 4. 输出数据的类型、值的范围及输出的形式 输出的数据结构为print(SLNode*head)输出职工的信息。 printf(“ ”); (1) 进入职工管理系统,如下图所示: (2) 输入职工人数为2,并输入职工信息:如下图所示: (3) 删除并查询职工信息,如下图: (4) 新增一名职工信息,如下图: 5. 确定存储结构 算法设计及编程实现采用链式存储结构。 6. 编写算法并实现 在主函数中,实现了友好的界面设计。系统需要输入职工的基本信息:姓名、性别、出生年月、工作年月、学历、职务、住址、电话等。 (1)、职工管理系统设计算法程序流程图如下: 开始 输入职工人数 和对应的信息 显示主菜单提 示 查询职工新增职工 信息 信息 结束系统 职工信息选择操作 排序 选择 除上 述之 修改职工删除职工外的 信息 信息 操作 二、程序测试并运行通过 根据职工管理系统问题的分析和设计要求,可以得到该职工管理系统可以分 为以下模块: 职工管理系统 查新删修排 询增除改序 职职职职职 工工工工工 信信信信信 息 息 息 息 息 1. 测试与分析、记录调试过程及结果 测试目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之 间的差别. 2. 出现的问题、解决的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 、最终运行结果 程序在运行中出现以下错误,后来经检查发现是定同一 变量在定义过程中出现了两种 不同的形式,最后统一方能运行。此类是属于简单性错误,在以后的程序运用中应避免。 三、源程序 #include #include #include #include typedef struct worker /*职工结点类型定义*/ { int num; /*输入职工号*/ char name[20]; /*输入职工名字*/ char sex[3]; /*输入职工性别*/ char time[100]; /*职工的出生年月、工作年月*/ char edu[50]; /*输入职工学历*/ char job[30]; /*输入职工职务*/ char adr[255]; /*输入职工地址*/ char phone[13]; /*输入职工号码*/ }WORKER, *PWORKER; //typedef struct WORKER *PWORKER; /*定义职工信息*/ typedef struct link { WORKER w; struct link *next; }LINK, *PLINK; //typedef struct LINK *PLINK; PLINK create() /*创建职工链表*/ { PLINK p=(PLINK)malloc(sizeof(LINK)); if(NULL!=p) { p->next=NULL; return p; } printf("内存不足!\n"); return NULL; } void message() /*显示程序主界面文字*/ { system("cls"); printf("\t\t ************************** \n\n"); printf("\t\t>>>>>>>>>>>***欢迎进入职工管理系统***<<<<<<<<<<<\n\n"); printf("\t\t ************************** \n\n"); printf("\t\t ************* 请选择以下操作~ *************\n\n"); printf("\t\t ************ 1,录入职工信息 ***********\n\n"); printf("\t\t *********** 2,浏览职工信息 ************\n\n"); printf("\t\t ************ 3,查询职工信息 ***********\n\n"); printf("\t\t *********** 4,删除职工信息 ************\n\n"); printf("\t\t ************ 5,修改职工信息 ***********\n\n"); printf("\t\t ********* 6, 清屏 ************\n\n"); printf("\t\t *********** 7, 关于 **********\n\n"); printf("\t\t ********** -1, 退出 ***********\n\n"); printf("\t\t *********** 0, 回到主界面 ************\n\n"); printf("\t\t************************************************\n\n"); printf("\t\t************************************************\n\n"); } void guanyu() /*关于函数*/ { system("cls"); printf(" ************************** \n"); printf(" *** 版权所有,翻版必究~ *** \n"); printf(" **** copyright @xxx~ **** n"); printf(" *** 2013~2014 *** \n"); printf(" *** 2013年12月29日 *** \n"); printf(" *************************** \n"); printf(" ------------------ \n"); printf(" ------------------ \n"); printf(" ------------------ \n"); printf(" 返回主菜单请按【0】 \n"); if(getchar()=='0') message(); } void find_sr(PLINK plink, char* str) /*查找职工信息*/ { for(PLINK curr = plink->next; curr != NULL; curr = curr->next) { if(strcmp(curr->w.edu, str) == 0) { printf("职工工号:%d\n",curr->w.num); printf("职工姓名:%s\n",curr->w.name); printf("职工性别:%s\n",curr->w.sex); printf("出生年月:%d\n",curr->w.time); printf("工作年月:%d\n",curr->w.time); printf("职工学历:%s\n",curr->w.edu); printf("职工职务:%s\n",curr->w.job); printf("职工住址:%s\n",curr->w.adr); printf("职工电话:%s\n",curr->w.phone); } } } void findid(PLINK plink, int num) /*按职工地址查找*/ { for(PLINK curr = plink->next; curr != NULL; curr = curr->next) { if(curr->w.num == num) { printf("职工工号:%d\n",curr->w.num); printf("职工姓名:%s\n",curr->w.name); printf("职工性别:%s\n",curr->w.sex); printf("出生年月:%d\n",curr->w.time); printf("工作年月:%d\n",curr->w.time); printf("职工学历:%s\n",curr->w.edu); printf("职工职务:%s\n",curr->w.job); printf("职工住址:%s\n",curr->w.adr); printf("职工电话:%s\n",curr->w.phone); } } } void show(PLINK plink) /*显示职工信息*/ { for(PLINK curr = plink->next; curr != NULL; curr = curr->next) { printf("职工工号:%d\n",curr->w.num); printf("职工姓名:%s\n",curr->w.name); printf("职工性别:%s\n",curr->w.sex); printf("出生年月:%d\n",curr->w.time); printf("工作年月:%d\n",curr->w.time); printf("职工学历:%s\n",curr->w.edu); printf("职工职务:%d\n",curr->w.job); printf("职工住址:%s\n",curr->w.adr); printf("职工电话:%s\n",curr->w.phone); } } int add(PLINK p) /*录入职工信息*/ { PLINK h = NULL; PLINK q=(PLINK)malloc(sizeof(LINK)); if(NULL==q) { printf("录入失败提示:亲~内存不足!\n"); return -1; } printf("请输入职工号(数字):\n"); scanf("%d",&q->w.num); h=p->next; while(h) { if(h->w.num==q->w.num) { free(q); printf("录入失败提示:亲~此职工号已经存在!\n"); return -1; } h=h->next; } printf("请输入职工姓名(文字):\n"); scanf("%s",&q->w.name); fflush(stdin); /*控制本项输入不影响下一项的输入*/ printf("请输入职工性别(文字):\n"); scanf("%s",&q->w.sex); fflush(stdin); printf("请输入出生年月(数字):\n"); scanf("%d",&q->w.time); fflush(stdin); printf("请输入工作年月(数字):\n"); scanf("%d",&q->w.time); fflush(stdin); printf("请输入职工学历(文字):\n"); scanf("%s",&q->w.edu); fflush(stdin); printf("请输入职工职务(文字):\n"); scanf("%d",&q->w.job); fflush(stdin); printf("请输入职工住址(文字):\n"); scanf("%s",&q->w.adr); fflush(stdin); printf("请输入职工电话(文字):\n"); scanf("%s",&q->w.phone); fflush(stdin); q->next=p->next; p->next=q; printf("录入成功!.\n"); return -1; } PLINK findname(PLINK p,char *name) /*按姓名查询*/ { message(); printf("按姓名查询\n"); printf("职工号\t姓名\t性别\t出生年月\t工作年月\t学历\t职务\t住址\t电话\n"); while(NULL!=p->next) { if(0==strcmp(p->next->w.name,name)) { printf("%d\t%s\t%s\t%d\t%d\t%s\t%d\t%s\t%s\t%s\n", p->next->w.num,p->next->w.name,p->next->w.sex,p->next->w.time, p->next->w.time, p->next->w.edu,p->next->w.job,p->next->w.adr,p->next->w.phone); return p; } p=p->next; } printf("查询结束!\n"); return NULL; } int del(PLINK p,int num) /*按职工号删除职工信息*/ { message(); printf("按职工号删除职工信息\n"); while(NULL!=p->next) { if(p->next->w.num==num) { PLINK q=p->next; p->next=p->next->next; free(q); printf("恭喜你~删除成功!\n"); return 1; } p=p->next; } printf("亲~没有你输入的职工号!\n"); return -1; } void release(PLINK p) /*程序结束释放内存*/ { PLINK q; while(NULL!=p->next) { q=p; p=p->next; free(q); } free(p); } void search() /*查询调用*/ { int num; char name[20]; char str[20]; PLINK pworker; int l; printf("\t\t\t\t*姓名查找按:1*\n"); printf("\t\t\t\t*学历查找按:2*\n"); printf("\t\t\t\t*职工号查按:3*\n"); scanf("%d",&l); if(l>0&&l<4) { switch(l) { case 1:printf("请输入要查询的职工姓名:\n"); scanf("%s",name); findname(pworker,name); break; case 2:printf("请输入要查询的职工学历:\n "); scanf("%s", str); find_sr(pworker, str); break; case 3:printf("请输入要查询的职工号:\n"); scanf("%d",&num); findid(pworker,num); break; } printf("\n\n选择完毕!!!"); } else printf("\t\t\t\t亲~输入有误!!!"); } int modify(PLINK p) /*修改职工信息*/ { int num; PLINK q; PLINK h = NULL; printf("请输入职工号(数字):\n"); scanf("%d",&num); h=p->next; while(h) { if(h->w.num==num) { break; } h=h->next; } if (h == NULL) { printf("亲~找不到此职工,请重试\n"); return -1; } printf("请输入职工姓名(文字)\n:"); scanf("%s",&h->w.name); printf("请输入职工性别(文字):\n"); scanf("%s",&h->w.sex); printf("请输入职工出生年月(数字)\n:"); scanf("%d",&h->w.time); printf("请输入职工工作年月(数字):\n"); scanf("%d",&h->w.time); printf("请输入职工学历(文字):\n"); scanf("%s",&h->w.edu); printf("请输入职工职务(文字):\n") ; scanf("%s",&h->w.job);; printf("请输入职工住址(文字):\n"); scanf("%s",&h->w.adr); printf("请输入职工电话(文字):\n"); scanf("%s",&h->w.phone); q->next=p->next; p->next=q; printf("恭喜你~修改成功!\n"); return -1; } int main( ) /*主函数*/ { int cmd=0; int num; char name[20]; char str[20]; PLINK pworker; if(!(pworker=create())) { exit(0); } while(cmd!=-1) { switch(cmd) { case 0: message(); break; case 1: add(pworker); break; case 2: show(pworker); break; case 3: search(); break; case 4: printf("请输入要删除的职工号:\n"); scanf("%d",&num); del(pworker,num); break; case 5: modify(pworker); break; case 6: message(); break; case 7:guanyu();break; } printf("亲~请输入操作命令数字:\n"); scanf("%d",&cmd); } printf("谢谢使用!\n"); release(pworker); return 0; message(); } 四、参考文献 1、《数据结构讲义》昆明学院信息技术学院。 2、《数据结构》(C语言版) 严蔚敏等 清华大学出版社 1993 3、《数据结构题集》,严蔚敏等 清华大学出版社 1995 4、《数据结构》 许卓群等 高等教育出版社 》 谭浩强 清华大学出版社 2006年25、《C程序设计(第三版) 月
本文档为【简单职工管理系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594905
暂无简介~
格式:doc
大小:129KB
软件:Word
页数:20
分类:生活休闲
上传时间:2017-10-07
浏览量:19