收藏 分销(赏)

c语言教师工资标准管理系统.doc

上传人:天**** 文档编号:2993138 上传时间:2024-06-12 格式:DOC 页数:24 大小:246.04KB 下载积分:10 金币
下载 相关
c语言教师工资标准管理系统.doc_第1页
第1页 / 共24页
c语言教师工资标准管理系统.doc_第2页
第2页 / 共24页


点击查看更多>>
资源描述
C语言程序设计 课程设计汇报 设计题目:老师工资管理系统 班 级 学 号 姓 名 指导老师 起止时间 -10-26 至 -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——输入老师信息 2——插入老师信息 3——删除老师信息 老师工资管理系统 4——浏览老师信息 5——录入老师信息 6——查询老师信息 7——修改老师信息 8——加载老师信息 结 束 0——退出系统 图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。 开辟一个新节点,并使P1,p2指向它 读入一个老师数据给P1所指结点 Head=NULL && n=0 <当读入p1->num!=o> N=n+1 N=1 真 假 Head=p1 p2->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=p0 p2->next=p0 结点 p0->next=p1 p0->next=p1 p0->next=NULL f 链表是一个空链表 真 假 P1=head 输 当num!=p1->num和p1所指结点不是表尾结点 P2=p1 出 P1=p1->next P1是要删除结点 是 否 空 p1所指头结点 是 否 输出找不到 表 head= p2->next= 老师信息 P1->next p1->next 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 所表示 p=head p->num=no p->num!=no p=p->next 打印老师信息 图5.2 6.3 修改老师信息函数edit() 函数原型:void edit(struct teacher *p) 功效描述:首先让用户输入期望修改老师老师号a, 然后在链表中一条一条查找看p->num是否等于a,假如找到,则让用户再次输入老师具体信息,输入完成跳出,转向主菜单界面。假如没有找到,则令p=p->next。直到查询完全部老师统计。 函数步骤图图5.3 所表示 输入想修改老师信息老师号a p->num==a Yes no p=p->next 再次输入老师信息 6.4 加载老师信息函数load() 函数原型:void load() 功效描述:首优异行判定“"teacher_list”是否为空,假如为空,给出提醒,然后将p1,p2定义为动态存放老师统计,并将p1定义为头结点,然后依次一条一条读出。部分代码以下: p1=p2=(struct teacher *)malloc(LEN); head=p1; fread(&n,sizeof(n),1,fp); do { if(fread(p1,sizeof(struct teacher),1,fp)!=1) { printf("file error\n"); goto end; } if(p1->next!=NULL) { p2=p1; p1=(struct teacher *)malloc(LEN); p2->next=p1; } else break; }while(1); 7.运行结果 7.1系统主界面 用户刚进入系统时,图6.1所表示。 主菜单界面: 图6.1 用户依据自己需求输入自己选择。 7.2输入界面 用户在主菜单界面时候输入1,显示图6.2: 图6.2 依次给出需要输入信息,老师号、姓名、性别、单位名称、家庭住址、联络电话、基础工资、津贴、生活补助、电话费、水电费、房租、所得税、卫生费、公积金等。 当公积金输入完成,系统将给出提醒是否想继续输入老师信息,显示图6.2.1假如输入Y或y,则继续输入老师信息;假如输入N或n,则返回到主菜单界面。显示以下图: 7.3输出老师信息界面 假如已经输入老师信息,再在主菜单选择4——浏览老师信息,结果图: 7.4插入老师信息界面 在主菜单中进入2——插入老师信息,然后依次插入老师全部信息,最终打印链表里统计,图: 7.5保留和加载老师信息界面 首先将之前输入进去老师信息进行保留,然后退出系统,再打开系统,将之前老师信息数据全部加载过来。然后浏览老师数据。图所表示: 然后退出系统,再打开系统,加载老师数据。图: 浏览老师数据,检验是否老师数据加载成功。图: 加载成功。 8.个人设计小结和心得体会 连续一个学期课程设计给了我太多感慨,开始从题目上看,感觉题目很大,设计量很大,也很复杂,感觉不是简单就能处理。这么只用重新捡起书继续来看,取得新知识和巩固以前C方面知识。提升自己能力。 整个程序设计是分模块实现具体功效,每个模块分别由不一样函数组成。链表建立实现输入信息功效,相比较于数组愈加方便,更能够节省内存空间等。经过使用文件fread和fwrite函数方便将数据信息写入文件和将文件中信息载入显示段。 经过这个学期课程设计练习和设计我学会了很多,也愈加熟悉C语言程序设计,从中得到了很多乐趣,很愉快,感觉C语言世界里面奇妙无比。即使在途中也碰到很多苦难,不过还是经过问同学和学长处理了。最终看到自己设计程序能够运行起来尤其快乐。 这次程序设计很有意义,也很锻炼人能力,尤其是C语言方面能力,为自己在C语言方面打下基础。 参考文件 【1】 C语言课程设计(第2版),梁旭、谷晓琳、黄明等,电子工业出版社,. 【2】C语言大学实用教程(第2版) ,苏小红、陈惠鹏、孙志岗等,电子工业出版社,. 附件1 程序源代码 源代码见电子档
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服