C语言如何实现教务管理系统
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"C语言如何实现教务管理系统",在日常操作中,相信很多人在C语言如何实现教务管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C语言如何实现教务管理
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
南充 网络技术有限公司
网络安全法规定成立领导小组
c 把数据库导入excel
battlebit正在寻找服务器
天府之国宝可梦服务器
铁甲雄兵选不上服务器
更新数据库连接失败
护苗网络安全课系列视频
网络安全检查工作情况反馈
国美互联网科技有限公司
外购软件开发费
网络安全校园视频
数据库管理系统培训测试题
北京铁路网络安全知识答题答案
机房中的服务器可用
服务器只有七块硬盘只显示三块
邮箱服务器怎么接受邮件
怎样设置网络数据库
服务器电源插口亮红灯
软件开发电脑高配
网络安全未来5年前景
高中网络技术会考必过
擎科软件开发
无锡专业服务器服务商
普通电脑做云桌面服务器
h3c无线网络技术题库
惠普服务器论坛
微软人工智能服务器
软件开发组长工作规划展望
ftp服务器 c语言