<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現教務管理系統的具體程式碼,供大家參考,具體內容如下
目前已完成教師管理系統部分,學生管理系統待完成:
實現效果如圖:
主介面:
教師端——註冊賬號
進入教師管理系統
檔案的儲存
程式碼如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> /*教師應用結構體*/ 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("nnnnnnntttt學生端暫時未寫,有興趣可以接著寫!!!nnnnnnnn"); } /*教師端*/ void showTeacherPort() { system("CLS"); printf("nnntttt 教師端"); printf("nttt---------------------------------nn"); printf("tttt1)註冊n"); printf("tttt2)登入n"); printf("tttt0)返回n"); printf("nttt---------------------------------nn"); } /*教師管理選單*/ 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("ntt輸入錯誤,請重新輸入,你還有%d次機會:", 3 - n); } } return tem; } /*教師端登入*/ void teacherLogin() { char ID[10]; Manager* t; printf("請輸入賬號:"); scanf("%s",ID); t = Manager_check(ID); if (!t) { printf("tt抱歉,賬號不存在n"); system("pause"); return; } printf("請輸入密碼:"); if (Password_Text_Find(t->manPassw) == 0) { printf("ntt已經錯誤輸入密碼三次,將退出登入系統···n"); system("pause"); return; } printf("tt登入成功···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("tt輸入錯誤,請重新輸入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成績tn"); while (P) { printf("%st%st%fn", 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("%st%st%fn", 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, "%st%st%fn", 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, "%st%st%fn", pMove->data.name,pMove->data.iD, pMove->data.score); pMove = pMove->next; } fclose(fp); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45