资源描述
设计题目:高校教师人事管理系统
班 级:
姓 名:
学 号:
完成日期:
1. 课程设计目的和要求 2
1.1. 课程设计目的与要求 2
1.2 课程设计任务内容 2
2.系统总体设计 3
2.1 系统开发中涉及的主要知识点 3
2.2 功能模块图 3
2.3 数据结构设计 4
2.4 功能模块设计 4
1. 课程设计目的和要求
1.1. 课程设计目的与要求
建立教师的信息系统,进行信息的更改以及查询的相关功能。
1.2 课程设计任务内容
教师包含以下信息项:教师编号、姓名、性别、出生日期、参加工作时间、工资、学院、职称(助教、讲师、副教授、教授)、学位(学士、硕士、博士)。
系统的主要功能包括:
1. 创建教师信息文件,根据提示输入教师的各项信息,按教师编号对教师信息进行排序,并将排序后的教师信息存储到一个二进制文件中。
2. 增加教师信息,在原有教师信息文件的基础上增加新的教师信息,要求:增加后的教师信息仍按编号排序,并继续保存至文件。
3. 删除教师信息,提示用户输入要进行删除操作的教师编号,如果在文件中有该信息存在,则将该编号所对应的教师信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。
4. 修改教师信息,提示用户输入要进行修改操作的教师编号,如果在文件中有该息存在,则将提示用户输入该编号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。
5. 按不同条件对教师信息进行查询操作,输出满足条件的教师信息。
(1) 按教师编号查询,输入一个编号,输出对应的教师信息。
(2) 按姓名查询,包括精确查询(输入全名),模糊查询(输入姓)。
(3) 按学院查询,输入学院名称,输出该学院的全部教师的信息。
(4) 按职称查询,输入职称名称,输出相应职称的教师信息。
(5) 按参加工作时间查询,输入一个日期,输出在该日期以前参加工作的所有教师信息。
6. 按不同条件对教师信息进行统计工作。
(1) 统计1980年以后出生的教师的人数,及80后教师占教师总数的比例。
(2) 统计各职称岗位的教师人数是多少,计算高级职称(包括副教授和教授)的比例。
(3) 统计各学位的教师人数是多少,计算拥有博士学位的教师占教师总数的比例。
(4) 计算教师的平均工资,并输出。
5
2.系统总体设计
2.1 系统开发中涉及的主要知识点
l 函数的定义与调用,指针变量做函数参数。
l 结构体数组的应用。
l 链表的应用。
l 字符串函数的应用。
l 文件的打开、关闭及读写操作。
2.2 功能模块图
高校教师人事管理系统的功能模块图如下:
高校教师人事管理系统
创建教师信息
增加教师信息
删除教师信息
查询操作及统计
修改教师信息
按编号并计算学位人数
按照教师编号排序
将建立的信息存入 文件中
增加信息按编号排序
删除教师信息
提示是否继续删除
修改教师信息
保存至文件
按姓名并计算平均工资
按学院
按职称并统计人数
按工作时间计算80后
2.3 数据结构设计
l 系统定义了一个结构体链表:
struct stu_node
{
int num;
char name[12];
char sex[10];
int birth;
int worktime;
float wage;
char college[12];
char zhicheng[12];
char degree[12];
struct stu_node *next;
};
l 一个宏定义:
#define LEN sizeof(struct stu_node)
2.4 功能模块设计
l Main函数的设计:
输出系统的提示信息,并通过switch结构选择性要实现的功能。
不足:不能直接通过文件读取信息。
l 建立链表并有序排列:
struct stu_node *creat(void),首先建立链表,并将后续输入的链表以插入的形式存入链表中。
l 输出建立的有序链表:
void list(struct stu_node * head)
l 将建立的链表存入到文件中:
void cfile(struct stu_node * head),首先将链表中的数据存入到结构体数组中,将结构体数组通过fwrite函数写入到文件中。
l 增加新的教师信息函数:
truct stu_node *insert(struct stu_node *head)。
l 删除教师信息:
truct stu_node *del(struct stu_node *head)。
l 修改教师信息:
truct stu_node *rewrite(struct stu_node *head),先将链表中要修改的教师的信息删除,然后通过建立新的结点,重新输入教师的信息,
l 编号查询:
void bianhao(struct stu_node *head), 通过链表的遍历查找教师的信息
l 姓名查询:
void xingming(struct stu_node *head),通过链表的遍历,查找姓名,并通过strstr函数进行姓氏的模糊查询。
l 学院查询:
void xueyuan(struct stu_node *head)
l 职称查询:
void zhicheng(struct stu_node *head)
l 参加工作时间查询:
void time(struct stu_node *head)
l 教师总人数:
float renshu(struct stu_node *head),通过链表的遍历,增加变量的值,计算链表中结点的个数。
l 80后教师信息:
void year(struct stu_node *head),教师的出生日期以int 的形式存储,所以计算80后教师的信息,即计算int 值在19800101到19891231之间的个数
各职称人数:
void zhichengshu(struct stu_node *head),通过strcmp函数匹配。
l 各学位的教师人数:
void xueweishu(struct stu_node *head)。
l 计算平均工资:
void averwage(struct stu_node *head)。
展开阅读全文