C语言课程设计职工信息管理系统设计
C语言课程设计职工信息管理系统
![C语言课程设计职工信息管理系统](https://img.taocdn.com/s3/m/73adaad5caaedd3383c4d3e6.png)
C语言课程设计职工信息管理系统标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]课程设计报告课程名称 C语言程序设计课题名称职工信息管理系统专业通信工程班级 1402班学号姓名熊舒炼指导教师罗雅博2015年 7月 3 日目录一、总体设计方案 (2)二、课程设计目的与要求 (3)设计目的 (3)设计要求 (3)三、使用说明及运用实例 (3)四、项目源程序代码 (8)五、设计心得与总结 (23)六、参考文献 (24)总体设计方案(一)、系统总体流程图(二)、为了方便使用,此系统结构均为全局类型定义struct employee单模块:显示职工管理系统的主菜单,供用户选择所需功能,通过自己定义的void menu()函数实现。
2.输入模块:输入职工的工号、姓名及其他的一些职工信息,通过自己定义的void input()函数实现。
3.保存模块:将内存中职工信息输出到磁盘文件中,通过自己定义的void save(int)函数实现。
4.浏览模块:浏览所有职工的信息,通过自己定义的void display()函数实现。
5.删除模块:删除需要删除的职工所有信息,通过自己定义的void del()函数实现。
6.查询模块:a.按职工号查询职工相关信息,通过自己定义的void search-num()函数实现。
b.按职工学历查询相关职工信息,通过自己定义的void search-xueli()函数实现。
c.按职工电话号码查询相关职工信息,通过自己定义的void search-tel()函数实现。
7.修改模块:可以修改需要修改的职工信息,通过自己定义的void modify()函数实现。
8.退出系统模块:推出职工信息管理系统,通过头文件中的中的exit(0)函数实现。
课程设计的目的与要求一、课程设计目的《C语言程序设计》是通信工程专业重要的基础课,通过本课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力。
C语言程序设计—职工信息管理系统设计
![C语言程序设计—职工信息管理系统设计](https://img.taocdn.com/s3/m/327ab4f3770bf78a65295462.png)
南京工程学院程序设计课程设计报告职工信息管理系统设计专业学生姓名班级学号指导教师完成日期职工信息管理系统设计目录1课程设计目的 (1)2课程设计内容 (1)3设计流程图 (1)4源程序清单 (2)5小结 (27)程序设计课程设计报告(2011)职工信息管理系统的设计1课程设计目的1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;2.进一步掌握和利用C语言进行程序设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会跳是一个较长程序的基本方法;6.学会利用流程图火N-S图表示算法;7.掌握书写长须设计开发文档的能力(书写课程设计报告)2 课程设计内容设计职工信息管理系统,要求职工心想包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
设计一职工信息管理系统,使之能提供以下功能:(6)系统以菜单方式工作(7)职工信息录入功能(职工信息用文件保存)--输入(8)职工信息浏览功能--输出(9)查询和排序功能(至少一种查询方式)--算法(10)按工资查询(11)按学历查询等(12)职工信息删除、修改功能(任选项)3设计流程图职工信息管理系统的设计程序设计课程设计报告(2011)(1)菜单函数void menu() /*菜单函数*/{printf(" ☆☆☆计算机科学与技术软件技术☆☆☆\n");printf("\n");printf(" ∮1010704422 杨婷婷∮\n");printf("\n");printf(" ******************职工信息管理****************\n");printf(" 1.录入职工信息");printf(" 2.浏览职工信息\n");printf(" 3.查询职工信息");printf(" 4.删除职工信息\n");printf(" 5.添加职工信息");printf(" 6.修改职工信息\n");printf(" 7.退出\n");printf(" ********************谢谢使用******************\n");printf("\n");printf("\n");}(2)录入职工信息void append(){if((fp=fopen("worker.xls","a"))==NULL){printf("\n不能打开该文件!");exit();}printf("\n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)\n"); scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.record,one.positio n,one.wanges,one.tel,one.addr);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.num,one.sex,o ne.age,one.record,one.position,one.wanges,one.tel,one.addr);fclose(fp);}(3)查询职工信息数据查找共分为职工号、姓名等方式查找void search(){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:nameway();break;case 2:xueliway();break;case 3:numway();break;}printf("\n\n操作完毕!!!");}else printf("\t\t\t\t输入有误!!!");}void nameway(){int k=0;char nam[8];printf("\n请输入您要查找的职工姓名:");scanf("%s",nam);if((fp=fopen("worker.xls","rb"))==NULL){printf("\n不能打开文件!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",,one.num,one.sex,one.age,one.record,one.p osition,one.wanges,one.tel,one.addr);if(strcmp(nam,)==0){printf("\n\n已查到,记录为:");printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.num,one.sex,one .age,one.record,one.position,one.wanges,one.tel,one.addr);k=1;}}if(k==0)printf("\n\n对不起,查无此人!。
C语言课程设计报告:职工信息管理系统程序设计
![C语言课程设计报告:职工信息管理系统程序设计](https://img.taocdn.com/s3/m/4515873e53d380eb6294dd88d0d233d4b14e3ffd.png)
1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
C语言课程设计---职工管理系统设计报告
![C语言课程设计---职工管理系统设计报告](https://img.taocdn.com/s3/m/554576df2cc58bd63186bd42.png)
课程名称:程序设计语言课程设计设计题目:职工信息管理系统设计学院:应用技术学院专业:电子信息工程目录:摘要: (2)任务书: (2)总结与体会: (10)摘要:通过这次的短学期,在老师的辅导下,我完成了课程设计。
通过课程设计的完成对C和C++有更深的了解。
我做的课程设计题目是职工信息管理系统设计,我主要用到了结构体,结构体数组,指针,文件等等。
对函数的调用,和指针有了更深的理解。
但我做的这个课程设计,职工信息管理系统还存在不足,还希望老师的指点。
我的这个管理系统能处理的是对公司员工的信息存储,还有对职工的查找和排序,还有对职工的信息修改。
有不足的地方还请老师指点。
昆明理工大学课程设计任务书应用技术学院学院电子信息工程专业2009 级学生姓名(学号):袁瑞(200911513127)课程设计目的:通过设计一个较为简单的管理系统,进一步熟悉C++中类的概念、类的封装、继承的实现方式。
了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
课程设计(论文)题目及具体内容:写程序题目:职工信息管理系统设计设计说明与要求:职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)职工信息录入功能(职工信息用文件保存)(3)职工信息浏览功能(4)查询和排序功能:按工资查询、按学历查询(5)职工信息删除、修改功能(4)各函数调用关系(流程图):(6)编码及调试:(注:此系统由三个人设计,本人只设计了其中的两个功能)功能二. 修改员工信息模块:此功能代码如下:modify() /*修改员工信息*/{struct people p;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n请记住要修改的员工号.任意键继续...\n");getch();puts("\n\n");}printf_one(i);}do{printf("\n\n请输入要修改信息的员工号! 员工号:");scanf("%s",p.num);for(i=0;i<n;i++)if(strcmp(p.num,people[i].num)==0){k=i;p=people[i];}if(k==-1)printf("\n\n不存在,请重试");}while(k==-1);printf_face();printf_one(k);w1=modify_data(k,n);if(w1==1){printf("\n操作成功^_^.\n\n继续修改吗?\n\n\t 1).是2).保存并返回\t[ ]\b\b"); scanf("%d",&w0);w2=1;}else{w0=0;if(w2==1)people[k]=p;}if(w0!=1&&w2==1)save(n);}while(w0==1);system("cls");menu();}调试截图:功能三. 员工信息查询模块:此功能代码如下:search() /*查找功能*/ {int i,n,k,w1=1,w2,w3,w4,m,a;struct people p;n=load();{printf("\n\n以哪种方式查找? \n\t1).学历2).员工号[ ]\b\b"); scanf("%d",&m);switch(m){case 1:do{ k=-1;printf("\n\n请输入学历! 学历:");scanf("%s",p.xueli);printf_face();for(i=0;i<n;i++)if(strcmp(p.xueli,people[i].xueli)==0){ k=i;printf_one(k);break;}if(k==-1){ printf("\n\n没有该学历的员工");printf("\n\n重新查找吗?\n\t1).是2).否,返回[ ]\b\b"); scanf("%d",&w1);if(w1==2)printf_back();}}while(k==-1&&w1==1);break;case 2:do{k=-1;printf("\n\n输入您要查询的员工号! 员工号:");scanf("%s",p.num);printf_face();for(i=0;i<n;i++)if(strcmp(p.num,people[i].num)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\n该员工号不存在");printf("\n\n是否重新选择?\n\t1).是2).否,离开[ ]\b\b"); scanf("%d",&w1);if(w1==2)printf_back();}while(k==-1&&w1==1);break;}w4=0;w3=0;if(k!=-1){printf("\n\n请选择操作\n\t 1).继续查找2).修改3).删除4).返回菜单[ ]\b\b"); scanf("%d",&w2);switch(w2){case 2:w3=modify_data(k,n);break;case 3:{printf("\n确定吗?\n\t 1).确定2).返回[ ]\b\b");scanf("%d",&w4);if(w4==1)for(a=k;a<n;a++){strcpy(people[a].num,people[a+1].num);strcpy(people[a].name,people[a+1].name);strcpy(people[a].sex,people[a+1].sex);strcpy(people[a].age,people[a+1].age); /*删除所选员工信息*/ strcpy(people[a].xueli,people[a+1].xueli);strcpy(people[a].gongzi,people[a+1].gongzi);strcpy(people[a].address,people[a+1].address);strcpy(people[a].telephone,people[a+1].telephone);}break;}}if(w3==1||w4==1){save(n);printf("\n\n操作成功.^_^.");printf("\n\n请选择操作\n\t 1).继续查找2).返回[ ]\b\b" );scanf("%d",&w2);}}}while(w2==1);system("cls");menu();}此功能截图:员工信息是用用文本文件存储的,资料分别存储在这些文本文件中,具体如下:总结与体会:通过本次的课程设计,对C和C++又更一步的了解,了解了C上的结构体,并对结构体有了熟练的掌握,并且熟悉了指针,通过指针可以使程序很好的实现,结构体类型是一个很好的类型,在现实生活中,应用结构体可以使问题很好的解决。
c语言职工信息管理系统课程设计
![c语言职工信息管理系统课程设计](https://img.taocdn.com/s3/m/22e4baa5c9d376eeaeaad1f34693daef5ff71378.png)
c语言职工信息管理系统课程设计一、课程目标知识目标:1. 理解C语言中数组、结构体和文件操作的基本概念;2. 学会使用C语言编写职工信息管理系统的基本功能,如增加、删除、修改和查询职工信息;3. 掌握利用C语言进行简单的数据处理和分析。
技能目标:1. 能够运用结构体数组管理职工信息;2. 独立编写代码实现职工信息的增加、删除、修改和查询功能;3. 学会使用文件操作将职工信息存储到文件中,并从文件中读取数据;4. 通过编程实践,培养解决问题的能力和逻辑思维能力。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养良好的编程习惯;2. 培养学生的团队协作意识和沟通能力,通过分组讨论和实践,共同完成职工信息管理系统的开发;3. 强化学生的责任感和使命感,认识到信息技术在现实生活中的应用和价值。
课程性质:本课程为实践性较强的课程,结合课本知识,让学生通过实际操作,掌握C语言编程的基本方法和技巧。
学生特点:学生已具备一定的C语言基础,熟悉基本语法和简单程序设计,但缺乏实际项目经验。
教学要求:注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决问题的能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 理论知识:- 复习C语言基础:数据类型、运算符、控制语句等;- 数组与字符串:数组的使用,字符串操作;- 结构体:定义结构体,结构体数组,结构体指针;- 文件操作:文件的打开、关闭、读写,以及文件存储职工信息。
2. 实践操作:- 设计职工信息结构体,创建职工信息数组;- 编写增加、删除、修改和查询职工信息的功能函数;- 利用文件操作存储和读取职工信息;- 集成职工信息管理系统,实现用户界面。
3. 教学大纲:- 第一周:复习C语言基础知识,讲解数组与字符串;- 第二周:学习结构体,设计职工信息结构体;- 第三周:文件操作学习,实现职工信息的存储与读取;- 第四周:编写职工信息管理系统的功能函数;- 第五周:集成系统,测试与优化。
C语言课程设计职工信息管理系统设计
![C语言课程设计职工信息管理系统设计](https://img.taocdn.com/s3/m/8dec6062b0717fd5360cdcd3.png)
C语言课程设计职工信息管理系统设计The latest revision on November 22, 20201.设计目的在今天这个高速信息时代,许多繁杂的办公事务都由计算机代劳,例如职工信息管理等重复劳动越来越需要计算机来处理。
本系统就是为提高企业管理职工信息的效率而设计的,现在职工信息管理系统发挥无可取代的作用。
职工信息管理系统是一个可以用来进行职工工号、姓名等自然信息以及各项工资构成进行录入、查询、修改、删除、增加和排序浏览等操作的应用软件。
2.设计的总体思想本系统是用Visual C进行设计与开发,总体思想是结构化、模块化的程序设计。
由于主要实现的是管理系统的增、删、改、查和排序等功能,因此应用到程序设计中的基本控制结构,如循环和选择,还使用到C语言最具特色的语言成分——指针,高效地使用数组、字符串和结构体,采用经典的排序方法——冒泡法进行排序,并且包含对文件的读、写等基本操作。
3.功能模块描述职工信息管理系统是为企业进行职工信息管理提供辅助而设计的,需要为用户提供一个简单的人机界面以便操作,各功能模块如下。
1)登录模块:根据输入的登录密码判断是否允许该用户使用本系统,输入密码正确才能进入管理界面,管理职工信息。
2)创建模块:当第一次使用本系统时,根据提示输入职工的工号、姓名、性别、年龄、学历、职位、工资、电话和住址,可一次性输入多条职工的信息记录。
浏览模块:可以浏览经输入、修改、删除、添加、排序、读取后的职工信息。
3)查询模块:分为根据工号、姓名、电话、工资查询的四个具体需求,分别提示管理员要查询的职工信息的的工号、姓名、电话或工资。
4)修改模块:分为根据工号、姓名修改的两个具体需求,分别提示管理员要修改的职工信息的工号和姓名,如果有对应职工的信息记录存在,则逐项列出对应职工的信息。
5)删除模块:分为根据工号、姓名删除的两个具体需求,分别提示管理员要删除的职工信息的工号和姓名,如果有则删除此职工对应的信息记录。
C语言职工信息管理系统课程设计
![C语言职工信息管理系统课程设计](https://img.taocdn.com/s3/m/776c64f9c8d376eeaeaa3158.png)
湖北医药学院信息管理与信息系统专业《C程序设计》课程设计报告题目:职工信息管理系统班级:学号:姓名:成绩:前言在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C 程序开发的全过程。
本任务是根据给定的数据和程序,应用单向链表处理一个小班学生的信息。
通过整个程序开发的过程,提高综合应用C 语言的能力、编程和调试能力,为学习软件专业课程创建较扎实的理论基础和实践基础。
一、系统功能和原始数据1、系统功能A. 建立学生信息表,录入10名学生的信息,并将结果保存在文件student1.txt 中B. 显示所有学生信息C. 给定某学生的学号,删除该学生的信息D. 添加一名学生的信息,将其插入到相应位置,使整个学生信息表按学号有序E. 给定某学生的学号,修改该学生的信息F. 按姓名查询学生信息G. 按入学成绩对学生的信息进行排序H. 计算并显示学生入学平均成绩,显示入学成绩最高分和最低分的学生信息 I. 将最后的学生信息存入文件student2.txt 中 说明:1. 学生信息数据项:学号、姓名、性别、年龄、院系、入学成绩2. 录入学生信息时按学号由小到大的顺序录入3. 系统功能使用结构数组和单向链表两种方法实现输出记录模块工资管理系统输入记录模块查询记录模块更新记录模块统计记录模块键盘出入文件读入按姓名查询显示所有信息删除记录修改记录排序模块插入记录统计员工数和工资输出到屏幕输出到文件工资管理系统功能模块图2.原始数据3.数据结构本程序定义了结构体emplyee,用于存放职工的基本信息和工资信息。
typedef struct employee /*标记为employee*/{char num[10];char name[15];char sex;charcharint gz;}ZGGZ其各字段的值的含义如下。
num[10]: 保存职工编号name [15]:保存职工姓名sex:保存职工性别:保存职工部门:保存职工职称gz :保存职工工资二、程序设计1、建立职工信息结构体(1)函数原型、功能和形参说明1)、printheader()函数原型:void printheader()printheader()函数用于在以表格形式显示记录时,打印输出表头信息。
c语言课程设计——职工信息管理系统
![c语言课程设计——职工信息管理系统](https://img.taocdn.com/s3/m/49c91c52376baf1ffc4fad75.png)
XXXXXXX大学课程设计说明书名称计算机语言C课程设计——职工信息管理系统设计2011 年 6月20 日至 2011年6 月26 日共1 周院系 .班级 .姓名 .学号 .系主任 .教研室主任 .指导教师 .目录一、课程设计的目的和要求 (3)1.1目的 (3)1.2 要求 (3)二、题目说明 (4)2.1程序开发背景 (4)2.2开发工具介绍 (4)三、总体设计 (5)3.1总体思想 (5)3.2软件模块结构图 (5)3.3系统流程图 (6)3.3.1主函数 (6)3.3.2显示函数 (7)3.3.3录入函数 (7)3.3.4查询函数 (8)3.3.5删除函数 (9)3.3.6排序函数 (10)四、详细设计和系统实施 (11)4.1数据结构设计 (11)4.1.1定义数组 (11)4.1.2定义结构体 (11)4.1.3函数功能描述 (11)4.2界面设计 (12)4.2.1用户登录界面 (12)4.2.2 主界面 (13)4.2.3显示界面 (15)4.2.4录入界面 (16)4.2.5信息查询界面 (17)4.2.6删除界面 (19)五、遇到的问题及解决办法 (20)六、课程设计总结 (21)七、参考文献 (22)附录(源程序代码) (23)一、课程设计的目的和要求1.1目的1.掌握C语言编程的基础知识较熟练的编写C语言使用程序。
2.能够利用所学的基本知识和技能,解决简单的程序设计问题,增强独立完成工作的能力。
3.通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。
1.2 要求1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3.画出功能模块图;4. 进行简单界面设计,能够实现友好的交互;5. 具有清晰的程序流程图和数据结构的详细定义;6. 熟练掌握C语言对文件的各种操作。
职工基本信息管理系统设计C语言课程设计
![职工基本信息管理系统设计C语言课程设计](https://img.taocdn.com/s3/m/2aff0e58783e0912a3162a17.png)
课程设计报告课程名称C语言课程设计课题名称职工基本信息管理系统设计专业计算机科学与技术班级1830311学号20183031116姓名李文劲指导教师宋琳2019年1月28日东华理工大学长江学院目录前言 (2)一、解题思路及调用结构 (4)二、设计体会及总结 (4)三、主要模块的算法描述 (5)四、调试过程及实验结果 (10)五、源程序 (12)六、参考文献 (17)前言一、课程设计的目的本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体等相关内容的综合应用,使学生能进一步熟悉掌握C语言的基本语法,进一步提升编程能力并逐步培养编程思维,进而不断提高学生解决问题的能力,并为以后的语言学习打下良好的基础。
二、课程设计的要求(一)设计要求课程设计要求在具体项目的基础上,使学生进一步理解和掌握课堂教学中所学知识,来解决一个实际的问题,提高学生进行算法设计与分析能力,提高学生程序设计、实现和调试能力。
在课程设计的过程中要求学生具备以下条件:1.熟悉Microsoft Visual C++环境中的设计、调试步骤及技巧。
2.熟悉数据类型的定义和实现方法,领会数据类型的实质。
3.根据实际问题选择数据结构,熟悉算法的描述,并进行程序设计和实现。
4.熟悉程序代码编写的书写规范,能够在课程设计文档中对算法设计与分析、程序设计与测试进行详细描述。
(二)操作要求1. 要求学生按照选题规则确定课程设计题目,不可随意更换,但可在完成规定的任务之后,根据个人兴趣选做其它题目;2.掌握结构化程序设计的方法,提高进行算法设计的能力;2.进一步提升C语言的应用能力;2.提高程序设计的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.严格按照报告格式撰写课程设计报告;(三)成果要求本课程主要训练学生综合运用结构化程序设计的知识,针对实际问题进行算法的设计和实现,培养学生的团队协作能力,提高学生程序设计、调试能力、提高学生文档写作能力。
C语言课程设计职工信息管理系统
![C语言课程设计职工信息管理系统](https://img.taocdn.com/s3/m/784b05682e60ddccda38376baf1ffc4ffe47e237.png)
集成测试
集成测试的定义:将各个模块组合起来进行测试,验证模块间的接口和交互是否正确 集成测试的目的:发现模块间的接口和交互问题,保证系统的稳定性和可靠性 集成测试的方法:自顶向下、自底向上、混合策略等 集成测试的步骤:模块划分、模块集成、集成测试、回归测试等
系统调试与优化
优化方法:优化算法、数据 结构、代码结构等
据库进行数据 存储和管理
接口:使用 RESTful API 进行前后端数
据交互
安全:使用 HTTPS进行数 据传输加密, 使用身份验证 和授权机制进 行用户身份验 证和权限控制
性能优化:使 用缓存、异步 处理等技术进
行性能优化
系统需求分析
用户需求
员工信息管理:包括员工 基本信息、职位、薪资等
员工考勤管理:记录员工 上下班时间、请假、加班 等信息
系统部署与维护
系统部署方案
硬件需求:服务器、网络设备、存储设备等 软件需求:操作系统、数据库管理系统、应用服务器等 部署步骤:安装操作系统、安装数据库管理系统、安装应用服务器、部署应用系统等 维护方案:定期备份数据、定期检查系统运行情况、定期更新系统软件等
系统运行环境配置
操作系统:Windows、Linux、Mac OS等
技术需求
编程语言:C语言
数据库:SQL Server或MySQL
用户界面:Windows Forms或Web Forms
功能模块:员工信息管理、考勤管理、 薪资管理等
性能要求:响应速度快,数据安全可靠
兼容性:支持Windows操作系统,兼 容主流浏览器
系统设计
数据结构设计
数据类型:包括职工信息、 部门信息、职位信息等
员工绩效管理:记录员工 工作表现、绩效考核等信 息
C语言课程设计报告职工信息管理系统设计范文
![C语言课程设计报告职工信息管理系统设计范文](https://img.taocdn.com/s3/m/e57c6b2a76c66137ee0619b1.png)
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
分析:我认为链表的使 用正是本程序的最精 彩的地方所在,较数组 而言它的使用带来了 很多优点: (1)空间的 灵活分配,虽然地址不 是连续的,但只要找到 链表的头所有数据都 可以迅速找到( 2 )可 以灵活的插入或删除 元素而不会像数组那 样带来较多数据的移 动
4
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
分析:周密地考虑 到了内存不足以及 职工号已存在导致 的录入失败,给予 用户适当的提示使 得设计更加人性化
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
二、系统设计方案
1.程序采用模块化设计,主函数为程序的入口,各模块独立,可分块调试,各 模块由主函数控制调用。主函数的控制功能通过循环执行一个开关语句来实现。 该开关语句的条件值为调用主菜单函数得到的返回值,根据该值,调用相应的各 功能函数。 2.应用高级语言程序设计中的基本控制结构,如选择和循环等,并且包含对文 件的读、写等基本操作,在软件开发过程中应用了软件工程的基本理论。因此, 系统的设计方法是结构化设计方法,开发手段是 C 语言。 3.源程序运用多个函数,开头先进行函数声明,然后分别定义、调用各函数。
C语言课程设计 职工信息管理系统
![C语言课程设计 职工信息管理系统](https://img.taocdn.com/s3/m/e0bfb7595022aaea998f0f91.png)
青岛理工大学《C语言程序实习》题目职工信息管理系统指导教师:姓名:学号:班级:专业:地点:时间:一、职工信息管理系统本系统主要功能是实现职工信息的管理,主要有三个功能:1、建立职工信息2、查询职工信息;3、修改职工信息。
4.输出职工信息二、上机环境:操作系统:windowsXP开发工具:VC6.0三、函数调用关系:四、各函数功能说明1.main()函数:主函数,通过调用各个函数实现职工信息管理2.creat()函数:新建职工信息3.search()函数:按编号查询某员工信息4.alter()函数:修改员工信息5.output()函数:按文件名输出员工信息五、各个函数算法描述或流程图六、程序运行效果图1.运行主界面stablish 开始switchalter search output结束2、建立文件界面3.职工信息查询界面4.输出信息七、体会在本学期学习中,通过学习C程序设计课,我懂得了C语言是计算机语言的基础,必须学好它,才能更进一步的发展自己,我现在只是初学者,还有很多的不足,需要改正和完善。
在以后的学习中我会更加端正我的学习态度,认真学好每一个细节,努力学好这门课程。
此次所编程序尚有很多漏洞,有待完善。
八、参考文献[1] 谭浩强 .C程序设计(第三版).清华大学出版社,2005[2] 谭浩强 .C程序设计题解与上机指导(第三版).清华大学出版社,2005[3] 湛为芳.C语言程序设计技术.清华大学出版社,2006[4] 《电脑编程技巧与维护》杂志社. 电脑编程技巧与维护.人民邮电出版社,2007[5] 杨开城.C语言程序设计教程、实验与练习(第二版). 人民邮电出版社,2006九、程序清单#include<iostream> #include<string.h>#include<process.h> #define A "%-8s %-10s %-7s %-7s %-15s %-8s %-10s %-10s \n" #definejilu cle[q].num,cle[q].name,cle[q].sex,cle[q].age,cle[q].add r,cle[q].salary,cle[q].health,cle[q].bach,cle[q].more using namespace std; struct clerk/*定义结构体*/ { char num[12]; char name[15]; char sex[6]; char age[6]; char addr[20]; char salary[8]; char health[10]; char bach[10]; char more[30];}cle[30];char filename[20];/*文件名*/FILE *fp;/*文件指针*/ int p; void main() { voidstablish(); /* 函数声明*/ void alter(); void search(); void output(); int q;/* 设置变量i 为功能选择变量*/printf("Please choose the number of the operating:\n 1 Information Enrollment\n 2 Information Searching\n 3 Information Altering\n 4 Information Output\n 5 close the system\n");printf("If it's the first time for you to use the program ,please regist the clerks' information. \n");scanf("%d",&q);switch(q){case 1:stablish();break;/*函数调用:选择创建功能*/ case 2:search();break;/*用break 跳出*/ case 3:alter();break; case 4:output();break;case 5: cout<<"正在关闭系统..."<<endl;exit(0); default:cout<<"您的输入有误,请重新输入"<<endl;main();}}void stablish()/*职工登记函数*/ {int q;printf("\n 请输入文件名: "); scanf("%s",filename);/*创建一个文件的名字*/if((fp=fopen(filename,"w"))==NULL)/*打开文件,实现向文件输入数据*/ { printf("\n 不能建立!");exit(0);}fprintf(fp,A,"编号","姓名","性别","年龄","地址","工资","健康状况","学历","备注");printf("Please input the summary number of the clerks:"); scanf("%d",&p);printf("Please input the clerk's information:\n"); for(q=0;q<p;q++){ printf("编号: ");/*将数据写入文件*/ scanf("%s",cle[q].num);printf("姓名: ");scanf("%s",cle[q].name); printf("性别: ");scanf("%s",cle[q].sex);printf("年龄: "); scanf("%s",cle[q].age); printf("地址: "); scanf("%s",cle[q].addr); printf("工资: "); scanf("%s",cle[q].salary); printf("健康状况: "); scanf("%s",cle[q].health); printf("学历: "); scanf("%s",cle[q].bach); printf("备注: "); scanf("%s",cle[q].more);printf("…………………………………………………………………………………………………\n");fprintf(fp,A,cle[q].num,cle[q].name,cle[q].sex,cle[q].age,cle[q].addr, cle[q].salary,cle[q].health,cle[q].bach, cle[q].more); }fclose(fp);printf("Regist end!\n"); main(); } void search() /*查询函数*/ { int t=0,q; char namestr[15]; printf("Please input the file you want to search:"); scanf("%s",filename);printf("\nPlease input the clerk's name:"); scanf("%s",namestr); if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/{ printf("\nCan't open the file!"); exit(0);}for(q=0;q<30;q++) {fscanf(fp,"%s%s%s%s%s%s%s%s\n",jilu);if(strcmp(namestr,cle[q].name)==0) {printf("\n Successfully search ,theinformation is :\n");printf("%-8s %-10s %-7s %-7s %-15s %-8s %-10s %-10s\n","编号","姓名","性别","年龄","地址","工资","健康状况","学历","备注"); printf(A,jilu); t=1;}} if(t==0)printf("\n\nSorry,can'tfoundrelatedinformation,please review it!");fclose(fp);}void alter() { int q; char name[15];printf("please input the file's name where the information is."); scanf("%s",filename);if((fp=fopen(filename,"r+"))==NULL) {printf("can't open this file\n");}printf("please input the clerk's name"); scanf("%s",name); for(q=0;q<p;q) {fread(&cle[q],sizeof(struct clerk),1,fp);if(strcmp(name,cle[q].name)==0) /* 调用字符串比较函数*/printf("have found the related information :");break; }printf("please input the new information.\n"); printf("编号: ");/*将数据写入文件*/printf("%s",cle[q].num); printf("姓名: "); scanf("%s",cle[q].name); printf("性别: "); scanf("%s",cle[q].sex); printf("年龄: "); scanf("%s",cle[q].age); printf("地址: "); scanf("%s",cle[q].addr); printf("工资: "); scanf("%s",cle[q].salary); printf("健康状况: "); scanf("%s",cle[q].health); printf("学历: "); scanf("%s",cle[q].bach); printf("备注: "); scanf("%s",cle[q].more);fwrite(&cle[q],sizeof(struct clerk),1,fp); printf("The altered information is :"); printf(A,jilu);printf(" Altering ended!");}void output() {int q=0;printf("please input the file you want to put out."); scanf("%s",filename); if((fp=fopen(filename,"r"))==NULL) /*打开文件*/{ printf("\nCan't find the file!"); exit(0);}printf("…………………………………………职工信息统计表…………………………………………\n");while(feof(fp)==0) /* */ {fscanf(fp,"%s%s%s%s%s%s%s%s\n",cle[q].num,cle[q].n ame,cle[q].sex,cle[q].age,cle[q].addr,cle[q].salary,cle [q].health,cle[q].bach); printf(A,jilu); q++;}fclose(fp); }. ..。
职工信息管理系统C语言课程设计+源代码
![职工信息管理系统C语言课程设计+源代码](https://img.taocdn.com/s3/m/685406ea81eb6294dd88d0d233d4b14e85243e2e.png)
职工信息管理系统C语言课程设计+源代码课程设计报告课程:高级语言课程设计学号:姓名:班级:教师:时间:设计名称:职工信息管理系统设计内容、目的与要求:本设计旨在熟练掌握C语言的基本知识和编辑技能,基本掌握结构化程序设计的基本思路和方法。
通过编写职工信息管理系统,便于对职工的信息进行管理,训练综合运用函数的自定义,数组,结构体等,并提高程序设计的能力。
要求:设计一个职工信息管理系统,提供以下功能:1.提供一个清晰美观的界面来调用各个功能。
2.录入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。
3.浏览功能:完成对全部职工信息的显示。
4.查找功能:①按职工的职工号查询职工的相关信息,并显示。
②按职工的学历查询职工的相关信息,并显示。
③按职工的电话号码查询职工的相关信息,并显示。
5.删除功能:①通过输入职工的姓名完成对该名职工的信息进行删除。
②通过输入职工号完成对该名职工的信息进行删除。
6.添加功能:完成添加新职工的信息的任务。
7.修改功能:①通过输入职工的姓名完成对该名职工的信息进行修改。
②通过输入职工号完成对该名职工的信息进行修改。
8.退出职工信息管理系统。
计划与进度安排:2012年12月8日至2012年12月15日:仔细研究数据库相关知识,通过上网查资料找思路。
2012年12月16日至2012年12月20日:完成设计思路并作出草稿,编写主函数和各调用函数模块。
2012年12月21日至2013年1月1日:逐步实现各模块的功能化,实现整个程序大体功能。
2013年1月2日至2013年1月6日:修改并完善各功能,编写电子实验报告,并准备提交验收。
设计过程、步骤:一、功能结构1.职工信息管理系统开始菜单根据菜单输入的值选择程序1.录入职工信息2.浏览职工信息3.查询职工信息5.添加职工信息4.删除职工信息6.修改职工信息7.退出1.按职工号查询2.按学历查询3.按号码查询1.按职工号删除2.按职工姓名删除1.按职工号修改2.按职工姓名修改二、设计说明1.这个程序需要使用结构体来存储职工信息。
c语言职工信息管理系统课程设计
![c语言职工信息管理系统课程设计](https://img.taocdn.com/s3/m/cdc70345b6360b4c2e3f5727a5e9856a561226dc.png)
c语言职工信息管理系统课程设计一、课程目标知识目标:1. 理解C语言编程基础,掌握数据类型、变量、运算符、控制结构等基本概念;2. 学会使用C语言进行数组、字符串和结构体的操作;3. 掌握文件操作和内存分配在C语言中的应用;4. 了解职工信息管理系统的基本功能需求。
技能目标:1. 能够运用C语言编写职工信息管理系统的基本模块,如增加、删除、修改、查询等功能;2. 能够对程序进行调试和优化,解决常见错误和异常;3. 能够独立设计简单的职工信息管理系统界面,并进行用户交互;4. 学会运用结构体数组管理大量职工数据。
情感态度价值观目标:1. 培养学生严谨、细致的编程习惯,提高问题分析和解决能力;2. 增强学生的团队合作意识,学会与他人协作完成项目;3. 培养学生对信息管理系统实际应用的兴趣,激发创新思维;4. 引导学生关注社会实际问题,理解职工信息管理在企业运营中的重要性。
课程性质:本课程为实践性较强的课程,结合C语言编程和职工信息管理系统的实际应用,注重培养学生的编程能力和实际操作能力。
学生特点:学生已具备一定的C语言基础,对编程有初步了解,但实践经验不足,需要通过实际项目提高动手能力。
教学要求:教师需结合学生特点,采用项目驱动教学,分解课程目标为具体学习成果,注重理论与实践相结合,提高学生的编程技能和实际应用能力。
同时,关注学生情感态度价值观的培养,激发学生学习兴趣,培养团队合作精神。
二、教学内容1. C语言基础知识回顾:数据类型、变量、常量、运算符、表达式、控制结构(条件语句、循环语句)。
相关教材章节:第一章至第三章。
2. 数组、字符串与结构体:一维数组、二维数组、字符串处理、结构体的定义和使用。
相关教材章节:第四章、第五章。
3. 文件操作与内存分配:文件读写、文件定位、内存分配与释放。
相关教材章节:第八章、第十章。
4. 职工信息管理系统功能模块设计:a. 职工信息录入:设计界面,实现职工信息的录入功能;b. 职工信息查询:实现按不同条件(如姓名、工号等)查询职工信息;c. 职工信息修改:实现对职工信息的修改功能;d. 职工信息删除:实现对特定职工信息的删除功能;e. 职工信息统计:实现职工信息统计功能,如总数、平均工资等。
C语言课程设计报告职工信息管理系统设计
![C语言课程设计报告职工信息管理系统设计](https://img.taocdn.com/s3/m/aad596b8a8956bec0875e322.png)
printf(”请输入职工电话(文字):”);
scanf(”%s",&q->w.phone);
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 电话\n"); while(NULL!=p—〉next)
职工信息管理系统设计
一、设计任务
课题:职工信息管理系统设计
职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职
工号不重复)。是设计一职工信息管理系统,使之能提供以下功能:
系统以菜单方式工作
职工信息录入功能(职工信息用文件保存)—-输入
职工信息浏览功能
——输出
查询和排序功能
——算法
按工资查询
/*程序结束释放内存*/ void release(PLINK p) { PLINK q; while(NULL!=p—>next) { q=p; p=p-〉next; free(q);
分析:及时的在程 序结束时释放内 存,避免占用多余 的空间充分显示出 了链表使用的优越 性,占用最小的空 间满足用户更多的 需求
2。应用高级语言程序设计中的基本控制结构,如选择和循环等,并且包含对文 件的读、写等基本操作,在软件开发过程中应用了软件工程的基本理论。因此, 系统的设计方法是结构化设计方法,开发手段是 C 语言.
c语言职工信息管理系统课程设计
![c语言职工信息管理系统课程设计](https://img.taocdn.com/s3/m/af43934d15791711cc7931b765ce0508763275fd.png)
c语言职工信息管理系统 课程设计一、课程目标知识目标:1. 学生能理解C语言中结构体的概念,掌握结构体在职工信息管理中的运用。
2. 学生能掌握文件操作的基本方法,实现对职工信息数据的存储与读取。
3. 学生了解并掌握C语言中字符串处理、数据排序等基本算法。
技能目标:1. 学生能够运用C语言编写简单的职工信息管理系统,实现职工信息的增加、删除、修改和查询功能。
2. 学生能够利用结构体和文件操作,实现数据的持久化存储。
3. 学生能够运用所学知识解决实际问题,提高编程实践能力。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,激发创新精神。
2. 学生能够认识到编程在现实生活中的应用价值,提高对信息技术的认识。
3. 学生在课程实践过程中,培养团队合作意识,提高沟通与协作能力。
课程性质:本课程为C语言编程实践课程,旨在让学生通过职工信息管理系统的设计与实现,掌握C语言的基本知识和编程技能。
学生特点:本课程面向高中生,学生对C语言有一定了解,具备基本的编程能力,但实践经验不足。
教学要求:结合学生特点和课程性质,教师需注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决实际问题的能力。
教学过程中,注重培养学生的自主学习能力和团队合作精神。
通过本课程的学习,使学生能够达到上述课程目标,为后续课程打下坚实基础。
二、教学内容1. 结构体的定义和使用:以职工信息管理系统为例,讲解结构体的定义方法,如何定义职工信息结构体,以及结构体在程序中的使用。
相关教材章节:C语言基础,结构体与共用体。
2. 文件操作:介绍文件的基本操作,如文件的打开、关闭、读写等,结合职工信息管理系统,实现数据的持久化存储。
相关教材章节:文件操作,数据存储。
3. 字符串处理:讲解字符串的基本操作,如字符串的连接、比较、查找等,应用于职工信息管理系统中的输入输出处理。
相关教材章节:字符串处理。
4. 数据排序算法:介绍一种简单的排序算法,如冒泡排序、选择排序等,应用于职工信息的排序显示。
C语言程序设计-职工信息管理系统
![C语言程序设计-职工信息管理系统](https://img.taocdn.com/s3/m/ea4c1cb4eefdc8d376ee32ef.png)
C语言课程设计C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法。
要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。
3、浏览功能:完成对全部职工信息的显示。
4、查找功能:①完成按职工的职工号查询职工的相关信息,并显示。
②完成按职工的学历查询职工的相关信息,并显示。
③完成按职工的电话号码查询职工的相关信息,并显示。
5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。
6、添加功能:完成添加新职工的信息的任务。
7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。
8、退出职工信息管理系统。
三、信息描述职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等。
四、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。
确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。
确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。
五、进度安排课程设计时间为两周,分为五个阶段完成:1、分析设计阶段。
在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。
按照需求分析、总体设计、详细设计几个步骤进行。
这一阶段前1-2天完成;2、编码调试阶段。
根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。
这一阶段在3-7天完成;3、总结报告阶段。
总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计职工信息管理系统设计集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]1.设计目的在今天这个高速信息时代,许多繁杂的办公事务都由计算机代劳,例如职工信息管理等重复劳动越来越需要计算机来处理。
本系统就是为提高企业管理职工信息的效率而设计的,现在职工信息管理系统发挥无可取代的作用。
职工信息管理系统是一个可以用来进行职工工号、姓名等自然信息以及各项工资构成进行录入、查询、修改、删除、增加和排序浏览等操作的应用软件。
2.设计的总体思想本系统是用Visual C进行设计与开发,总体思想是结构化、模块化的程序设计。
由于主要实现的是管理系统的增、删、改、查和排序等功能,因此应用到程序设计中的基本控制结构,如循环和选择,还使用到C语言最具特色的语言成分——指针,高效地使用数组、字符串和结构体,采用经典的排序方法——冒泡法进行排序,并且包含对文件的读、写等基本操作。
3.功能模块描述职工信息管理系统是为企业进行职工信息管理提供辅助而设计的,需要为用户提供一个简单的人机界面以便操作,各功能模块如下。
1)登录模块:根据输入的登录密码判断是否允许该用户使用本系统,输入密码正确才能进入管理界面,管理职工信息。
2)创建模块:当第一次使用本系统时,根据提示输入职工的工号、姓名、性别、年龄、学历、职位、工资、电话和住址,可一次性输入多条职工的信息记录。
浏览模块:可以浏览经输入、修改、删除、添加、排序、读取后的职工信息。
3)查询模块:分为根据工号、姓名、电话、工资查询的四个具体需求,分别提示管理员要查询的职工信息的的工号、姓名、电话或工资。
4)修改模块:分为根据工号、姓名修改的两个具体需求,分别提示管理员要修改的职工信息的工号和姓名,如果有对应职工的信息记录存在,则逐项列出对应职工的信息。
5)删除模块:分为根据工号、姓名删除的两个具体需求,分别提示管理员要删除的职工信息的工号和姓名,如果有则删除此职工对应的信息记录。
6)添加模块:可在原有职工信息记录的基础上增加新的职工信息记录,并保存至磁盘中。
7)排序模块:分为根据姓名、年龄、工资排序的三个具体需求,分别提示管理员选择排序的方式。
8)保存模块:将2)3)4)5)6)7)8)模块中改动的数据保存至文件中,以便进行管理、查找和备份。
9)读取模块:将文件中的数据读取至内存中。
4.概要设计系统模块结构图根据模块功能描述,职工信息系统可以分为11个模块,系统模块结构如图1所示。
5.详细设计数据结构设计本程序定义结构体staffinfo,用于存放职工的相关信息。
定义的结构体如下(每个变量后面/* */中的内容为各个变量的含义):struct staffinfo{char num[10]; /*工号*/char name[9]; /*姓名*/char sex[3]; /*性别*/char age[3]; /*年龄*/char edu[5]; /*学历*/char role[5]; /*职位*/char salary[6]; /*工资*/char tel[16]; /*电话*/char addr[30]; /*住址*/}sta[N];由于工号、姓名、电话、住址等信息是用来描述职工这个有机整体,为了表示这些字段不是孤立的,而是共同描述一个完整的事物,因此用结构体来实现。
各函数说明1)void gotoxy(int x,int y)功能:用于在屏幕上定位,其中整型数x代表列数,整型数y代表行数,其中0≤x≤80,0≤y,(0,0)代表左上角。
2)void showtable1()void showtable2()功能:分别打印表头与表尾。
3)void enter()功能:进入系统登录界面,验证管理员输入的密码。
输入:登录密码。
处理:①接收管理员输入的密码,存放到相应变量中进行判断。
②判断密码是否正确,如果相符,则进入主菜单。
③如果不相符,则提示用户重新输入。
4)int find(char str[30],int t)功能:查找指定记录,str[30]表示需管理员输入的职工的某一项信息,t表示通过哪一项来查找,例如通过工号、姓名来查找。
若找到与输入的信息相同的记录,则返回找到的记录号,若找不到就返回-1。
输入:职工信息的某一项和想查找的途径。
处理:①接收管理员输入的职工信息与查找方式,并存入相应的变量中。
②将内存中的数据与输入信息逐条比对,直到找到相同的记录,返回找到的记录号。
③若没找到该职工的记录,就返回-1。
5)void creat()功能:创建职工信息。
将管理员输入的若干条信息记录存入内存中。
输入:①需创建的信息记录条数。
②若干条职工信息记录(工号、姓名、职位、电话等信息)。
处理:①提示管理员逐条输入职工信息。
②获取管理员输入的信息,存入内存中。
③提示管理员录入成功。
6)void display()功能:浏览经过改动的信息记录,即打印出内存中的数据。
7)void search()功能:查询所需职工信息记录。
四种方式查询:工号、姓名、电话和工资。
根据管理员输入的职工信息和查找方式,按不同方式查找记录,列表显示查找到的记录内容。
输入:①想要查找的方式。
②要查询的职工的某一项信息。
处理:①提示管理员要查询的方式和要查询职工的对应信息。
②循环品牌查找对应记录。
③如果找找,则列表显示结果。
8)void modify()功能:修改原有的职工信息记录。
两种查找匹配记录的方式:工号和姓名。
根据管理员输入的查找方式和职工信息查找是否存在匹配记录,若存在,则将此职工的信息改为管理员输入的内容。
输入:①想要查找匹配记录的方式。
②要修改的职工的某一项信息。
③确认修改的选项字母。
④所要修改记录的内容值(工号、姓名等)。
处理:①接收管理员输入的查找匹配记录的方式和要修改职工的某一项信息。
②判断是否有匹配职工记录,若有,则列表显示该记录并提示管理员是否确认修改。
③提示管理员输入该职工方的各项信息。
④提示管理员是否修改成功。
9)void delet()功能:删除指定的职工信息记录。
两种查找匹配记录的方式:工号和姓名。
根据管理员输入的查找方式和职工信息查找匹配记录,若找到,则列表显示,经提示后删除该条记录。
输入:①想要查找匹配记录的方式。
②要删除的职工的某一项信息。
③确认删除的选项字母。
处理:①接收管理员输入的查找匹配记录的方式和要修改职工的某一项信息。
②判断是否有匹配职工记录,若有,则列表显示该记录并提示管理员确认删除。
③提示管理员是否删除成功。
10)void add()功能:增加新的职工信息记录。
判断所输入的工号是否已存在,若不存在,则将管理员输入的若干条信息记录存入内存中。
输入:①想要添加职工的工号。
②新的职工信息记录(姓名、学历等)。
处理:①提示管理员输入新职工的工号。
②判断职工号是否存在,若不存在,则提示管理员逐条输入职工信息。
③获取管理员输入的信息,存入内存中。
④提示管理员添加成功。
11)void order()功能:给职工信息记录排序(升序)。
三种排序方式:姓名、年龄和工资。
根据管理员输入的排序方式排序,列表显示排序结果。
输入:想要的排序方式。
处理:①提示管理员输入排序方式。
②按照指定方式排序。
③列表显示排序结果。
12)void save()功能:保存职工信息记录及记录条数至文件中。
输入:确认保存的选项字母。
处理:①提示管理员确认保存。
②若确认保存,则将内存中的数据保存至指定文件中。
③提示管理员保存成功。
13)void load()功能:从文件中读取职工信息记录及记录条数。
输入:确认读取的选项字母。
处理:①提示管理员确认读取。
②将文件中的数据读取至内存中。
③提示管理员读取成功。
14)void quit()功能:确认保存过数据后,安全退出系统。
输入:①确认保存的选项字母。
②确认退出系统的选项字母。
处理:①提示管理员确认保存。
②若确认保存,则将内存中的数据保存至指定文件中。
③提示管理员是否退出系统,若是则退出。
15)void main()功能:根据主菜单上的各项指令,调用1)至14)的各个函数。
系统控制图如图1所示。
6.程序分析程序预处理包括加载头文件,定义结构体,宏定义,全局变量,并对他们进行初始化。
#include <> /*输入/输出函数*/#include <> /*其他说明*/#include <> /*字符串函数*/#include <> /*系统操作函数*/#include <> /*屏幕操作函数*/#define N 20 /*系统记录的职工数,可根据不同企业的需要更改*/struct staffinfo{char num[10]; /*工号*/char name[9];char sex[3];char age[3];char edu[5]; /*学历*/char role[5]; /*职位*/char salary[6];char tel[16]; /*电话*/char addr[30]; /*住址*/}sta[N];int n=0; /*实际录入的职工信息记录总条数*/主函数void main()主要实现对整个程序的运行控制。
详细分析可参考图3。
/*********************************************主函数*********************************************/void main(){void gotoxy(int x,int y); /*光标定位*/void showtable1(); /*打印表头*/void showtable2();void enter();int find(char str[30],int t);void creat(); /*录入职工信息*/void display(); /*浏览职工信息*/void search();void modify();void delet();void add();void order();void save(); /void load(); /*从文件读取职工信息*/ void quit(); /*退出系统*/system("color 3e");enter();while (1){int choice;system("cls");/*清屏*/printf("职工信息管理系统");printf("==============主菜单==============\n");printf("************************************************\n");printf(" (( \002 1: 录入职工信息 ))\n");printf(" (( \002 2: 浏览职工信息 ))\n");printf(" (( \002 3: 查询所需职工信息 ))\n");printf(" (( \002 4: 修改原有的职工信息 ))\n");printf(" (( \002 5: 删除原有的职工信息 ))\n");printf(" (( \002 6: 添加新的职工信息 ))\n");printf(" (( \002 7: 给职工信息排序 ))\n");printf(" (( \002 8: 保存职工信息 ))\n");printf(" (( \002 9: 读取职工信息 ))\n");printf(" (( \002 0: 退出系统 ))\n");printf("************************************************\n");do{printf("\n \004请输入指令(0~9):");scanf("%d",&choice); /*输入选择的数字*/}while(choice<0||choice>9);switch(choice){case 1: creat(); break;case 2: display();break;case 3: search();break;case 4: modify();break;case 5: delet();break;case 6: add();break;case 7: order();break;case 8: save();break;case 9: load();break;case 0: quit();break;default:break;}}}光标定位函数void gotoxy(int x,int y) 0≤x≤80,0≤y,(0,0)代表左上角。