1、程序流程图如下:四详细设计1.功能模块共分为六个模块:(1) 输入教师信息模块 在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户信息储存到链表中,输入完成后提示用户是否继续输入,如果用户输入“Y”,则再次调用,实现继续输入教师信息的操作。如果用户输入”NO“,则返回主菜单界面。(2) 修改教师信息模块 在主函数中调用void change_id(),修改记录操作需要对数组中目标元素的数据域中的值进行操作。首先请用户输入要修改的教师编号,然后若找到该记录就提示用户输入各个信息。(3) 删除教师信息模块 在主函数中调用void delete_id(),以删除教师信息,首先按学
2、号查询教师信息,如果没有找到教师信息,给出提示。如果找到教师信息,将教师信息显示出来,提示用户删除。(4) 查询教师信息 查询分三种,调用void show_all()显示所有教师信息;调用void search_id()按编号查询教师信息;调用void search_name()按姓名查询教师信息。(5) 读入教师信息文件模块 调用void readfromfile()函数从文件导入教师信息(6) 保存并退出模块调用void writetofile()写入文件。2函数的设计与调用(1)主函数的设计编写主函数的主要任务就是确定调用函数以及控制屏幕显示。(2)其他函数1)原型void show_
3、all;功能 展出所有录入文件参数 无 返回值 无 工作方式 调用 char name10; float salary;float allowance; float life; float tel;float utilities;float rent;float due; float health; float fund; float total; float should; float actual; 2)原型void tea_new功能 创建新的信息录入参数 无返回值 无工作方式 创建file 3)原型void searchmenu;功能 查找菜单工作方式 调用void search_id
4、;void search_name;4)原型void search_id;功能 查找信息 按编号查找返回值 整个信息工作方式 调用 number5)原型void search_name;功能 查找信息 按姓名查找工作方式 调用char name6)原型void delete_id功能 删除数据 按编号删除工作方式 调用 id 7)原型 void change_id; 功能 改变数据 按编号改返回值 整个录入信息工作方式 调用 id3.数据结构的设计定义结构体teacher,用于存放教师的信息。struct teacher int number; 教师编号 char name10; 教师姓名 教
5、师基本工资 float allowance; 教师津贴 教师生活补贴 教师电话费 float utilities; 教师水电费 float rent; 教师房租 float due; 教师所得税 教室卫生费 教师公积金 教师合计扣款 教师应发工资 教师实发工资 tea500;4.算法实现链表是算法的关键。在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法决定了其他成员函数数据的处理。本系统中采取的是表尾插入的方法。在删除某信息时需要判断数据是在表头,表中还是表尾,如果删除的是在表中,则需要将删除的前后链表连接起来。统大量运用了链表的5种基本操作:建立链表、链表的插入、删除、输入和查找
6、。5.程序清单#includestring.h#include conio.h/*教师工资管理系统结构体定义*/int num=0;FILE *fp; void mainmenu(); void readfromfile(); void writetofile(); void show_all(); void tea_new (); void searchmenu(); void search_id(); void search_name(); void delete_id(); void change_id(); void main() readfromfile(); while(1) ma
7、inmenu(); /主菜单void mainmenu() char choic; system(cls);printf(t-欢迎使用(o)/-nt*教师工资管理系统*nnt-1输入教师信息-nt-2修改教师信息-nt-3删除教师信息-nt-4查询教师信息-nt-5保存并退出-nt*nt请输入所需的服务项目序号: n choic=getch(); switch(choic) case1:tea_new ();break;2change_id ();3delete_id ();4searchmenu();5writetofile(); default:mainmenu();/从文件导入void
8、readfromfile() if(fp=fopen(teacher.bin,rb)=NULL) printf(nt教师工资信息文件不存在哟(*/*) if(fp=fopen(wb printf(nt建立失败 exit(0); elsent教师工资信息文件已建立(o3)nt按回车键进入主菜单 getch(); return; exit(0); fseek(fp,0,2); if(ftell(fp)0) rewind(fp); for(num=0;!feof(fp) & fread(&teanum,sizeof(struct teacher),1,fp);num+); printf(nt教师工资
9、信息文件导入成功(*3)nt文件中无任何记录(=_=) return;/写入文件void writetofile() int i;nt打开文件失败(*/*) for(i=0;inum;i+) if(fwrite(&teai,sizeof(struct teacher),1,fp)!=1)nt文件写入错误!()n fclose(fp);nt教师工资信息文件已保存nt按任意键退出程序(*)nt exit(0);/添加记录void tea_new()请输入教师号: scanf(%d,&teanum.number);请输入教师姓名:%s,teanum.name);请输入教师基本工资:%fteanum.
10、salary);请输入教师的津贴:teanum.allowance);请输入教师的生活补贴:teanum.life);请输入教师的电话费:teanum.tel);请输入教师的水电费:teanum.utilities);请输入教师的房租:teanum.rent);请输入教师的所得税:teanum.due);请输入教师的卫生费:teanum.health);请输入教师的公积金:teanum.fund); teanum.should =teanum.salary +teanum.allowance +teanum.life; teanum.total=teanum.tel+teanum.utilit
11、ies +teanum.rent+teanum.due+teanum.health+teanum.fund; teanum.actual=teanum.should-teanum.total; num+;是否继续添加?(Y/N) if(getch()=y) tea_new ();/查询菜单void searchmenu()nt-查询-nt-1显示所有-nt-2按编号查询-nt-3按姓名查询-nt-4返回主菜单-nt请选择:n show_all();search_id();search_name(); /显示所有void show_all() if(num!=0) nt编号: %d,teai.n
12、umber);nt姓名: %s,teai.name);nt基本工资: %.5f,teai.salary);nt津贴:,teai.allowance);nt生活补贴:,teai.life);nt电话费:,teai.tel);nt水电费:,teai.utilities);nt房租:,teai.rent);nt所得税:,teai.due);nt卫生费:,teai.health);nt公积金:,teai.fund);nt应发工资:,teai.should);nt合计扣款:,teai.total);nt实发工资:,teai.actual); if(i+1num) nt_pause nt* elsent文
13、件中无记录nt按回车键回到主菜单 getch();/按编号查询void search_id() int mark=0; int i,a=0; int id;nt请输入编号:id); if(id=teai.number)nt*以下是你要查找的教师工资信息*n mark+; if(mark=0)nt没有该编号的信息nt按回车键返回主菜单/按姓名查询void search_name()请输入姓名:,name); for(i=a; if(strcmp(teai.name,name)=0) if(i+1) tn是否继续查找相同名字的教师信息:(y/n) if(getch()= a=i;continue; if(mark!nt没有相同姓名的教师信息记录/删除菜单void delete_id() int i,j; int deletemark=0;nt情输入要删除的编号: if(num=0)nt对不起,文件中无任何教师工资信息记录 if(id=teai.num
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1