c语言教师工资管理系统

更新时间:2023-06-08 09:37:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言程序设计 课程设计报告

设计题目:教师工资管理系统

班 级 学 号 姓 名 指导教师 起止时间 2010-10-26 至 2010-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.函数功能描述 ..................................................................................................................... 1

6.1 保存数据函数save() ........................................................................................... 13 6.2 查询数据函数query() ......................................................................................... 13 6.1修改数据函数edit() ............................................................................................ 14 6.1 加载数据函数load() ........................................................................................... 15 7.运行结果 ............................................................................................................................ 112

7.1系统主界面 ............................................................................................................ 112 7.2 输入教师信息界面………………………………………………………………..16 7.3 输出教师信息界面.................................................................................................18 7.4 插入教师信息界面……………………………………………………………….19 7.5 保存和加载教师信息界面………………………………….…………………....20 8.个人设计小结与心得体会 ................................................................................................. 2 参考文献 ................................................................................................................................ 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)输入教师信息模块

在主菜单中运用结构体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。

5.3 插入记录模块

插入记录模块具体流程图如下图所示:

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 所示

图5.2

6.3 修改教师信息函数edit()

函数原型:void edit(struct teacher *p)

功能描述:首先让用户输入希望修改的教师的教师号a, 然后在链表中一条一条查找看p->num是否等于a,如果找到,则让用户再次输入教师的具体信息,输入完毕跳出,转向主菜单界面。如果没有找到,则令p=p->next。直到查询完所有的教师记录。 函数流程图如图5.3 所示

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语言的世界里面奇妙无比。

本文来源:https://www.bwwdw.com/article/2ad1.html

Top