案例二 用VC++制作一个教职工管理系统

合集下载

教师信息管理c语言程序设计

教师信息管理c语言程序设计

教师信息管理c语言程序设计教师信息管理是一件非常重要的事情,一个好的教师信息管理系统可以有效地帮助学校管理教师的信息,包括基本信息、工作情况、任职情况等等。

本篇文章将介绍如何用C 语言设计一个教师信息管理系统。

首先,我们需要定义一些数据结构来存储教师的信息。

这些数据结构可以包括结构体和数组。

例如,我们可以定义一个教师的结构体:typedef struct{char name[20]; //教师姓名char gender; //性别int age; //年龄char department[20]; //教师所在院系char position[20]; //职称int salary; //工资} Teacher;然后我们可以用一个数组来存储多个教师的信息:Teacher teachers[100];这样,我们就可以存储100个教师的信息了。

接下来,我们需要设计一些函数来实现教师信息的增加、删除、修改和查询。

这些函数可以包括:1. void add_teacher():用于添加教师信息。

void add_teacher(){Teacher teacher;printf("请输入教师姓名:");scanf("%s", );printf("请输入教师性别:");scanf(" %c", &teacher.gender);printf("请输入教师年龄:");scanf("%d", &teacher.age);printf("请输入教师所在院系:");scanf("%s", teacher.department);printf("请输入教师职称:");scanf("%s", teacher.position);printf("请输入教师工资:");scanf("%d", &teacher.salary);teachers[count++] = teacher; //将教师信息添加到数组中}至此,我们已经完成了一个基本的教师信息管理系统。

c语言课设职工管理系统

c语言课设职工管理系统

c语言课设职工管理系统《C语言课设职工管理系统》在当前社会中,职工管理对于一个企事业单位来说至关重要。

如何高效地管理职工,是每个企事业单位都要面临的问题。

为了解决这一问题,我们本次课程设计选择了使用C语言来开发一个职工管理系统。

下面将一步一步回答与该系统相关的问题。

1.系统需求分析人力资源管理系统对于企事业单位来说十分重要,所以我们的职工管理系统必须具备以下基本功能:-能够录入、修改和删除职工信息;-能够查询和打印职工信息表;-能够计算和输出职工薪资;-具备良好的用户操作界面。

2.系统设计与实现在设计与实现过程中,我们可以使用结构体来表示职工的信息,如下所示:cs t r u c t E m p l o y e e{c h a r n a m e[20];职工姓名i n t a g e;职工年龄c h a r g e nde r[5];职工性别f l o a t s a l a r y;职工薪资};同时,我们还可以设计一个数组来存储多个职工的信息:cs t r u c t E m p l o y e ee m p l o y e e s[M A X_E M P L O Y E E S];职工信息数组在实现过程中,我们可以使用菜单功能来提供用户操作选项,并根据用户选择进行相应的操作。

下面是一个示例菜单代码:cw h i l e(1){p r i n t f("职工管理系统\n");p r i n t f("1.录入职工信息\n");p r i n t f("2.修改职工信息\n");p r i n t f("3.删除职工信息\n");p r i n t f("4.查询职工信息\n");p r i n t f("5.计算薪资\n");p r i n t f("6.打印职工信息表\n");p r i n t f("0.退出系统\n");p r i n t f("请输入你的选择:");s c a n f("d",&c h o i c e);s w i t c h(c h o i c e){c a s e1:录入职工信息的代码逻辑b r e a k;c a s e2:修改职工信息的代码逻辑b r e a k;c a s e3:删除职工信息的代码逻辑b r e a k;c a s e4:查询职工信息的代码逻辑b r e a k;c a s e5:计算薪资的代码逻辑b r e a k;c a s e6:打印职工信息表的代码逻辑b r e a k;c a s e0:退出系统的代码逻辑b r e a k;d e f a u l t:p r i n t f("无效的选择,请重新输入!\n");b r e a k;}}3.系统测试与调试在系统功能完成后,我们要进行测试与调试,以确保系统的稳定性和正确性。

原创c语言职工管理系统课程设计报告

原创c语言职工管理系统课程设计报告

原创C语言职工管理系统课程设计报告1. 引言职工管理系统是一个可以对职工信息进行录入、查询、修改和删除的软件系统。

在这个项目中,我们将使用C语言来实现这个系统。

通过设计这个项目,我们旨在提高学生们对C语言的理解和应用能力。

2. 项目背景和目的职工管理系统是一个常见的实际应用场景,他在许多企事业单位中都有使用。

通过设计和实现这个系统,我们可以帮助管理人员更有效地管理职工信息,提高管理效率。

我们的目标是设计一个简单易用、功能完善的职工管理系统,可以实现以下功能:职工信息录入、职工信息查询、职工信息修改和职工信息删除。

3. 系统设计我们将使用C语言来实现职工管理系统。

系统设计主要包括以下几个方面的功能模块:3.1 菜单功能模块在这个模块中,我们将设计一个菜单来显示系统的功能选项。

用户可以通过输入相应的选项来进入不同的功能模块。

3.2 职工信息录入功能模块在这个模块中,用户可以输入职工的信息,包括职工编号、职工姓名、职工性别、职工年龄等。

系统将会将这些信息保存到一个文件中以后的查询和修改操作。

3.3 职工信息查询功能模块在这个模块中,用户可以输入职工的编号或者姓名来查询职工的信息。

系统将会根据用户输入的信息在文件中查找相应的职工信息并显示出来。

3.4 职工信息修改功能模块在这个模块中,用户可以输入职工的编号来修改职工的信息。

用户需要输入修改后的信息,并将更新后的信息保存到文件中。

3.5 职工信息删除功能模块在这个模块中,用户可以输入职工的编号来删除职工的信息。

系统将会在文件中查找相应的职工信息并删除。

4. 系统实现系统实现主要有以下几个步骤:4.1 设计程序结构首先,我们需要设计系统的程序结构。

我们将使用函数来实现不同功能模块,通过调用不同的函数来实现系统不同的功能。

4.2 实现菜单功能模块我们将使用printf函数来输出菜单,并使用scanf函数来获取用户的输入。

根据用户的输入,我们将使用switch语句来进入相应的功能模块。

C语言 课程设计 教师工资管理系统(职工工资管理系统)

C语言 课程设计 教师工资管理系统(职工工资管理系统)

课程设计教师工资管理系统运行平台:VC6.0(其他平台未经测试,不一定保证有效)制作者:弓箭中南大学信息科学与工程学院源代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define LEN sizeof(struct teacher)struct teacher{int num;char name[20];char sex[20];char workplace[50];char address[50];long phone;double de_salary;double de_jintie;double de_shenghuobutie;double yingfa_salary;double cost_phone;double cost_water_elec;double cost_rent;double cost_tax;double cost_weisheng;double cost_gongjijin;double cost_all;double shifa_salary;struct teacher *next;};/***********************************读取函数************************************/ struct teacher *load(){struct teacher *p1,*p2,*head;FILE *fp;int i=1;if((fp=fopen("save","rb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();return (NULL);}else{head=NULL;p1=(struct teacher *)malloc(LEN);while (fread(p1,LEN-4,1,fp)==1){if(i==1){head=p1;p2=p1;i=2;}else{p2->next=p1;p2=p2->next;}p1=(struct teacher *)malloc(LEN);}p2->next=NULL;free(p1);fclose(fp);return(head);}}/**********************************欢迎菜单函数*************************************/ void welcome(){printf("\n\n\n >>>>>欢迎使用教师工资管理系统Beta1.2<<<<<\n");printf(" *******************************************************\n");printf(" * C语言课程设计教师工资管理系统*\n");printf(" * 班级:电气信息类1001班学号:0909100119 *\n");printf(" * 姓名:弓箭*\n");printf(" *******************************************************\n");printf("\n\n 按下任意键进入系统...");getch();system("cls");}/**********************************制作人员名单*************************************/void list(){system("cls");printf("\n\n\n >>>>>版权所有侵权必究<<<<<\n");printf("*******************************************************************************\n");printf("* 学校(College): 中南大学Central South University *\n");printf("* 软件名称(Software):教师工资管理系统Teacher's Salary Managing System *\n");printf("* 版本号(Edition): Beta1.2 *\n");printf("* 制作人(Producer):弓箭James *\n");printf("* 所在班级(Class):电气信息类1001班Electric Information 1001 *\n");printf("* 所在学院(Institute):信息科学与工程学院Information Engineering Institute*\n");printf("*******************************************************************************\n");printf(" >>>>>ILLEGAL COPY BANNED<<<<<\n");printf("\n\n 按下任意键返回主菜单...");getch();}/***********************************菜单函数*****************************************/int menu(){int i;printf("\n\n\n >>>>>欢迎使用教师工资管理系统Beta1.2<<<<<\n");printf(" *******************************************************\n");printf(" * 1.输入教师信息*\n");printf(" * 2.插入教师信息*\n");printf(" * 3.修改教师信息*\n");printf(" * 4.删除教师信息*\n");printf(" * 5.浏览教师信息*\n");printf(" * 6.显示制作人员名单*\n");printf(" * 7.退出系统*\n");printf(" *******************************************************\n");printf(" 请输入你想要的操作:");scanf("%d",&i);getchar();return i;}/***********************************插入函数*****************************************/void input(){struct teacher *head,*p1,*p2,*p3,*px;int i,t;FILE *fp;char k,n='n',num[30],name[20];p1=p2=p3=px=(struct teacher *)malloc(LEN);if((head=load())!=NULL){do{n='n';printf(" 请输入要插入的教师信息:\n");printf(" ------------------------------\n");printf(" 请输入教工号:");gets(num);px->num=atoi(num);printf(" 请输入姓名:");gets(px->name);printf(" 请输入性别:");gets(px->sex);printf(" 请输入单位名称:");gets(px->workplace);printf(" 请输入家庭住址:");gets(px->address);printf(" 请输入联系电话:");gets(num);px->phone=atoi(num);printf(" 请输入基本工资:");gets(num);px->de_salary=atof(num);printf(" 请输入津贴:");gets(num);px->de_jintie=atof(num);printf(" 请输入生活补贴:");gets(num);px->de_shenghuobutie=atof(num);printf(" 请输入电话费:");gets(num);px->cost_phone=atof(num);printf(" 请输入水电费:");gets(num);px->cost_water_elec=atof(num);printf(" 请输入房租:");gets(num);px->cost_rent=atof(num);printf(" 请输入个人所得税:");gets(num);px->cost_tax=atof(num);printf(" 请输入卫生费:");gets(num);px->cost_weisheng=atof(num);printf(" 请输入公积金:");gets(num);px->cost_gongjijin=atof(num);px->yingfa_salary=px->de_salary+px->de_jintie+px->de_shenghuobutie;px->cost_all=px->cost_phone+px->cost_water_elec+px->cost_rent+px->cost_tax+px->cost_weisheng+px->cost_go ngjijin;px->shifa_salary=px->yingfa_salary-px->cost_all;printf(" 数据输入完毕,按下任意键继续...");getch();system("cls");printf("\n\n\n >>>>>>>>>>> 插入教师信息<<<<<<<<<<<\n");printf(" *******************************************************\n");printf(" * 1.输入教师号*\n");printf(" * 2.输入姓名*\n");printf(" * 3.返回上级菜单*\n");printf(" *******************************************************\n");printf(" 请选择插入方式:");scanf("%d",&i);getchar();while (i<1||i>3){printf(" 输入有误!请重新输入:");scanf("%d",&i);getchar();}switch(i){case 1:printf(" 请输入要插入在哪条数据后面:");scanf("%d",&t);getchar();p1=head;while (p1->num!=t){if (p1->next!=NULL){ p1=p1->next;}else{printf(" 查找不到相关数据!\n");break;}}if (p1->num==t){printf("-----------------------------要插入的信息如下:--------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",px->num,px->name,px->sex,px->workplace,px->address,px ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf\n",px->cost_phone,px->cost_water_ele c,px->cost_rent,px->cost_tax,px->cost_weisheng,px->cost_gongjijin,px->cost_all);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",px->de_salary,px->de_jintie,px->de_shenghuobutie,px->yingfa_salary,px->shifa_salary);printf("-------------------------------------------------------------------------------\n");printf(" 确定插入吗?(y或n):");scanf("%c",&k);getchar();}if (k=='y'||k=='Y'){if (p1->num==t){if(p1==head)/*如果插入点为头指针*/{p3=p1->next;p1->next=px;px->next=p3;p2=head;}else if(p1->next==NULL)/*如果插入点为末尾指针*/{p3=p1;p1=head;p2=head;while(p1->next!=p3){p1=p1->next;}p1=p1->next;p1->next=px;px->next=NULL;}else{/*如果插入点为中间指针*/p3=p1;p1=head;p2=head;while(p1->next!=p3){p1=p1->next;}p1=p1->next;p3=p1->next;px->next=p3;p1->next=px;}if((fp=fopen("save","wb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();}else{do{fwrite(p2,LEN-4,1,fp);if(p2->next!=NULL)p2=p2->next;}while(p2->next!=NULL);if(p2!=head)fwrite(p2,LEN-4,1,fp);}fclose(fp);printf(" 插入成功!按下任意键继续...");getch();}}else {printf(" 插入已被取消!按下任意键继续...");getch();}break;case 2:printf(" 请输入要插入的教师姓名:");gets(name);p1=head;while (strcmp((p1->name),name)!=0){if (p1->next!=NULL)p1=p1->next;else{printf(" 查找不到相关数据!\n");break;}}if (strcmp((p1->name),name)==0){printf("-----------------------------要插入的信息如下:--------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1 ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_al l);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);printf("-------------------------------------------------------------------------------\n");printf(" 确定插入吗?(y或n):");scanf("%c",&k);getchar();}if (k=='y'||k=='Y'){if (strcmp((p1->name),name)==0){if(p1==head)/*如果插入点为头指针*/{p1->next=px;p2=head;}else if(p1->next==NULL)/*如果插入点为末尾指针*/{p3=p1;p1=head;p2=head;while(p1->next!=p3){p1=p1->next;}p1=p1->next;p1->next=px;px->next=NULL;}else{/*如果插入点为中间指针*/p3=p1;p1=head;p2=head;while(p1->next!=p3){p1=p1->next;}p1=p1->next;p1->next=px;p3=p3->next;px->next=p3;}if((fp=fopen("save","wb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();}else{do{fwrite(p2,LEN-4,1,fp);if(p2->next!=NULL)p2=p2->next;}while(p2->next!=NULL);if(p2!=head)fwrite(p2,LEN-4,1,fp);}fclose(fp);printf(" 插入成功!按下任意键继续...");getch();}}else {printf(" 插入已被取消!按下任意键继续...");getch();}break;case 3:break;default :break;}if (i!=3){printf("\n 继续插入其他教师的信息吗?(y或n)");scanf("%c",&n);getchar();}}while((n=='y'||n=='Y')&&i!=3);}printf(" 数据插入成功!按下任意键返回主菜单...");getch();getchar();}/***********************************输入函数*****************************************/void insert(){FILE *fp;char m,num[30];struct teacher *p1;p1=(struct teacher *)malloc(LEN);if((fp=fopen("save","ab"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();}else{printf(" 请输入教师信息:\n");do{printf(" ------------------------------\n");printf(" 请输入教工号:");gets(num);p1->num=atoi(num);printf(" 请输入姓名:");gets(p1->name);printf(" 请输入性别:");gets(p1->sex);printf(" 请输入单位名称:");gets(p1->workplace);printf(" 请输入家庭住址:");gets(p1->address);printf(" 请输入联系电话:");gets(num);p1->phone=atoi(num);printf(" 请输入基本工资:");gets(num);p1->de_salary=atof(num);printf(" 请输入津贴:");gets(num);p1->de_jintie=atof(num);printf(" 请输入生活补贴:");gets(num);p1->de_shenghuobutie=atof(num);printf(" 请输入电话费:");gets(num);p1->cost_phone=atof(num);printf(" 请输入水电费:");gets(num);p1->cost_water_elec=atof(num);printf(" 请输入房租:");gets(num);p1->cost_rent=atof(num);printf(" 请输入个人所得税:");gets(num);p1->cost_tax=atof(num);printf(" 请输入卫生费:");gets(num);p1->cost_weisheng=atof(num);printf(" 请输入公积金:");gets(num);p1->cost_gongjijin=atof(num);p1->yingfa_salary=p1->de_salary+p1->de_jintie+p1->de_shenghuobutie;p1->cost_all=p1->cost_phone+p1->cost_water_elec+p1->cost_rent+p1->cost_tax+p1->cost_weisheng+p1->cost_go ngjijin;p1->shifa_salary=p1->yingfa_salary-p1->cost_all;fwrite(p1,LEN-4,1,fp);printf(" 输入下一个?(y或n)");m=getchar();if(m!='y'&&m!='Y'){printf(" 数据保存成功!按下任意键返回主菜单...");getch();}getchar();}while (m=='y'||m=='Y');}fclose(fp);}/***********************************修改函数*****************************************/ void modify(){struct teacher *head,*p1,*p2;int i;FILE *fp;char m='n',n='n',num2[30];p1=head=(struct teacher *)malloc(LEN);if((head=load())!=NULL){do{int num=0;char name[20];p1=head;system("cls");printf("\n\n\n >>>>>>>>>>> 修改教师信息<<<<<<<<<<<\n");printf(" *******************************************************\n");printf(" * 1.输入教师号*\n");printf(" * 2.输入姓名*\n");printf(" * 3.返回上级菜单*\n");printf(" *******************************************************\n");printf(" 请选择修改方式:");scanf("%d",&i);getchar();while (i<1||i>3){printf(" 输入有误!请重新输入:");scanf("%d",&i);getchar();}switch(i){case 1:printf(" 请输入要修改的教师号:");scanf("%d",&num);getchar();while (p1->num!=num){if (p1->next!=NULL)p1=p1->next;else{printf(" 查找不到相关数据!\n");break;}}if (p1->num==num){system("cls");printf("\n\n\n >>>>>欢迎使用教师工资管理系统Beta1.2<<<<<\n");printf("----------------------------------原信息如下:---------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1 ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf\n",p1->cost_phone,p1->cost_water_ele c,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);printf("-------------------------------------------------------------------------------\n");printf(" *******************************************************\n");printf(" * 1.教师号 2.姓名*\n");printf(" * 3.性别 4.单位名称*\n");printf(" * 5.家庭住址 6.联系电话*\n");printf(" * 7.基本工资8.津贴*\n");printf(" * 9.生活补贴10.电话费*\n");printf(" * 11.水电费12.房租*\n");printf(" * 13.所得税14.卫生费*\n");printf(" * 15.公积金*\n");printf(" *******************************************************\n");do{printf(" 请选择要修改的数据:");scanf("%d",&i);getchar();while (i>15||i<1)printf(" 输入有误!请重新输入:");scanf("%d",&i);getchar();}switch(i){case 1:printf(" 请输入新教师号:");gets(num2);p1->num=atoi(num2);break;case 2:printf(" 请输入新姓名:");gets(p1->name);break;case 3:printf(" 请输入新性别:");gets(p1->sex);break;case 4:printf(" 请输入新单位名称:");gets(p1->workplace);break;case 5:printf(" 请输入新家庭住址:");gets(p1->address);break;case 6:printf(" 请输入新联系电话:");gets(num2);p1->phone=atoi(num2);break;case 7:printf(" 请输入新基本工资:");gets(num2);p1->de_salary=atof(num2);break;case 8:printf(" 请输入新津贴:");gets(num2);p1->de_jintie=atof(num2);break;case 9:printf(" 请输入新生活补贴:");gets(num2);p1->de_shenghuobutie=atof(num2);break;case 10:printf(" 请输入新电话费:");gets(num2);p1->cost_phone=atof(num2);break;case 11:printf(" 请输入新水电费:");gets(num2);p1->cost_water_elec=atof(num2);break;case 12:printf(" 请输入新房租:");gets(num2);p1->cost_rent=atof(num2);break;case 13:printf(" 请输入新所得税:");gets(num2);p1->cost_tax=atof(num2);break;case 14:printf(" 请输入新卫生费:");gets(num2);p1->cost_weisheng=atof(num2);break;case 15:printf(" 请输入新公积金:");gets(num2);p1->cost_gongjijin=atof(num2);break;default:break;}p1->yingfa_salary=p1->de_salary+p1->de_jintie+p1->de_shenghuobutie;p1->cost_all=p1->cost_phone+p1->cost_water_elec+p1->cost_rent+p1->cost_tax+p1->cost_weisheng+p1->cost_go ngjijin;p1->shifa_salary=p1->yingfa_salary-p1->cost_all;printf(" 继续修改其他数据吗?(y或n):");scanf("%c",&m);getchar();}while (m=='y'||m=='Y');p2=head;if((fp=fopen("save","wb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();}elsefwrite(head,LEN-4,1,fp);do{p2=p2->next;fwrite(p2,LEN-4,1,fp);}while(p2->next!=NULL);printf("------------------------------修改后数据如下:---------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1 ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_al l);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);printf("-------------------------------------------------------------------------------\n");}fclose(fp);}break;case 2:printf(" 请输入要修改的教师姓名:");gets(name);while (strcmp(p1->name,name)!=0){if (p1->next!=NULL)p1=p1->next;else{printf(" 查找不到相关数据!\n");break;}}if (strcmp(p1->name,name)==0){system("cls");printf("\n\n\n >>>>>欢迎使用教师工资管理系统Beta1.2<<<<<\n");printf("----------------------------------原信息如下:---------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1 ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_al l);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);printf("-------------------------------------------------------------------------------\n");printf(" *******************************************************\n");printf(" * 1.教师号 2.姓名*\n");printf(" * 3.性别 4.单位名称*\n");printf(" * 5.家庭住址 6.联系电话*\n");printf(" * 7.基本工资8.津贴*\n");printf(" * 9.生活补贴10.电话费*\n");printf(" * 11.水电费12.房租*\n");printf(" * 13.所得税14.卫生费*\n");printf(" * 15.公积金*\n");printf(" *******************************************************\n");do{printf(" 请选择要修改的数据:");scanf("%d",&i);getchar();while (i>15||i<1){printf(" 输入有误!请重新输入:");scanf("%d",&i);getchar();}switch(i){case 1:printf(" 请输入新教师号:");gets(num2);p1->num=atoi(num2);break;case 2:printf(" 请输入新姓名:");gets(p1->name);break;case 3:printf(" 请输入新性别:");gets(p1->sex);break;case 4:printf(" 请输入新单位名称:");gets(p1->workplace);break;case 5:printf(" 请输入新家庭住址:");gets(p1->address);break;case 6:printf(" 请输入新联系电话:");gets(num2);p1->phone=atoi(num2);break;case 7:printf(" 请输入新基本工资:");gets(num2);p1->de_salary=atof(num2);break;case 8:printf(" 请输入新津贴:");gets(num2);p1->de_jintie=atof(num2);break;case 9:printf(" 请输入新生活补贴:");gets(num2);p1->de_shenghuobutie=atof(num2);break;case 10:printf(" 请输入新电话费:");gets(num2);p1->cost_phone=atof(num2);break;case 11:printf(" 请输入新水电费:");gets(num2);p1->cost_water_elec=atof(num2);break;case 12:printf(" 请输入新房租:");gets(num2);p1->cost_rent=atof(num2);break;case 13:printf(" 请输入新所得税:");gets(num2);p1->cost_tax=atof(num2);break;case 14:printf(" 请输入新卫生费:");gets(num2);p1->cost_weisheng=atof(num2);break;case 15:printf(" 请输入新公积金:");gets(num2);p1->cost_gongjijin=atof(num2);break;default:break;}p1->yingfa_salary=p1->de_salary+p1->de_jintie+p1->de_shenghuobutie;p1->cost_all=p1->cost_phone+p1->cost_water_elec+p1->cost_rent+p1->cost_tax+p1->cost_weisheng+p1->cost_go ngjijin;p1->shifa_salary=p1->yingfa_salary-p1->cost_all;printf(" 继续修改其他数据吗?(y或n):");scanf("%c",&m);getchar();}while (m=='y'||m=='Y');p2=head;if((fp=fopen("save","wb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();}else{fwrite(head,LEN-4,1,fp);do{p2=p2->next;fwrite(p2,LEN-4,1,fp);}while(p2->next!=NULL);printf("------------------------------修改后数据如下:---------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1 ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_al l);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);printf("-------------------------------------------------------------------------------\n");}fclose(fp);}break;case 3:break;default :break;}if (i!=3){printf("\n 继续修改其他教师的信息吗?(y或n)");scanf("%c",&n);}}while((n=='y'||n=='Y')&&i!=3);}}/***********************************删除函数*****************************************/void deletes(){struct teacher *head,*p1,*p2,*p3;int i;char k;FILE *fp;char n='n';p1=p2=p3=(struct teacher *)malloc(LEN);if((head=load())!=NULL){do{int num;char name[20];p1=head;system("cls");printf("\n\n\n >>>>>>>>>>> 删除教师信息<<<<<<<<<<<\n");printf(" *******************************************************\n");printf(" * 1.输入教师号*\n");printf(" * 2.输入姓名*\n");printf(" * 3.返回上级菜单*\n");printf(" *******************************************************\n");printf(" 请选择删除方式:");scanf("%d",&i);getchar();while (i<1||i>3){printf(" 输入有误!请重新输入:");scanf("%d",&i);getchar();}switch(i){case 1:printf(" 请输入要删除的信息的教师号:");scanf("%d",&num);getchar();while (p1->num!=num){if (p1->next!=NULL)p1=p1->next;else{printf(" 查找不到相关数据!\n");break;}}if (p1->num==num){printf("-----------------------------要删除的信息如下:--------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1 ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf\n",p1->cost_phone,p1->cost_water_ele c,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);printf("-------------------------------------------------------------------------------\n");printf(" 确定删除吗?(y或n):");scanf("%c",&k);getchar();}if (k=='y'||k=='Y'){if (p1->num==num){if(p1==head){p1=p1->next;p2=p1;}else if(p1->next==NULL){p3=p1;p1=head;p2=head;while(p1->next!=p3){p1=p1->next;}p1->next=NULL;}else{p2=head;p3=p1;p1=head;while(p1->next!=p3){p1=p1->next;}p3=p3->next;p1->next=p3;}if((fp=fopen("save","wb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();}else{do{fwrite(p2,LEN-4,1,fp);if(p2->next!=NULL)p2=p2->next;}while(p2->next!=NULL);if(p2!=head)fwrite(p2,LEN-4,1,fp);}fclose(fp);printf(" 删除成功!按下任意键继续...");getch();}}else {printf(" 删除已被取消!按下任意键继续...");getch();}break;case 2:printf(" 请输入要修改的教师姓名:");gets(name);while (strcmp((p1->name),name)!=0){if (p1->next!=NULL)p1=p1->next;else{printf(" 查找不到相关数据!\n");break;}}if (strcmp((p1->name),name)==0){printf("-----------------------------要删除的信息如下:--------------------------------\n");printf("教工号姓名性别单位名称家庭住址联系电话\n");printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1 ->phone);printf("电话费水电费房租个人所得税卫生费公积金合计扣款\n");printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_al l);printf("基本工资津贴生活补贴应发工资实发工资\n");printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yingfa_salary,p1->shifa_salary);printf("-------------------------------------------------------------------------------\n");printf(" 确定删除吗?(y或n):");scanf("%c",&k);getchar();}if (k=='y'||k=='Y'){if (strcmp((p1->name),name)==0){if(p1==head){p1=p1->next;p2=p1;}else if(p1->next==NULL){p3=p1;p1=head;p2=head;while(p1->next!=p3){p1=p1->next;}p1->next=NULL;}else{p2=head;p3=p1;p1=head;while(p1->next!=p3){p1=p1->next;}p3=p3->next;p1->next=p3;}if((fp=fopen("save","wb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单...");getch();}else{do{fwrite(p2,LEN-4,1,fp);if(p2->next!=NULL)p2=p2->next;}while(p2->next!=NULL);if(p2!=head)fwrite(p2,LEN-4,1,fp);}fclose(fp);printf(" 删除成功!按下任意键继续...");getch();}}else {printf(" 删除已被取消!按下任意键继续...");getch();}break;case 3:break;default :break;}if (i!=3){printf("\n 继续删除其他教师的信息吗?(y或n)");scanf("%c",&n);}}while((n=='y'||n=='Y')&&i!=3);}。

c语言课程设计---职工信息管理系统

c语言课程设计---职工信息管理系统

C语言课程设计设计题目:职工信息管理系统设计目的当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息系统的环境。

计算机的最到好处的于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

本系统就是为了管理好学生选课信息而设计的。

数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。

基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。

二、题目说明:系统功能简介:系统以菜单方式工作1)职工信息录入(文件保存职工信息)2)输出职工信息、浏览职工信息3)查询职工信息4)根据员工号查找职工信息5)根据工资、年龄、性别对职工信息进行排序6)删除职工信息3. 设计实施:#include <>#include <>#include <>typedef struct Empk{int EmpNum; /* staff number */char EmpName[12]; /* name*/int Sex; /*sex 1- woman 2- man*/int Old; /* old*/int Cult; /*education background 1-specilist 2-doctor 3-others*/ int Salary; /*salary*/char Address[12]; /* address*/int Tell; /*telephone number*/}Emp;Emp emp[100];void open(){int i;FILE *fp;if((fp=fopen("wyl","rb+"))==NULL){printf("can not do it! Because of no file of information\n");exit(0);}for(i=0;i<100;i++){if(fread(&emp[i],sizeof(Emp),1,fp)==0){printf("Fail to output\n");exit(0);}}fclose(fp);}void close() /*跳出*/{int i;FILE *fp;if((fp=fopen("wyl","wr+"))==NULL){printf("can not do it!\n");exit(0);}for(i=0;i<100;i++)fwrite(&emp[i],sizeof(Emp),1,fp);fclose(fp);}void inputEmpInfo() /*输入信息*/{int i,k;for(i=0;i<100;i++){printf("Please enter the staff's :\nnumber:");scanf("%d",&emp[i].EmpNum);printf("\nname:");scanf("%s",emp[i].EmpName);printf("\nsex : 1- woman 2- man:");scanf("%d",&emp[i].Sex);printf("\nold:");scanf("%d",&emp[i].Old);printf("\nEducation background:1-specialist 2-doctor 3-others");scanf("%d",&emp[i].Cult);printf("\nsalary:");scanf("%d",&emp[i].Salary);printf("\naddress:");scanf("%s",emp[i].Address);printf("\ntellphone:");scanf("%d",&emp[i].Tell);printf("continue ");scanf("%d",&k);if(k==2) break;}close();}void reorder() /*修改*/{int i,s,j,k,l;Emp temp;open();printf("\nChoose which category would you want to use\n1---sex \n2---salary(from maximum to minimum) \n3--old (from maximum to minimum) \n ( enter the corresponding nember) \n)");scanf("%d",&i);switch(i){case 1:printf("\nchoose which sex do you want to inquire 1--woman 2 --man ");scanf("%d",&s);for(j=0;emp[j].EmpNum!=0;j++){if(emp[j].Sex==s){printf(" number:%d\n",emp[j].EmpNum);printf("name:%s", emp[j].EmpName);printf("\nsex 1- woman 2- man:%d", emp[j].Sex);printf("\nold:%d", emp[j].Old);printf("\neducation background:%d\t\t\t 1-specialist 2-doctor 3-others ",emp[j].Cult);printf("\nsalary:%d", emp[j].Salary);printf("\naddress:%s", emp[j].Address);printf("\ntelephone nember :%d", emp[j].Tell);}}break;case 2:for(k=0;emp[k].EmpNum!=0;j++ ){for(l=k;emp[l].EmpNum!=0;l++){if(emp[l].Salary<emp[l+1].Salary){temp=emp[l];emp[l]=emp[l+1];emp[l+1]=temp;}}printf(" number:%d\n",emp[k].EmpNum);printf("name:%s",emp[k].EmpName);printf("\nsex 1- woman 2- man:%d",emp[k].Sex);printf("\nold:%d",emp[k].Old);printf("\neducation background:%d\t\t\t 1-specialist 2-doctor 3-others ",emp[k].Cult);printf("\nsalary:%d",emp[k].Salary);printf("\nadress:%s",emp[k].Address);printf("\ntelephone nember :%d",emp[k].Tell);}break;case 3:for(k=0;emp[k].EmpNum!=0;j++ ){for(l=k;emp[l].EmpNum!=0;l++){if(emp[l].Old<emp[l+1].Old){temp=emp[l];emp[l]=emp[l+1];emp[l+1]=temp;}}printf(" number:%d\n",emp[k].EmpNum);printf("name:%s",emp[k].EmpName);printf("\nsex 1- woman 2- man:%d",emp[k].Sex);printf("\nold:%d",emp[k].Old);printf("\neducation background:%d\t\t\t 1-specialist 2-doctor 3-others",emp[k].Cult);printf("\nsalary:%d",emp[k].Salary);printf("\naddress:%s",emp[k].Address);printf("\ntelephone nember :%d",emp[k].Tell);}break;}}void show(){int j;open();printf("\n-------------------------informations of sraffs---------------------------\n");for(j=0;emp[j].EmpNum!=0;j++){printf("number:%d\n",emp[j].EmpNum);printf("name:%s",emp[j].EmpName);printf("\nsex 1- woman 2- man:%d",emp[j].Sex);printf("\nold:%d",emp[j].Old);printf("\neducation background:%d 1-specialist 2-doctor 3-others ",emp[j].Cult);printf("\nsalary:%d",emp[j].Salary);printf("\nadress:%s",emp[j].Address);printf("\ntelephone nember :%d",emp[j].Tell);}}void deleteEmp(){int j,k,m=1,d,i=0;open();printf("Enter the number whose date you want to delete:\n");scanf("%d",&d);for(j=0;emp[j].EmpNum!=0;j++){if(emp[j].EmpNum==d){for(k=j;emp[j].EmpNum!=0;k++)emp[k]=emp[k+1];i++;}}if(i==0)printf("The staffs informations manage systerm has no date of the number your entered!!!\n");close();printf("succeeed to delete\n");}void findByEmpName() /*查询*/{int j,i,k=0;open();printf("Please enter the number :\n");scanf("%d",&i);for(j=0;emp[j].EmpNum!=0;j++){if(emp[j].EmpNum==i){printf("\n-------------------------information of your want---------------------------\n");printf("number:%d\n",emp[j].EmpNum);printf("name:%s",emp[j].EmpName);printf("\nsex 1- woman 2- man:%d",emp[j].Sex);printf("\nold:%d",emp[j].Old);printf("\neducation background:%d\t\t\t\t 1-specialist 2-doctor 3-others",emp[j].Cult);printf("\nsalary:%d",emp[j].Salary);printf("\nadress:%s",emp[j].Address);printf("\ntelephone number:%d",emp[j].Tell);k++;}}if(k==0)printf("\nHave no date of the number!!!\n");}void menu(){printf("\n--------------------------------------------------------------------------\n");printf("\n Wellcome to the staff manage styterm \n");printf("\n-------------------------------------------------------------------------\n");printf("Please choose number for what are you want to do:\n\n");printf("\n 1 ---- input: Complete inputing workers' information.");printf("\n 2 ---- reorder: Make the new order of the information.");printf("\n 3 ---- delete: Delete the information of the staff.");printf("\n 4 ---- output: Display all worker of information.");printf("\n 5 ---- inquire.");printf("\n 0 ---- exit\n");}void main(){int op,choice=1;while(choice==1){menu();printf("\nPlease enter your order:\n");scanf("%d",&op);switch(op){case 1: inputEmpInfo();break;case 2: reorder();break;case 3: deleteEmp();break;case 4: show();break;case 5: findByEmpName();break;case 0: {printf("Welcome to use worker management system, goodbye!!!"); exit(0);}getchar();}printf("\n-------------------------------------------------------------------------\n");printf("\nWhether continue Yes-1 No--2\n");scanf("%d",choice);}}。

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

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

c语言课程设计职工管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本技能,能够运用C语言设计职工管理系统。

具体目标如下:1.知识目标:学生需掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

2.技能目标:学生能够熟练使用C语言进行编程,具备解决实际问题的能力,如设计简单的职工管理系统。

3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生自主学习、合作探究的能力,培养学生的创新精神和实践能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点及基本语法。

2.第二章:数据类型和运算符,学习整型、浮点型、字符型数据以及各类运算符的使用。

3.第三章:控制结构,学习顺序结构、分支结构、循环结构等。

4.第四章:函数,学习函数的定义、声明、调用以及函数指针等。

5.第五章:数组和字符串,学习一维、多维数组的操作以及字符串的基本操作。

6.第六章:指针,学习指针的概念、运算以及指针在函数中的应用。

7.第七章:结构体和联合体,学习结构体、联合体的定义和使用。

8.第八章:文件操作,学习文件的基本操作,如打开、读写、关闭等。

9.第九章:职工管理系统的设计与实现,运用所学知识设计一个简单的职工管理系统。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。

1.讲授法:通过讲解C语言的基本概念、语法和编程技巧,使学生掌握知识要点。

2.案例分析法:通过分析实际案例,使学生学会将所学知识应用于解决实际问题。

3.实验法:安排实验课,让学生亲自动手编写程序,巩固所学知识,提高编程能力。

四、教学资源1.教材:《C程序设计语言》(K&R)或《C语言 Primer》(第五版)。

2.参考书:《C语言编程思想》、《C语言深度探索》等。

3.多媒体资料:教学PPT、视频教程等。

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

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

c语言课程设计职工管理系统一、课程目标知识目标:1. 掌握C语言基础语法,包括变量声明、数据类型、运算符、控制语句等;2. 学会使用数组、结构体等数据结构,并能应用于实际问题;3. 理解函数的定义与调用,掌握模块化编程思想;4. 了解文件操作的基本方法,实现对数据的存储与读取。

技能目标:1. 能够运用C语言编写简单的职工管理系统,实现职工信息的增加、删除、修改和查询功能;2. 培养学生的逻辑思维能力,使其能够分析问题、设计算法并编写程序解决问题;3. 提高学生的编程实践能力,熟练使用C语言开发工具进行程序设计与调试。

情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发他们主动探索新技术、新方法的积极性;2. 培养学生的团队合作精神,学会与他人共同分析问题、解决问题;3. 增强学生的自信心,使他们相信自己具备解决实际问题的能力;4. 培养学生的责任心,让他们明白编程在现实生活中的应用价值,为我国软件产业发展贡献自己的力量。

课程性质:本课程为C语言程序设计课程的实践环节,旨在通过实际项目开发,让学生将所学理论知识与实际应用相结合。

学生特点:学生已具备一定的C语言基础,具有一定的编程能力,但实践经验不足,需要通过课程设计提高自己的实际操作能力。

教学要求:注重理论与实践相结合,以项目为导向,引导学生主动探索、积极实践,培养其编程能力和解决问题的能力。

在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. C语言基础知识复习:变量、数据类型、运算符、控制语句(包括分支和循环)、函数定义与调用;相关教材章节:第一章至第四章。

2. 数据结构应用:数组、结构体;相关教材章节:第五章、第六章。

3. 模块化编程:函数封装、模块间通信;相关教材章节:第七章。

4. 文件操作:文件打开、读写、关闭;相关教材章节:第八章。

5. 职工管理系统功能实现:a. 职工信息增加、删除、修改和查询;b. 系统界面设计与交互;c. 数据存储与读取。

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语言课程设计—职工管理系统

C语言课程设计—职工管理系统

青岛理工大学《C语言程序设计》题目职工工资管理程序指导教师:XXX姓名:XXX学号:XXXXX班级:XXXXX专业:软件工程地点:计算机工程学院机房时间:2014.6.30 至2014.7.4一、内容本系统实现了职工工资的管理与查询,具有输入信息,查询信息,添加信息,删除信息以及修改信息等功能。

打开本系统后,将需要输入的信息输入,便可以进入操作界面。

按照操作界面的提示进行操作。

二、上机环境操作系统:Windows7旗舰版 开发工具:Codeblocks三、函数调用关系图四、各函数功能说明1.main()主函数2 .increase() 文件输入函数3. void show() 操作界面显示函数4. void found() 查找函数5.show2() 显示函数6. void print2(int y) 删除函数7. void print3() 修改信息函数五、算法描述或流程图1:found( )函数 :流程图描述:Main()show()显示操作界面increase ()添加数据信息found()查找符合查找条件的数据Show2 ()显示数据信息print2()删除数据信息Print3()修改数据信息2:increase ()函数流程图描述3:void print2(int y)函数: 流程图描述4:void print3()函数流程图描述六、程序运行效果图1:打开界面2:查询信息(1):按编号查询(2):按姓名查询(3):按工资范围查询3:添加信息4:修改信息5:删除信息七、总结通过本次课设,不仅成功的完成了项目,复习了一个学期来所学过的知识要点,还极大的提高了自己的动手能力,受益匪浅。

通过整日含辛茹苦的编码,第一次体验到了未来本专业工作岗位上的不易,也切身感受到了一位程序员的辛苦。

其次,本次,通过本次课设,进一步提高了自己对本专业的兴趣,利于之后的学习乃至将来的工作,以及未来的方向。

最重要的是,提高了独立分析,解决问题的能力。

C语言课程设计 职工信息管理系统

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语言课程设计+源代码课程设计报告课程:高级语言课程设计学号:姓名:班级:教师:时间:设计名称:职工信息管理系统设计内容、目的与要求:本设计旨在熟练掌握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语言

职工管理系统课程设计报告c语言一、引言职工管理系统是一个针对公司或组织内部职工信息管理的软件系统,主要用于记录职工的基本信息、工作情况、考勤记录等,方便管理人员进行数据统计和分析。

本文将介绍一个基于C语言的职工管理系统的设计与实现。

二、系统设计1. 系统功能职工管理系统主要包括以下功能模块:•添加新职工信息•修改职工信息•删除职工信息•查询职工信息•统计各部门职工人数•统计各职工职务人数2. 数据结构为了有效地存储和管理职工信息,系统采用了以下数据结构:•职工信息结构体•部门信息结构体3. 主要算法系统主要采用以下算法实现各功能模块:•添加职工信息:通过链表添加新结点•修改职工信息:更新结点中的字段信息•删除职工信息:在链表中删除指定结点•查询职工信息:根据输入的关键词在链表中查找•统计职工人数:遍历链表统计人数•统计职务人数:遍历链表统计各职务人数三、系统实现系统采用C语言编写,通过文件读写实现数据的持久化存储。

程序运行时,首先读取保存在文件中的职工信息并加载到内存中,用户可以通过交互式界面选择相应功能进行操作。

操作完成后,系统会将数据写回文件,保证数据的持久性。

四、系统优化与改进为了提高系统的性能和用户体验,可以考虑以下改进方案:•引入数据库存储,提高数据读写效率•添加更多的查询条件,提供更灵活的查询功能•增加权限管理模块,限制不同用户的操作权限•完善异常处理机制,提高系统的稳定性和可靠性五、总结通过本次课程设计,我们深入学习了C语言的应用,掌握了职工管理系统的设计与实现方法。

未来可以基于此系统进行更多功能的扩展和优化,提高系统的实用性和适用性。

以上是本文对职工管理系统课程设计报告的详细介绍,希望能对读者有所帮助。

c语言教师工作量管理系统资料

c语言教师工作量管理系统资料

C语言教师工作量管理系统资料简介随着高等教育的不断发展,各类高校的专业课程越来越多,教师工作量大大增加。

因此,建立一套方便快捷的教师工作量管理系统,对提高教师教学效率、有效管理学校教学资源具有重要意义。

此文档介绍了一款基于C语言开发的教师工作量管理系统,用于记录和管理教师所上的课程信息和所承担的工作量,同时可以自动生成相关统计报表,从而帮助学校管理者和教师更加科学地进行教学管理。

功能介绍1.用户登录验证:系统对登录用户信息进行认证,只有具有管理员权限的用户才能查看和编辑系统内容。

2.新建、修改、删除学院、课程、班级等基础信息:管理人员可以进行课程、班级、学院等信息的添加或修改,并且可以删除不再需要的信息。

3.添加、修改教师信息:管理人员可以添加、修改教师的个人信息以及所负责的班级、课程信息。

4.记录教师分配的工作量:系统可以记录教师所任教课程的学时数量,以及其他相关的工作量,如指导实验、毕业论文等。

5.自动生成统计报表:系统可以在管理员选择一定时间范围内,根据教师工作量信息自动生成统计报表,并支持数据导出和打印功能。

6.数据备份和恢复:系统可以定期自动备份或手动备份数据,并提供恢复功能。

技术实现系统后端采用C语言进行开发,主要利用了C语言强大的数据处理和算法实现能力。

前端界面采用C语言的图形库——Turbo C++,通过代码实现基本的界面功能,如选项菜单、输入框、表格等。

同时,对于系统的数据存储和处理,采用了文件I/O的形式,便于数据的备份和恢复操作。

除此之外,系统还应用了一些软件工程的思想,如模块化编程、重用性、可靠性等。

系统不同的功能部分采用不同的模块化设计,使得代码结构清晰,易于扩展和维护。

系统通过严格的测试和优化,确保了稳定性和可靠性。

系统效益通过使用此教师工作量管理系统,可以有效提升教师的教学效率和管理水平,同时也能够帮助学校管理人员更加科学地规划教学资源,合理分配工作量。

具体效益如下:1.提高教学效率:系统可以记录教师所任教课程的学时数量,帮助教师更加专注于教学,提高教学效率。

C语言程序设计-职工信息管理系统1.doc

C语言程序设计-职工信息管理系统1.doc

C语言程序设计-职工信息管理系统1C语言课程设计C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法。

要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。

3、浏览功能:完成对全部职工信息的显示。

4、查找功能:①完成按职工的职工号查询职工的相关信息,并显示。

②完成按职工的学历查询职工的相关信息,并显示。

③完成按职工的电话号码查询职工的相关信息,并显示。

5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。

6、添加功能:完成添加新职工的信息的任务。

7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。

8、退出职工信息管理系统。

三、信息描述职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等。

四、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。

确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。

确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。

五、进度安排课程设计时间为两周,分为五个阶段完成:1、分析设计阶段。

在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。

按照需求分析、总体设计、详细设计几个步骤进行。

这一阶段前1-2天完成;2、编码调试阶段。

根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。

这一阶段在3-7天完成;3、总结报告阶段。

[基于vc++的教职工信息管理系统

[基于vc++的教职工信息管理系统

1 引言教职工管理系统是一个教育单位不可缺少的管理工具,它管理的数据对于学校的决策者和管理者来说都至关重要,所以教职工管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来各个学校基本上都是靠传统的人工方式来管理教职工信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。

当今社会,信息迅速膨胀,随着各个学校的规模增大,有关信息管理工作所涉及的数据量越来越大,教职工信息量也大大增加,利用传统的手工查询、登记、修改等方法的处理速度远远跟不上学校的需求,有的学校不得不靠增加人力、物力来进行信息管理。

随着计算机技术的不断提高,计算机作为知识经济时代的产物,其强大的功能已为人们深刻认识,它已进入人类社会的各个行业和领域并发挥着越来越重要的作用,成为人们工作和生活中不可缺少的一部分。

而作为计算机应用的一部分,使用计算机对教职工进行管理,具有手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高教职工管理的效率,也是学校的科学化、正规化管理和与世界接轨的重要条件[1]。

教职工管理系统作为一种管理软件正在各学校中得到越来越广泛的应用,且已达到了良好效果:(1) 管理人员角色和目标的改变传统的教职工管理中,管理人员的大部分精力都耗费在繁琐的日常行政事务处理上,而作为学校管理层的参谋角色应该做的咨询和策略制定的工作相对缺乏。

通过教职工管理系统,管理人员可以将绝大部分精力放在进一步改进教学方法上,而在行政事务上的工作可以由电子化系统完成,只需占用管理人员极少的精力和时间。

(2) 提高工作质量教职工管理系统可以迅速、准确地管理教职工的各种信息,可以最大限度的减少在工作中由于各种原因而导致的误差。

用户可以直接从系统中获得自己所需的关于教职工的各种信息。

(3) 减少工作量提高工作效率教职工管理系统减少了教职工管理工作的工作时间、提高了工作效率,大大减少了工作量,不必再用传统的模式:在教职工信息册上一页一页查找所需信息,工作繁琐且使得管理人员倍感疲惫。

VC++60环境下 简单的职工管理系统 课程设计

VC++60环境下 简单的职工管理系统 课程设计

VC++6.0环境下简单的职工管理系统简单的职工管理系统一、实验目的(1)熟练掌握线性表基本操作及应用。

(2)利用线性表实现简单的职工管理系统。

二、实验内容:【问题描述】对单位的职工进行管理,包括插入、删除、查找、排序等功能。

【基本要求】职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。

(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。

(2)删除一名职工:从职工管理文件中删除一名职工对象。

(3)查询:从职工管理文件中查询符合某些条件的职工。

(4)修改:检索某个职工对象,对其某些属性进行修改。

(5)排序:按某种需要对职工对象文件进行排序。

【测试数据】自己指定。

注意尽量覆盖算法的各种情况。

【实现提示】职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。

(1)由键盘输入职工对象,以文件方式保存。

程序执行时先将文件读入内存。

(2)对职工对象中的"姓名"按字典顺序进行排序。

(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。

【选作内容】将职工对象按散列法存储,并设计解决冲突的方法。

在此基础上实现增、删、查询、修改、排序等操作。

头文件/*生成单链表*/int CreatList(Linklist &L){Linklist h=NULL;Linklist p=(Linklist)malloc(sizeof(LNode));if(NULL==p){printf("录入失败提示:内存不足!\n");return -1;}h=L->next;while(h){if(h->name==p->name){free(p);printf("录入失败提示:此职工号已经存在!\n");return -1;}h=h->next;}printf("请输入员工姓名\n");scanf("%s",p->name);printf("请输入员工性别\n");scanf("%s",p->sex);printf("请输入员工出生年月\n");scanf("%s",p->birthdate);printf("请输入员工工作年月\n");scanf("%s",p->workdate);printf("请输入员工学历\n");scanf("%s",p->edu);printf("请输入员工职务\n");scanf("%s",p->duty);printf("请输入员工电话\n");scanf("%s",p->phone);printf("请输入员工地址\n");scanf("%s",p->address);p->next=L->next;L->next=p;printf("录入成功!\n");return -1;}/*初始化单链表*/int Initlist(Linklist &L){L=(Linklist)malloc(sizeof(LNode));if(!L)return (0);L->next=NULL;return OK;}/*显示所有员工信息*/void Display(Linklist &L){Linklist p;for(p=L->next;p;p=p->next){printf("姓名%s\n",p->name);printf("性别%s\n",p->sex);printf("出生年月%s\n",p->birthdate);printf("工作年月%s\n",p->workdate);printf("学历%s\n",p->edu);printf("职务%s\n",p->duty);printf("电话%s\n",p->phone);printf("地址%s\n",p->address);printf("============================\n");}}/*出生年月查询*/int SearchBirthdate(Linklist &L,char birthdate[20]){LNode *p;p=L;while(p){if(strcmp(p->birthdate,birthdate)==0){printf("姓名%s\n",p->name);printf("性别%s\n",p->sex);printf("出生年月%s\n",p->birthdate);printf("工作年月%s\n",p->workdate);printf("学历%s\n",p->edu);printf("职务%s\n",p->duty);printf("电话%s\n",p->phone);printf("地址%s\n",p->address);return OK;}p=p->next;}printf("没有此人\n");return 0;}/*姓名查询*/int SearchName(Linklist &L,char name[10]){LNode *p;p=L;while(p){if(strcmp(p->name,name)==0){printf("姓名%s\n",p->name);printf("性别%s\n",p->sex);printf("出生年月%s\n",p->birthdate);printf("工作年月%s\n",p->workdate);printf("学历%s\n",p->edu);printf("职务%s\n",p->duty);printf("电话%s\n",p->phone);printf("地址%s\n",p->address);return OK;}p=p->next;}printf("没有此人\n");return 0;}/* 性别查询*/void SearchSex(Linklist &L,char sex[10]){LNode *p;p=L;int tag=1;while(p){if(strcmp(p->sex,sex)==0){printf("姓名%s\n",p->name);printf("性别%s\n",p->sex);printf("出生年月%s\n",p->birthdate);printf("工作年月%s\n",p->workdate);printf("学历%s\n",p->edu);printf("职务%s\n",p->duty);printf("电话%s\n",p->phone);printf("地址%s\n",p->address);tag=0;}p=p->next;}if(tag==1){printf("找不到符合此条件的职工!");}}/* 地址查询*/int SearchAddress(Linklist &L,char address[30]){LNode *p;p=L;while(p){if(strcmp(p->address,address)==0){printf("姓名%s\n",p->name);printf("性别%s\n",p->sex);printf("出生年月%s\n",p->birthdate);printf("工作年月%s\n",p->workdate);printf("学历%s\n",p->edu);printf("职务%s\n",p->duty);printf("电话%s\n",p->phone);printf("地址%s\n",p->address);return OK;}p=p->next;}printf("没有此人\n");return 0;}/*姓名排序*/void SortName(Linklist &L ,char name[10]){Linklist La;Linklist p,q,m;La=(Linklist)malloc(sizeof(LNode));La->next =NULL;while(L->next){for(q=L->next ,p=L->next ;p->next ;p=p->next ){if((strcmp( p->next->name,q->name ))>0 ){m=p;q=p->next ;}}if(q==L->next){L->next =L->next->next ;}else{m->next =q->next ;}q->next =La->next ;La->next =q ;}L=La;Display(L);}/*性别排序*/void SortSex(Linklist &L ,char sex[10]){Linklist La;Linklist p,q,m;La=(Linklist)malloc(sizeof(LNode));La->next =NULL;while(L->next){for(q=L->next ,p=L->next ;p->next ;p=p->next ){if((strcmp( p->next->sex,q->sex))>0 ){m=p;q=p->next ;}}if(q==L->next){L->next =L->next->next ;}else{m->next =q->next ;}q->next =La->next ;La->next =q ;}L=La;Display(L);}/*出生年月排序*/void SortBirth(Linklist &L ,char birthdate[20]){Linklist La;Linklist p,q,m;La=(Linklist)malloc(sizeof(LNode));La->next =NULL;while(L->next){for(q=L->next ,p=L->next ;p->next ;p=p->next ){if((strcmp( p->next->birthdate,q->birthdate))>0 ){m=p;q=p->next ;}}if(q==L->next){L->next =L->next->next ;}else{m->next =q->next ;}q->next =La->next ;La->next =q ;}L=La;Display(L);}/*工作年月排序*/void SortWork(Linklist &L ,char workdate[20]){Linklist La;Linklist p,q,m;La=(Linklist)malloc(sizeof(LNode));La->next =NULL;while(L->next){for(q=L->next ,p=L->next ;p->next ;p=p->next ){if((strcmp( p->next->workdate,q->workdate))>0 ){m=p;q=p->next ;}}if(q==L->next){L->next =L->next->next ;}else{m->next =q->next ;}q->next =La->next ;La->next =q ;}L=La;Display(L);}/*更改*/int Alter(Linklist &L,char name[10]){LNode *p;p=L;while(p){if(strcmp(p->name,name)==0){printf("请输入员工姓名\n");scanf("%s",p->name);printf("请输入员工性别\n");scanf("%s",p->sex);printf("请输入员工出生年月\n");scanf("%s",p->birthdate);printf("请输入员工工作年月\n");scanf("%s",p->workdate);printf("请输入员工学历\n");scanf("%s",p->edu);printf("请输入员工职务\n");scanf("%s",p->duty);printf("请输入员工电话\n");scanf("%s",p->phone);printf("请输入员工地址\n");scanf("%s",p->address);return OK;}p=p->next;} printf("没有此人\n");return 0;}/*按姓名删除*/int Del(Linklist &L,char name[10]) {LNode *p;LNode *r;p=L->next;r=L;while(p){if(strcmp(p->name,name)==0){r->next=p->next;free(p);printf("删除成功\n");return OK;}p=p->next;} printf("没有此人\n");return 0;}主函数#include<stdio.h>#include<stdlib.h>#include<string.h>#define TRUE 1#define FALSE -1#define OK 1#define ERROR 0#define OVERFLOW -2typedef struct LNode{char name[10];char sex[10];char birthdate[20];char workdate[20];char edu[10];char duty[10];char phone[20];char address[30];struct LNode *next;}*Linklist;#include"Header.h";void main(){Linklist L;int a;char name[10];char sex[10];char birthdate[20];char workdate[20];char edu[10];char duty[10];char phone[20];char address[30];Initlist(L);int y;int x=1;while(x){printf("\t\t*****************************************\n\n");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*****************************************\n");printf("请选择操作序号并按回车:");scanf("%d",&y);switch(y){case 1: CreatList(L);break;case 2: printf("请输入查询方式(1按出生年月查询,2按姓名查找,3按性别查找)");scanf("%d",&a);if(a==1){printf("请输入查询员工出生年月\n");scanf("%s",&birthdate);SearchBirthdate(L,birthdate);}if(a==2){printf("请输入查询员工姓名\n");scanf("%s",&name);SearchName(L,name);}if(a==3){printf("请输入查询员工性别\n");scanf("%s",&sex);SearchSex(L,sex);}break;case 3: printf("请选择排序条件:1.姓名2.性别3出生年月0.退出\n");scanf("%d",&a);if(a==1){printf("姓名排序\n");SortName(L,name);}if(a==2){printf("性别排序\n");SortSex(L,sex);}if(a==3){printf("出生年月排序\n");SortBirth(L, birthdate);}break;case 4: printf("所有员工信息如下所示\n");Display(L);break;case 5: printf("请输入更改员工姓名");getchar();scanf("%s",&name);Alter(L,name);break;case 6: printf("请输入删除员工姓名");getchar();scanf("%s",&name);Del(L,name);break;case 7: x=0;break;default:printf("请输入正确序号!\n");break;}}}。

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

A、课程设计实施步骤同学们可按下列步骤完成所选题目的设计并写出设计报告。

第一步:问题分析在对所选题目进行调研的基础上,明确课题背景及该选题要做什么。

依据调查结果,进一步分析和表达用户的需求。

(1)系统的功能需求:围绕选题,明确系统的主要功能;(2)用户操作需求:系统应以怎么的方式与用户进行交互。

第二步:总体设计(1)系统的功能划分:主要给出系统的功能结构图;(2)系统流程:主要给出系统工作流程示意图。

第三步:详细设计与实现(1)类设计:给出系统中设计的类的功能、结构等的说明;(2)系统的主要代码:类的实现及程序主要代码及其说明;第四步:测试以运行结果的形式给出程序的测试过程,需要运行界面截图与文字说明,缺一不可。

第五步:形成设计报告对设计结果的合理性、规范程度和实际运行的结果以报告的形式进行提交。

B、课程设计报告要求课程设计报告有四个方面的要求:1.问题描述。

包括此问题的理论和实际两个方面。

2.解决方案。

包括:(1)总体设计:应合理划分系统功能模块,系统工作流程合理、符合实际;(2)详细设计与实现:类的设置是问题域中客观存在事物的放映和抽象,代码符合程序编写规范;(3)测试:对系统应进行全面的功能测试,以保证系统的可靠运行。

3.报告撰写格式要规范,具体参见样例。

案例二用VC++制作一个教职工管理系统关键词:VC++应用程序向导增加对话框资源ADODC控件DataGrid控件对话框切换2.1 系统设计的目的和意义学校职工查询是学校管理中需要经常处理的一项工作,本案例结合一个简化的学校教职工管理系统的制作,介绍如何利用VC++的应用程序向导制作应用程序。

该系统的制作涉及一个数据库、两个数据表及其相关的对话框的制作开发,涉及在工程中增加对话框、调用对话框的方法以及应用程序向导的使用方法。

最重要的是,在本案例中,我们将介绍一种新的数据源引用方法,即使用ADODC 控件引用数据源并制作应用系统的方法。

案例为学生学习使用VC++创建了一个基本例程,我们仍然采用向导创建工程的方法加以进行,案例程序是简单的,但方法是重要的。

2.2 系统功能设计本系统具有—般系统的数据处理功能,如数据录入、增加、修改、删除等,另外,本系统将涉及职工信息表和职工工资表两个表的操作,用户可以在两个表之间相互切换,因此系统制作小需要涉及到对话框相互切换的方法,它是一个重要而且常用的方法。

2.3 数据库与数据表的设计本系统将首先创建一个职工信息数据库,并在它之中创建两个数据表,一个是“职工信息数据表”,—个是“职工工资信息表”。

在本案例当中,我们仅用Microsoft Access 2003创建教职工管理数据库及其数据表,不再介绍其他方法。

2.3.1 利用Microsoft Access 2003创建教职工管理数据库及其数据表微软公司的许多产品所支持的数据库结构与数据库驱动器类型均是通用的,因此,用户往往可以借助于相关的工具创建数据库与数据表,这里我们介绍采用Microsoft Access 2003创建数据库及其数据表的方法。

先定义职工信息数据表的结构,如表2.1所示,它专门用于记录教职工的基本情况。

表2.1 职工信息数据表的结构职工工资情况表的结构定义如表2.2所示,注意,这是一个简化了的职工工资数据表,因为工资表往往比较复杂,而且不同的单位工资表结构也有所不同.我们不可能定义一个“万能”的工资表结构,只能创建一个具有示范意义的工资数据表结构。

表2.2 职工工资数据表的结构2.3.2 数据库与数据表的创建过程利用Microsoft Access创建数据序及具数据表的步骤如下:(1)启动Microsoft Office 2003中的Microsoft Access应用程序,出现如图2.1所示对话框。

图2.1 新建数据库(2)选择创建一个空数据库。

(3)单击“确定”按钮之后出现保存对话框,确定保存数据库的文件位置和数据库名称即可,本例中数据库名称为“职工管理数据库”;随后出现图2.2所示界面。

图2.2 数据库中的数据表操作界面在数据表操作界面小,用户可以打开已经存在的数据表,也可以创建新的数据表。

(4)单击“设计”菜单项即可以设计一个新的数据表结构;设计一个新的数据表结构就是通过数据表的设计器设计一个表的字段名称、宇段类型、字段大小、小数位数以及索引字段等等。

图2.3所示是职工信息数据表结构的设计器,大家可以按职工信息数据表结构定义创建即可。

图2.3 职工信息数据表结构设计器采用同样的方法,可以创建职工工资数据表。

两个数据表结构一经创建,用户可以打开该数据表,在数据表中输入一些基本数据,以便在后面的系统设计中体现设计的效果。

创建的数据库保存在“D:\ VC++写作案例\ CH2\ 职工管理数据库”中。

2.4 创建职工管理系统应用程序框架在VC++中创建应用程序往往可以通过向导首先创建一个应用程序的框架,应用程序框架为期户提供了一个基本的开发过程。

在这里,首先介绍制作“职工管理系统”程序的基本框架的过程和方法,其过程如下:(1)启动VC++程序,出现VC++开发平台。

(2)在VC++主菜单中单击“文件新建”菜单项,出现工程类型选择列表。

(3)在“工程”类型选择列表中选择工程类型为“MFC AppWizard (exe)”。

(4)在“工程”编辑框中键入“教职工管理系统”。

(5)在“位置”列表拒中选样存放的位置,此处设置为“D:\VC++写作案例\ch2”。

(6)选择“R创建新工作区”并选择适合于Windows操作系统的Win32平台,如图2.4所示。

图2.4 工程创建的基本配置(7)单击“确定”按钮,出现图2.5所示对话框,该对话框用于进行应用程序类型设置。

图2.5 应用程序类型设置(8)选择“D基本对话框”,并设置在资源中使用的语言为“中文[中国]”。

(9)单击“下一步”按钮,出现另一个设置对话框,即工程特色设置对话框,如图2.6所示。

图2.6工程特色设置在工程特色设置对话框中作三项内容选择,即:A关于框符、3D控制、ActiveX 控件,并输入标题对话为“教职工管理系统”主界面。

(10)单击“完成”按钮,出现应用程序设置的全部信息:(11)单击“确定”按钮完成应用程序框架的创建,出现应用系统框架,如图2.7所示。

在应用系统程序框架中列出了全部的资源文件,用户可以进行资源显示,并可以显示由向导自动创建的各种类文档,这与第一个案例所创建的应用程序框架的内容大体一致。

2.5 基本框架的修改应用程序生成向导往往只能生成一个应用程序的架构,它不能执行任何的事务和系统的功能,需要用户根据自己的需求送行具体的制作,因此我们首先对应用程序的基本框架进行修改。

2.5.1 主界面的修改在采用文档应用程序类型创建应用系统时,往往向导创建的应用程序框架中的第一个对话柜就是该应用系统的主控界面。

主界面可以说是一个应用程序的核心,通过主界面可以调用其他界面。

用户可以在主界面中创建主菜单、快捷键面板或快捷菜中等,也可以增加命令按钮,用以对其他界面进行调用。

如果是一个简单的应用系统.也可以直接将主界面作为数据管理的界面,直接在主界面中进行控件布局、创建数据源并进行数据访问控件与数据源之间的“数据绑定”。

在本案例中,先对主界面,即对话框作如下修改:(1)删除主界面中的“确定”按钮。

(2)删除主界面中的“取消”按钮。

(3)删除主界面中的“TODO:在这里设置对话控制。

”静态文本框控件。

(4)在界面中放入一个命令控钳控件BUTTON1。

(5)用鼠标右键单击命令按钮控件BUTTON1,出现—个快捷菜单。

(6)在快捷菜单个选择“属性”菜单项,出现该按钮的属性设置对话框。

(7)将命令按钮BUTTON1的资源索引号ID修改为“IDC_EXIT_BUTTON”。

(8)将命令按钮BUTTON1的标题属性设置为“退出系统”。

(9)设置它的StyIe属性为“坦平”。

其属性设置对话框如图2.8所示。

图2.8 按钮属性设置(10)关闭属性设置对话框,回到程序的主界面。

(11)编译运行工程,并单击该按钮,你会发现,它不会执行任何操作,因为我们并末对其编制任何的过程代码。

2.5.2 为“退出系统”按钮创建类并增加成员变量在VC+应用程序中,资源是按类和成员变量进行识别的,因此我们需要为资源中的每一个对象创建或声明一个类和相应的成员变量。

内于此处该按钮是对话柜中的一个控件,也就是它的一个成员,因此它是对话框类中的一个控件对象,不用再为它创建一个新类(从图2.9可以看出,它是对话框CMyDIg类中的一个控件,其控件索引号为;IDC_EXIT_BUTION),我们只为它创建一个成员变量即可,其过程如下:(1)用鼠标右键单击“退出系统”按钮,出现一个快捷菜单。

(2)在快捷菜单中单击“建方类向导”菜单项,出现用于创建类的对话柜,如图2.9所示。

图2.9 创建类在该对话框中,可以对新的对象创建一个新的类并定义一个成员变量,但此处,我们仅将“退出系统”按钮作为对活框的一个成员,因此,只需要为它定义一个成员变量即可。

(3)单击Add VariabIe…按钮,出现成员变量创建对话柜,如图2.10所示。

图2.10 成员变量定义在为—个对象引入成员变量时,首先应该为它定义一个成员变量名称(此处我们设置它的成员变量名称为“m_EXIT”),然而设置成员变只所属的类(Category),分为两种:一是控件(Control)类,第二类为值类,即Value类,在列表中系统将会根据对象的类型而自动列出一个供参考选择的列表内容,此处选样Control。

另外,还而要设置变量的类型(VariabIe type),系统也会根据对象的类型在列表框中列出相应的值,此处选择CButton。

(4)单击OK按钮即完成命令按钮的成员变量设置,随后它会显示在对话框类的成员变量信息列表中,如图2.11所示。

图2.11 对话框类中的成员变量信息在一个类中有多少个成员,它便显示多少个成员变量的信息.此处,目前只有一个成员在对话框中,因此只有一条信息。

值得注意的是,成员变量可以删除,也可以修改并重新进行定义,使成员变量必须是无二义性的,即在一个应用系统中,一个成员的变量是惟一的,不能出现两个成员定义同一成员变量的现象,否则会出现错误信息。

2.5.3 为“退出系统”按钮编制事件的过程代码“退出系统”技钮的作用就是结束应用程序的执行,关闭应用程序主窗体(对话框),因此我们需要给它制作相应的过程代码,其操作步骤如下:(1)将图2.11的选项卡面图切换到消息映肘(Message Maps)近项卡,选择对象索引号ID为IDC_EXIT_BUTTON的项。

(2)在选项卡中选择单击事件BN_CLICKED信息(注意,作为一个命令按钮,执行事务的方式有单击和双击两种方式,此处选择单击方式,即BN_CLICKED)。

相关文档
最新文档