教师工资管理系统题U:教师工资管理系统院系专业:姓名:学号:2012年3月13日C语言程序设讣报告书一、程序设il•的U的和题U要-5 -四、遇到的问题及解决方法分析、体-11 - 1•遇到的问题及解决方-11 -2.心得体-15 -C语言程序设讣报告书一.程序设计的U的和题U要求用所学过的c语言程序设计知识,掌握结构化程序设il•的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设讣问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。
1.初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,乂接近工程实际需要。
通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求, 训练自己实际分析问题的能力及编程能力,并养成&好的编程习惯。
2•使学生掌握,语言的基本概念、语法、语义和数据类型的使用特点。
3•使学生掌握,语言程序设计的方法及编程技巧,能正确使用,语言编写程序。
4•使学生掌握调试程序的基本方法及上机操作方法。
5•掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。
课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。
本次课程设汁主要U的在于,通过综合程序课程设计,加深对《C语言》课程所学知识的理解,进一步巩固C语言讲法规则。
学会编制结构清晰、风格ft好、数据结构适当的C 语言程序,从而培养和提高C语言程序设计•报告书学生的独立分析问题和解决实际问题的能力。
题U要求:每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资.津贴、生活补贴.应发工资、电话费、水电费、房租.所得稅、卫生费、公积金、合计扣款、实发工资。
注:应发工资二基本工资+津贴+生活补贴;合计扣款二电话费+水电费+房租+所得稅+卫生费+公积金;实发工资=应发工资,合计扣款。
A、教师信息处理信息(1)输入教师插入(修改)教师信息删除教师信息浏览教师信息查询教师信息导入教师信息保存教师信息B、教师数据处理(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2)教师实发工资、应发工资、合计扣款计算。
(3)教师数据管理(4)教师数据査询(5)教师综合信息输出C语言程序设计•报告书二.流程图开始选0教师信教师数息处理据处理输插删浏查导保录教教教工入入除览询入存入师师师资教教教教教教教基数数综计师师师师师师师本据据合算信信信信信信信数管查信息息息息息息息据理询息结束C语言程序设讣报告书三.源代码程序:#1nclude<stdio. h>#include<string, h> #include<stdlib, h> #include<conio. h> /*函数声明*/ ^define N 2//宏定义参数Xvoid input () ://自己写的能输入教师信息的函数int menu() ://定义一个函数菜单struct teacher//关于教师的结构char nuin[15] ;//定义教师号的字符串char name [30] ;//同上char sex;//同上float dwmc; //浮点型变量float jtzz://同上float Ixdh://floatfloatfloatfloatfloatfloat fzs;//…float Sts;//…float wsf ://..float gjj;//float yfg z;//・float hjkk;//・float sfg z;//・C语言程序设讣报告书}a[X];int menu ()int n;//定义nprintf ("1. 输入教师信息\r);//产生格式化输出函数printf ("2. 插入(修改)教师信息\n");//。
printf ("3. 删除教师信息\n");//。
°printf ("4. 浏览教师信息\n");//。
查询教师信息\n");//。
printf ("5・printf ("6. 导入教师信息\n");//。
printf ("7.printf ("************************************************\n");//« «printfC请输入你要执行的操作:\n");//。
° scanf &n) ; //格式输入函数while( n<l I I n>7)//循环语句printfC请巫新输入\n");scanf &n);return n;//返回值void input () //实现教师信息的输入void save ();for(i=0:i<N:i++)C语言程序设计•报告书printf ("请输入教师号:")://printf和scanf的输入输出scanf &a[i]・ num);printfC请输入教师姓名:");scanf &a[i]・ name);scanf &a[i]. sex);printfC请输入教师单位名称:");printfC请输入教师性别:");scanf &a[i]. dwmc);printfC请输入教师家庭住址:");getchar ();scanf &a[i]. jtzz);printfC请输入教师联系电话:");getchar (); scanf &a[i]・ Ixdh);printfC请输入教师基本工资:");getchar (); scanf &a[i]. jbgz);printfC请输入教师津贴:");getchar (); scanf &a[i]・ jt);printfC请输入教师生活补贴:");getchar (); scanf &a[i]・ shbt);printfC请输入教师电话费:");getchar (); scanf &a[i]・ dhf);printfC请输入教师水电费:");getchar (); scanf &a[i]・ sdf);getchar ();printfC请输入教师房租费:");scanf &a[i]・ fzs);C语言程序设计•报告书printfC请输入教师所得税r);getchar ();scanf &a[i]・ sts);printfC请输入教师卫生费:");getchar ();scanf &a[i]・ wsf);printfC请输入教师公积金:");getchar ();scanf &a[i], gjj);a[i]・ yfgz=a[i]. jbgz+a[i]・ jt+a[i]. shbt: a[i]・ hjkk=a[i]・ dhf+a[i]- sdf+a[i]. fzs+a[i]・ sts+a[i]. wsf+a[i]. gjj;a[i]. sfgz=aEi]. yfgz-aEi], hjkk: printf ("\n%f %f %f\n", a[i]. yfgz, a[i]. hjkk, a[i]・ sfgz);save 0 ;void xiugai () //能修改信息的函数char temp[20]: int flag=0:printfC请输入要修改的教师号:\n");getchar () ;//回车gets (temp);for(i=0:i<N:i++)if (strcmp(temp, a[i]・ num) ==0)printf("%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f\n", aEi]. num, a[i]. name, aEi], sex, a[i]. dwmc, aEi], jtzz, aEi], Ixdh, a[i]. j bgz, a[i], jt, a[i], shbt, a[i]• dhf, a[i]. sdf, a[i]・ fzs, a[i]・ sts, a[i]. wsf, aEi]. gj j);printfC请巫新输入教师号、姓名、性别、单位名称、家庭住址、联C语言程序设计•报告书系电话、基本工资、津贴、生活补贴、电话费、水电费、房租费、所得稅、卫input 0;flag=l:if(flag==O)printf ("査无此人! \n");printfC修改后的教师信息:\n");printfC教师号、姓名、性别、单位名称、家庭住址.联系电话、基本工资、津贴、生活补贴、电话费、水电费、房租费、所得税、卫生费、公积金:\『);for(i=0:i<2:i++);printf("%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f\n", a[i]・ num, a[i]. name,a[i]・ sex, a[i]・ dwmc, a[i]. jtzz, aEi], Ixdh, a[i]・ jbgz, a[i]・ jt, a[i]・shbt, a[i]. dhf, a[i]. sdf, a[i]・ fzs, a[i]- Sts, a[i]. wsf, a[i]・ gjj);void shuchu() //能输出信息的函数printfC教师号、姓名、性别、单位名称、家庭住址.联系电话、基本工资、津贴、生活补贴、电话费、水电费、房租费、所得税、卫生费、公积金、应发资、合计扣款、实发工资、:\『);for(i=0:i<N:i++)printf("%s %s %c %f %f %f %f %f %f %f %f %f %f %fa[i]・ num, aEi]. name,a[i]. sex, a[i]・ dwmc, a[i]・ jtzz, a[i]. Ixdh, a[i]・ jbgz, a[i]・ jt, a[i]. shbt, a[i]・ dhf, a[i]. sdf, a[i]. fzs, a[C语言程序设计•报告书void chaxunO//能査询信息的函数i]- Sts, a[i]. wsf, a[i]・ gjj);printf ("%f %f a[i]・ yfgz, a[i]・ hjkk, a[i]・ sfgz);char name[20];int flag=0:printfC请输入要查找的教师姓名:\n");getchar ();gets(name);for(i=0:i<N:i++)if (strcmp(name, a[i]・ name) ==0)printfC教师号、姓名、性别、单位名称、家庭住址.联系电话、基本工资、津贴、生活补贴、电话费、水电费、房租费、所得税、卫生费、公积金:\n");printf("%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f\n", a[i]・ num, a[i], name,a[i]・ sex, a[i]・ dwmc, a[i]・ jtzz, a[i]. Ixdh, a[i]・ jbgz, a[i]. jt, a[i]. shbt, a[i]・ dhf, a[i]. sdf, a[i]・ fzs, a[i]- Sts, a[i]. wsf, a[i]・ gjj);flag=l:if(flag==O)printf ("查无此人! \n");void mainO //主函数{ int num:system("color 6f");while (nuin=menu ())switch(num)case 1:input();break;-10 -C语言程序设讣报告书case 2:xiugai():break:case 4:shuchu0;break;case 5: chaxun () ; break;case 7:exit (0);getchO ;systemCclsO://清屏libcmtd. lib(crtO. obj) : error LNK2001: unresolved void save () //保存输入的教师信息external symbol _mainWindows项U要使用Windows子系统,而不是Console,可以这样设置: [Project] —> [Settings]—> 选择"Link"属性页,S Project Options 4^^/subsystem: console subsystem:windows 2. Console子系统设置错误,提示:LIBCD. lib(wincrtO. obj) : error LNK2001: unresolvedexternal symbol _WinMain@16控制台项U要使用Console子系统,而不是Windows,设置:[Project] —> [Settings]—> 选择"Link"属性页,在Project Options 4^^/subsystem:windows subsystem:console 3.程序入口设置错误,提示:C语言程序设计•报告书msvcrtd. lib(crtexew. obj) : error LNK2001: unresolvedexternal symbol _WinMain@16通常,MFC项U的程序入口函数是WinMain.如果编译项U的Unicode版本,程序入口必须改为wWinMainCRTStartup,所以需要巫新设置程序入口:[Project] —> [Settings]—> 选择"C/C++"属性页,在Category 中选择Output,再在Entry-point symbol 中填入wWinMainCRTStartup,即可4.线程运行时库设置错误,提示:nafxcwd. lib(thrdcore. obj) : error LNK2001: unresolved external symbol_beginthreadexnafxcwd. lib(thrdcore. obj) : error LNK2001: unresolved external symbol_endthreadex这是因为MFC要使用多线程时库,需要更改设置:[Project] —> [Settings]—> 选择"C/C++"属性页,在Category 中选择Code Generation,再在Use run-time library 中选择Debug Multithreaded 或者multithreaded第二类:程序没有添加必要的库。