职工信息管理系统程序设计

合集下载

员工信息管理系统(含附源代码)03

员工信息管理系统(含附源代码)03
printf("\n\t请输入员工姓名:");
scanf("%s",work[i].name);
printf("\n\t请输入员工身份证号:");
scanf("%s",work[i].ID);
printf("\n\t请输入员工性别:");
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
开始选择更新内容i结束开始选择查询内容i结束按性别统计年龄查询函数isum判断两工作号相等isumworkiworki1sumflag1是否继续输入工作号退出删除结束开始输出信息结束开始开始isum输入年龄输出信息结束判断员工的年龄段变量自加开始输入年龄chisum存在员工输出员工信息继续查询退出查询结束身份证排序
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&work[i].birthday.year,&work[i].birthday.month,&work[i].birthday.day);
printf("\n\t请输入员工年龄:");
printf("\t **输入'e'退出列表**\n");
ch=getche();
if(ch=='e')
break;
clrscr();
printf("\t *****员工基本信息列表*****\n");

管理信息系统课程设计(终版)精选全文完整版

管理信息系统课程设计(终版)精选全文完整版

可编辑修改精选全文完整版管理信息系统课程设计(终版)1.1 系统名称本文介绍的系统名称为“企业信息管理系统”。

1.2 系统开发背景随着信息技术的发展,企业管理越来越重视信息化建设。

为了提高企业信息管理的效率和准确性,本系统应运而生。

1.3 选题说明本系统旨在帮助企业实现信息化管理,包括信息管理和财务管理两个方面。

1.4 系统目标本系统的目标是提高企业管理的效率和准确性,降低管理成本,提高企业竞争力。

1.5 系统主要功能本系统主要包括信息管理和财务管理两个方面。

信息管理包括员工信息管理、客户信息管理、供应商信息管理等;财务管理包括财务报表管理、成本管理、收支管理等。

1.6 可行性分析1.6.1 可行性研究的前提在进行可行性研究之前,需要对企业的发展状况、市场竞争情况、管理需求等进行全面分析。

1.6.2 系统的可行性研究通过市场调研和用户需求分析,本系统的开发是可行的。

同时,本系统的开发也符合企业的发展战略和管理需求。

2.1 信息管理信息管理是本系统的核心功能之一,包括员工信息管理、客户信息管理、供应商信息管理等。

通过对信息的集中管理,可以提高信息的准确性和及时性,为企业管理提供有力支持。

2.2 财务管理财务管理是企业管理的重要组成部分,也是本系统的主要功能之一。

通过对财务数据的集中管理和分析,可以帮助企业实现成本控制、收支管理等目标。

3.1 系统功能结构为了更好地了解系统的功能结构,本文进行了功能结构调查和组织结构调查。

通过调查分析,得出了系统的功能结构图。

3.2 业务流程分析业务流程分析是系统设计的重要组成部分,通过对业务流程的分析,可以更好地设计系统的功能和流程。

本文对系统的业务流程进行了详细的分析,并绘制了业务流程图。

3.3 数据流程分析数据流程分析是系统设计的另一个重要组成部分,通过对数据流程的分析,可以更好地设计系统的数据结构和流程。

本文对系统的数据流程进行了详细的分析,并绘制了数据流程图。

企业人事管理系统的设计与实现论文DOC 45页

企业人事管理系统的设计与实现论文DOC 45页

企业人事管理系统的设计与实现论文(DOC 45页)洛阳理工学院毕业设计(论文)题目___企业人事管理系统的设计与实现_姓名______系(部)工程管理系_____专业_经济信息管理___指导教师________2013年5月31日企业人事管理系统的设计与实现摘要企业人事管理系统主要用于对于企业员工档案管理,员工的调动情况的查询及管理,员工工作的评价,员工考勤管理,员工工资管理是便于企业管理者利用计算机高效率完成劳动人事管理的日常事务。

该系统主要利用Visual Basic6.0、Microsoft office Access等工具设计开发完成。

开发过程中采用模块化设计,不同的模块实现了不同的功能。

作为计算机应用的一部分,使用计算机对人事信息进行管理的系统,是一个公司管理及合理分配每个人员,使其发挥其自身最大价值的根本软件。

关键词:人事管理,模块化,Visual basic6.0,Microsoft office AccessThe design and implementation of enterprise personnelmanagement systemABSTRACTEnterprise personnel management system is mainly used in file management for enterprise employees, transfer to the staff query and management, staff evaluation, staff attendance management, employee wages, is advantageous for the enterprise managers use computer efficient complete labor personnel management of daily affairs.The system mainly using Visual Basic and Microsoft office Access tools such as design and development. Development process USES the modular design, different module realizes the different functions. As a part of computer application, using computer to manage the personnel information system, is a management and reasonable distribution of each company personnel, and make it play a maximum value of its fundamental software.KEY WORDS: personnel management, modular, Visual basic6.0, Microsoft office Access目录前言 (1)第1章概述 (2)1.1系统开发背景 (2)1.2 系统的目标和意义 (2)第2章使用工具或开发环境的描述 (4)2.1数据库平台 (4)2.2开发软件 (4)第3章系统分析 (5)3.1 总体的需求分析 (5)3.1.1 需求分析的目标 (5)3.1.2 需求分析的原则 (5)3.2系统的主要功能分析 (5)3.3 数据库需求分析 (6)3.4 数据流程分析 (7)3.5总体功能模块设计 (7)3.6 登录系统结构图 (8)第4章基本设计思想 (10)第5章系统详细设计 (10)5.1 系统E-R图 (11)5.2 数据库设计 (13)5.2.1工资管理数据表 (17)5.2.2考勤管理数据表 (19)5.2.3用户数据表 (22)第6章系统主要界面设计 (23)6.1 系统登录模块设计 (23)6.2 添加用户模块设计 (25)6.3 部门管理模块设计 (25)6.4 考勤记录模块的设计 (26)6.5 员工评价模块设计 (27)6.6 员工档案模块设计 (28)第7章系统测试 (30)结论 (31)谢辞 (32)参考文献 (33)附录 (34)前言人事管理信息系统是典型的信息管理系统,其开发主要包括台后数据库的建立和维护以及前段应用程序的开发俩个方面,对于前者要求建立资料一致性和完整性强,资料安全系好的数据库。

企业员工信息管理系统【范本模板】

企业员工信息管理系统【范本模板】

本科毕业设计说明书企业员工信息管理系统的设计与实现EMPLOYEE INFORMATION MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATION学院(部):专业班级:学生姓名:指导教师:2012年5月25日企业员工信息管理系统的设计与实现摘要现今互联网发展越来越迅速,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选.因此在信息化科技飞速发展的今天,借助于电脑,通过员工信息管理系统管理各部门职工,能为企业人力资源的管理者提供人性化的服务。

同时也能为企业的员工提供一定的方便。

本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了企业员工信息管理的工作效率和企业的信息化的水平.本论文从员工信息管理系统的初步调查开始,详细介绍员工信息管系统的需求分析和数据流程分析,并进行了系统总体结构设计、数据结构和数据库设计、输入输出设计等。

关键词:J2EE,Mysql,struts2,企业员工信息管理EMPLOYEE INFORMATION MANAGEMENT SYSTEMDESIGN AND IMPLEMENTATIONABSTRACTNowadays, the Internet development is fast, bringing people's work and life tremendous convenience with efficiently.Therefore,the rapid development of technology of information technology today, through the use of computers,employee information management system to manage the various departments and workers,to provide personalized service for corporate human resources managers.Also provides a convenience for the employees of the enterprise。

江苏中小学教职工信息管理系统操作说明

江苏中小学教职工信息管理系统操作说明

江苏省中小学教职工信息管理系统操作说明◆安装:(见《安装说明书》第一~十三步)一、导入2009年的信息数据:1、将“××学校.sbw”文件拷贝到“C:\Program Files\Susuo\jsgl_xx”文件夹下(若不在C盘安装,则拷贝到你所安装的目录下)。

2、启动服务:(见《安装说明书》第十四~十五步):3、打开主程序后,执行:菜单5“导入导出”→“数据导入”→按钮“导入”→选择目录下的“××学校.sbw”→按钮“接收”注:如去年的信息在电脑中有保存,就直接进入下一步:信息的输入与修改。

二、信息的输入与修改:1、学校信息的修改:执行:菜单2“数据管理”→“学校信息”→点击底下的按钮“修改”→点击上方3个选项卡,分别修改“基本信息”、“班级和学生”和“编制情况”内容。

2、学校部门信息的修改。

与上条类似,略。

3、教职工信息的修改:执行:菜单2“数据管理”→“教职工信息”⑴、办理减少人员的操作:①、选教师→点击按钮“离校”:以下操作,双击选择或直接输入内容:离校方式:11、离休;12退休;21、系统内调出;22系统外调出;41辞职;42、辞退;51、除名;52开除;99其它。

离校时间:去向地区类别:1、城市;2、县区;3、乡镇;4、农村。

去向地区:320400江苏省常州市;320402常州市天宁区;320404常州市钟楼区;320405常州市戚墅堰区;320411常州市新北区;320412常州市武进区……去向单位性质:10机关;21科研设计;22高等学校;23其他教学单位;29其他事业单位;31国有企业;32三资企业;39其它企业;40部队;99其它。

②、单击“确定”→出现对话框:“离校手续办理成功”→确定即可。

⑵、办理2010年新增人员的操作:执行:单击按钮“增加”→出现对话框,在七个选项卡:“基本情况、工作情况、职务职称、工资福利、受教育情况、奖惩考核、社会关系和履历”各项中填写信息。

企业员工信息管理系统设计

企业员工信息管理系统设计

企业员工信息管理系统设计毕业设计(论文)企业员工信息管理系统设计教学系:指导教师:专业班级:学生姓名:二零一零年五月注:1. 开题报告应根据教师下发的毕业设计(论文)任务书,在教师的指导下由学生独立撰写,在毕业设计开始后三周内完成;2.设计的目的及意义至少800字,基本内容和技术方案至少400字;3.指导教师意见应从选题的理论或实际价值出发,阐述学生利用的知识、原理、建立的模型正确与否、学生的论证充分否、学生能否完成课题,达到预期的目标。

郑重声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。

本人完全意识到本声明的法律后果由本人承担。

本人签名:日期:目录摘要 (I)ABSTRACT.............................................................................................................................................................. I I 1 绪论 (1)1.1 研究背景 (1)1.2 本课题研究现状 (1)2 企业信息管理系统分析 (3)2.1需求分析 (3)2.2 技术可行性 (4)2.3 环境可行性分析........................................................................................................... 错误!未定义书签。

2.4 系统结构可行性分析................................................................................................... 错误!未定义书签。

C语言课程设计报告:职工信息管理系统程序设计

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语言课设职工信息管理系统

课程设计任务书目录一、题目要求 (1)二、算法设计 (3)三、编程实现 (6)四、结果分析 (13)五、参考文献 (14)一、题目要求题目名称:设计字符串比较的函数和销售员业绩管理程序内容:1. 有两个字符串,各有10个字符,是编程完成如下功能:(1)分别找出两个字符串中最大的字符元素;(2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等于的次数。

2. 销售员业绩管理程序主要用结构体数组实现,用结构体表示每项记录,包含数据为:编号、姓名、销售产品名、产品单价、销售数量、销售额。

其中销售额通过计算得到,计算公式:销售额=产品单价*销售数量设计各个函数,分别实现以下功能:(1)录入:完成业绩信息的输入,最好是追加方式;(2)删除:完成业绩信息的删除;(3)修改:允许对已经录入的数据重新进行编辑、修改;(4)显示:显示所有业绩信息(多者可分页显示) ,可以根据某种条件显示,如出销售额大小顺序;(5)查询:a) 输入姓名,显示该销售员的销售记录,并计算销售总额;c) 输入产品名,显示该产品的销售记录及总量;(6)统计: 统计所有销售员的销售总额,以图形显示比较结果,如下:Jack |**********Marry |*******************John |**************(7)退出程序。

设计菜单,通过选择菜单调用以上各函数。

要求:利用C语言编写上述程序,开发环境可采用Turbo C 2.0 或Visual C++ 6.0等。

二、算法设计1. 有两个字符串,各有10个字符,是编程完成如下功能:(1)分别找出两个字符串中最大的字符元素;(2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等于的次数(第一题流程图)2. 销售员业绩管理程序主要用结构体数组实现,用结构体表示每项记录,包含数据为:编号、姓名、销售产品名、产品单价、销售数量、销售额。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

引言通过大一下学期对C语言的学习,了解到了很多C语言的相关知识。

学习的过程有很多困惑但是当自己能够独立的看懂,能够独立的完成一个简单的程序时,心中就会收获无限的喜悦和成就感。

我可以看懂一些简单的程序,编写一些简单的程序,更多的是学会了一种思想——编程,它让我去思考很多日常生活中的事物是怎样通过一个个小小的函数实现其功能的,激发我探究的兴趣,更让我认真学习C语言的程序设计。

C语言是在国内外广泛使用的一种计算机语言。

C语言简洁紧凑、使用灵活方便、运算符丰富、适用范围大、可移植性好。

它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

在这次的课程设计中我将通过亲自设计程序,让自己熟悉C语言操作,更熟练的掌握C语句。

初步体会编程的过程,在不断的调试中获得最为完整的程序,为将来的程序深入学习打下基础和培养兴趣。

1 功能简介和设计要求1.1程序功能简介可以向文件中录入、删除、添加、查询职工信息,也可以从文件中导出来浏览1.2程序设计要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计职工信息管理系统,使之能提供以下功能:系统以菜单方式工作职工信息录入功能(职工信息用文件保存)--输入职工信息浏览功能--输出查询信息功能:(至少一种查询方式) --算法按职工号查询按学历查询按电话查询职工信息删除、添加功能2 程序总体设计框图:用键盘输入职工信息:将信息写入指定文本文件:将信息导出放在结构数组em 中:将所有信息显示在屏幕上 :输入职工号显示信息 :输入名字显示信息 :输入学历显示信息:删除原有的职工信息:添加新的职工信息3 主要函数介绍主函数:main()显示系统工作菜单,罗列该系统所有功能。

先声明所有将会调用到的函数名。

再运用选择函数switch 即可根据使用者所输入的功能代号进入对应的功能程序。

亮点:定义一个全局变量*p 和全局变量a。

其中a表示当前系统中职工人数,p指向a的地址,追踪人数变化,这样在添加或者删除导致人数变化后,浏览函数display()能够正确显示出当前人数的职工信息。

宏定义define N指定首次输入的职工人数,可根据不同需要随时更改。

输入函数:void input()定义一个结构struct employee和数组em【N】用来储存N个职工的所有信息(职工号em【i】number、姓名em【i】name、性别em【i】sex、年龄em【i】age、学历em【i】xueli、工资em【i】wage、住址em【i】address、电话em【i】telephone)。

通过for循环输入所有职工信息。

用printf语句提示需要输入的内容,接着用scanf语句输入相应内容。

输入完毕后套用保存函数save(N)将所输入的信息写入指定文件。

保存函数:void save(int m)定义文件指针fp,用fopen"只写"打开指定在D盘的“d://bbb.txt”文本文件。

首先用if语句判断文件是否打开成功,若fopen返回值不为0,则可继续下面操作。

用for循环通过fprintf语句将结构数组em中的内容写入保存在D盘的文本文件里面。

形参m指需要写入文件的职工人数。

最后关闭文件。

!=0导出函数:void load(int b)首先判断fopen"只读"打开“d://bbb.txt”是否成功,若其返回值不为零,继续下面操作。

用for循环通过fscanf语句将文件中的职工信息取出放到em结构数组里面。

形参b指需要导出的职工人数。

最后关闭文件。

图同上。

4 功能模块函数设计和调试4.1功能模块函数设计在整个程序的编译过程中,在调试的时候出现了好多的错误和警告,经过认真的分析和修改都可以解决,但是其中遇到最大的问题是所有程序代码编完放在一起后,虽然能够成功运行,但是还是出现了一些小问题,就是在调用随机分配函数时职工的工号不随机分配,每次到了自动分配工号的时候都会跳过那一步就直接进行下一环节输入了。

这使我百思不得其解,后来我在网上查询了好多资料后终于明白了,原来在使用随机分配函数时首先要调用随机分配函数所在的函数库,这样才能够正常使用。

使用时如果职工人数发生变化,会导致文件后部出现乱码的现象。

若要使每次运行都正常,必须在人数改变后退出程序,修改宏定义N 的值。

这样很不方便,不能够连续运行。

为解决这一大问题,最后我想到了定义一个全局变量,用来追踪链接最新的人数。

特别是删除和添加这两个会导致人数变化的函数中,全局变量p起了很大作用。

经过一边修改一边调试,最终可以成功的用p串联整个函数,在连续运行时,总能根据最新的人数调用各个函数。

另外在串联所有函数时,调试提示出错:有以下几个函数:“search;srand;display;basic;types”解决:在函数名前加void指明类型。

整个程序代码是分块书写的,每个函数都可以独立运行。

只有输入函数查询菜单函数写得很顺利,一次性就能够成功运行,其他函数在调试过程中或多或少都出现了问题。

保存函数save()在调试和链接的时候都没有出现错误提示,但在运行的时候出现了问题。

写入指定位置的文件,打开后总会有乱码。

与c语言课本上的例题对照后发现,在存储文件时一定要指定文件的存储类型。

这样才能够正确的进行存储,不会出现乱码的现象。

导出函数load()遇到两个问题。

1是为方便直接将保存函数复制过来进行修改时,忘了修改文件的打开方式,不能运行。

经过多次检查后终于发现了,解决:将只写改为只读就ok了。

2是用fscanf语句时,漏写地址符。

调试和链接都没问题,但点击运行后,总出现一个提示出错的蓝色小窗口。

经过老师的提示发现了错误的所在。

解决方法:在em[i].name 等之前加上取地址符就可以解决。

在进行职工信息录入的时候一定要注意中文和英文之间的切换,不然的话会出现无法正确的输入和跳转现象。

4.2 程序调试4.2.1 原始数据{ int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];long int tel;}em[100]; /*定义一个结构体*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定义各函数*/void menu() /*菜单函数*/{ printf(" ☆☆☆C语言程序设计☆☆☆\n");printf("\n");printf(" ∮机设1401班张凯凯∮\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");}void main(){ menu(); /*调用菜单函数*/int n,flag;char a;do{ printf("请选择你需要操作的步骤(1--7):\n");scanf("%d",&n);if(n>=1&&n<=7){ flag=1;break; }else{ flag=0;printf("您输入有误,请重新选择!");}} while(flag==0);while(flag==1){ switch(n){ case 1:printf(" ◆◆◆输入职工信息◆◆◆\n");printf("\n");input();break;case 2:printf(" ◆◆◆浏览职工信息◆◆◆\n");printf("\n");display();break;case 3:printf(" ◆◆◆按职工号查询职工信息◆◆◆\n");printf("\n");search();break;case 4:printf(" ◆◆◆删除职工信息◆◆◆\n");printf("\n");del();break;case 5:printf(" ◆◆◆添加职工信息◆◆◆\n");printf("\n");add();break;case 6:printf(" ◆◆◆修改职工信息◆◆◆\n");printf("\n");modify();break;case 7:exit(0);break;default :break;}getchar();printf("\n");printf("是否继续进行(y or n):\n");scanf("%c",&a);if(a=='y'){flag=1;system("cls"); /*清屏*/menu(); /*调用菜单函数*/printf("请再次选择你需要操作的步骤(1--6):\n");scanf("%d",&n);printf("\n");} elseexit(0);}}void input() /*录入函数*/{int i,m;printf("请输入需要创建信息的职工人数(1--100):\n");scanf("%d",&m);for (i=0;i<m;i++){printf("职工号:");srand((int)time(0));em[i].num=rand()%10000+20140000;if(em[i].num!=em[i-1].num)printf("%8d ",em[i].num);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女m--男): ");scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%ld",&em[i].tel);printf("\n");}printf("\n创建完毕!\n");save(m);}void save(int m) /*保存文件函数*/{int i;FILE*fp;if ((fp=fopen("employee_list","wb"))==NULL) /*创建文件并判断是否能打开*/ {printf ("cannot open file\n");exit(0);}for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() /*导入函数*/{FILE*fp;int i=0;if((fp=fopen("employee_list","rb"))==NULL){printf ("cannot open file\n");exit(0);}else{do{fread(&em[i],sizeof(struct employee),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}4.2.2 调试过程5 设计心得与总结:经过一学期的C语言学习,我们掌握了C语言的基础知识,能够读懂别人用c语言设计编译的程序。

相关文档
最新文档