收藏 分销(赏)

c语言课程设计----职工管理系统.docx

上传人:快乐****生活 文档编号:2492739 上传时间:2024-05-30 格式:DOCX 页数:37 大小:379.41KB 下载积分:12 金币
下载 相关 举报
c语言课程设计----职工管理系统.docx_第1页
第1页 / 共37页
c语言课程设计----职工管理系统.docx_第2页
第2页 / 共37页


点击查看更多>>
资源描述
内蒙古科技大学 本科生课程设计说明书 题 目:C 语言课程设计 -----教职工管理系统 学生姓名: 学 号: 专 业: 软件工程 班 级: 软件一班 指导教师: 日 期:2015年1月10日 目 录 第一章 需求分析 5 1.4功能需求 6 1.5性能需求 6 1.6运行需求 6 第二章 概要计划 7 2.1 总体设计 7 2.2 数据类型设计(或数据结构设计) 9 2.3 接口设计 10 2.4 运行界面设计 10 第三章 详细计划 13 3.1 输入模块设计 13 3.2 输出模块设计 15 3.3 查找模块设计 16 3.4 删除模块设计 20 3.5 保存及读取模块设计 21 第四章 测试分析 24 4.1 测试程序执行情况 24 4.2 出现的问题和解决的方法 28 第五章 用户手册 28 5.1 使用说明 28 第六章 课设计划总结 28 附录: 29 内蒙古科技大学课设任务书 课程名称 C 语言课程设计 设计题目 教职工管理系统 指导教师 时间 2015年1月10日 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 职工信息管理系统设计 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: v 职工信息录入功能(职工信息用文件保存)--输入 v 职工信息浏览功能 --输出 v 查询或排序功能:(至少一种查询方式) --算法 ●按工资查询 ●按学历查询等 v 职工信息删除、修改功能(任选项) 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天  选择课程设计题目,分析课题的要求 第二天  编程 第三天  编程及调试 第四天  写课程设计报告 第五天  提交课程设计报告(打印稿及电子稿) 五、评分标准 1. 根据平时上机考勤、表现和进度,教师将每天点名和检查 2. 根据课程设计完成情况,必须有可运行的软件。 3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。 六、建议参考资料 1.《C语言程序设计》,谭浩强,清华大学出版社 2.《C语言程序设计课程设计》,刘振安,机械工业出版社 第一章 需求分析 ●1.1 引言 自从上个世纪90年代以来, 计算机技术的迅猛发展和推广普及,为各行各业突飞猛进的发展带来了新生的动力,推动了各行各业向更高的层次进步。当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛使用的原因,计算机最大的好处在于利用它进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能充分发挥他的优越性。使用计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。 ●1.2 任务概述 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 职工信息管理系统设计 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: v 职工信息录入功能(职工信息用文件保存)--输入 v 职工信息浏览功能 --输出 v 查询或排序功能:(至少一种查询方式) --算法 ●按工资查询 ●按学历查询等 v 职工信息删除、修改功能(任选项) ● 1.3 数据描述 char ID[8]; char name[20]; char num[20]; char gong[15]; char zhiwu[10]; char xueli[8] ; char adds[30]; char sex[30]; char birthday[15] 1.4功能需求 输入功能:将所要输入的职工信息通过此函数输入系统。 读取功能:对所输入的职工信息进行读取。 保存功能:将所读去的职工信息保存在系统中。 输出功能:将所存入的职工信息从存储器中输出。 修改功能:对所输入的错误的职工信息进行修改。 删除功能:将原来存入进系统的,现在不需要的职工信息删除。 查找功能:根据所给条件对以存入的职工信息进行查找。 排序功能:根据所给条件对以存入的职工信息进行排序。 1.5性能需求 输入功能:方便管理者储存信息。 读取功能:方便管理者对职工信息的掌握。 保存功能:方便管理者对职工信息的储存。 输出功能:方便管理者对职工信息的浏览。 修改功能:方便管理者对职工信息的修改。 删除功能:方便管理者对职工信息的管理。 查找功能:方便管理者对职工信息的查询。 排序功能:方便管理者对职工信息的管理。 1.6运行需求 在运行时,需要先输入所需要的职工信息,然后对所输入的信息进行删除,修改,增添,保存和读取等功能。 第二章 概要计划 2.1 总体设计 int main() { system("color 2f"); denglu(); int n=0; for(;;) { switch(menu_select()) { case 1: system("cls"); n=Input(pe,n); break; case 2: system("cls"); Display(pe,n); break; case 3: system("cls"); n=dele(pe,n); printf("\t"); system("pause"); break; case 4: system("cls"); chaxun(pe,n); printf("\t"); system("pause"); break; case 5: system("cls"); Change(pe,n); printf("\t"); system("pause"); break; case 6: system("cls"); writetotext(pe,n); system("pause"); break; case 7: system("cls"); n=readfortext(pe); system("pause"); break; case 0: system("color 5f"); system("cls"); printf("\n\t\t"); system("pause"); exit(0); } } } 2.2 数据类型设计(或数据结构设计) typedef struct { char score[8]; char name[20]; char num[20]; char gong[15]; char zhiwu[10]; char xueli[8] ; char adds[30]; char sex[30]; char birthday[15]; }Person; 2.3 接口设计 函数名 函数类型 函数功能 Denglu int 登录系统功能 Menu_select int 选择功能 Input int 输入信息 Display void 显示信息 Delect int 删除信息 Chaxun void 查询信息 Change void 修改信息 writetotext Void 保存信息 readfortext int 读取信息 2.4 运行界面设计 int denglu() { printf("\n\n\n\n\n\n"); printf("\t\t************************************************\n\n"); printf("\t\t------------------职工管理系统------------------\n\n"); printf("\t\t************************************************\n"); printf("\n\n\n"); char username[]="121"; char password[]="121"; char zhanghao[20],mima[20]; char temp; int i=0,t=1; printf("\t\t\t\t\t请输入账号:"); scanf("%s",zhanghao); printf("\t\t\t\t\t请输入密码:"); do { temp=getch(); switch(temp) { case 8: if(i>0) { printf("\b \b"); i-=1; } break; case 13: mima[i]=0;t=0; break; default: mima[i]=temp; i+=1; printf("*"); } }while(t); if(strcmp(zhanghao,username)==0 &&strcmp(password,mima)==0) { printf("登陆成功\n"); } else { printf("密码错误请重新输入\n");exit(0); } return 0; } int menu_select() { char c; do{ system("cls"); printf("\t\t-------------欢迎进入职工管理界面--------------\n\n"); printf("\t\t***********************************************\n"); printf("\t\t 1.录入信息 \n"); printf("\t\t 2.浏览信息 \n"); printf("\t\t 3.删除信息 \n"); printf("\t\t 4.查询信息 \n"); printf("\t\t 5.修改信息 \n"); printf("\t\t 6.保存信息 \n"); printf("\t\t 7.读取文件 \n"); printf("\t\t 0.退出程序 \n"); printf("\t\t \n"); printf("\t\t***********************************************\n"); printf("\n\n\n\t\t\t 请选择(0-7)选项:"); c=getchar(); }while(c<'0'||c>'7'); return(c-'0'); } 第三章 详细计划 3.1 输入模块设计 int Input(Person per[],int n) { printf("\t\t*****************信息录入*****************\n\n\n"); int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t\t请输入 职工号:"); scanf("\t\t%s",per[n+i].score); printf("\t\t 姓名:"); scanf("\t%s",per[n+i].name); printf("\t\t 性别:"); scanf("\t\t%s",per[n+i].sex); printf("\t\t 出生年月:"); scanf("\t\t%s",per[n+i].birthday); printf("\t\t 工资:"); scanf("\t\t%s",per[n+i].gong); printf("\t\t 职务:"); scanf("\t\t%s",per[n+i].zhiwu); printf("\t\t 学历:"); scanf("\t\t%s",per[n+i].xueli); printf("\t\t 电话号码:"); scanf("\t\t%s",per[n+i].num); printf("\t\t 住址:"); scanf("\t\t%s",per[n+i].adds); gets(x); printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } printf("\n\n\t\t\t\t按任意键返回主菜单!"); getch(); return(n+i); } 3.2 输出模块设计 void Display(Person per[],int n) { int i; printf("\t*******************************显示记录********************************\n"); if(n==0) printf("\t\t\t无任何记录!"); else for(i=1;i<n+1;i++) { printf("\t%-5s\n",per[i-1].score); printf("\t%-8s\n", per[i-1].name); printf("\t%-8s\n", per[i-1].sex ); printf("\t%-15s\n",per[i-1].birthday); printf("\t%-8s\n",per[i-1].gong); printf("\t%-20s\n", per[i-1].zhiwu); printf("\t%-15s\n", per[i-1].xueli); printf("\t%-15s\n", per[i-1].num); printf("\t%-25s\n", per[i-1].adds); } printf("\n\n\t\t\t\t按任意键返回主菜单!"); getch(); } 3.3 查找模块设计 void chaxun(Person per[],int n) { int m; printf("\t\t\t-----------------------------\n"); printf("\t\t\t-----------------------------\n"); printf("\t\t\t 1------姓名 \n"); printf("\t\t\t 2------工资 \n"); printf("\t\t\t 3------学历 \n"); printf("\t\t\t| 4------返回 \n"); printf("\t\t\t-----------------------------\n"); printf("\t\t\t-----------------------------\n\n"); printf("\t\t\t\t请选择查询方式:"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3&&m!=4) { printf("输入错误,请重新选择:"); scanf("%d",&m); } if(m==1) { char s[20]; int i=0; printf("\t请输入想查询的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i<n) i++; if(i==n) { printf("\t该系统中没有此人!\n"); return; } printf("\t 编号: %d\n",per[i].score); printf("\t 姓名: %d\n",per[i].name); printf("\t 性别: %s\n",per[i].sex); printf("\t出生年月: %s\n",per[i]. birthday); printf("\t 工资: %s\n",per[i].gong); printf("\t 职务: %d\n",per[i].zhiwu); printf("\t 学历: %s\n",per[i].xueli); printf("\t 号码: %s\n",per[i].num); printf("\t 地址: %s\n",per[i].adds); } if(m==2) { char s[20]; int i=0; printf("\t请输入想查询的工资:"); scanf("\t%s",s); while(strcmp(per[i].gong,s)!=0&&i<n) i++; if(i==n) { printf("\t该系统中没有此人!\n"); return; } printf("\t 编号: %d\n",per[i].score); printf("\t 姓名: %d\n",per[i].name); printf("\t 性别: %s\n",per[i].sex); printf("\t出生年月: %s\n",per[i]. birthday); printf("\t 工资: %s\n",per[i].gong); printf("\t 职务: %d\n",per[i].zhiwu); printf("\t 学历: %s\n",per[i].xueli); printf("\t 号码: %s\n",per[i].num); printf("\t 地址: %s\n",per[i].adds); } if(m==3) { char s[20]; int i=0; printf("\t请输入想查询的学历:"); scanf("\t%s",s); while(strcmp(per[i].xueli,s)!=0&&i<n) i++; if(i==n) { printf("\t该系统中没有此人!\n"); return; } printf("\t 编号: %d\n",per[i].score); printf("\t 姓名: %d\n",per[i].name); printf("\t 性别: %s\n",per[i].sex); printf("\t出生年月: %s\n",per[i]. birthday); printf("\t 工资: %s\n",per[i].gong); printf("\t 职务: %d\n",per[i].zhiwu); printf("\t 学历: %s\n",per[i].xueli); printf("\t 号码: %s\n",per[i].num); printf("\t 地址: %s\n",per[i].adds); } ; printf("\t\t\t按任意键返回主菜单"); getch(); } 3.4 删除模块设计 int dele(Person per[],int n) { char s[20]; int i=0,j; printf("\n\n\t请输入想删除记录中的编号:"); scanf("%s",s); while(strcmp(per[i].num,s)!=0&&i<n) i++; if(i==n) { printf("该系统中没有此人!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy( per[j].score,per[j+1].score); strcpy(per[j].name,per[j+1].name); strcpy(per[j].sex,per[j+1].sex); strcpy(per[j].birthday,per[j+1].birthday); strcpy(per[j].gong,per[j+1].gong); strcpy(per[j].zhiwu,per[j+1].zhiwu); strcpy(per[j].xueli,per[j+1].xueli); strcpy(per[j].num,per[j+1].num); strcpy(per[j].adds,per[j+1].adds); } printf("\t\t\t删除成功!\n\n"); printf("\t\t\t按任意键返回主菜单!"); getch(); return(n-1); } 3.5 保存及读取模块设计 void writetotext(Person per[],int n) { int i=0; FILE *fp; if((fp=fopen("data.txt","w"))==NULL) { printf("\t无法打开文件\n"); exit(0); } while(i<n) { fprintf(fp,"%5s\n",per[i].score); fprintf(fp,"%15s\n", per[i].name); fprintf(fp,"%20s\n", per[i].num ); fprintf(fp,"%10s\n",per[i].sex); fprintf(fp,"%35s\n", per[i].adds); fprintf(fp,"%20s\n", per[i].xueli); fprintf(fp,"25s\n",per[i].zhiwu); fprintf(fp,"%15s\n", per[i].gong); fprintf(fp,"%20s\n",per[i].birthday); i++; } fclose(fp); printf("保存成功!\n"); } int readfortext(Person per[]) { int i=0; FILE *fp; if((fp=fopen("data.txt","r"))==NULL) { printf("\t无法打开文件\n"); exit(0); } for(i=0;!feof(fp);i++) { fscanf(fp,"%5s",per[i].score); fscanf(fp,"%8s", per[i].name); fscanf(fp,"%15s", per[i].num ); fscanf(fp,"%10s",per[i].sex); fscanf(fp,"%25s", per[i].adds); fscanf(fp,"%20s", per[i].xueli); fscanf(fp,"25s",per[i].zhiwu); fscanf(fp,"%15s", per[i].gong); fscanf(fp,"%20s",per[i].birthday); } fclose(fp); printf("读取成功!\n"); return i+1; } 第四章 测试分析 4.1 测试程序执行情况 1.运行程序,进入职工信息管理系统的主菜单 2.输入数字“1”进行输入职工信息: 3.输入数字“6”进行保存职工信息: 4.输入数字“7”进行读取职工信息: 5.输入数字“4”进行职工信息查找: 6.输入数字“3”进行职工信息删除: 7.输入数字“5”进行职工信息修改: 8.输入数字“2”进行职工信息的输出: 4.2 出现的问题和解决的方法 错误:提示说:sacnf不能编译; 错误原因:把scanf写成sacnf; 错误二:在定义数组时数组过小; 第五章 用户手册 5.1 使用说明 用户在使用时,应根据所需按所给提示进行操作。 第六章 课设计划总结 通过这次课程设计,增加了我对软件技术的了解虽然我仍然还不明确软件所包含的内容,但从学习C语言开始我就发现了软件的魅力所在,它对我的计算机掌握起到了至关重要的作用,帮助我巩固了计算机的基础。同时,让我对软件产生更浓厚的兴趣,还开拓了我的思维,挖掘了我潜在的创造力。 在此,我特要感谢我的C语言老师---周李涌老师,感谢老师认真的为我解决各种疑难问题。以及我的指导老师-----褚燕华老师,感谢老师在课设期间帮助我纠正各种错误。谢谢,您们! 附录: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> typedef struct { char ID[8]; char name[20]; char sex[30]; char birthday[30]; char gong[15]; char zhiwu[10]; char xueli[8]; char num[20]; char adds[30]; }person; person pe[80]; int dendlu() { printf("\n\n\n\n\n\n"); printf("\t\t*************************************************************\n\n"); printf("\t\t-----------------------职工管理系统--------------------------\n\n"); printf("\t\t*************************************************************\n"); printf("\n\n\n"); char username[]="121"; char password[]="121"; char zhanghao[20],mima[20]; char temp; int i=0,t=1; printf("\t\t\t\t\t请输入账号:"); scanf("%s",&zhanghao); printf("\t\t\t\t\t请输入密码:"); do{ temp=getch(); switch(temp) { case 8: if(i>0) { printf("\b \b"); i=-1; } break; case 13: mima[i]=0;t=0; break; default: mima[i]=temp; i+=1; printf("*"); } }while(t); if(strcmp(zhanghao,username)==0 &&strcmp(password,mima)==0) { printf("登陆成功!\n"); } else { printf("密码错误请重新输入\n"); exit(0); } return 0; } int menu_select() { char c; do{ system("cls"); printf("\t\t--------------欢迎进入职工管理系统----------------\n\n"); printf("\t\t***************************************************\n\n"); printf("\t\t 1.添加信息 \n"); printf("\t\t 2.显示信息 \n"); printf("\t\t 3.删除信息 \n"); printf("\t\t 4.查询信息 \n"); printf("\t\t 5.修改信息 \n"); printf("\t\t
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服