- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教师工资管理系统.
目 录
一、课程设计目的要求与分析……………………………………2
1.1课程设计目的和要求………………………………………2
1.2课程设计题目分析…………………………………………2
二、课程设计内容…………………………………………………2
2.1总体设计……………………………………………………3
2.2详细设计……………………………………………………5
三、程序调试与测试………………………………………………8
3.1程序调试……………………………………………………8
3.2程序测试……………………………………………………9
四、教师详细数据处理……………………………………………10
五、设计心得与总结………………………………………………14
六、建议与评阅意见………………………………………………15
七、源程序代码……………………………………………………16
课程设计目的:
巩固和加强《C语言程序设计》课程的理论知识。
掌握C语言的基本概念,语法,语义和数据类型的使用特点。
掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。
使学生掌握调试程序的基本方法及上机操作方法。
通过查询手册和文献资料,培养学生独立分析问题和解决问题的能力。
培养学生的创新能力和创新思维。
培养学生良好的程序设计风格,进一步理解和用运。
课程设计要求:
进一步理解和用运结构化程序设计的思想和方法。
初步掌握开发一个小型实用系统的基本方法。
设计题目分析
1.1题目简介:
《教师工资管理系统》,每个教师的信息为:姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、应发工资、房租、水电费、所得税、公积金、合计扣款、实发工资。应发工资=基本工资+津贴;合计扣款=房租+水电费+所得税+公积金;实发工资=应发工资-合计扣款。
2.2设计要求:
A.根据问题的描述,设计数据存储方式
B.分析系统功能,划分功能模块,确定各模块函数名称
C.利用所学的C语言知识设计比较容易读懂和执行的程序
D.设计好的程序易于执行和修改
3.课程设计内容
3.1总体设计:
A.教师信息处理
#includestdio.h
#includestdlib.h //常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi() atol() rand() srand() exit()
#includeconio.h//控制台输入输出的简写,其中定义了通过控制台进行数据输入和数据输出的函数,用户通过按键产生对应的操作,比如getch()函数
#define LEN sizeof(struct teacher)
struct teacher *creat();//建立动态链表
struct teacher
struct teacher *getPosition();
struct teacher
{
int num;
char name[10];
char sex[8];
char unit[10];
char address[10];
long telnum;
float salary_1;
float allowance;
float salary_2;
float tax;
float water_fee;
float rent;
float grant;
float total_fee;
float actual_salary;
struct teacher *next;
};
建立动态链表,定义一个有关教师信息的结构体,确立与之相关的变量,如:教师姓名、教师性别、工作单位、房租、水电费、个人所得税、公积金等。
B.输入教师信息
通过建立的教师信息的结构体来实现教师信息的输入,这样既可以实现大批量的输入,而且使输入的信息更节省空间。
C.插入(修改)教师信息
这是针对链表的插入,是将一个结点插到一个已经有的链表中。为了能做到正确插入,所以我们要解决的问题就是怎样找到插入的位置,和怎样实现插入。先用指针变量p0指向待插入的结点,p1指向第一个结点。将p0-num与p1-num相比较,如果p0-nump1-num,则待插入的结点不应该在p1所指的结点之前。此时将p1后移,并使p2指向刚才p1所指的结点。再将p1-num与p0-num比,如果仍然是p0-num大,则应使p1继续后移,直到p0-num≤p1-num为止。这时将p0所指的结点插到p1所指的结点之前。但是如果p1所指的已经是表尾结点,则p1就不应后移了。如果p0-num比所有结点的num都大,则应该将p0所指的结点插到链表末尾。如果插入位置既不是第一个
文档评论(0)