C语言如何实现教务管理系统
发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章主要介绍"C语言如何实现教务管理系统",在日常操作中,相信很多人在C语言如何实现教务管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C语言如何实现教务管理
千家信息网最后更新 2025年11月17日C语言如何实现教务管理系统
这篇文章主要介绍"C语言如何实现教务管理系统",在日常操作中,相信很多人在C语言如何实现教务管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C语言如何实现教务管理系统"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
实现效果如图:
主界面:

教师端——注册账号

进入教师管理系统
文件的保存
代码如下:
#include#include #include /*教师应用结构体*/typedef struct Teacher{ char name[10];//学生姓名 char iD[10];//学生学号 float score;//学生成绩}teacher;/*教师链表结点*/typedef struct{ teacher data; struct Teacher* next;}Tutor;/*教师系统账号*/typedef struct manager{ char manAcc[10]; //账号 char manPassw[10]; //密码 struct manager* next;}Manager;Manager* managerHead;/*函数声明*/void mainMenu();//主菜单void studentPort();//学生端/*---------------------------------------------------------*//* 教师管理系统函数 *//*---------------------------------------------------------*/void showTeacherPort();//教师端void teacherRegister();//教师端账号注册void teacherLogin();//教师端登录int Password_Text_Find();//密码验证Manager* Manager_check();//账号核对void teacherPort();//教师端void tutorMenu();//教师管理菜单void teacherFunction();//教师端功能应用void insertStudentData();//学生信息录入void showStudentData();//学生信息展示void searchStudentData();//学生信息查询void changeStudentData();//学生信息修改Tutor* deleteStudentData();//学生信息删除/*---------------------------------------------------------*//* 教师链表的初始化 *//*---------------------------------------------------------*/Tutor* initTeacherList();//链表初始化Tutor* createNode();//创建结点/*---------------------------------------------------------*//* 文件的读写操作 *//*---------------------------------------------------------*/void readInfoFromFile();void writeInfoToFile();int main(void){ int choice = 0; while (1) { mainMenu();//主菜单 printf("\t请输入选择:"); scanf("%d", &choice); switch (choice) { case 1: teacherPort(); break; case 2: studentPort(); break; case 3: printf("您已退出系统!\n"); system("pause"); exit(0); default: printf("您的输入有误,请重新输入!\n"); break; } system("pause"); system("cls"); }}/*主菜单*/void mainMenu(){ system("color f0"); printf("-------------------------------------------------\n"); printf("*欢迎使用教务管理系统*\n"); printf("\t1.教师端\n"); printf("\t2.学生端\n"); printf("\t3.退出系统\n"); printf("-------------------------------------------------\n");}/*学生端*/void studentPort(){ system("cls"); system("color b0"); printf("\n\n\n\n\n\n\n\t\t\t\t学生端暂时未写,有兴趣可以接着写!!!\n\n\n\n\n\n\n\n");}/*教师端*/void showTeacherPort(){ system("CLS"); printf("\n\n\n\t\t\t\t 教师端"); printf("\n\t\t\t---------------------------------\n\n"); printf("\t\t\t\t1)注册\n"); printf("\t\t\t\t2)登录\n"); printf("\t\t\t\t0)返回\n"); printf("\n\t\t\t---------------------------------\n\n");}/*教师管理菜单*/void tutorMenu(){ system("cls"); system("color 70"); printf("-------------------------------------------------\n"); printf("*欢迎进入教师端*\n"); printf("\t1.学生信息录入\n"); printf("\t2.学生信息展示\n"); printf("\t3.学生信息查询\n"); printf("\t4.学生信息修改\n"); printf("\t5.学生信息删除\n"); printf("\t6.学生数据保存\n"); printf("\t0.返回主菜单\n"); printf("-------------------------------------------------\n");}/*教师端账号注册*/void teacherRegister(){ Manager* p = (Manager*)malloc(sizeof(Manager)); p->next = NULL; printf("请输入注册账号:"); scanf("%s", p->manAcc); printf("请输入账号密码:"); scanf("%s", p->manPassw); if (managerHead == NULL) { managerHead = p; } else { p->next = managerHead; managerHead = p; } printf("注册成功!\n");}/*核对账号*/Manager* Manager_check(char* Manager_num){ Manager* t = managerHead; while (t) { if (strcmp(Manager_num, t->manAcc) != 0) { t = t->next; continue; } return t; } return t;}/*密码验证*/int Password_Text_Find(char* Password){ char password_tem[20]=""; int tem = 0; int n = 0; //检测输入次数 while (n != 3) { scanf("%s", password_tem); if (strcmp(password_tem, Password) == 0) { tem = 1; break; } else { n++; printf("\n\t\t输入错误,请重新输入,你还有%d次机会:", 3 - n); } } return tem;}/*教师端登录*/void teacherLogin(){ char ID[10]; Manager* t; printf("请输入账号:"); scanf("%s",ID); t = Manager_check(ID); if (!t) { printf("\t\t抱歉,账号不存在\n"); system("pause"); return; } printf("请输入密码:"); if (Password_Text_Find(t->manPassw) == 0) { printf("\n\t\t已经错误输入密码三次,将退出登录系统···\n"); system("pause"); return; } printf("\t\t登录成功···\n"); system("pause"); teacherFunction();}/*教师端*/void teacherPort(){ while (1) { showTeacherPort(); char ch = getch(); switch(ch) { case '1': teacherRegister(); break; case '2': teacherLogin(); break; case '0': return; default: printf("\t\t输入错误,请重新输入\n"); break; } system("pause"); system("cls"); }}/*教师端应用功能*/void teacherFunction(){ Tutor* T = initTeacherList(); teacher data; int choice = 0; readInfoFromFile(T); while (1) { tutorMenu();//教师菜单 printf("\t请输入选择:"); scanf("%d", &choice); switch (choice) { case 1: printf("\t1.学生信息录入\n"); printf("学生姓名:"); scanf("%s", data.name); printf("学生学号:"); scanf("%s", data.iD); printf("学生成绩:"); scanf("%f", &data.score); insertStudentData(T, data);//录入学生信息 break; case 2: showStudentData(T); break; case 3: searchStudentData(T); break; case 4: changeStudentData(T); break; case 5: T=deleteStudentData(T); break; case 6: writeInfoToFile(T); break; case 0: return; default: printf("您的输入有误,请重新输入!\n"); break; } system("pause"); system("cls"); }}/*教师链表初始化*/Tutor* initTeacherList(){ Tutor* headNode = (Tutor*)malloc(sizeof(Tutor)); headNode->next = NULL; return headNode;}/*创建结点*/Tutor* createNode(teacher data){ Tutor* newNode = (Tutor*)malloc(sizeof(Tutor)); newNode->data = data; newNode->next = NULL; return newNode;}/*学生信息录入*/void insertStudentData(Tutor* headNode,teacher data){ Tutor* newNode = createNode(data); /*头接法*/ newNode->next = headNode->next; headNode->next = newNode; printf("\t录入成功!\n");}/*学生信息展示*/void showStudentData(Tutor* headNode){ Tutor* P = headNode->next; printf("姓名\t学号\t成绩\t\n"); while (P) { printf("%s\t%s\t%f\n", P->data.name, P->data.iD, P->data.score); P = P->next; }}/*学生信息查询-按学号*/void searchStudentData(Tutor* headNode){ Tutor* P = headNode->next; char ID[10] = " "; printf("请输入查找的学生学号:"); scanf("%s", ID); while (P) { if (strcmp(P->data.iD, ID) != 0) { P = P->next; continue; } else { printf("姓名\t学号\t成绩\n"); printf("%s\t%s\t%f\n", P->data.name, P->data.iD, P->data.score); return; } } printf("\t目前不存在该学生信息!\n"); return;}/*学生信息修改*/void changeStudentData(Tutor* headNode){ Tutor* P = headNode->next; char ID[10] = " "; printf("请输入修改的学生学号:"); scanf("%s", ID); while (P) { if (strcmp(P->data.iD, ID) != 0) { P = P->next; continue; } else { printf("\t请进行修改\n"); printf("学生姓名:"); scanf("%s", P->data.name); printf("学生学号:"); scanf("%s", P->data.iD); printf("学生成绩:"); scanf("%f", &P->data.score); printf("已完成修改!\n"); return; } } printf("\t目前不存在该学生信息!\n"); return;}/*学生信息删除*/Tutor* deleteStudentData(Tutor* headNode){ Tutor* head= headNode; Tutor* node= head->next; char ID[10] = " "; if (headNode->next == NULL) { printf("\t当前数据为空!\n"); return headNode; } printf("请输入要删除的学生学号:"); scanf("%s", ID); while (node!=NULL) { if (strcmp(node->data.iD, ID) != 0) { head = node; node = node->next; continue; } else { head->next = node->next; free(node); printf("\t删除成功!\n"); return headNode; } } printf("\t未找到该学生的相关信息!\n"); return headNode;}//文件读操作void readInfoFromFile(Tutor* headNode){ FILE* fp; struct Teacher data; fp = fopen("1.txt", "r"); if (fp == NULL) { fp = fopen("1.txt", "w+"); } //2.读文件 fscanf(fp, "姓名\t学号\t成绩\n");//fscanf--格式化读取数据 while (fscanf(fp, "%s\t%s\t%f\n", data.name, data.iD, &data.score) != EOF) { insertStudentData(headNode, data); } fclose(fp);}//文件写操作void writeInfoToFile(Tutor* headNode){ FILE* fp; fp = fopen("1.txt", "w"); Tutor* pMove = headNode->next; fprintf(fp, "姓名\t学号\t成绩\n"); //fprintf--写入格式化数据 while (pMove) { fprintf(fp, "%s\t%s\t%f\n", pMove->data.name,pMove->data.iD, pMove->data.score); pMove = pMove->next; } fclose(fp);}
到此,关于"C语言如何实现教务管理系统"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
学生
教师
信息
输入
系统
学号
账号
管理
管理系统
姓名
成绩
菜单
密码
教务
文件
登录
语言
成功
数据
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术在服务的应用
数据库简介
数据库不存在数据冗余对吗
直播手游服务器升级
构建网络安全体系和未来
网络安全人们应怎么做
德国中央银行网站数据库
数据库学习意义
软件开发南通培训
台式电脑usb服务器
应用软件开发工具基本功能
福建三维土地资产管理软件开发
机电计算机网络技术怎么样
联想服务器可以装企业盘吗
fm2015数据库怎么更新
数据库管理的数据信息
奉贤区专业网络技术售后服务
厦门湖里区网络安全宣传
服务器p4
抢得快软件开发
mc服务器需要正版账号吗
odbc连接远程数据库
miui服务器
邮件服务器部署在内网
在线服务器文件管理
百度天津市网络安全公司
公司使用云数据库吗
hp服务器阵列卡掉电
我的世界暂时无法加入服务器
qq下载好没法更新数据库