![c语言教师工资管理系统方案_第1页](http://file4.renrendoc.com/view/746cd0737b20060717eb65a30ed55872/746cd0737b20060717eb65a30ed558721.gif)
![c语言教师工资管理系统方案_第2页](http://file4.renrendoc.com/view/746cd0737b20060717eb65a30ed55872/746cd0737b20060717eb65a30ed558722.gif)
![c语言教师工资管理系统方案_第3页](http://file4.renrendoc.com/view/746cd0737b20060717eb65a30ed55872/746cd0737b20060717eb65a30ed558723.gif)
![c语言教师工资管理系统方案_第4页](http://file4.renrendoc.com/view/746cd0737b20060717eb65a30ed55872/746cd0737b20060717eb65a30ed558724.gif)
![c语言教师工资管理系统方案_第5页](http://file4.renrendoc.com/view/746cd0737b20060717eb65a30ed55872/746cd0737b20060717eb65a30ed558725.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.PAGE.C语言程序设计课程设计报告设计题目:教师工资管理系统班级学号姓名指导教师起止时间2010-10-26至2010-12-26..设计任务该系统包含教师的基本信息,供读者查询。建立一个文件,包括老师的信息,包括:教师号、姓名、性别、单位名称、家庭住址、、基本工资、津贴、生活补贴、应发工资、费、水电费、房租、所得税、卫生费、公积金等。读者可以输入教师信息、插入教师信息、删除教师信息、浏览教师信息、查询教师信息和修改教师信息。同时读者可以将之前录入的教师信息保存下来,然后关闭程序后,再次打开后只需加载教师信息就可以了。更加方便以后程序。评语<教师填写>..目录设计任务2评语<教师填写>21.课程设计目的42.课程设计题目……………….53.功能描述64.数据结构设计85.功能模块设计105.1主控模块设计105.2输入记录模块115.3插入记录模块115.4删除记录模块126.函数功能描述136.1保存数据函数save<>136.2查询数据函数query<>136.1修改数据函数edit<>146.1加载数据函数load<>157.运行结果157.1系统主界面15 7.2输入教师信息界面………………..16 7.3输出教师信息界面18 7.4插入教师信息界面……………….19 7.5保存和加载教师信息界面………………….…208.个人设计小结与心得体会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——输入教师信息2——插入教师信息2——插入教师信息33——删除教师信息教师工资管理系统教师工资管理系统4——浏览教师信息4——浏览教师信息55——录入教师信息6——查询教师信息6——查询教师信息7——修改教师信息7——修改教师信息8——加载教师信息8——加载教师信息结束0——退出系统结束0——退出系统图1教师工资系统功能模块图<1>输入教师信息模块在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户输入的学生信息存储到链表中,输入完成后提示用户时候继续输入,如果用户输入"Y"或"y",则再次调用,实现继续输入学生信息的操作。如果用户输入"N"或"n",则返回主菜单界面。<2>插入教师信息模块在主菜单中调用teacher*insert<>,然后按照提示依次输入教师信息,然后再调用voidprint〔函数讲所有的教师信息记录打印出来。然后再返回主菜单界面。<3>删除教师信息模块在主菜单中调用del<>函数,以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息,给出提示信息。如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。然后返回主菜单界面。<4>浏览教师信息模块在主菜单中调用voidprint<>函数来显示教师信息,先判断链表是否为空。如果链表不为空时,逐条显示链表中教师的信息,显示调用teacher*next<>函数按照教师号的大小来显示教师的信息。然后返回主菜单界面。<5>保存教师信息模块 在主菜单中调用voidsave<>函数来保存教师信息到teacher_list这个文件中。并给出"保存成功"的提示信息。然后返回主菜单界面。<6>查询教师信息模块 在主菜单中选择6的时候进行教师信息的查询,调用voidquery<>函数,按教师号查询信息。提示用户输入要查找的教师号,然后调用voidquery<>函数,查找成功,最后打印出教师的信息。然后返回主菜单界面。<7>修改教师信息模块 在主菜单中调用voidedit<>函数。按教师号查找教师信息,如果找到教师信息,调用voidedit<>函数提示用户输入新的教师信息,完成修改的操作。操作结束后提示用户修改成功。然后返回主菜单界面。<8>加载教师信息模块 在主菜单中调用voidload<>函数。如果存在teacher_list文件并不为空,打开文件,找到教师信息。如果存在teacher_list文件并为空,给出提示,"cannotopenfile"。然后返回主菜单界面。<9>退出系统模块 将链表中的数据全部释放掉,防止内存泄露。退出系统。4.数据结构设计本程序定义了结构体teacher,主要用于存放图书的基本信息,如下所示:structteacher{ intnum; charname[10]; charsex[10]; charunit[10]; charaddress[10]; longtelnum; floatsalary_1; floatallowance; floatlife_allow; floatsalary_2; floattel_fee; floatwater_fee; floatrent; floattax; floathealth_fee; floatgrant; floattotal_fee; floatactual_salary; structteacher*next; };其中,各字段含义如下 intnum:教师号 charname[10]:教师姓名 charsex[10]:教师性别 charunit[10] :教师单位 charaddress[10]:教师住址 longtelnum:教师号码 floatsalary_1:基本工资 floatallowance:津贴 floatlife_allow:生活补贴 floatsalary_2:应发工资 floattel_fee:费 floatwater_fee:水电费 floatrent:房租 floattax:个人所得税 floathealth_fee:卫生费 floatgrant:公积金 floattotal_fee:合计扣款 floatactual_salary:实发工资 structteacher*next:指向下一个节点的指针5.功能模块设计5.1主控模块设计主控函数的流程图如图1所示。首先,调用voidwelcome<>子函数和charmainmenu<>子函数显示欢迎界面和初始界面;再次,调用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。开辟一个新节点,并使P1,p2指向它读入一个教师数据给P1所指的结点开辟一个新节点,并使P1,p2指向它读入一个教师数据给P1所指的结点Head=NULL&&n=0<当读入的p1->num!=o>N=n+1N=1真假Head=p1p2->next=p1把p1所指的结点把p1所指的结点作为第一结点连接到表尾P2=p1再开辟一个新结点,使p1指向它读入一个教师数据给p1所指结点5.3插入记录模块插入记录模块具体流程图如下图所示:P1=head,p0=teacher原来的链表是空表是否当p0->num>p1->num以及p1所指的不是表尾结点P2指向p1位置P1向后移一个结点P0->num<=p1->num将p0所真假指的结p1指向头结点点作为是否p1->next=p0唯一的head=p0p2->next=p0结点p0->next=p1p0->next=p1p0->next=NULL链表是一个空链表真假P1=head输当num!=p1->num以及p1所指的结点不是表尾结点P2=p1链表是一个空链表真假P1=head输当num!=p1->num以及p1所指的结点不是表尾结点P2=p1出P1=p1->nextP1是要删除的结点是否空p1所指的头结点是否输出找不到表head=p2->next=教师信息P1->nextp1->next6.函数功能描述6.1保存数据函数save<>函数原型:voidsave<>功能描述:将链表teacher中的N个数据写入到磁盘文件teacher_list中,如果保存成功,则给出提示保存成功,否则返回"cannotofenfile"表示无法打开文件,返回"filewriteerror"表示文件输入错误。6.2查询教师信息函数query<>函数原型:voidquery<structteacher*p>功能描述:将链表teacher中的head指向p,然后让用户输入教师号no,依次在链表中需找p,如果教师号不对,则指针往后面拨动一下,使p=p->next;知道找到相对应的正确的教师号。然后打印出教师的基本信息。函数流程图如图5.2所示p=headp=headp->num=nop->num!=nop=p->nextp=p->next打印教师信息打印教师信息图5.26.3修改教师信息函数edit<>函数原型:voidedit<structteacher*p>功能描述:首先让用户输入希望修改的教师的教师号a,然后在链表中一条一条查找看p->num是否等于a,如果找到,则让用户再次输入教师的具体信息,输入完毕跳出,转向主菜单界面。如果没有找到,则令p=p->next。直到查询完所有的教师记录。函数流程图如图5.3所示输入想修改教师信息的教师号a输入想修改教师信息的教师号ap->num==ap->num==aYesnop=p->next再次输入教师信息p=p->next再次输入教师信息6.4加载教师信息函数load<>函数原型:voidload<>功能描述:首先进行判定""teacher_list"是否为空,如果为空,给出提示,然后将p1,p2定义为动态的存储教师的记录,并将p1定义为头结点,然后依次一条一条的读出。部分代码如下: p1=p2=<structteacher*>malloc<LEN>; head=p1; fread<&n,sizeof<n>,1,fp>; do { if<fread<p1,sizeof<structteacher>,1,fp>!=1> { printf<"fileerror\n">; gotoend; } if<p1->next!=NULL> { p2=p1; p1=<structteacher*>malloc<LEN>; p2->next=p1; } else break; }while<1>;7.运行结果7.1系统主界面用户刚进入系统时,如图6.1所示。主菜单界面:图6.1用户根据自己的需求输入自己的选择。7.2输入界面用户在主菜单界面的时候输入1,显示如图6.2:图6.2依次给出需要输入的信息的,教师号、姓名、性别、单位名称、家庭住址、、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手轿车买卖合同示范文本
- 个人车位赠与合同范本
- 临时工劳动合同范本参考
- 2025年平安保险公司特定疾病终身保险赔付合同
- 业务合作合同格式样本
- 不锈钢采购与销售合同
- 个人借款质押合同书样本
- 专用线铁路物流服务合同细则
- 个人与企业租赁合同范本大全
- 采购标准合同书
- 游戏综合YY频道设计模板
- arcgis软件操作解析课件
- 中兴ZCTP 5GC高级工程师认证考试题库汇总(含答案)
- 大学生创新创业教程PPT全套完整教学课件
- 小学科学项目化作业的设计与实施研究
- 2023年考研考博-考博英语-西安建筑科技大学考试历年真题摘选含答案解析
- 2020年中考生物试卷及答案
- MCNP-5A程序使用说明书
- java基础知识大全
- SMM英国建筑工程标准计量规则中文 全套
- GB 18030-2022信息技术中文编码字符集
评论
0/150
提交评论