总体介绍
问题:
教师信息包括:职工号、姓名、职称、性别、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,希望各位大佬多给点小建议,以后会改善,谢谢。
有需要的朋友可以直接按顺序截取。