收藏 分销(赏)

c语言程序设计企业员工标准管理系统.doc

上传人:精*** 文档编号:2993126 上传时间:2024-06-12 格式:DOC 页数:24 大小:121.04KB 下载积分:10 金币
下载 相关
c语言程序设计企业员工标准管理系统.doc_第1页
第1页 / 共24页
c语言程序设计企业员工标准管理系统.doc_第2页
第2页 / 共24页


点击查看更多>>
资源描述
一、 课程设计目标 经过本课程设计,强化上机动手能力,使学生在理论和实践基础上深入巩固《C语言程序设计》课程学习内容,掌握工程软件设计基础方法。 学会将知识应用于实际方法,提升分析和处理问题能力,增加综合能力。 为后续各门计算机课程学习打下坚实基础。 为毕业设计和以后工作打下必需基础。 二、课程设计内容 针对某企业职员,对其信息进行系统管理。 三、需求分析 对所开发系统功效、性能描述,想要实现目标。 此系统可对该厂职员进行信息录入,修改,删除,添加,查询,排序,统计,打印等功效。用户可经过提醒选择进入某一功效界面,然后进行对职员信息管理。每一功效模块全部充足为用户考虑,编排具体。使用户能够方便快捷了解职员信息,立即有效对职员进行信息管理。 四、概要设计 1.系统结构图(功效模块图) 对系统进行分析,给出系统结构图; 分析:此系统,为方便用户输入,和使程序清楚化,所以本人采取模块法,将每一功效模块化,使程序中各函数间调用愈加明了。以下为系统模块图。 2.功效模块说明 对各个模块进行功效描述。 录入模块:输入该厂现有职员信息并保留和文件中,方便以后进行排序,更新,统计,打印等操作。 输出模块:将全部职员信息,或所需职员信息输出于屏幕上,用于打印或查询职员信息。 更新模块:此模块又分为删除,添加,修改三个模块。 删除模块:对已退休或离开该厂职员进行删除操作。 添加模块:添加新入厂职员信息并保留起来。 修改模块:找到该职员并,选择所要修改选项。 排序模块:本程序只对职员年纪进行从小到大排序。 查询模块:此模块分为按姓名,年纪,工作查询。 姓名查询模块:输入要查找姓名,找到就输出其信息。找不到则输出无此人。 年纪查询模块:输入要查找年纪,找到就输出其信息。找不到则输出无此人。 工作查询模块:输入要查找工作,找到就输出其信息。找不到则输出无此人。 统计模块:此模块分为,统计年纪,性别和工作。 统计年纪:输入要统计年纪,查找并输出,若无此年纪则输出暂无此年纪职员。 统计性别:输入要统计性别,查找并输出,若无此性别则输出暂无此性别职员。 统计工作:输入要统计工作,查找并输出,若无此工作则输出暂无此工作职员。 保留模块:将现有信息保留于文件中,以防丢失。 系统模块图 王氏企业职员 信息管理系统 输入i值,进入对应模块 保留模块 退出系统 统计模块 排序模块 查询模块 更新模块 输出模块 录入模块 按年纪统计 修改职员 信息 添加职员信息 按工作统计 按性别统计 按年纪排序 按工作查询 按年纪 查寻 按姓名查询 删除职员信息 按任意键返回主界面 五、具体设计及运行结果 步骤图, 函数之间相互调用图示 ,程序设计及编码, 运行结果。 结束 保留模块 输入i 开始 统计模块 排序模块 查询模块 更新模块 输出模块 录入模块 判定i值 主函数: i=1 i=6 i=2 i=3 i=4 i=5 i=0 退出系统 结束 打开文件 关闭文件 i++ 输出职员信息 i<n i=0 输出模块: 开始 i=0 否 开始 录入模块: 是 结束 打开文件 关闭文件 i++ 输入职员信息 i<n i=0 否 是 否 是 排序模块: 更新模块: 输入i 开始 结束 返回主界面 i=0 退出系统 修改模块 添加模块 删除模块 判定i值 i>n-1 j>n i=i+1 j=j+1 交换i和j信息 i年纪大于j年纪 j=i+1 i=0 开始 否 i=3 i=1 i=2 i=0 是 否 否 是 是 否 是 输出信息 结束 输入i 开始 结束 返回主界面 i=0 退出系统 统计性别 统计年纪 统计工作 判定i值 输入i 开始 结束 返回主界面 i=0 退出系统 工作查询 姓名查询 年纪查询 判定i值 查询模块: 统计模块: i=1 i=3 i=2 i=0 i=1 i=2 i=3 i=0 否 否 是 是 六、调试情况,设计技巧及体会 1、对自己设计进行评价,指出合理和不足之处,提出改善方案。 自我评价:本人自我认为此系统还不错,程序简练明了,功效齐全,而且充足从用户角度进行编排,易于实施。经本人数次调试最终出现0个错误和警告,而且从未有过死循环,用户一旦输错,立即会有提醒,此程序相当健壮。 因本人定义了全局变量,使操作愈加简单易行,使用了结构体数组,避开链表那样复杂操作。但不足之处便是没有链表那样节省内存。如有机会下次可能会用链表。 2、在设计过程中感受。 在把字符一个个敲上屏幕时,坐在那一动不动相当枯燥,一想到过会儿就能看到自己亲自编程序,就只能忍吧 。当看到模块一个个运行后和预料中完全一样时,郁闷心情立马被一个成就感替换。就想赶快编完看看自己杰作。然而也会碰到自己处理不了问题,就只能去求老师了。 这次最大感受就是当你竭尽全力干一件事时,就没有能挡住你困难。 七、参考文件 C语言书本。 八、附录:源代码 #include<stdio.h> #include<string.h> #define MAX 100 char filename[20]; /*文件名*/ FILE *fp; int n; /*目前该厂人数*/ struct date /*时间结构体*/ { int year; int mouth; int day; } ; struct person /*职员信息结构体*/ { char name[10]; /*姓名*/ int age; /*年纪*/ char job[10]; /*工作*/ char sex[10]; /*性别*/ char address[20]; /*地址*/ char phone[10]; /*电话*/ struct date in_time; /*入厂时间*/ }t,worker[MAX]; /*录入模块*/ void input() {int i; clrscr(); printf("\n\n请输入文件名\n"); scanf("%s",filename); printf("开始输入职员信息\n"); printf("\n请输入现有职员人数\n"); scanf("%d",&n); if((fp=fopen(filename,"w"))==NULL) { printf("不能建立!\n"); exit(); } for(i=0;i<n;i++) { printf("第%d个人信息:\n",i+1); printf("姓名\n"); scanf("%s",worker[i].name); printf("年纪\n"); scanf("%d",&worker[i].age); printf("工作\n"); scanf("%s",worker[i].job); printf("性别\n"); scanf("%s",worker[i].sex); printf("地址\n"); scanf("%s",worker[i].address); printf("电话\n"); scanf("%s",worker[i].phone); printf("入厂年\n"); scanf("%d",&worker[i].in_time.year); printf("入厂月\n"); scanf("%d",&worker[i].in_time.mouth); printf("入厂日\n"); scanf("%d",&worker[i].in_time.day); } printf("录入完成,按任意键返回主菜单\n"); getch(); for(i=0;i<n;i++) fprintf(fp,"%s %d %s %s %s %s %d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); fclose(fp); } /*输出模块*/ void output() { int i; if((fp=fopen(filename,"r"))==NULL) { printf(" 临时未有任何信息,请按任意键返回主菜单进行信息录入\n"); getch(); exit(); } clrscr(); printf(" 该厂职员信息:\n"); printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); for(i=0;i<n;i++) { fscanf(fp,"%s %d %s %s %s %s %d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day); printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); } fclose(fp); printf(" 输出完成,按任意键返回主菜单\n"); getch(); } /*保留模块*/ void save() { int i; if((fp=fopen(filename,"w"))==NULL) /*打开文件*/ { printf("\n 不能打开该文件!"); exit(); } for(i=0;i<n;i++) fprintf(fp,"%s %d %s %s %s %s %d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); fclose(fp); } /*读取信息*/ void read_message() { int i; printf("输入文件名\n"); scanf("%s",filename); printf("\n请输入现有职员人数\n"); scanf("%d",&n); if((fp=fopen(filename,"r"))==NULL) { printf(" 临时未有任何信息,请按任意键返回主菜单进行信息录入\n"); getch(); } for(i=0;i<n;i++) fscanf(fp,"%s %d %s %s %s %s %d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day); fclose(fp); } /*修改模块*/ void modify() { int i,flag,choice; char ch,namekey[10]; flag=0; clrscr(); printf(" 开始修改\n"); do { printf("请输入要修改职员姓名\n"); scanf("%s",namekey); for(i=0;i<n;i++) { if(strcmp(worker[i].name,namekey)==0) { printf("是否修改此人(y/n)\n"); printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); getchar(); /*接收回车*/ ch=getchar(); if(ch=='y') { printf(" ****您要修改那一项?***\n\n"); printf(" ***1,姓名***\n\n"); printf(" ***2,年纪***\n\n"); printf(" ***3,工作***\n\n"); printf(" ***4,性别***\n\n"); printf(" ***5,地址***\n\n"); printf(" ***6,电话***\n\n"); printf(" ***7,入厂年***\n\n"); printf(" ***8,入厂月***\n\n"); printf(" ***9,入厂日***\n\n"); printf(" 请选择(1-9)\n"); scanf("%d",&choice); switch(choice) { case 1: printf("输入修改后姓名\n"); scanf("%s",worker[i].name); break; case 2: printf("输入修改后年纪\n"); scanf("%d",&worker[i].age); break; case 3: printf("输入修改后工作\n"); scanf("%s",worker[i].job); break; case 4: printf("输入修改后性别\n"); scanf("%s",worker[i].sex); break; case 5: printf("输入修改后地址\n"); scanf("%s",worker[i].address); break; case 6: printf("输入修改后电话\n"); scanf("%s",worker[i].phone); break; case 7: printf("输入修改后入厂年\n"); scanf("%d",&worker[i].in_time.year); break; case 8: printf("输入修改后入厂月\n"); scanf("%d",&worker[i].in_time.mouth); break; case 9: printf("输入修改后入厂日\n"); scanf("%d",&worker[i].in_time.day); break; } printf("修改后信息\n"); printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); } else break; } else if(i==n) printf("此人不存在\n"); } printf("\n是否继续输入(y/n)\n"); getchar(); /*接收回车*/ ch=getchar(); if(ch=='y') { printf("继续\n"); flag=1; } else flag=0; }while(flag==1); printf("修改完成,按任意键返回主菜单\n") ; getch(); } /*添加模块*/ void add() { int i,flag=0; char ch; clrscr(); printf("\n 开始添加新职员\n"); printf(" *----------------------------------*\n\n"); do { i=n; printf("\n 请输入添加职员信息(姓名,年纪,工作,性别,地址,电话,入厂时间)\n"); printf("姓名\n"); scanf("%s",worker[i].name); printf("年纪\n"); scanf("%d", &worker[i].age); printf("工作\n"); scanf("%s",worker[i].job); printf(" 性别\n"); scanf("%s",worker[i].sex); printf("地址\n"); scanf("%s",worker[i].address); printf("电话\n"); scanf(" %s",worker[i].phone); printf("入厂年\n"); scanf("%d",&worker[i].in_time.year); printf("入厂月\n"); scanf("%d",&worker[i].in_time.mouth); printf("入厂日\n"); scanf("%d",&worker[i].in_time.day); n++; printf("\n添加成功!是否继续输入(y/n)\n"); getchar(); /*接收回车*/ ch=getchar(); if(ch=='y') { printf("继续\n"); flag=1; } else flag=0; }while(flag==1); printf("添加完成,按任意键返回主菜单\n") ; getch(); } /*删除模块*/ void del() { int i,flag; char ch,namekey[10]; flag=0; clrscr(); printf("开始删除\n"); do { printf("请输入要删除职员名字\n"); scanf("%s",namekey); for(i=0;i<n;i++) if(strcmp(worker[i].name,namekey)==0) /*查找此人*/ { printf("是否删除此人(y/n)\n"); printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); getchar(); /*接收回车*/ ch=getchar(); if(ch=='y') { for(;i<n;i++) worker[i]=worker[i+1]; n--; } else break; } else if(i==n) printf("此人不存在\n"); printf("\n是否继续输入(y/n)\n"); getchar(); /*接收回车*/ ch=getchar(); if(ch=='y') { printf("继续\n"); flag=1; } else flag=0; }while(flag==1); printf("操作完成,按任意键返回主菜单\n") ; getch(); } /*更新模块*/ void renew() { int i; do { clrscr(); printf("\n\n\n ****更新职员信息****\n\n"); printf(" 按1,添加职员信息\n\n"); printf(" 按2,删除职员信息\n\n"); printf(" 按3,修改职员信息\n\n"); printf(" 按0,返回主菜单\n"); printf(" 请选择(0-3)\n"); scanf("%d",&i); switch(i) { case 1: add(); break; case 2: del(); break; case 3: modify(); break; case 0: break; } }while(i!=0); save(); } /*按姓名查找*/ void name_cha() { int i,j; char namekey[10]; j=0; clrscr(); printf(" 输入要查询职员姓名\n"); scanf("%s",namekey); for(i=0;i<n;i++) if(strcmp(worker[i].name,namekey)==0) /*查找此人*/ { printf("---------职员信息------\n"); printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); } else j++; if(j==n) printf("此人不存在\n"); printf("按任意键返回主菜单\n"); getch(); } /*按年纪查找*/ void age_cha() { int i,j; int agekey; j=0; clrscr(); printf(" 输入要查询职员年纪\n"); scanf("%d",&agekey); for(i=0;i<n;i++) if(worker[i].age==agekey) { printf("-------职员信息------\n"); printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); } else j++; if(j==n) printf("此人不存在\n"); printf("按任意键返回主菜单\n"); getch(); } /*按工作查找*/ void job_cha() { int i,j; char jobkey[10]; j=0; clrscr(); printf("输入要查询职员职务\n"); scanf("%s",jobkey); for(i=0;i<n;i++) if(strcmp(worker[i].job,jobkey)==0) { printf("-------职员信息------\n"); printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); } else j++; if(j==n) printf("此人不存在\n"); printf("按任意键返回主菜单\n"); getch(); } /*查询模块*/ void inquire() { int i; do { clrscr(); printf("\n\n\n ****查询职员信息*****\n\n"); printf(" ****1,按姓名查询*****\n\n"); printf(" ****2,按年纪查询*****\n\n"); printf(" ****3,按工作查询*****\n\n"); printf(" ****0,返回主菜单\n"); printf(" 请选择(0-3)\n"); scanf("%d",&i); switch(i) { case 1: name_cha();break; case 2: age_cha(); break; case 3: job_cha();break; case 0: break; } }while(i!=0); } /*排列模块*/ void line() { int i,j; clrscr(); printf("-------按年纪排序-------\n\n"); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(worker[i].age>worker[j].age) { t=worker[i]; worker[i]=worker[j]; worker[j]=t; } printf("姓名\t年纪\t工作\t性别\t地址\t电话\t入厂时间 \n"); for(i=0;i<n;i++) printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d \n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day); printf("按任意键返回主菜单\n"); getch(); } /*按年纪统计*/ void count_age() { int i,j; int agekey; j=0; clrscr(); printf(" 输入要统计职员年纪\n"); scanf("%d",&agekey); for(i=0;i<n;i++) if(worker[i].age==agekey) { printf("-------职员信息------\n"); printf("姓名\t年纪\t
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服