C语言课程设计报告职工信息管理系统设计
C语言课程设计之职工信息管理系统设计
淮海工学院计算机工程学院课程设计报告设计名称:C语言程序设计课程设计姓名:丁庆丰学号:2015123351专业班级:软嵌151 系(院):计算机工程学院设计时间:2016.06.20~2016.07.24设计地点:软件设计室一、问题描述题目三: 职工信息管理系统设计信息描述职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。
主要功能1. 录入职工信息并保存2. 显示所有职工信息(以一定的格式)3. 查询职工信息(以一种或多种方式)4. 修改职工信息并保存5. 删除职工信息二、设计目的设计“学生成绩管理系统”使其具有以下功能:(1)能完成对职工信息的录入。
(2)能按按照一定的格式浏览职工信息。
(3)能删除单个职工信息。
(4)能查询单个职工信息。
(5)能修改单个职工信息。
三、要求基本要求(1)系统以菜单方式工作。
(2)职工信息录入功能(职工信息用文件保存)——输入。
(3)职工信息浏览功能——输出。
(4)查询或排序功能:(至少一种查询方式)——算法,按工资查询,按学历查询等。
(5)系统进入画面(静态或动画)。
(6)职工信息删除功能。
(7)职工信息修改功能。
创新要求在基本要求达到后,可进行创新设计,如对菜单进行美化。
四、功能1 输入功能:可以一次完成无数条信息的输入。
2 输出功能:能按班级输出各职工的信息。
3 修改功能:完成对单个职工信息的修改。
4 查寻功能:完成对单个职工信息查找,并显示。
5有一个清晰美观界面来调用各个功能。
五、模块图六、详细内容整个系统除了主函数外,另外还有5个函数,实现六大功能:输入功能、输出功能、修改功能,查找并显示功能、排序并显示功能。
各个函数的详细设计说明分别如下:1 . 定义结构体及宏定义定义了一个职工信息结构体,包括工号、姓名、性别、年龄、学历、工资、地址、联系电话。
#include <stdio.h>#include <windows.h>#include <string.h>#include<conio.h>#define N 100struct employee{int num;char name[20];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];}em[100];2.主函数main()主函数开始先运用一个老师介绍的一个改变运行窗口背景颜色的语句,然后打印欢迎界面,利用无限次循环for(;;)和swithch()进行菜单选择来实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
C语言课程设计职工信息管理系统源程序
系统管理:包 括用户管理、 权限管理、系
统设置等
系统开发背景
企业信息化需求:提高工作效率,降低管理成本 技术发展:云计算、大数据等技术的成熟 市场竞争:提高企业竞争力,满足客户需求 企业内部管理:优化人力资源管理,提高员工满意度
系统目标
提高工作效率
简化工作流程
提高数据准确性
加强信息安全管理
Part Five
系统实现
数据库连接实现
连接方式:使用JDBC(Java Database Connectivity)进行 数据库连接
连接参数:包括数据库地址、用户 名、密码等
添加标题
添加标题
添加标题
添加标题
数据库类型:支持MySQL、 Oracle、SQL Server等多种数据 库
连接过程:通过JDBC驱动程序建 立与数据库的连接,执行SQL语句 进行数据操作
数据需求分析
员工信息:包括姓名、性别、年龄、职位、部门等信息 考勤信息:包括上下班时间、请假、加班等信息
薪资信息:包括基本工资、绩效工资、奖金等信息 培训信息:包括培训课程、培训时间、培训效果等信息
绩效评估信息:包括绩效考核标准、绩效考核结果等信息 系统管理信息:包括用户管理、权限管理、系统日志等信
息
性能需求分析
系统响应时间:要求系统响应时间不超过3秒 数据处理速度:要求系统数据处理速度不低于每秒1000条记录 系统稳定性:要求系统在连续运行72小时后,仍能保持稳定运行 系统安全性:要求系统具备防病毒、防黑客等安全措施,确保数据安全
Part Four
系统设计
系统架构设计
架构设计原则:高 内聚、低耦合、可 扩展、可维护
系统维护
定期备份数据:确保数据安全,防止数据丢失 定期更新系统:确保系统安全,防止病毒攻击 定期检查硬件:确保硬件正常运行,防止硬件故障 定期培训员工:确保员工熟练掌握系统操作,提高工作效率
C语言课程设计报告:职工信息管理系统程序设计
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语言课程设计职工信息管理系统一、教学目标本课程的教学目标是使学生掌握C语言职工信息管理系统的基本概念、设计和实现方法。
通过本课程的学习,学生应能理解职工信息管理系统的需求分析、系统设计、编码实现和测试评估等环节,掌握C语言编程的基本技能,并培养解决实际问题的能力。
具体来说,知识目标包括:掌握职工信息管理系统的功能模块及其相互关系;理解C语言的数据类型、运算符、控制结构、函数等基本语法;了解软件工程的基本原理和方法。
技能目标包括:能够使用C语言独立完成职工信息管理系统的设计和实现;具备基本的调试和优化代码的能力;能够进行团队合作,合理分工,共同完成项目。
情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情,提高他们对编程学习的自信心;培养学生具备良好的编程习惯和团队协作精神,增强他们的责任感和使命感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.职工信息管理系统的基本概念和架构:介绍职工信息管理系统的功能模块,如职工信息录入、查询、修改和删除等,以及各模块之间的关系。
2.C语言基础知识:讲解C语言的数据类型、运算符、控制结构、函数等基本语法。
3.软件工程方法:介绍需求分析、系统设计、编码实现、测试评估等软件工程基本原理和方法。
4.职工信息管理系统的实现:通过实际编码,讲解如何使用C语言实现职工信息管理系统的各个功能模块。
5.调试与优化:教授如何使用调试工具对代码进行调试,以及如何对代码进行优化,提高系统性能。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:讲解C语言的基本语法和职工信息管理系统的设计原理。
2.案例分析法:分析实际案例,使学生更好地理解职工信息管理系统的实现过程。
3.实验法:安排实验课程,让学生亲自动手编写代码,实现职工信息管理系统。
4.小组讨论法:学生进行小组讨论,分享学习心得,互相答疑解惑。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C语言程序设计》等。
《c语言程序设计报告》-职工信息管理系统
《c语言程序设计报告》一、设计题目:职工信息管理系统二、设计任务:职工信息包括:职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之难提供以下功能:(1)系统以菜单方式工作。
任一功能能执行完毕后均要求返回主菜单。
(2)职工信息录入功能——输入。
(3)职工信息浏览功能——输出。
(4)查询或排序功能(至少一种查询方式)——算法(5)按工资查询(6)按学历查询等(7)职工信息删除、修改功能(任选项)(8)退出:包括返回主界面和退出系统等功能。
3.课程设计要求:模块化程序设计上机调试通过较好的完成程序的主体设计,界面友好,功能齐全:程序思路清晰易懂,充分利用所学工具实现各项操作。
4、应用程序的模块示意图及流程图流程图5、程序设计与调试的体会:在这二周里,我觉得我学到了书上没有的知识。
刚开始盒到《C语言程序设计》课程设计任务与指导书时发现该程序特别难。
没有一点头绪,根本不知道从那里开始。
之后仔细看了设计方法及步骤时总算有了一点发现。
在调试的过程中有很多的语法错误,自己根本看不懂,即使这样我也没有放弃还是努力寻找错误,最终还是被我找到了并改正。
最难的是函数的调用,程序大体上编译成功,但是在调用函数时总是无法连接。
这是我编程序的最大难点。
程序编译完全成功后,我发现了C语言的强大的功能,C语言语言简洁、紧凑、使用方便、灵活、远算符丰富、数据结构丰富、具有良好的结构化,符合现代编程风格。
语法限制不太严格,程序设计自由度大。
程序设计是一门实践性很强的课程不可能只靠听课和看书就掌握C语言程序设计,应当十分重视自己的动手写程序和上机远行程序。
6、主要故障;(1)、在一个函数调用结束完后回不到主菜单排除方法:在该函数调用后加上bioskey()函数(2)、缺少函数的声名排除方法:在主程序里声名调用函数(3)、在写主程序的时候发现光标定位不准确,排除方法:在老师的指点下完成了这项7、源程序:#include <graphics.h>#include <conio.h>#include <stdio.h>#include <ctype.h>struct zhigong{int zhigonghao;char xingming[50];char xingbie[2];long birthday;char xueli[50]; /*定义结构体*/char zhiwu[50];long gongzi;char address[50];long phone;} workers[30];int n;main(){void input();void browse();void sortwage();void sortxl(); /*函数声名*/void del();void zhigonghao();int k;textcolor(RED); /*字体颜色*/textbackground(GREEN); /*背景颜色*/clrscr();gotoxy(1,10);{do{clrscr();printf("\n\t\t ************************************ ");printf("\n\t\t * welcome to coming * ");printf("\n\t\t ************************************ ");printf("\n\t\t * (1) input information * \n");printf("\n\t\t * (2) print information *\n");printf("\n\t\t * (3) search information *\n");printf("\n\t\t * (4) sort-wage *\n");printf("\n\t\t * (5) sort-xl *\n");printf("\n\t\t * (6) delete information *\n");printf("\n\t\t * (0) exit *\n");gotoxy(77,50);printf("\n\t\t please choose the service: (0~6)");scanf("%d",&k);switch(k){case 1:input();break;case 2:browse();bioskey(0);break;case 3:zhigonghao();bioskey(0);break;case 4:sortwage();bioskey(0);break;case 5:sortxl();bioskey(0);break;case 6:del();bioskey(0);break;case 0:exit(0);} }while(1);}}void input() /*函数调用*/{ char c;do{clrscr();gotoxy(91,27);printf("\nnumber:");scanf("%d",&workers[n].zhigonghao);gotoxy(94,25);printf("\nname:");scanf("%s",workers[n].xingming);gotoxy(97,24);printf("\nsex:");scanf("%s",workers[n].xingbie);gotoxy(100,29);printf("\nbirthday:");scanf("%ld",&workers[n].birthday);gotoxy(103,26);printf("\nxueli:");scanf("%s",workers[n].xueli);gotoxy(106,28);printf("\nzhiwu:");scanf("%s",workers[n].zhiwu);gotoxy(109,26);printf("\nwage:");scanf("%ld",&workers[n].gongzi);gotoxy(112,28);printf("\naddress:");scanf("%s",workers[n].address);gotoxy(115,26);printf("\nphone:");scanf("%ld",&workers[n].phone);n=n+1;gotoxy(25,20);printf(" you have added %d work,go on? (Y/N)\n",n);do{gotoxy(60,20);scanf("%c",&c);if (c!='y'&&c!='Y'&&c!='N'&&c!='n'){gotoxy(64,20);printf(" ");gotoxy(1,21);continue;}else break;}while (1);}while (c=='Y'||c=='y');}void browse() /*输出函数调用*/{ int i;clrscr();gotoxy(10,1);printf("\n\t***********browse all workers'information************");printf("\n\n");printf("********************************************************************************");printf("zhigonghao xingming xingbie birthday xueli zhiwu gongzi adress phone");printf("********************************************************************** **********");for(i=0;i<n;i++){ printf("%d,%13s,%8s,%13ld,%6s, %5s, %3ld, %6s, %ld\n",workers[i].zhigon ghao,workers[i].xingming,workers[i].xingbie,workers[i].birthday,workers[i].xueli,workers[i].zh iwu,workers[i].gongzi,workers[i].address,workers[i].phone);}}void zhigonghao() /*函数调用————职工号查询*/{int i,zgh;char c;do{ clrscr();gotoxy(1,5);printf("\t\t\t*****************************\n");printf("\t\t\t welcome to coming\n");printf("\t\t\t*****************************\n");printf("\t\t\tinput the zgh:");scanf("%d",&zgh);for (i=0;i<=n;i++){if (workers[i].zhigonghao==zgh){clrscr();printf("number:%d\n",workers[i].zhigonghao);printf("name:%s\n",workers[i].xingming);printf("sex:%s\n",workers[i].xingbie);printf("birthday:%ld\n",workers[i].birthday);printf("xueli:%s\n",workers[i].xueli); /*输出查找出的职工*/ printf("zhiwu:%s\n",workers[i].zhiwu);printf("wage:%ld\n",workers[i].gongzi);printf("address:%s\n",workers[i].address);printf("phone:%ld\n",workers[i].phone);getchar();gotoxy(1,20);printf("\t\t return the mune? (Y/N)\n");break;}else{clrscr();gotoxy(1,5);printf("\n\t\t****************************************");printf("\n\t\t** welcome to coming **");printf("\n\t\t****************************************");gotoxy(25,16);printf("no information");gotoxy(3,20);printf("\t\treturn the mune? (Y/N)\n");}}do{gotoxy(45,20);scanf("%c",&c);if (c!='y'&&c!='Y'&&c!='N'&&c!='n'){gotoxy(45,20);printf(" ");gotoxy(1,21);continue;}else break;}while(1);}while(c=='N'||c=='n');}void sortwage( ) /*函数调用————工资查询*/{int i,gongzi,p=0;char c;{ clrscr();gotoxy(1,5);printf("\t\t\t*****************************\n");printf("\t\t\t welcome to coming\n");printf("\t\t\t*****************************\n");printf("\t\t\tinput the gongzi:");scanf("%d",&gongzi);printf("********************************************************************** **********");printf("zhigonghao xingming xingbie birthday xueli zhiwu gongzi adress phone");printf("********************************************************************** **********");for (i=0;i<n;i++)if (workers[i].gongzi==gongzi){printf("%d,%13s,%8s,%13ld,%6s, %5s, %3ld, %6s, %ld\n",workers[i].zhigonghao,wor kers[i].xingming,workers[i].xingbie,workers[i].birthday,workers[i].xueli,workers[i].zhiwu,wor kers[i].gongzi,workers[i].address,workers[i].phone);p=p+1;}if(p==0)printf("\t\t\tno information");}}void sortxl( ) /*函数调用————学历查询*/{int i,p=0;char c,xueli[30];{ clrscr( );gotoxy(1,5);printf("\t\t\t******************************\n");printf("\t\t\t welcome to coming \n");printf("\t\t\t******************************\n");printf("\t\t\tinput the xueli:");scanf("%s",xueli);printf("********************************************************************** **********");printf("zhigonghao xingming xingbie birthday xueli zhiwu gongzi adress phone");printf("********************************************************************** **********");for (i=0;i<n;i++)if (strcmp(workers[i].xueli,xueli)==0){printf("%d,%13s,%8s,%13ld,%6s, %5s, %3ld, %6s, %ld\n",workers[i].zhigonghao,work ers[i].xingming,workers[i].xingbie,workers[i].birthday,workers[i].xueli,workers[i].zhiwu,worke rs[i].gongzi,workers[i].address,workers[i].phone);p=p+1;}if(p==0)printf("\t\t\tno information"); } }void del() /*函数调用————删除*/{int i,zhigonghao,j;char c;do{ clrscr();gotoxy(1,5);printf("\t\t\t******************************\n");printf("\t\t\t welcome to coming \n");printf("\t\t\t******************************\n");printf("\t\t\t input the zhigonghao:");scanf("%d",&zhigonghao);for (i=0;i<n;i++)if (workers[i].zhigonghao==zhigonghao){for(j=i;j<n;j++){workers[j].zhigonghao=workers[j+1].zhigonghao;strcpy(workers[j].xingming,workers[j+1].xingming);strcpy(workers[j].xingbie,workers[j+1].xingbie);workers[j].birthday=workers[j+1].birthday;strcpy(workers[j].xueli,workers[j+1].xueli);strcpy(workers[j].zhiwu,workers[j+1].zhiwu);workers[j].gongzi=workers[j+1].gongzi;strcpy(workers[j].address,workers[i+1].address);workers[j].phone=workers[j+1].phone;}n=n-1;getchar();printf("\n\n\n\n");printf("\t\t\tyou have deleted worker");gotoxy(1,20);printf("\t\t\t return the mune? (Y/N)\n");break;}else{clrscr();gotoxy(1,5);printf("\n\t\t****************************************");printf("\n\t\t** welcome to comging **");printf("\n\t\t****************************************");gotoxy(25,16);printf("no information");gotoxy(3,20);printf("\t\t\treturn the mune? (Y/N)\n");}do{gotoxy(45,20);scanf("%c",&c);if (c!='y'&&c!='Y'&&c!='N'&&c!='n'){gotoxy(45,20);printf(" ");gotoxy(1,21);continue;}else break;}while(1);}while(c=='N'||c=='n');}2005-6-12。
c语言职工信息管理系统课程设计
c语言职工信息管理系统课程设计一、教学目标本课程的教学目标是使学生掌握C语言职工信息管理系统的基本概念、设计与实现。
通过本课程的学习,学生应达到以下知识目标:1.理解C语言的基本语法和数据结构。
2.掌握职工信息管理系统的需求分析和系统设计。
3.学会使用C语言实现职工信息管理系统的功能。
4.能够使用C语言进行程序设计。
5.能够独立完成职工信息管理系统的需求分析和系统设计。
6.能够使用C语言实现职工信息管理系统的功能并调试程序。
情感态度价值观目标:1.培养学生对计算机科学的兴趣和热情。
2.培养学生独立思考、解决问题的能力。
3.培养学生团队协作、沟通的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、职工信息管理系统的需求分析和系统设计,以及C语言实现职工信息管理系统的方法。
1.C语言的基本语法:数据类型、变量、运算符、表达式、语句等。
2.数据结构:数组、链表、栈、队列等。
3.职工信息管理系统的需求分析:系统功能、数据流图、实体关系图等。
4.职工信息管理系统的系统设计:模块划分、模块功能、接口设计等。
5.C语言实现职工信息管理系统:代码编写、调试与优化。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法、数据结构和职工信息管理系统的相关知识,使学生掌握基本概念。
2.案例分析法:分析实际案例,使学生了解职工信息管理系统的需求分析和系统设计的过程。
3.实验法:让学生动手编写C语言代码,实现职工信息管理系统的功能,培养学生的实际操作能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、视频等多媒体资料,提高课堂教学效果。
4.实验设备:提供计算机、编程环境等实验设备,确保学生能够进行实际操作。
C语言课程设计职工信息管理系统
集成测试
集成测试的定义:将各个模块组合起来进行测试,验证模块间的接口和交互是否正确 集成测试的目的:发现模块间的接口和交互问题,保证系统的稳定性和可靠性 集成测试的方法:自顶向下、自底向上、混合策略等 集成测试的步骤:模块划分、模块集成、集成测试、回归测试等
系统调试与优化
优化方法:优化算法、数据 结构、代码结构等
据库进行数据 存储和管理
接口:使用 RESTful API 进行前后端数
据交互
安全:使用 HTTPS进行数 据传输加密, 使用身份验证 和授权机制进 行用户身份验 证和权限控制
性能优化:使 用缓存、异步 处理等技术进
行性能优化
系统需求分析
用户需求
员工信息管理:包括员工 基本信息、职位、薪资等
员工考勤管理:记录员工 上下班时间、请假、加班 等信息
系统部署与维护
系统部署方案
硬件需求:服务器、网络设备、存储设备等 软件需求:操作系统、数据库管理系统、应用服务器等 部署步骤:安装操作系统、安装数据库管理系统、安装应用服务器、部署应用系统等 维护方案:定期备份数据、定期检查系统运行情况、定期更新系统软件等
系统运行环境配置
操作系统:Windows、Linux、Mac OS等
技术需求
编程语言:C语言
数据库:SQL Server或MySQL
用户界面:Windows Forms或Web Forms
功能模块:员工信息管理、考勤管理、 薪资管理等
性能要求:响应速度快,数据安全可靠
兼容性:支持Windows操作系统,兼 容主流浏览器
系统设计
数据结构设计
数据类型:包括职工信息、 部门信息、职位信息等
员工绩效管理:记录员工 工作表现、绩效考核等信 息
C语言课程设计 职工信息管理系统
青岛理工大学《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语言课程设计+源代码课程设计报告课程:高级语言课程设计学号:姓名:班级:教师:时间:设计名称:职工信息管理系统设计内容、目的与要求:本设计旨在熟练掌握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语言课程设计报告 职工信息管理系统
case 0: exit(); } printf("\n\n 操作完毕,请再次选择!"); } else printf("\n\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.recor d,one.position,one.wanges,one.tel,one.addr); fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.n um,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr); fclose(fp); }
5 数据删除 【程序】
void delete() { int m,k=0; long a,b; char namekey[8], valid[4]; printf("\n 请输入您要删除的职工姓名:"); scanf("%s",namekey); if((fp=fopen("worker.xls","r+"))==NULL) { printf("\n 不能打开该文件!"); exit(); } while(!feof(fp)) { a=ftell(fp); fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",,one.num,one.sex,one.age,one. record,one.position,one.wanges,one.tel,one.addr); if(strcmp(namekey,)==0) { k=1; break; } } if(k==1) {
c语言职工信息管理系统课程设计
c语言职工信息管理系统 课程设计一、课程目标知识目标:1. 学生能理解C语言中结构体的概念,掌握结构体在职工信息管理中的运用。
2. 学生能掌握文件操作的基本方法,实现对职工信息数据的存储与读取。
3. 学生了解并掌握C语言中字符串处理、数据排序等基本算法。
技能目标:1. 学生能够运用C语言编写简单的职工信息管理系统,实现职工信息的增加、删除、修改和查询功能。
2. 学生能够利用结构体和文件操作,实现数据的持久化存储。
3. 学生能够运用所学知识解决实际问题,提高编程实践能力。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,激发创新精神。
2. 学生能够认识到编程在现实生活中的应用价值,提高对信息技术的认识。
3. 学生在课程实践过程中,培养团队合作意识,提高沟通与协作能力。
课程性质:本课程为C语言编程实践课程,旨在让学生通过职工信息管理系统的设计与实现,掌握C语言的基本知识和编程技能。
学生特点:本课程面向高中生,学生对C语言有一定了解,具备基本的编程能力,但实践经验不足。
教学要求:结合学生特点和课程性质,教师需注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决实际问题的能力。
教学过程中,注重培养学生的自主学习能力和团队合作精神。
通过本课程的学习,使学生能够达到上述课程目标,为后续课程打下坚实基础。
二、教学内容1. 结构体的定义和使用:以职工信息管理系统为例,讲解结构体的定义方法,如何定义职工信息结构体,以及结构体在程序中的使用。
相关教材章节:C语言基础,结构体与共用体。
2. 文件操作:介绍文件的基本操作,如文件的打开、关闭、读写等,结合职工信息管理系统,实现数据的持久化存储。
相关教材章节:文件操作,数据存储。
3. 字符串处理:讲解字符串的基本操作,如字符串的连接、比较、查找等,应用于职工信息管理系统中的输入输出处理。
相关教材章节:字符串处理。
4. 数据排序算法:介绍一种简单的排序算法,如冒泡排序、选择排序等,应用于职工信息的排序显示。
C语言程序设计-职工信息管理系统
C语言课程设计报告职工信息管理系统设计班级:0346502姓名:杨鸣学号:20081003456指导老师:谷老师职工信息管理系统一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
二、具体要求1、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。
2、浏览功能:完成对全部职工信息的显示。
3、查找功能:①完成按职工的职工号查询职工的相关信息,并显示。
②完成按职工的学历查询职工的相关信息,并显示。
4、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。
5、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。
6、退出职工信息管理系统。
三、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。
确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的流程图来描述模块的详细过程。
确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。
四、写课程设计总结课程设计报告要求总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容等。
总设计方案一.系统的总体流程图图1.系统的总体流程图菜单开始根据菜单输入n 的值选择程序保存结束是否继续进行NY5 修改职工信息 2 浏览职工信息 3 查询职工信息 4 删除职工信息6 退出1 录入职工信息二. 为了方便使用结构此系统结构均为全局类型定义struct employee //定义一个职工信息的结构体//{int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];}em[100];三.各模块的功能及实现步骤1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。
C语言课程设计报告职工信息管理系统设计范文
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
分析:我认为链表的使 用正是本程序的最精 彩的地方所在,较数组 而言它的使用带来了 很多优点: (1)空间的 灵活分配,虽然地址不 是连续的,但只要找到 链表的头所有数据都 可以迅速找到( 2 )可 以灵活的插入或删除 元素而不会像数组那 样带来较多数据的移 动
4
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
分析:周密地考虑 到了内存不足以及 职工号已存在导致 的录入失败,给予 用户适当的提示使 得设计更加人性化
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
二、系统设计方案
1.程序采用模块化设计,主函数为程序的入口,各模块独立,可分块调试,各 模块由主函数控制调用。主函数的控制功能通过循环执行一个开关语句来实现。 该开关语句的条件值为调用主菜单函数得到的返回值,根据该值,调用相应的各 功能函数。 2.应用高级语言程序设计中的基本控制结构,如选择和循环等,并且包含对文 件的读、写等基本操作,在软件开发过程中应用了软件工程的基本理论。因此, 系统的设计方法是结构化设计方法,开发手段是 C 语言。 3.源程序运用多个函数,开头先进行函数声明,然后分别定义、调用各函数。
c语言课程设计——职工信息管理系统
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程序设计--设计报告题目:职工信息管理系统班级:学号:姓名:成绩:前言在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程。
本任务是根据给定的数据和程序,应用单向链表处理一个小班学生的信息。
通过整个程序开发的过程,提高综合应用C语言的能力编程和调试能力,为学习软件专业创建较扎实的理论基础和实践基础。
一系统功能和原始数据1系统功能A.建立学生信息表,录入10名学生的信息,并将结果保存在文件student1.txt中B.显示所有学生信息C.给定某学生的学号,删除该学生的信息D.添加一名学生的信息,将其插入到相应位置,使整个学生信息表按学号有序E.给定某学生的学号,修改该学生的信息F.按姓名查询学生信息G.按入学成绩对学生的信息进行排序H.计算并显示学生入学平均成绩,显示入学成绩最高分和最低分的学生信息I.将最后的学生信息存入文件student2.txt中说明:1.学生信息数据项:学号姓名性别年龄院系入学成绩2.录入学生信息时按学号由小到大的顺序录入3.系统功能使用结构数组和单向链表两种方法实现输出记录模块工资管理系统输入记录模块查询记录模块更新记录模块统计记录模块键盘出入文件读入按姓名查询显示所有信息删除记录修改记录排序模块插入记录统计员工数和工资输出到屏幕输出到文件工资管理系统功能模块图2.原始数据工号 姓名 性别部门 职位 工资100 米砂 女 公管学院 学生 500 101 米砾 男 公管学院 学生 500 102 罗斯 女 公管学院 学生 500 103 张满 男 公管学院 学生 500 104林磊男公管学院学生500开始以可读写的方式打开一个数据文件将此文件的内容读出,并存入一个新的结构体类型的数组中调用menu()菜单函数进入while(1)主循环输入0~9中的一数值,选择相应操作输入是否为0判断键值,调用相应函数,完成相应功能是否已对修改进行了存盘调用save()函数,进行写数据文件操作结束105胡水女公管学院学生500106王源女公管学院学生500107李君男公管学院学生500108张清女公管学院学生500109万羽女公管学院学生5003.数据结构本程序定义了结构体emplyee,用于存放职工的基本信息和工资信息。
C语言程序设计—职工信息管理系统设计.doc
C语言程序设计—职工信息管理系统设计1 南京工程学院程序设计课程设计报告职工信息管理系统设计专业学生姓名班级学号指导教师完成日期职工信息管理系统设计目录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,one.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{switch(l) {。
C语言课程设计报告职工信息管理系统[1]
课程设计报告
设计者:苏龙 班级序号:055071-
12
学号:20071001569
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,通力根1保过据护管生高线产中敷工资设艺料技高试术中卷0资不配料仅置试可技卷以术要解是求决指,吊机对顶组电层在气配进设置行备不继进规电行范保空高护载中高与资中带料资负试料荷卷试下问卷高题总中2体2资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况1卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并3术试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽 纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分析: 分析 适当的录入 提示, 更加方便了 用户的录入操作
5
分析:链表 分析 链表、 链表 结构指针的 使用大大方 便了信息的 查找定位。 值得注意的 是判断两字 符串内容是 否相同时需 用 到 strcmp 函数!
p=p->next; } printf(".^_^.查询结束!.^_^.\n"); return NULL; } /*按职工号删除职工信息*/ int del(PLINK p,int id) { message(); printf("按职工号删除职工信息\n"); while(NULL!=p->next) { if(p->next->w.id==id) { 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 id;
开始 主函数 载入模块
录 入 记 录 模 块
浏 览 记 录 模 块
删 除 记 录 模 块
修 改 记 录 模 块
按 姓 名
查 询 记 录 模 块
按 工 号 按 学 历
退 出 程 序 模 块
保存数据模块 保存数据模块 结束
2
程序流程图 程序流程图
三、程序主要代码分析
/*下面定义职工信息结构*/ typedef struct worker { int id; char name[20]; char sex[3]; int age; char edu[50]; int wages; 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;
分析:及时的在程 分析 序结束时释放内 存,避免占用多余 的空间充分显示出 了链表使用的优越 性,占用最小的空 间满足用户更多的 需求
6
分析:此处是我对源 分析 程序的改进处之一, 用此函数调用另外 3 种查询方式使得界面 变得更清晰简单些, 虽然只是小小 switch 函数的使用但会使用
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("请输入要查询的职工姓名:"); scanf("%s",name); findname(pworker,name); break; case 2:printf("请输入要查询的职工学历: "); scanf("%s", str); find_sr(pworker, str); break; case 3:printf("请输入要查询的职工号:"); scanf("%d",&id); findid(pworker,id); break; } printf("\n\n 选择完毕!!!"); } else printf("\t\t\t\t 输入有误!!!"); } /*修改职工信息*/ int modify(PLINK p) { int id; PLINK q; PLINK h = NULL; printf("请输入职工号(数字):"); scanf("%d",&id); h=p->next; while(h) { if(h->w.id==id) { break; } h=h->next;
1
——输出 ——算法
二、系统设计方案
1.程序采用模块化设计,主函数为程序的入口,各模块独立,可分块调试,各 模块由主函数控制调用。主函数的控制功能通过循环执行一个开关语句来实现。 该开关语句的条件值为调用主菜单函数得到的返回值,根据该值,调用相应的各 功能函数。 2.应用高级语言程序设计中的基本控制结构,如选择和循环等,并且包含对文 件的读、写等基本操作,在软件开发过程中应用了软件工程的基本理论。因此, 系统的设计方法是结构化设计方法,开发手段是 C 语言。 3.源程序运用多个函数,开头先进行函数声明,然后分别定义、调用各函数。
Байду номын сангаас
7
分析: 分析 此修改函数是我对 原函数的一个补充, 弥补 了原程序修改功能的缺 失, 但相比较别人的函数 似乎浪费了许多资源, 单 个信息的修改根本不需 要如此大费周章, 急需一 改进——就是对需改进 处的准确定位。 当然相比 较我原本打算的先删除 再录入还是有了一定的 进步之出
职工信息管理系统设计
一、设计任务
课题: 课题:职工信息管理系统设计 职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职 工号不重复) 。是设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作 职工信息录入功能(职工信息用文件保存)——输入 职工信息浏览功能 查询和排序功能 按工资查询 按学历查询等 职工信息删除,修改功能。 补充要求: 补充要求: 1)整个系统均用 c 语言实现; 2)可以利用数组,指针,链表来实现数据结构设计; 3)系统具有输入,显示,查询,删除,排序,插入,保存,读取等基本功 能; 4)系统的各个功能模块都用函数的形式来实现; 5)可以将信息保存在文件中读取出来。
3
分析:我认为链表的使 链表的使 用正是本程序的最精 彩的地方所在,较数组 而言它的使用带来了 很多优点: (1)空间的 灵活分配,虽然地址不 是连续的,但只要找到 链表的头所有数据都 可以迅速找到(2)可 以灵活的插入或删除 元素而不会像数组那 样带来较多数据的移 动
} /*显示程序界面文字*/ void message() { system("color 09f");/*设置当前窗口的背景色和前景色*/ /* 0 = 黑色 8 = 灰色 分析: 分析 界面设计我 1 = 蓝色 9 = 淡蓝色 运用了适当的标 2 = 绿色 A = 淡绿色 点使得界面变得 3 = 浅绿色 B = 淡浅绿色 清晰大方, 背景色 4 = 红色 C = 淡红色 的添加也可给用 5 = 紫色 D = 淡紫色 户新的视觉效果 6 = 黄色 E = 淡黄色 7 = 白色 F = 亮白色*/ system("cls"); printf("\t\t************************************************\n\n"); printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n"); printf("\t\t************************************************\n\n"); printf("\t\t ************** Choose Function *************\n\n"); printf("\t\t ************ 帮助 请输入:0************\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 ************ 退出 请输入:-1***********\n\n"); printf("\t\t************************************************\n\n"); printf("\t\t************************************************\n\n"); } /*录入职工信息*/ int add(PLINK p) { PLINK h = NULL; PLINK q=(PLINK)malloc(sizeof(LINK)); if(NULL==q) { printf("录入失败提示:内存不足!\n"); return -1; } printf("请输入职工号(数字):"); scanf("%d",&q->w.id); h=p->next; while(h)