-1-目录一、需求分析·········································2二、概要设计·········································2三、详细设计·········································5四、调试分析·········································18五、用户手册·········································19六、测试数据·········································19七、附录·············································23-2-一、需求分析职工工资管理系统功能设计要求(1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。(2)显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。(3)修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。(4)查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。(5)删除记录:可删除数据文件中的任一记录。(6)统计:(A)计算各项工资平均工资及总工资,(B)统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元)以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。(7)保存数据文件功能。例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资01张望1286794198109135203402李明118562813594114174003王小民895438986473129404张效章1350868210116150216205彭山7453988461681098各项平均工资1092.2625.214588.8108(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计1、程序总体功能框架:总量显示-3-2、一些数据结构的介绍:structworker定义职工的结构体{intnum;职工工号charname[20];职工姓名intjibengongzi;职工的基本工资intzhiwugongzi;职工的职务工资intjintie;职工的津贴intyiliaobaoxian;职工的医疗保险intgongjijin;职工的公积金intqiansan;职工前三项工资(基本工资、职务工资、津贴)之和intsum;职工的总工资}worker[100];建立最多为100,、名为worker的结构体3、定义主要的函数:主菜单查找功能显示功能删除功能输入功能退出程序添加功能修改功能按姓名删除按工号查找修改工号修改姓名修改职务工资修改基本工资修改医疗保险修改津贴修改公积金按姓名查找按工号删除-4-voidmenu();voidInput();voidModify();voidSearch();voidAdd();voidDelete();voidShow();voidExit();4、几个主要函数介绍:○1清屏函数:system(cls);将前面操作的屏幕清楚,但不会清除数据○2菜单函数:menu();显示主菜单,便于选择○3输入函数:Input();用于输入数据○4修改函数:Modify();用于修改数据○5查找函数:Search();用于查找信息○6添加函数:Add();用于增加信息○7删除函数:Delete();用于删除信息○8显示函数:Show();用于显示信息○9退出函数:Exit();用于退出该系统○10选择函数:select();用于选择显示信息或返回到菜单○11保存信息的函数:save():用于保存信息○12保存人数的函数:P();用于保存已保存数据的人数5、本程序模块结构⑴主函数模块intmain(){system(cls);menu();}执行主函数后,执行菜单函数。⑵菜单函数模块voidmenu(){intn;system(cls);printf(\n\n\n);printf(\t\t***********************************************\n);printf(\t\t****\n);printf(\t\t**Ifyouwerethefirsttoenterthesystem**\n);printf(\t\t**pleaseselectInput!**\n);printf(\t\t****\n);printf(\t\t**1-------Input**\n);printf(\t\t**2-------Modify**\n);-5-printf(\t\t**3-------Search**\n);printf(\t\t**4-------Add**\n);printf(\t\t**5-------Delete**\n);printf(\t\t**6-------Show**\n);printf(\t\t**7-------Exit**\n);printf(\t\t****\n);printf(\t\t***********************************************\n);printf(\t\t\n);printf(\n\n);printf(\t\tInputyourchoose(1-7):);scanf(%d,&n);if(n=1&&n=7){switch(n){case1:Input();break;case2:Modify();break;case3:Search();break;case4:Add();break;case5:Delete();break;case6:Show();break;case7:Exit();break;}}elsemenu();}菜单函数中包括输入函数、修改函数、查找函数、添加函数、删除函数、显示函数、退出函数。根据菜单中各个函数代表的数字选择相应的数字进行操作。三、详细设计#includestdio.h-6-#includestring.hstructworker//定义结构体{intnum;charname[20];intjibengongzi;intzhiwugongzi;intjintie;intyiliaobaoxian;intgongjijin;intqiansan;intsum;}worker[100];voidmenu();//定义几个主要的函数voidInput();voidModify();voidSearch();voidAdd();voidDelete();voidShow();voidExit();intmain()//主函数{system(cls);menu();}voidmenu()//菜单函数{intn;system(cls);//清屏printf(\n\n\n);//菜单界面printf(\t\t***********************************************\n);printf(\t\t****\n);printf(\t\t**Ifyouwerethefirsttoenterthesystem**\n);printf(\t\t**pleaseselectInput!**\n);printf(\t\t****\n);printf(\t\t**1-------Input**\n);printf(\t\t**2-------Modify**\n);printf(\t\t**3-------Search**\n);printf(\t\t**4-------Add**\n);printf(\t\t**5-------Delete**\n);-7-printf(\t\t**6-------Show**\n);printf(\t\t**7-------Exit**\n);printf(\t\t****\n);printf(\t\t***********************************************\n);printf(\t\t\n);printf(\n\n);printf(\t\tInputyourchoose(1-7):);//选择需要进行的功能,选择1-7之间的数scanf(%d,&n);if(n=1&&n=7){switch(n)//根据选择不同的数,实现不同的功能{case1:Input();break;case2:Modify();break;case3:Search();break;case4:Add();break;case5:Delete();break;case6:Show();break;case7:Exit();break;}}elsemenu();//如果选择的数不在1至7之间,返回菜单重新输入}voidInput()//输入函数{inti,p;clrscr();printf(\n\nHowmanypeople?(0-100):);//输入需要输入信息的职工人数scanf(%d,&p);if(p=0&&p=100)//输入职工的信息{printf(\n\n);printf(Pleaseinputdata:\n);printf(\n);f1();for(i=0;ip;i++){input(i);worker[i].sum=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie-worker[i].yiliaobaoxian-worker[i].gongjijin;//计算职工的总工资-8-worker[i].qiansan=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie;//职工前三项工资(基本工资、职务工资、津贴)之和}}elseInput();//如果输入的职工人数超过100,返回输入函数重新输入save(p);//保存输入的职工信息select();//选择显示信息或返回到菜单}voidModify()//修改函数{inti,j=-1,d,k,t,n;charm[20];FILE*fp;//定义一个文件指针system(cls);//清屏n=P();printf(\n\n);printf(Choosethewayyouwanttomodify:\n);//选择通过何种方式修改信息printf(\n\n);//选择方式的界面printf(\t\t****************************************\n);printf(\t\t**\n);printf(\t\t*1.Bynametomodify*\n);printf(\t\t**\n);printf(\t\t*2.Bynumbertomodify*\n);printf(\t\t**\n);printf(\t\t****************************************\n);printf(\ninputyourselection:);scanf(%d,&d);if(d!=1&&d!=2){printf(\ninputerror!Pressanykeytocontinue.);getchar();Modify();//选择的数字错误,返回修改函数重新选择}elseif(d==1){do{printf(\nPleaseinp