c语言教师工资管理系统

合集下载

C-教师工资管理系统(分析-代码)-PPT课件

C-教师工资管理系统(分析-代码)-PPT课件

void Output(ofstream& ofs) { ofs<<No<<" "<<Name<<" "<<Duty<<" "<<Hours<<endl; }
double Incoming() { return Salary+(Hours-120)*20; } };
class Assistant:virtual public Person //实验员 { protected: int Allowance; int Hours;
<<CppFriend>>
Person
#No: int #Name: char #Duty: char #Salary: double #next: Person
<<create>>-Person() <<destroy>>-Person()
+Input(): void +Input(ifs: ifstream): void +Output(): void +Output(ofs: ofstream): void +Incoming(): double
Assistant
#Allowance: int #Hours: int
<<create>>-Assistant() +Input(): void +Input(ifs: ifstream): void +Output(): void +Output(ofs: ofstream): void +Incoming(): double

C语言----教师工资管理系统设计复习进程

C语言----教师工资管理系统设计复习进程

C语言----教师工资管理系统设计《程序设计基础》课程设计报告教师工资管理系统设计目录问题概述------------------------------------------------ 1 系统目标------------------------------------------------ 1 设计的过程及步骤---------------------------------------- 2 函数设计------------------------------------------------ 3 系统实现------------------------------------------------ 7 总结--------------------------------------------------- 17 参考文献----------------------------------------------- 18一.问题概述随着时代的进步,人们越来越认识到教育的重要性,科教兴国是十分可行的政策,而教师则是教育事业最重要的一环,他们的付出是我们国家富强的根本保证。

现阶段,各学校的教师数量越来越多,工资、工作安排等方面管理起来就越来越麻烦,这十分不利于教育事业的大步前进,设计出一款用于教师工资管理的程序很有必要,通过系统的C语言学习,我们已经能够通过自己编写程序实现这一目的,进行教师信息的录入,管理,查询等方面的操作,进而推动教育事业的进步。

二.系统目标2.1 (对系统技术的目标)根据所学的程序设计基础原理与程序设计的知识,能够针对一个小型的程序设计基础管理系统,进行系统的需求分析,系统设计,程序设计基础设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型系统程序设计的目的。

2.2 (对系统技术的要求)1. 教师信息及教师工资信息的录入功能(录入数据以文件形式存储)2.教师工资查询功能(至少提供两种及两种以上查询方法)(1)按教师编号进行查询(2)按所在部门进行查询……注:查询结果用链表的形式保存并输出3.教师工资的统计功能4.教师工资的修改功能(如晋升职称后)三、设计的过程及步骤1.需求分析(描述系统需求,既详细分析系统需求和功能)根据题目要求,应当把教师信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把教师信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现教师信息录入,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。

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. 掌握C语言中数据类型、变量、运算符、控制结构等基本知识;2. 学会使用数组、结构体等C语言高级特性;3. 理解文件操作在C语言中的应用;4. 掌握工资管理系统的基本功能模块及其实现方法。

技能目标:1. 能够运用C语言编写简单的工资管理系统程序;2. 学会分析工资管理系统的需求,设计合理的程序结构;3. 掌握调试程序、解决常见编译错误和逻辑错误的方法;4. 提高学生的编程实践能力和问题解决能力。

情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发自主学习C语言的积极性;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 增强学生的信息安全意识,注重保护用户隐私;4. 培养学生遵循编程规范,养成良好的编程习惯。

课程性质分析:本课程为C语言高级应用课程,以实现工资管理系统为项目驱动,结合实际应用场景,让学生在实践中掌握C语言编程技能。

学生特点分析:学生已具备C语言基础知识,具有一定的编程能力,但对复杂程序设计、模块化编程尚需进一步锻炼。

教学要求:结合课程性质和学生特点,注重实践操作,引导学生自主学习,培养编程思维和问题解决能力。

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

二、教学内容1. C语言基础回顾:数据类型、变量、常量、运算符、控制结构(条件语句、循环语句);2. 函数:函数定义、调用、参数传递、返回值;3. 数组与字符串:一维数组、二维数组、字符串操作;4. 指针:指针概念、指针运算、指针与数组、指针与函数;5. 结构体:结构体定义、结构体变量创建、结构体数组、结构体指针;6. 文件操作:文件打开与关闭、读写文件、文件定位;7. 工资管理系统功能模块设计:需求分析、模块划分、数据结构设计;8. 编程实践:编写工资管理系统各功能模块代码,如员工信息管理、工资计算、工资查询等;9. 系统调试与优化:编译错误处理、逻辑错误调试、性能优化;10. 代码规范与编程习惯:命名规范、代码组织、注释使用。

C语言 教师工资管理系统设计

C语言    教师工资管理系统设计

《程序设计基础》课程设计报告教师工资管理系统设计目录问题概述------------------------------------------------ 1 系统目标------------------------------------------------ 1 设计的过程及步骤---------------------------------------- 2 函数设计------------------------------------------------ 3 系统实现------------------------------------------------ 7 总结--------------------------------------------------- 17 参考文献----------------------------------------------- 18一.问题概述随着时代的进步,人们越来越认识到教育的重要性,科教兴国是十分可行的政策,而教师则是教育事业最重要的一环,他们的付出是我们国家富强的根本保证。

现阶段,各学校的教师数量越来越多,工资、工作安排等方面管理起来就越来越麻烦,这十分不利于教育事业的大步前进,设计出一款用于教师工资管理的程序很有必要,通过系统的C语言学习,我们已经能够通过自己编写程序实现这一目的,进行教师信息的录入,管理,查询等方面的操作,进而推动教育事业的进步。

二.系统目标2.1 (对系统技术的目标)根据所学的程序设计基础原理与程序设计的知识,能够针对一个小型的程序设计基础管理系统,进行系统的需求分析,系统设计,程序设计基础设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型系统程序设计的目的。

2.2 (对系统技术的要求)1. 教师信息及教师工资信息的录入功能(录入数据以文件形式存储)2.教师工资查询功能(至少提供两种及两种以上查询方法)(1)按教师编号进行查询(2)按所在部门进行查询……注:查询结果用链表的形式保存并输出3.教师工资的统计功能4.教师工资的修改功能(如晋升职称后)三、设计的过程及步骤1.需求分析(描述系统需求,既详细分析系统需求和功能)根据题目要求,应当把教师信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把教师信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现教师信息录入,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。

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

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

工资管理系统课程设计c语言一、课程目标知识目标:1. 学生能够理解工资管理系统的基本功能需求,掌握C语言实现工资管理系统所需的基本语法和结构;2. 学生能够运用结构体、数组、文件操作等C语言知识模块,实现工资管理系统中数据的存储、查询、修改和删除等功能;3. 学生了解并掌握C语言中的模块化编程思想,将工资管理系统划分为独立的功能模块,提高代码的可读性和可维护性。

技能目标:1. 学生能够运用所学知识,独立完成一个简单的工资管理系统的设计、编码和调试;2. 学生掌握利用C语言进行系统分析、设计和实现的基本方法,具备基本的编程实践能力;3. 学生能够运用调试工具和技巧,对程序进行调试和优化,提高程序运行的稳定性和效率。

情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣,提高问题解决能力和创新意识;2. 学生在团队协作中,学会沟通、分享和合作,培养良好的团队精神和职业素养;3. 学生认识到编程在工资管理系统等实际应用中的重要性,激发其学习热情,培养积极的学习态度。

课程性质:本课程为高年级C语言程序设计课程的实践环节,旨在让学生通过实际项目的开发,巩固所学知识,提高编程能力。

学生特点:学生已经具备一定的C语言基础,了解基本语法和编程技巧,但实际项目经验不足。

教学要求:结合学生特点,课程设计应注重实践性、实用性和综合性,引导学生运用所学知识解决实际问题,提高编程实践能力。

在教学过程中,关注学生的个体差异,提供适当的指导和帮助,确保学生能够达到预定的学习目标。

通过课程目标的分解,为后续教学设计和评估提供明确的方向。

二、教学内容1. 工资管理系统需求分析:介绍工资管理系统的基本功能,如员工信息管理、工资计算、数据存储与查询等。

教材章节:《C语言程序设计》第十章——文件。

2. C语言基础知识回顾:回顾结构体、数组、指针等基本概念及其在工资管理系统中的应用。

教材章节:《C语言程序设计》第三章——结构体与联合;《C语言程序设计》第四章——数组与字符串;《C语言程序设计》第五章——指针。

教师工资管理系统c语言课设报告

教师工资管理系统c语言课设报告

教师工资管理系统c语言课设报告1. 项目背景教师工资管理系统是一种为学校或教育机构管理教师工资的软件系统。

在传统的工资管理方式中,人工计算和记录容易出错,效率低下。

而使用教师工资管理系统,可以提高工资管理的准确性和效率,节省人力成本。

2. 项目目标本项目旨在设计和实现一个简单的教师工资管理系统,具备以下功能:1. 教师信息的录入、修改和删除;2. 工资计算和生成工资单;3. 工资查询和统计。

3. 项目设计3.1 数据结构设计根据教师工资管理系统的需求,在设计数据结构时需要考虑以下几个要素:1. 教师信息:包括教师工号、姓名、性别、职称、基本工资等。

2. 工资单:包括工资单号、发放时间、应发金额、实发金额等。

根据需求,可以设计以下数据结构:ctypedef struct {int teacherId; 教师工号char name[20]; 姓名char gender[5]; 性别char title[20]; 职称float basicSalary; 基本工资} Teacher;typedef struct {int salaryId; 工资单号char distributeTime[20]; 发放时间float shouldPay; 应发金额float actualPay; 实发金额} Salary;3.2 模块划分根据项目目标,可以将教师工资管理系统划分为以下几个模块:1. 教师信息管理模块:实现教师信息的录入、修改和删除功能。

2. 工资管理模块:实现工资计算、生成工资单、工资查询和统计功能。

3. 界面模块:实现系统的交互界面,使用户能够方便地操作系统。

4. 项目实现4.1 教师信息管理模块教师信息管理模块主要包括教师信息的录入、修改和删除功能。

可以使用文件操作来实现数据的存储和读取。

4.2 工资管理模块工资管理模块主要包括工资计算、生成工资单、工资查询和统计功能。

4.2.1 工资计算工资计算是根据教师的基本工资和绩效考核来计算教师的应发金额。

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

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

工资管理系统 课程设计 C语言一、课程目标知识目标:1. 理解工资管理系统的基本概念和功能需求;2. 掌握C语言中的基本数据类型、运算符、控制结构等编程知识点;3. 学会使用C语言设计并实现一个简单的工资管理系统。

技能目标:1. 能够运用C语言编写出结构清晰、逻辑合理的程序代码;2. 能够运用数组、结构体等数据结构存储和管理工资数据;3. 能够运用文件操作实现工资数据的持久化存储。

情感态度价值观目标:1. 培养学生解决问题的能力和团队协作精神,激发学生对编程的兴趣;2. 增强学生对信息技术的认识,使其意识到信息技术在现实生活中的应用价值;3. 培养学生严谨、认真的学习态度,提高学生的编程素养。

课程性质:本课程为C语言编程实践课,旨在让学生通过动手实践,掌握C语言编程的基本技能,并能够运用所学知识解决实际问题。

学生特点:学生为高年级学生,已具备一定的C语言基础,有较强的逻辑思维能力,但对实际应用场景的编程经验不足。

教学要求:结合学生特点,注重实践操作,引导学生从实际问题出发,逐步培养编程思维,提高编程能力。

课程目标分解为具体学习成果,便于教学设计和评估。

二、教学内容1. 工资管理系统概述- 系统需求分析- 功能模块划分2. C语言基础知识回顾- 数据类型- 运算符与表达式- 控制结构(顺序、分支、循环)3. 数据结构设计- 数组- 结构体4. 函数与模块化编程- 函数定义与调用- 模块化设计5. 文件操作- 文件打开与关闭- 文件读写操作6. 工资管理系统功能实现- 员工信息管理- 工资计算- 工资查询- 数据存储与读取7. 测试与调试- 功能测试- 性能测试- 代码调试教学内容安排与进度:第1周:工资管理系统概述及需求分析第2周:C语言基础知识回顾第3周:数据结构设计第4周:函数与模块化编程第5周:文件操作第6周:工资管理系统功能实现(1)第7周:工资管理系统功能实现(2)第8周:测试与调试教材章节及内容:《C语言程序设计》第3章:数据类型、运算符与表达式第4章:控制结构第6章:函数与模块化编程第7章:数组和字符串第8章:结构体与共同体第9章:文件操作教学内容紧密结合课程目标,注重科学性和系统性,通过以上教学内容,使学生能够掌握C语言编程的核心知识,并能够将其应用于工资管理系统的设计与实现。

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

C语言程序设计课程设计报告设计题目:教师工资管理系统班级学号姓名指导教师起止时间 2010-10-26 至 2010-12-26设计任务该系统包含教师的基本信息,供读者查询。

建立一个文件,包括老师的信息,包括:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金等。

读者可以输入教师信息、插入教师信息、删除教师信息、浏览教师信息、查询教师信息和修改教师信息。

同时读者可以将之前录入的教师信息保存下来,然后关闭程序后,再次打开后只需加载教师信息就可以了。

更加方便以后程序。

评语(教师填写)目录设计任务 (2)评语(教师填写) (2)1.课程设计目的 (4)2.课程设计题目 (5)3.功能描述 (6)4.数据结构设计 (8)5.功能模块设计 (10)5.1主控模块设计 (10)5.2 输入记录模块 (11)5.3 插入记录模块 (11)5.4 删除记录模块 (12)6.函数功能描述 (13)6.1 保存数据函数save() (13)6.2 查询数据函数query() (13)6.1修改数据函数edit() (14)6.1 加载数据函数load() (15)7.运行结果 (15)7.1系统主界面 (15)7.2 输入教师信息界面 (16)7.3 输出教师信息界面 (18)7.4 插入教师信息界面 (19)7.5 保存和加载教师信息界面 (20)8.个人设计小结与心得体会 (21)参考文献 (22)1.课程设计目的本程序旨在训练基本编程能力,了解管理信息系统的开发流程,熟悉C 语言的文件和结构数组的各种基本操作。

本程序涉及结构体、数组、指针、文件等方面的知识。

通过本程序的训练,使读者能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现教师工资管理系统,为进一步开发出高质量信息管理系统打下坚实的基础。

(1)巩固和加强《C语言程序设计》课程的理论知识。

(2)掌握C语言的基本概念、语法、语义和数据类型的使用特点。

(3)掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。

(4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图表示算法。

(5)掌握调试程序的基本方法及上机操作方法。

(6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。

课程设计的思想和方法还可以作为毕业论文时的参考资料。

(7)通过查阅手册和文献资料,培养自己独立分析问题和解决问题的能力。

为自己做毕业设计打好基础。

(8)初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。

通过激发学习兴趣,调动自己主动学习的积极性,并根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。

(9)培养自己的创新能力和创新思维。

可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。

(10)培养自己良好的程序设计风格。

在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。

自己在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。

2.课程设计题目教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。

注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。

A、教师信息处理(1) 输入教师信息(2) 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:提示:具体功能及操作参考题1。

B、教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。

(2) 教师实发工资、应发工资、合计扣款计算。

提示:计算规则如题目。

(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。

(5) 教师综合信息输出提示:输出教师信息到屏幕。

3.功能描述根据需求描述,本人按照结构化程序设计的原则将整个系统划分若干个功能模块。

系统各子模块的设计如下:图1教师工资系统功能模块图(1)输入教师信息模块在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户输入的学生信息存储到链表中,输入完成后提示用户时候继续输入,如果用户输入“Y”或“y”,则再次调用,实现继续输入学生信息的操作。

如果用户输入“N”或“n”,则返回主菜单界面。

(2)插入教师信息模块在主菜单中调用teacher *insert(),然后按照提示依次输入教师信息,然后再调用void print()函数讲所有的教师信息记录打印出来。

然后再返回主菜单界面。

(3)删除教师信息模块在主菜单中调用del()函数,以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息,给出提示信息。

如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。

然后返回主菜单界面。

(4)浏览教师信息模块在主菜单中调用void print()函数来显示教师信息,先判断链表是否为空。

如果链表不为空时,逐条显示链表中教师的信息,显示调用teacher *next()函数按照教师号的大小来显示教师的信息。

然后返回主菜单界面。

(5)保存教师信息模块在主菜单中调用void save()函数来保存教师信息到teacher_list这个文件中。

并给出“保存成功”的提示信息。

然后返回主菜单界面。

(6)查询教师信息模块在主菜单中选择6的时候进行教师信息的查询,调用void query()函数,按教师号查询信息。

提示用户输入要查找的教师号,然后调用void query()函数,查找成功,最后打印出教师的信息。

然后返回主菜单界面。

(7)修改教师信息模块在主菜单中调用void edit()函数。

按教师号查找教师信息,如果找到教师信息,调用void edit()函数提示用户输入新的教师信息,完成修改的操作。

操作结束后提示用户修改成功。

然后返回主菜单界面。

(8)加载教师信息模块在主菜单中调用void load()函数。

如果存在teacher_list文件并不为空,打开文件,找到教师信息。

如果存在teacher_list文件并为空,给出提示,“cannot open file”。

然后返回主菜单界面。

(9)退出系统模块将链表中的数据全部释放掉,防止内存泄露。

退出系统。

4.数据结构设计本程序定义了结构体 teacher,主要用于存放图书的基本信息,如下所示:struct teacher{int num;char name[10];char sex[10];char unit[10];char address[10];long telnum;float salary_1;float allowance;float life_allow;float salary_2;float tel_fee;float water_fee;float rent;float tax;float health_fee;float grant;float total_fee;float actual_salary;struct teacher *next;};其中,各字段含义如下int num :教师号char name[10] :教师姓名char sex[10] :教师性别char unit[10] :教师单位char address[10] :教师住址long telnum :教师电话号码float salary_1 :基本工资float allowance :津贴float life_allow :生活补贴float salary_2 :应发工资float tel_fee :电话费float water_fee :水电费float rent :房租float tax :个人所得税float health_fee :卫生费float grant :公积金float total_fee :合计扣款float actual_salary :实发工资struct teacher *next :指向下一个节点的指针5.功能模块设计5.1主控模块设计主控函数的流程图如图1所示。

首先,调用void welcome()子函数和char mainmenu ()子函数显示欢迎界面和初始界面;再次,调用main() 函数并令ch=mainmenu(),在main()函数中,用switch语句实现该系统各功能,若ch=1,系统实现输入教师信息功能;若ch=2,系统实现插入教师信息功能;若ch=3,系统实现删除教师信息功能;若ch=4,系统实现浏览教师信息功能;若ch=5,系统实现保存教师信息功能;若ch=6,系统实现查询教师信息功能;若ch=7,系统实现修改教师信息功能;若ch=8,系统实现加载教师信息功能;若 ch=0,退出系统。

(对主控函数进行文字描述)5.2 输入记录模块他输入教师信息的流程图如下图。

首先要开辟一个新节点,并使p1,p2指向它。

读入一个教师数据给p1所指的节点。

此时要使head=NULL,n=0,并且p1->num!=0。

5.3 插入记录模块插入记录模块具体流程图如下图所示:5.4 删除记录模块(具体流程图如图所示)6.函数功能描述6.1 保存数据函数save()函数原型:void save()功能描述:将链表teacher中的N个数据写入到磁盘文件teacher_list中,如果保存成功,则给出提示保存成功,否则返回“cannot ofen file”表示无法打开文件,返回“file write error”表示文件输入错误。

6.2 查询教师信息函数query()函数原型:void query(struct teacher *p)功能描述:将链表teacher中的head指向p,然后让用户输入教师号no,依次在链表中需找p,如果教师号不对,则指针往后面拨动一下,使p=p->next;知道找到相对应的正确的教师号。

然后打印出教师的基本信息。

函数流程图如图5.2 所示图5.26.3 修改教师信息函数edit()函数原型:void edit(struct teacher *p)功能描述:首先让用户输入希望修改的教师的教师号a,然后在链表中一条一条查找看p->num是否等于a,如果找到,则让用户再次输入教师的具体信息,输入完毕跳出,转向主菜单界面。

相关文档
最新文档