高校教师工资管理系统/C语言课设

此项目为BJFU2020级课程设计 供学弟学妹们参考
项目总体介绍: 

一、总体介绍

1. 项目名称:高校教师工资管理系统

2. 项目简介:

完成高等院校教师工资管理软件开发。教师的基本信息包括:工号、姓名、学院、职称,职称分为:教授、副教授、讲师、助教。教师的工资信息包括:工号、月份、基本工资、业绩津贴、扣除费用、应发工资、实发工资,不同职称教师的基本工资、业绩津贴、扣除费用不同。

二、具体要求

1. 系统功能要求

以菜单的方式完成以下功能。

高校教师工资管理系统

1

录入数据并保存

录入教师的基本信息

录入教师的工资信息

2

修改数据并保存

(难点)

根据工号修改某位教师的基本信息和工资信息

根据姓名修改某位教师的基本信息和工资信息

删除某一工号的教师的所有信息

3

查询显示

显示所有教师的基本信息(以工号为序)

根据月份显示所有教师当月工资信息(以工号为序)

根据工号查询某位教师某一月份的基本信息和工资信息

根据姓名查询某位教师某一月份的基本信息和工资信息

4

统计分析

根据月份,统计不同学院教师的平均应发工资和平均实发工资(以实发工资为序显示)

根据月份,统计不同职称教师的平均应发工资和平均实发工资(以应发工资为序显示)

5

退出

提示退出

2. 各项功能要求

1)录入数据并保存

进入二级菜单:

  1. 录入教师基本信息:提示用户输入基本信息,并保存。注意要有查重,同一工号的教师不能出现两次。(查重是难点)
  2. 录入教师工资信息:显示所有教师基本信息。提示用户输入已有教师工号,然后提示输入月份等工资信息,并计算应发工资和实发工资后保存。注意要有查重,同一工号的教师不能出现两次。(判断是否为已有教师信息,查重是难点。)
  1. 修改数据并保存

进入二级菜单:

  1. 提示输入工号:显示该工号教师的所有信息。提示输入要修改的月份和信息,输入新数据后,保存数据,并替换掉旧数据。
  2. 提示输入姓名:显示所有该同名教师的所有信息。提示输入要修改的教师工号和月份,提示输入要修改的信息,输入新数据后,保存数据,并替换掉旧数据。
  3. 提示输入要删除的工号,两次确认后删除该工号教师的基本信息和工资数据,并更新数据文件。

3)查询显示

进入二级菜单:

  1. 显示所有教师的基本信息,按照工号从小到大列表显示。
  2. 提示输入月份,显示当月所有教师的工资信息,按照工号从小到大列表显示。
  3. 提示输入工号和月份,显示该工号教师的基本信息和当月工资信息。
  4. 提示输入姓名和月份,显示所有同名教师的基本信息和当月工资信息。

4)统计分析

进入二级菜单:

  1. 提示输入月份,根据月份,统计不同学院教师的平均应发工资和平均实发工资(以实发工资为序显示)。
  2. 提示输入月份,根据月份,统计不同职称教师的平均应发工资和平均实发工资(以应发工资为序显示)。

5)退出

提示用户确实要退出?y/n

用户输入y后退出。

2. 程序设计要求

(1)要合理使用枚举(选)、结构体、结构体数组、结构体指针访问数组。

(2)逻辑独立的功能定义在函数中。

(3)要有合理提示,例如修改、删除需提示确认。

(4)考虑程序鲁棒性,对不合法数据要有错误处理机制。

(5)所有数据保存在文件中。


教师的相应结构体:

struct teacher
{
	int number;//工号
	char xy[10];//学院
	char zc[10];//职称
	int month;//月份
	char name[10];
	float salary;//基本工资
	float allowance;//业绩津贴
	float should;//应发工资
	float due;//扣除费用
	float total;
	float actual;//实发工资
}tea[100],test[1];
typedef struct teacher1
{
	int number;//工号
	char xy[10];//学院
	char zc[10];//职称
	char name[10];
}tt1;
typedef struct teacher2
{
	
	int month;//月份
	float salary;//基本工资
	float allowance;//业绩津贴
	float should;//应发工资
	float due;//扣除费用
	float total;
	float actual;//实发工资
}tt2;
相应函数:
void mainmenu();
void read_from_file();
void write_to_file();
void tea_new();
void searchmenu();
void show_all();
void search_id();
void search_name();
void deletemenu();
void delete_all();
void delete_single();
void delete_id();
void delete_name();
void change_id();
void analyze_menu();//统计分析
void analyze1();//xy统计分析
void analyze2();//zc统计分析
void search1();//按月份查询
void search2();//按工号和月份
void search3();//按姓名和月份查询
void change_menu();
void change_name();
void menu1();//添加菜单
void new1();
void new2();

void writeto();//将基本信息写到文件
void readto();//将基本信息读到文件
主菜单
void menu1()
{
	
	char choic;
	system("cls");
	readto();
	while (1)
	{
		printf("\n\t------录入菜单-------");
		printf("\n\t------[1]录入基本信息--------");
		printf("\n\t------[2]录入工资信息------");
		printf("\n\t------[3]返回主菜单------");
		printf("\n\t*****************************");
		printf("\n\t请选择:\n");
		int k;
		scanf("%d", &k);
		if (k==3)
		{
			break;
		}
		switch (k)
		{
		case 1:new1(); break;
		case 2:new2(); break;
		default:break;
		}
	}
	
}
分析菜单
void analyze_menu()
{
	char choic;
	system("cls");
	printf("\n\t------统计分析菜单-------");
	printf("\n\t------[1]按学院统计--------");
	printf("\n\t------[2]按职称查询------");
	printf("\n\t*****************************");
	printf("\n\t请选择:\n");
	choic = getch();
	switch (choic)
	{
	case'1':analyze1(); break;
	case'2':analyze2(); break;
	default:break;
	}
}

等有时间的再补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yvonnae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值