教师信息管理系统(自创)

总体介绍

问题:
教师信息包括:职工号、姓名、职称、性别、2门主讲课程(课程名称、开课学期、课程性质(必修或选修)),教学效果综合评分。
试设计一教师信息管理系统,使之能提供以下功能:
教师信息交互功能
教师信息录入和添加功能
教师信息显示和查询功能
按姓名查询
按课程查询
显示全部教师记录
教师信息修改和删除功能
教师信息保存和读入功能
教师信息排序功能
按职工号排序
按教学效果综合评分
退出系统功能

本教师信息管理系统,实现了简单的与用户交互的窗口,以及10大功能模块,大体分为:增、删、改、查、显、存、读。

教师信息管理系统
主函数
调用功能模块
结束

头文件部分

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<Windows.h>

定义结构体

课程结构体

struct course
{
	char course_name[10];
	char term[30];
	char nature[10];
};

老师结构体

struct teacher
{
	int employee_number;
	char name[10];
	char position[10];
	char sex;
	struct course course_one, course_two;
	double score;
}t[100],t1;
int i = 0;//定义全局变量

先写的主函数,后写的自定义函数

函数声明

void add();
void input();
void show();
void search();
void search_name();
void search_course();
void sort();
void sort_employee_number();
void sort_score();
void amend();
void del();
void preserve();
void read();

主函数部分

int main()
{
	int n;
	while (1)
	{
		printf("\n*********************欢迎使用本系统,请根据需要进行操作!******************************\n");
		printf("\n---------------------------------主菜单-----------------------------------------------\n\n");
		printf("          1.教师信息录入功能              2.教师信息添加功能\n");
		printf("          3.教师信息显示功能              4.教师信息查询功能 \n");
		printf("          5.教师信息排序功能              6.教师信息修改功能 \n");
		printf("          7.教师信息删除功能              8.保存至文件功能 \n");
		printf("          9.读入文件功能                  10.退出系统\n");
		printf("\n--------------------------------------------------------------------------------------\n\n");
		printf("请用户自主选择功能模块,输入整数1-10:\n");
	repeat:scanf("%d", &n);
		switch (n)
		{
		case 1:
			system("cls");
			input();
			break;
		case 2:
			system("cls");
			add();
			break;
		case 3:
			system("cls");
			show();
			break;
		case 4:
			system("cls");
			search();
			break;
		case 5:
			system("cls");
			sort();
			break;
		case 6:
			system("cls");
			amend();
			break;
		case 7:
			system("cls");
			del();
			break;
		case 8:
			system("cls");
			preserve();
			break;
		case 9:
			system("cls");
			read();
			break;
		case 10:
		printf("谢谢使用,再见!\n");
		exit(0);
		default:
			printf("输入错误,请重新输入!\n");
			goto repeat;
			break;
		}
	}
	return 0;
}

自定义函数部分

教师信息录入模块

void input()
{
	printf("---------教师信息录入功能---------\n\n");
	int c;
	while (1)
	{
		printf("第%d个老师的信息\n\n", i + 1);
		printf("请输入姓名(输入0结束录入):");;
		scanf("%s", t[i].name);
		if (t[i].name[0] == '0')
			break;
		printf("请输入性别(M为男性,F为女性):");
	repeat1:scanf(" %c", &t[i].sex);
		if (t[i].sex != 'M' && t[i].sex != 'F')
		{
			printf("输入错误,请重新输入\n");
			goto repeat1;
		}
		printf("请输入职称:");
		scanf("%s", t[i].position);
		printf("请输入工号:");
		scanf("%d", &t[i].employee_number);
		printf("请输入第一门课程名称:");
		scanf("%s", t[i].course_one.course_name);
		printf("请输入第一门课程开课学期(例:2019-2020学年第二学期):");
		scanf("%s", t[i].course_one.term);
		printf("请输入第一门课程性质(必修或选修):");
	repeat2:scanf("%s", t[i].course_one.nature);
		if (strcmp(t[i].course_one.nature, "必修") != 0 && strcmp(t[i].course_one.nature, "选修") != 0)
		{
			printf("输入错误,请重新输入\n");
			goto repeat2;
		}
		printf("请输入第二门课程名称:");
		scanf("%s", t[i].course_two.course_name);
		printf("请输入第二门课程开课学期(例:2019-2020学年第二学期):");
		scanf("%s", t[i].course_two.term);
		printf("请输入第二门课程性质(必修或选修):");
		repeat3:scanf("%s", t[i].course_two.nature);
			if (strcmp(t[i].course_two.nature, "必修") != 0 && strcmp(t[i].course_two.nature, "选修") != 0)
		{
			printf("输入错误,请重新输入\n");
			goto repeat3;
		}
		printf("请输入课程综合评分:");
		scanf("%lf",&t[i].score);
		printf("\n您输入的信息为:");
		printf("\n%s     %c     %s     %d     %s     %s     %s     %s     %s     %s     %.2f\n\n", t[i].name, t[i].sex, t[i].position, t[i].employee_number, t[i].course_one.course_name, t[i].course_one.term, t[i].course_one.nature, t[i].course_two.course_name, &t[i].course_two.term, t[i].course_two.nature,t[i].score);
		printf("----------------------------------\n\n");
		i++;
	}
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回主界面\n");
repeat:scanf("%d", &c);
	if (c == 1)
	{
		system("cls");
		main();
	}
	else
	{
		printf("输入错误,请重新输入!\n");
		goto repeat;
	}
}

教师信息添加模块

void add()
{
	printf("---------教师信息添加功能---------\n\n");
	int a,b=1, c;
	a = i;
	while (1)
	{
		printf("第%d个老师的信息\n\n", a);
		printf("请输入姓名(输入0结束添加):");
		scanf("%s", t[a].name);
		if (t[a].name[0] == '0')
			break;
		printf("请输入性别(M为男性,F为女性):");
	repeat1:scanf(" %c", &t[a].sex);
		if (t[a].sex != 'M' && t[a].sex != 'F')
		{
			printf("输入错误,请重新输入\n");
			goto repeat1;
		}
		printf("请输入职称:");
		scanf("%s", t[a].position);
		printf("请输入工号:");
		scanf("%d", &t[a].employee_number);
		printf("请输入第一门课程名称:");
		scanf("%s", t[a].course_one.course_name);
		printf("请输入第一门课程开课学期(例:2019-2020学年第二学期):");
		scanf("%s", t[a].course_one.term);
		printf("请输入第一门课程性质(必修或选修):");
	repeat2:scanf("%s", t[a].course_one.nature);
		if (strcmp(t[a].course_one.nature, "必修") != 0 && strcmp(t[a].course_one.nature, "选修") != 0)
		{
			printf("输入错误,请重新输入\n");
			goto repeat2;
		}
		printf("请输入第二门课程名称:");
		scanf("%s", t[a].course_two.course_name);
		printf("请输入第二门课程开课学期(例:2019-2020学年第二学期):");
		scanf("%s", t[a].course_two.term);
		printf("请输入第二门课程性质(必修或选修):");
	repeat3:scanf("%s", t[a].course_two.nature);
		if (strcmp(t[a].course_two.nature, "必修") != 0 && strcmp(t[a].course_two.nature, "选修") != 0)
		{
			printf("输入错误,请重新输入\n");
			goto repeat3;
		}
		printf("请输入课程综合评分:");
		scanf("%lf",&t[i].score);
		printf("\n您输入的信息为:");
		printf("\n%s     %c     %s     %d     %s     %s     %s     %s     %s     %s     %.2f\n\n", t[a].name, t[a].sex, t[a].position, t[a].employee_number, t[a].course_one.course_name, t[a].course_one.term, t[a].course_one.nature, t[a].course_two.course_name, t[a].course_two.term, t[a].course_two.nature,t[a].score);
		a++;
		printf("----------------------------------\n\n");
	}
		i =  a;
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回主界面\n");
repeat:scanf("%d", &c);
	if (c == 1)
	{
		system("cls");
		main();
	}
	else
	{
		printf("输入错误,请重新输入!\n");
		goto repeat;
	}

}

教师信息显示模块

void show()
{
	printf("\n---------教师信息显示功能---------\n\n");
	int c, b;
	if (i != 0)
	{
		printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
		for (c = 0;c < i;c++)
		{
			printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t%s\t\t%.2f\n", t[c].employee_number, t[c].name, t[c].sex, t[c].position, t[c].course_one.course_name, t[c].course_one.term, t[c].course_one.nature, t[c].course_two.course_name, t[c].course_two.term, t[c].course_two.nature,t[c].score);
		}
	}
	else
	{
		printf("没有数据\n");
	}
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回主界面\n");
	repeat:scanf("%d", &b);
	if (b == 1)
	{
		system("cls");
		main();
	}
	else
	{
		printf("输入错误,请重新输入!\n");
		goto repeat;
	}
}

教师信息查询模块

void search()
{
	printf("---------教师信息查询功能---------\n\n");
	int t, f;
	do
	{
		printf("请选择操作!\n");
		printf("\n1.按姓名查询\n2.按所教课程查询\n3.返回主界面\n");
		printf("\n----------------------------------\n\n");
	repeat:scanf("%d", &t);
		if (t >= 1 && t <= 3)
		{
			f = 1;
			break;
		}
		else
		{
			f = 0;
			printf("您输入有误,请重新选择!\n");
			goto repeat;
		}
	}
	while (f == 0);
	system("cls");
	while (f == 1)
	{
		switch (t)
		{
		case 1:
			search_name();
			break;
		case 2:
			search_course();
			break;
		case 3:
			main();
			break;
		default:
			break;
		}
		system("cls");
	}
}

查询模块

按姓名查询模块
void search_name()
{
repeat:system("cls");
	printf("---------教师信息按姓名查询---------\n\n");
	char name[10];
	int a, f;
	printf("请输入要查找的姓名:\n");
	scanf("%s", name);
	for (f = 0;f < i;f++)
		if (strcmp(name, t[f].name) == 0)
		{
			printf("\n已找到此人,其记录为:\n");
			printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
			printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t%s\t\t%.2f\n", t[f].employee_number, t[f].name, t[f].sex, t[f].position, t[f].course_one.course_name, t[f].course_one.term, t[f].course_one.nature, t[f].course_two.course_name, t[f].course_two.term, t[f].course_two.nature,t[f].score);
			break;
		}
	if (f == i)
		printf("\n对不起,查无此人\n");
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回选择查询方式\n2.重新输入查询内容\n3.返回主界面\n");
repeat1:scanf("%d", &a);
	switch (a)
	{
	case 1:
		system("cls");
		search();
		break;
	case 2:
		goto repeat;
		break;
	case 3:
		system("cls");
		main();
		break;
	default:
		printf("输入错误,请重新输入!\n");
		goto repeat1;
		break;
	}
}
按课程查询模块
void search_course()
{
repeat:system("cls");
	printf("---------教师信息按课程查询---------\n\n");
	char course[10];
	int a, f, c=0;
	printf("请输入要查找的人所教课程:\n");
	scanf("%s", course);
	for (f = 0;f < i;f++)
		if (strcmp(course, t[f].course_one.course_name) == 0 || strcmp(course, t[f].course_two.course_name) == 0)
		{
			printf("\n已找到此人,其记录为:\n");
			printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
			break;
		}
	for (f = 0;f < i;f++)
		if (strcmp(course, t[f].course_one.course_name) == 0 || strcmp(course, t[f].course_two.course_name) == 0)
		{
			printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t %s\t\t%.2f\n", t[f].employee_number, t[f].name, t[f].sex, t[f].position, t[f].course_one.course_name, t[f].course_one.term, t[f].course_one.nature, t[f].course_two.course_name, t[f].course_two.term, t[f].course_two.nature, t[f].score);
			c = 1;
		}
	if (c != 1)
		printf("\n对不起,查无此人\n");
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回选择查询方式\n2.重新输入查询内容\n3.返回主界面\n");
repeat1:scanf("%d", &a);
	switch (a)
	{
	case 1:
		system("cls");
		search();
		break;
	case 2:
		goto repeat;
		break;
	case 3:
		system("cls");
		main();
		break;
	default:
		printf("输入错误,请重新输入!\n");
		goto repeat1;
		break;
	}
}

教师信息排序模块

void sort()
{
	printf("---------教师信息排序系统---------\n\n");
	int k, f;
	do
	{
		printf("请选择操作!\n");
		printf("\n1.按职工号排序\n2.按教学效果综合评分排序\n3.返回主界面\n");
		printf("\n----------------------------------\n\n");
		scanf("%d", &k);
		if (k >= 1 && k <= 3)
		{
			f = 1;
			break;
		}
		else
		{
			f = 0;
			printf("您输入有误,请重新选择!");
		}
	} while (f == 0);system("cls");
	while (f == 1)
	{
		switch (k)
		{
		case 1:
			sort_employee_number();
			break;
		case 2:

			sort_score();
			break;
		case 3:
			system("cls");
			main();
			break;
		default:
			break;
		}
		system("cls");
	}
}
按照职工号排序模块
void sort_employee_number()
{
	printf("---------教师信息按职工号排序---------\n");
	printf("\n按职工号排序为(字母由小到大排列):\n");
	int j, k, a;
	for (a = 0;a < i - 1;a++)
		for (j = 0;j < i - 1 - a;j++)
			if (t[j].employee_number >= t[j + 1].employee_number)
			{
				t1 = t[j];
				t[j] = t[j + 1];
				t[j + 1] = t1;
			}
	printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
	for (j = 0;j < i;j++)
		printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t%s\t\t%.2f\n", t[j].employee_number, t[j].name, t[j].sex, t[j].position, t[j].course_one.course_name, t[j].course_one.term, t[j].course_one.nature, t[j].course_two.course_name, t[j].course_two.term, t[j].course_two.nature, t[j].score);
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回重新选择排序方案\n2.返回主菜单\n");
	scanf("%d", &k);
	switch (k)
	{
	case 1:
		system("cls");
		sort();
		break;
	case 2:
		system("cls");
		main();
		break;
	default:
		break;
	}
	system("cls");
}
按照课程综合成绩排序模块
void sort_score()
{
	printf("---------教师信息按课程综合排序系统---------\n");
	printf("\n按教学效果综合评分排序为(由低到高排列):\n");
	int j, k, a;
	for (a = 0;a < i - 1;a++)
		for (j = 0;j < i - 1 - a;j++)
			if (t[j].score >= t[j + 1].score)
			{
				t1 = t[j];
				t[j] = t[j + 1];
				t[j + 1] = t1;
			}
	printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
	for (j = 0;j < i;j++)
		printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t%s\t\t%.2f\n", t[j].employee_number, t[j].name, t[j].sex, t[j].position, t[j].course_one.course_name, t[j].course_one.term, t[j].course_one.nature, t[j].course_two.course_name, t[j].course_two.term, t[j].course_two.nature, t[j].score);
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回重新选择排序方案\n2.返回主菜单\n");
	scanf("%d", &k);
	switch (k)
	{
	case 1:
		system("cls");
		sort();
		break;
	case 2:
		system("cls");
		main();
		break;
	default:
		break;
	}
	system("cls");
}

教师信息修改模块

void amend()
{
	printf("---------教师信息修改功能---------\n");
	int f, n = 0, c = 0;
	char name1[10];
	printf("\n请输入要修改的职工的姓名:");
	scanf("%s", name1);
	for (f = 0;f <= i;f++)
	{
		if (strcmp(t[f].name, name1) == 0)
		{
			printf("\n已找到此人,原始记录为:\n");
			printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
			printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t %s\t\t%.2f\n", t[f].employee_number, t[f].name, t[f].sex, t[f].position, t[f].course_one.course_name, t[f].course_one.term, t[f].course_one.nature, t[f].course_two.course_name, t[f].course_two.term, t[f].course_two.nature,t[f].score);
			printf("\n----------------------------------\n\n");
			printf("请选择操作!\n");
			printf("\n1.确实要修改此人信息\n2.不修改\n");
			scanf("%d", &n);
			break;
		}
		if (f>=i)
		{
			printf("\n对不起,查无此人!\n");
			printf("\n----------------------------------\n\n");
			repeat :printf("请选择操作!\n");
			printf("\n1.返回重新输入\n2.返回主菜单\n");
			scanf("%d", &n);
			switch (n)
			{
			case 1:
				system("cls");
				amend();
				break;
			case 2:
				system("cls");
				main();
				break;
			default:
				printf("您输入有误");
			 goto repeat;
			}
		} 
	}
	if (n == 1)
	{
		printf("\n----------------------------------\n\n");
		printf("\n需要进行修改的选项\n\n1.职工号\n2.姓名\n3.性别\n4.职称\n5.第一门课程名称\n6.第一门课程开课学期\n7.第一门课程性质\n8.第二们课程名称\n9.第二门课程开课学期\n10.第二门课程性质\n11.课程综合评分\n\n");
		printf("请输入你想修改的那一项序号:\n");
		scanf("%d", &c);
		if (c > 11 || c < 1)
			printf("\n选择错误,请重新选择!\n");
	}
	if (n == 2)
	{
		printf("已取消修改!\n");
		printf("\n----------------------------------\n\n");
		printf("请选择操作!\n");
		printf("\n1.返回重新输入\n2.返回主菜单\n");
		scanf("%d", &n);
		switch (n)
		{
		case 1:
			system("cls");
			amend();
			break;
		case 2:
			system("cls");
			main();
			break;
		default:
			break;
		}
	}
	switch (c)
	{
	case 1:
		printf("\n职工号改为: ");
		scanf("%d", &t[f].employee_number);
		break;
	case 2:
		printf("姓名改为:");
		scanf("%s", t[f].name);
		break;
	case 3:
		printf("性别改为:");
	repeat1:scanf("%c", &t[f].sex);
		if (t[i].sex != 'M' && t[i].sex != 'F')
		{
			printf("输入错误,请重新输入\n");
			goto repeat1;
		}
		break;
	case 4:
		printf("职称改为:");
		scanf("%s", t[f].position);
		break;
	case 5:
		printf("第一门课程名称改为:");
		scanf("%s", t[f].course_one.course_name);
		break;
	case 6:
		printf("第一门课程开课学期改为:");
		scanf("%s", t[f].course_one.term);
		break;
	case 7:
		printf("第一门课程性质改为:");
	repeat2:scanf("%s", t[f].course_one.nature);
		if (strcmp(t[f].course_one.nature, "必修") != 0 && strcmp(t[f].course_one.nature, "选修") != 0)
		{
			printf("输入错误,请重新输入\n");
			goto repeat2;
		}
		break;
	case 8:
		printf("第二门课程名称改为:");
		scanf("%s", t[f].course_two.course_name);
		break;
	case 9:
		printf("第二门课程开课学期改为:");
		scanf("%s", t[f].course_two.term);
		break;
	case 10:
		printf("第二门课程性质改为:");
	repeat3:scanf("%s", t[f].course_two.nature);
		if (strcmp(t[f].course_two.nature, "必修") != 0 && strcmp(t[f].course_two.nature, "选修") != 0)
		{
			printf("输入错误,请重新输入\n");
			goto repeat3;
		}
		break;
	case 11:
	printf("课程综合评分改为:");
	scanf("%lf",&t[f].score);
	}
	printf("\n----------------------------------\n\n");
	printf("\n您修改之后得信息为:\n");
	printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
	printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t %s\t\t%.2f\n", t[f].employee_number, t[f].name, t[f].sex, t[f].position, t[f].course_one.course_name, t[f].course_one.term, t[f].course_one.nature, t[f].course_two.course_name, t[f].course_two.term, t[f].course_two.nature,t[f].score);
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回重新输入\n2.返回主菜单\n");
	scanf("%d", &n);
	switch (n)
	{
	case 1:
		system("cls");
		amend();
		break;
	case 2:
		system("cls");
		main();
		break;
	default:
		break;
	}
}

教师信息删除模块

void del()
{
	printf("---------教师信息删除系统---------\n\n");
	int f, a, j, k=1, b;
	char name[10];
	
	printf("请输入要查找的姓名:\n");
	scanf("%s", name);
	
	for (f = 0;f < i;f++)
	{
		if (strcmp(name, t[f].name) == 0)
		{
			printf("\n已找到此人,其记录为:\n");
			printf("\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t第二门课程性质\t课程综合评分 \n");
			printf("\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t %s\t\t%.2f\n", t[f].employee_number, t[f].name, t[f].sex, t[f].position, t[f].course_one.course_name, t[f].course_one.term, t[f].course_one.nature, t[f].course_two.course_name, t[f].course_two.term, t[f].course_two.nature,t[f].score);
			break;
		}
	}
	if (f == i)
	{
		printf("\n对不起,查无此人!\n");
		printf("\n----------------------------------\n\n");
		printf("请选择操作!\n");
		printf("\n1.继续删除,2.返回主界面\n");
		repeat3:scanf("%d", &b);
		switch (b)
		{
		case 1:
			system("cls");
			del();
			break;
		case 2:
			system("cls");
			main();
			break;
		default:
			printf("输入错误,请重新输入!\n");
			goto repeat3;
			break;
		}
	}
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.确实要删除此人信息\n2.不删除\n");
	scanf("%d", &a);
	if (a == 1)
	{
		for (j = f;j < i - 1;j++)
		{
			t[j] = t[j + 1];
		}
		k = 0;
	}
	else
	{
		printf("以取消删除!\n");
		printf("\n----------------------------------\n\n");
		printf("请选择操作!\n");
		printf("\n1.继续删除,2.返回主界面\n");
		repeat1:scanf("%d", &b);
		switch (b)
		{
		case 1:
			system("cls");
			del();
			break;
		case 2:
			system("cls");
			main();
			break;
		default:
			printf("输入错误,请重新输入!\n");
			goto repeat1;
			break;
		}
	}
	if (!k)
	{
		printf("该成员信息已删除!\n");
		i = i - 1;
		printf("\n----------------------------------\n\n");
		printf("请选择操作!\n");
		printf("\n1.继续删除,2.返回主界面\n");
		repeat2:scanf("%d", &b);
		switch (b)
		{
		case 1:
			system("cls");
			del();
			break;
		case 2:
			system("cls");
			main();
			break;
		default:
			printf("输入错误,请重新输入!\n");
			goto repeat2;
			break;
		}
	}
}

教师信息保存模块

void preserve()
{
	int b;
	printf("---------教师信息保存系统---------\n\n");
	FILE* fp;
	char fname[20];
	int p;
	printf("请输入要保存的文件名:");
	scanf("%s", fname);
	strcat(fname, ".txt");
	if ((fp = fopen(fname, "w")) == NULL)
	{
		printf("不能打开文件,文件保存失败!\n");
		return;
	}
	fprintf(fp, "\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t\t第二门课程性质\t课程综合评分 \n");
	for (p = 0;p < i;p++)
		fprintf(fp, "\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t%s\t\t%lf\n", t[p].employee_number, t[p].name, t[p].sex, t[p].position, t[p].course_one.course_name, t[p].course_one.term, t[p].course_one.nature, t[p].course_two.course_name, t[p].course_two.term, t[p].course_two.nature, t[p].score);
	printf("文件保存成功!\n");
	fclose(fp);
	printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回主界面\n2.退出系统\n");
repeat:scanf("%d", &b);
	switch (b)
	{
	case 1:
		system("cls");
		main();
		break;
	case 2:
		exit(0);
	default:
		printf("输入错误,请重新输入!\n");
		goto repeat;
	}
}

教师信息读取模块

void read()
{
	int b; 
	FILE* fp;
	char fname[10];
	int a = 0, flag;
	printf("请输入文件名(如:stu.txt):");
	scanf("%s", fname);
	if ((fp = fopen(fname, "r")) == NULL)
	{
		printf("不能打开文件,文件读取失败!\n");
		return;
	}
	fscanf(fp, "\n职工号\t姓名\t性别\t职称\t第一门课程名称\t第一门课程开课学期\t\t第一门课程性质\t第二门课程名称\t第二门课程开课学期\t\t第二门课程性质\t课程综合评分 \n");
	while (1)
	{
		flag = fscanf(fp, "\n%d\t%s\t%c\t%s\t%s\t\t%s\t%s\t\t%s\t\t%s\t %s\t\t%lf\n", &t[a].employee_number, t[a].name, &t[a].sex, t[a].position, t[a].course_one.course_name, t[a].course_one.term, t[a].course_one.nature, t[a].course_two.course_name, t[a].course_two.term, t[a].course_two.nature, &t[a].score);
		if (flag == EOF)
			break;
		a++;
	}
	i = a;
	printf("从文件中成功读取%d条记录\n", a);
	fclose(fp);
		printf("\n----------------------------------\n\n");
	printf("请选择操作!\n");
	printf("\n1.返回主界面\n2.退出系统\n");
repeat:scanf("%d", &b);
	switch (b)
	{
	case 1:
		system("cls");
		main();
		break;
	case 2:
		exit(0);
	default:
		printf("输入错误,请重新输入!\n");
		goto repeat;
	}
}

看到这边,相信都已经发现,本代码没有采用指针操作,代码量超级庞大,目前并不是很完善,还是有很多小bug,希望各位大佬多给点小建议,以后会改善,谢谢。

有需要的朋友可以直接按顺序截取。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值