日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

语言学生学籍管理系统流程图_基于C语言的学生管理系统(含文件)(一)

發布時間:2025/3/21 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语言学生学籍管理系统流程图_基于C语言的学生管理系统(含文件)(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ?"點擊上方“藍色字”,關注我們哦(*^▽^*)!"


NO.1

篇幅較長,請空閑時觀看

前言

這個項目是大一暑假完成,純C語言編寫,界面比較美觀,由于當時還是一個初學者,有什么問題希望大家可以批評指正。(源碼會在第二篇文章末尾給出)

這個項目有些瑕疵,但基本功能都已實現,在此分享一下我的思路。

全部內容我會分為兩部分:第一部分主要寫每個功能界面以及它們之間的邏輯關系。第二部分主要寫單鏈表和文件讀寫的實現。正文

先看看作品效果

流程圖如下

首先是一個菜單選擇界面,其中包括登錄,找回密碼和退出系統。

源碼如下

//主界面
void?menu(){
????printf("\t\t\t----------------------------------------\n");
????printf("\t\t\t|\t歡迎來到三千學生管理系統\t|\n");
????printf("\t\t\t----------------------------------------\n");
????printf("\t\t\t|\t1.登陸\t\t\t\t|\n");
????printf("\t\t\t|\t2.找回密碼\t\t\t|\n");
????printf("\t\t\t|\t3.退出系統\t\t\t|\n");
????printf("\t\t\t----------------------------------------\n");
????printf("\t\t\t請選擇功能(1-3)(按回車鍵確認):");

? //獲取選擇
? int?choice?=?0;
? scanf("%d",&choice);

? //清除緩沖區
?char?ch;
? while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

? switch(choice)//判斷選擇
?{
? case?1:
?? {
??? system("cls");//刷新界面
??? login();//調用login()函數進行登錄
??? break;
? ?}
?case?2:
?? {
??? system("cls");
??? rebackPassword();//調用rebackPassword()函數找回密碼
??? break;
? ?}
? case?3:
?? {
?? ?printf("\n\t\t\t");
?? ?exit(0);//退出系統
? ?}
? default:
? ?{
??? //當輸入不是指定選項時
??? printf("\n\t\t\t輸入錯誤!請重新輸入!\n\t\t\t");
?? ?system("pause");//暫停程序
?? ?system("cls");//刷新界面

?? ?menu();//重新調用本函數
?? ?break;
? ?}
? }
}

選擇其中一項都會跳轉到其他界面。本文只寫登錄和登錄成功后。登錄失敗以及找回密碼都有對應措施,在文中不再介紹。

進入登錄界面后,輸入密碼:123,即可登錄成功。

源碼如下

//登錄界面
void?login(){
??? int?i?=?0;
?? ?char?Password[]="123";//登錄密碼
?? ?char?tempPass[10]="0";//從輸入端獲取的密碼

?? ?printf("\t\t\t---------------登陸系統---------------\n\n");
?? ?printf("\t\t\t\t管理員賬號:三千\n");
?? ?for(i=1;i<=3;i++)
??? {
?????? printf("\t\t\t\t管理員密碼:");
?????? //獲取你所輸入的密碼
?????? scanf("%s",tempPass);

?????? //清除緩沖區
????? ?char?ch;
????? ?while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????//判斷登錄密碼和獲取的密碼是否相同
????????//strcmp()用于字符串比較,兩字符串相同時返回0
?????? if(!strcmp(Password,tempPass))
????? ?{
????????? printf("\n\t\t\t\t登陸成功!");
???????? ?printf("\n\t\t\t\t");
???????? ?system("pause");//程序暫停
???????? ?system("cls");//刷新界面
????????? function();//調用fuction()函數進入功能界面
?????? }else
????? ? {
????????? //密碼錯誤達到三次
???????? ?if(3?==?i)
???????? ?{
??????????? ? printf("\n\t\t\t\t密碼輸入錯誤3次!請重新選擇!\n\n");
???????????? printf("\t\t\t\t");
???????????? system("pause");
????????? }else
????????? {
???????????? printf("\n\t\t\t\t密碼輸入錯誤%d次!請重新輸入!\n",i);
????????? }
?????? }
??? }
??? if(4?==?i)
??? {
?????? system("cls");
?????? //登錄密碼失敗后進入登錄分界面
?????? login_Second();/
??? }
}

//登錄分界面,解決密碼輸入錯誤超過三次后
void?login_Second(){
??? printf("\t\t\t-------------------------------------\n");
??? printf("\t\t\t|\t????1.找回密碼\t\t????|\n");
? ??printf("\t\t\t|\t????2.重新登錄\t\t????|\n");
?? ?printf("\t\t\t|\t????3.退出系統\t\t????|\n");
?? ?printf("\t\t\t-------------------------------------\n");
?? ?printf("\t\t\t\t ??請選擇(1-3):");

?? ?//獲取選擇
?? ?int?choice?=?0;
?? ?scanf("%d",&choice);

??? //清除緩沖區
?? ?char?ch;
??? while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);
??? switch(choice)
?? ?{
?? ?case?1:
????? ?{
????????? system("cls");//刷新界面
????????? rebackPassword();//調用rebackPassword()函數找回密碼
???????? ?break;
????? ?}
?? ?case?2:
????? ?{
???????? ?system("cls");
????????? login();//調用login()函數進行登錄
????????? break;
?????? }
??? case?3:
?????? {
????????? printf("\n\t\t\t\t");
????????? exit(0);//退出系統
?????? }
??? default:
?????? {
????????? printf("\n\t\t\t\t輸入錯誤!請重新輸入!\n\t\t\t\t");
????????? system("pause");//暫停程序
????????? system("cls");//刷新界面

????????? login_Second();//重新調用本函數
???????? ?break;
?????? }
??? }
}

登錄成功后進入功能選擇界面。

其中包括八個功能:增,刪,改,查,統計,排序,返回,退出。

源碼如下

//功能界面
void?function(){
????printf("\t\t\t-----------------------------------------\n");
????printf("\t\t\t|\t歡迎使用三千學生管理系統\t|\n");
????printf("\t\t\t-----------------------------------------\n");
????printf("\t\t\t|\t1.添加學生信息\t\t\t|\n");
????printf("\t\t\t|\t2.統計學生信息\t\t\t|\n");
????printf("\t\t\t|\t3.查找學生信息\t\t\t|\n");
????printf("\t\t\t|\t4.修改學生信息\t\t\t|\n");
????printf("\t\t\t|\t5.刪除學生信息\t\t\t|\n");
????printf("\t\t\t|\t6.排序學生信息\t\t\t|\n");
????printf("\t\t\t|\t7.返回上一級\t\t\t|\n");
????printf("\t\t\t|\t8.退出程序\t\t\t|\n");
????printf("\t\t\t-----------------------------------------\n");
????printf("\t\t\t請選擇功能(1-8):");
?
????//存儲臨時數據
????struct?student?tempData={"0","0","0",0,0.0,0.0,0.0};

????//獲取選擇
????int?choice?=?0;
????scanf("%d",&choice);
????//清除緩沖區
????char?ch;
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????switch(choice)
????{
????case?1:
????????{
????????????//調用addStudent()函數添加學生信息
????????????addStudent(tempData);
????????????printf("\n\t\t\t\t");
????????????system("pause");//暫停程序
????????????system("cls");//刷新界面
????????????break;
????????}
????case?2:
????????{
????????????printf("\n\t\t\t--------------統計學生信息--------------\n");
????????????//調用printList()函數打印所有學生信息
????????????printList(List);
????????????printf("\n\t\t\t\t");
????????????system("pause");
????????????system("cls");
????????????break;
????????}
????case?3:
????????{
????????????//調用searchStudent()函數查找學生信息
????????????searchStudent(tempData);
????????????printf("\n\t\t\t\t");
????????????system("pause");
????????????system("cls");
????????????break;
????????}
????case?4:
????????{
????????????//調用modifyStudent()函數修改學生信息
????????????modifyStudent(tempData);
????????????printf("\n\t\t\t\t");
????????????system("pause");
????????????system("cls");
????????????break;
????????}
????case?5:
????????{
????????????//調用deleteStudent()函數刪除學生信息
????????????deleteStudent(tempData);
????????????printf("\n\t\t\t\t");
????????????system("pause");
????????????system("cls");
????????????break;
????????}
????case?6:
????????{
????????????//調用sortStudent()函數排序學生信息
????????????sortStudent();
????????????printf("\n\t\t\t\t");
????????????system("pause");
????????????system("cls");
????????????break;
????????}
????case?7:
????????{
????????????system("cls");
????????????menu();//返回主界面
????????????break;
????????}
????case?8:
????????{
????????????printf("\n\t\t\t\t");
????????????exit(0);//退出系統
????????}
????default:
????????{
????????????printf("\n\t\t\t\t輸入錯誤!請重新輸入!\n");
????????????printf("\n\t\t\t\t");
????????????system("pause");//暫停程序
????????????system("cls");//刷新界面
????????????break;
????????}
????}
????function();//重新調用本函數
}

每一個功能的實現背后都有鏈表和文件在運行工作。(我將鏈表和文件讀寫的實現專門寫在另一個.h文件中,在第二篇文章中將會寫到。)

接下來開始一一講解程序的功能(功能效果圖不再展示)

功能一:添加學生信息

調用addStudent()函數將學生信息添加到鏈表中,并最終存儲在文件中。

//添加學生信息
void?addStudent(struct?student?tempData){
????printf("\n\t\t\t--------------添加學生信息--------------\n");
????printf("\t\t\t\t學號:");
????scanf("%s",tempData.id);//獲取學生學號
????char?ch;
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);//清除緩沖區

????printf("\t\t\t\t姓名:");
????scanf("%s",tempData.name);//獲取學生姓名
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);
????
????printf("\t\t\t\t性別:");
????scanf("%s",tempData.gender);//獲取學生性別
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????printf("\t\t\t\t年齡:");
????scanf("%d",&tempData.age);//獲取學生年齡
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????printf("\t\t\t\t數學:");
????scanf("%f",&tempData.math);//獲取學生數學成績
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????printf("\t\t\t\t英語成績:");
????scanf("%f",&tempData.english);//獲取學生英語成績
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????tempData.sumscore=tempData.math+tempData.english;//計算學生總成績
????printf("\t\t\t\t總成績為:%.1f\n",tempData.sumscore);//打印學生總成績

????insertnode(List,tempData);//向鏈表中插入學生信息
????saveToFile("student.txt",List);//將鏈表中的學生信息保存到文件student.txt
????printf("\n\t\t\t\t添加成功!\n");
}

功能二:統計學生信息

調用printList()函數將鏈表中的全部學生信息打印到界面上。

...
case?2:
{
????printf("\n\t\t\t--------------統計學生信息--------------\n");
????//調用printList()函數打印所有學生信息
????printList(List);
????printf("\n\t\t\t\t");
????system("pause");
????system("cls");
????break;
}
...
//打印學生信息,打印函數,位于另一個.h文件中
void?printList(struct?Node?*StudentListhead){
????struct?Node?*pmove=StudentListhead->next;

????//按格式打印
????printf("\t學號\t\t姓名\t性別\t年齡\t高數成績\t英語成績\t成績總和\n");

????while(pmove)//pmove為NULL時,退出循環
????{
????????//格式化輸出打印
????????printf("\t%-10s\t%-4s\t%-6s\t%-3d\t%.1f\t\t%.1f\t\t%.1f\n",pmove->data.id,pmove->data.name,pmove->data.gender,pmove->data.age,pmove->data.math,pmove->data.english,pmove->data.sumscore);
????????
????????//pmove指向下一個結點,以此遍歷鏈表
????????pmove=pmove->next;
????}
????printf("\n");
}

功能三:查找學生信息

方式:1.按學號查找

????????? 2.按姓名查找(缺陷:若有重名者,只能查找其中一個)

輸入要查找學生的學號或姓名,與鏈表中的學生信息進行對比。若存在,則打印該學生信息;反之則打印“查無此人!”

//查找學生信息
void?searchStudent(struct?student?tempData){
????printf("\n\t\t\t---------------查找學生信息--------------\n\n");
????printf("\t\t\t\t1.按學號查找\t\t\t\t\n");
????printf("\t\t\t\t2.按姓名查找\t\t\t\t\n");
????printf("\t\t\t\t請選擇功能:");

????//獲取選擇
????int?choice?=?0;
????scanf("%d",&choice);
????//清除緩沖區
????char?ch;
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????switch(choice)
????{
????case?1:
????????{
????????????printf("\n\t\t\t請輸入要查找的學生的學號:");
????????????scanf("%s",tempData.id);//獲取學生學號
????????????while((ch=?getchar())?!=?'\n'?&&?ch?!=?EOF);//清除緩沖區

????????????//searchnode_byid()返回值為結點指針或NULL
????????????//返回NULL,說明未查到
????????????if(searchnode_byid(List,tempData.id)?==?NULL)
????????????{
????????????????//若鏈表中不存在該學號
????????????????printf("\n\t\t\t\t查無此人!\n");?
????????????}?else
????????????{
????????????????//打印查找的學生信息
????????????????printsearch(searchnode_byid(List,tempData.id));
????????????}
????????????break;
????????}
????case?2:
????????{
????????????printf("\n\t\t\t請輸入要查找的學生的姓名:");
????????????scanf("%s",tempData.name);//獲取學生姓名
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);//清除緩沖區

????????????//searchnode_byname()返回值為結點指針或NULL
????????????//返回NULL,說明未查到
????????????if(searchnode_byname(List,tempData.name)?==?NULL)
????????????{
????????????????//若鏈表中不存在該姓名
????????????????printf("\n\t\t\t\t查無此人!\n");
????????????}else
????????????{
????????????????//打印查找的學生信息
????????????????printsearch(searchnode_byname(List,tempData.name));
????????????}
????????????break;
????????}
????default:
????????{
????????????printf("\n\t\t\t\t輸入錯誤!請重新輸入!\n");
????????????break;
????????}
????}
}

功能四:修改學生信息

方式:1.按學號查找修改

??????????2.按姓名查找修改(缺陷:若有重名者,只能查找其中一個)

調用modifyStudent()函數將在鏈表中查找到學生信息進行修改,再重新保存到文件中。

//修改學生信息
void?modifyStudent(struct?student?tempData){
????printf("\n\t\t\t--------修改學生信息--------\t\t\t\t\n");
????//先調用printList()函數打印全部學生信息
????printList(List);
????printf("\t\t\t\t1.按學號修改\t\t\t\t\n");
????printf("\t\t\t\t2.按姓名修改\t\t\t\t\n");
????printf("\t\t\t\t請選擇功能:");

????//獲取選擇
????int?choice?=?0;
????scanf("%d",&choice);
????//清除緩沖區
????char?ch;
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????switch(choice)
????{
????case?1:
????????{
????????????printf("\n\t\t\t請輸入要修改的學生的學號:");

????????????scanf("%s",tempData.id);//獲取學生的學號
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????if(searchnode_byid(List,tempData.id)?==?NULL)
????????????{
????????????????//若鏈表中不存在該學號
????????????????printf("\n\t\t\t\t查無此人!\n");
????????????}else
????????????{
????????????????//修改學生信息的分函數
????????????????modifyStudent_Second(tempData);
????????????}
????????????break;
????????}
????case?2:
????????{
????????????printf("\n\t\t\t\t請輸入要修改的學生的姓名:");
????????????scanf("%s",tempData.name);//獲取學生姓名
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????if(searchnode_byname(List,tempData.name)==NULL)
????????????{
????????????????//若鏈表中不存在該姓名
????????????????printf("\n\t\t\t\t查無此人!\n");
???????????}else
????????????{
????????????????modifyStudent_Second(tempData);
????????????}
????????????break;
????????}
????default:
????????{
????????????printf("\t\t\t\t輸入錯誤!請重新輸入!\n");
????????????function();//進入功能界面
????????????break;
????????}
????}
}
void?modifyStudent_Second(struct?student?tempData){
????//重新定義一個指針并指向要修改的學生的信息的結點
????struct?Node?*curnode=searchnode_byid(List,tempData.id);
????//調用printsearch()函數打印要修改學生的信息
????printsearch(searchnode_byid(List,tempData.id));

????printf("\n");
????printf("\t\t\t\t1.學號\t\t\t\t\n");
????printf("\t\t\t\t2.姓名\t\t\t\t\n");
????printf("\t\t\t\t3.性別\t\t\t\t\n");
????printf("\t\t\t\t4.年齡\t\t\t\t\n");
????printf("\t\t\t\t5.高數成績\t\t\t\t\n");
????printf("\t\t\t\t6.英語成績\t\t\t\t\n");
????printf("\t\t\t\t請選擇要修改的內容:");

????//獲取選擇
????int?choice?=?0;
????scanf("%d",&choice);
????//清除緩沖區
????char?ch;
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????switch(choice)
????{
????case?1:
????????{
????????????printf("\n\t\t\t\t修改前的學號:%s\n",curnode->data.id);
????????????printf("\t\t\t\t請輸入修改后的學號:");

????????????scanf("%s",curnode->data.id);
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????//將修改后的信息保存到文件
????????????saveToFile("student.txt",List);
????????????printf("\n\t\t\t\t修改成功!\n");
????????????break;
????????}
????case?2:
????????{
????????????printf("\n\t\t\t\t修改前的姓名:%s\n",curnode->data.name);
????????????printf("\t\t\t\t請輸入修改后的姓名:");

????????????scanf("%s",curnode->data.name);
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????saveToFile("student.txt",List);
????????????printf("\n\t\t\t\t修改成功!\n");
????????????break;
????????}
????case?3:
????????{
????????????printf("\n\t\t\t\t修改前的性別:%s\n",curnode->data.gender);
????????????printf("\t\t\t\t請輸入修改后的性別:");

????????????scanf("%s",curnode->data.gender);
????????????while((ch=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????saveToFile("student.txt",List);
????????????printf("\n\t\t\t\t修改成功!\n");
????????????break;
????????}
????case?4:
????????{
????????????printf("\n\t\t\t\t修改前的年齡:%d\n",curnode->data.age);
????????????printf("\t\t\t\t請輸入修改后的年齡:");

????????????scanf("%d",&curnode->data.age);
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????saveToFile("student.txt",List);
????????????printf("\n\t\t\t\t修改成功!\n");
????????????break;
????????}
????case?5:
????????{
????????????printf("\n\t\t\t\t修改前的高數成績:%.1f\n",curnode->data.math);
????????????printf("\t\t\t\t請輸入修改后的高數成績:");

????????????scanf("%f",&curnode->data.math);
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);
????????????//計算總成績
????????????curnode->data.sumscore=curnode->data.math+curnode->data.english;

????????????saveToFile("student.txt",List);
????????????printf("\n\t\t\t\t修改成功!\n");
????????????break;
????????}
????case?6:
????????{
????????????printf("\n\t\t\t\t修改前的英語成績:%.1f\n",curnode->data.english);
????????????printf("\t\t\t\t請輸入修改后的英語成績:");

????????????scanf("%f",&curnode->data.english);
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????curnode->data.sumscore=curnode->data.math+curnode->data.english;

????????????saveToFile("student.txt",List);
????????????printf("\n\t\t\t\t修改成功!\n");
????????????break;
????????}
????default:
????????{
????????????printf("\n\t\t\t\t輸入錯誤!請重新輸入!\n");
????????????break;
????????}
????}
}

功能五:刪除學生信息

方式:1.按學號查找刪除

? ?2.按姓名查找刪除(缺陷:若有重名者,只能查找其中一個)

調用deleteStudent()函數將在鏈表中查找到的學生信息進行刪除,再重新保存到文件。

//刪除學生信息
void?deleteStudent(struct?student?tempData){
????printf("\n\t\t\t--------------刪除學生信息---------------\n");
????//調用printList()函數打印全部學生信息
????printList(List);
????printf("\t\t\t\t1.按學號刪除\t\t\t\t\n");
????printf("\t\t\t\t2.按姓名刪除\t\t\t\t\n");
????printf("\t\t\t\t請選擇功能:");

????//獲取選擇
????int?choice?=?0;
????scanf("%d",&choice);
????//清除緩沖區
????char?ch;
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????switch(choice)
????{
????case?1:
????????{
????????????printf("\n\t\t\t請輸入要刪除的學生的學號:");

????????????scanf("%s",tempData.id);
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????//從鏈表中刪除學生信息
????????????Deletenode_byid(List,tempData.id);
????????????//將剩余信息保存到文件
????????????saveToFile("student.txt",List);
????????????break;
????????}
????case?2:
????????{
????????????printf("\n\t\t\t請輸入要刪除的學生的姓名:");

????????????scanf("%s",tempData.name);
????????????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????????????Deletenode_byname(List,tempData.name);
????????????saveToFile("student.txt",List);
????????????break;
????????}
????default:
????????{
????????????printf("\n\t\t\t\t輸入錯誤!請重新輸入!\n");
????????????break;
????????}
????}
}

功能六:排序學生信息

方式:1.根據學號排序(從低到高)

???????? ?2.根據數學成績排序(從高到低)

??????? ? 3.根據英語成績排序(從高到低)

??????? ??4.根據總成績排序(從高到低)

調用sortStudent()函數按照所選項將鏈表中的學生信息排序,并打印到界面上。

//排序
void?sortStudent(){
????printf("\n\t\t\t---------------排序學生信息--------------\n");
????printf("\t\t\t\t1.根據學號排序(從低到高)\n");
????printf("\t\t\t\t2.根據數學成績排序(從高到低)\n");
????printf("\t\t\t\t3.根據英語成績排序(從高到低)\n");
????printf("\t\t\t\t4.根據總成績排序(從高到低)\n");
????printf("\t\t\t\t請選擇功能(1-4):");

????//獲取選擇
????int?choice?=?0;
????scanf("%d",&choice);
????//清除緩沖區
????char?ch;
????while((ch?=?getchar())?!=?'\n'?&&?ch?!=?EOF);

????switch(choice)
????{
????case?1:
????????{
????????????//按學號從低到高排序鏈表
????????????sortList_byid(List);
????????????//將排序后的信息保存到文件
????????????saveToFile("student.txt",List);
????????????//打印鏈表中的信息
????????????printList(List);
????????????break;
????????}
????case?2:
????????{
????????????//按數學成績從高到低排序鏈表
????????????sortList_bymath(List);
????????????printList(List);
????????????break;
????????}
????case?3:
????????{
????????????//按英語成績從高到低排序鏈表
????????????sortList_byenglish(List);
????????????printList(List);
????????????break;
????????}
????case?4:
????????{
????????????//按總成績從高到低排序鏈表
????????????sortList_bysumscore(List);
????????????printList(List);
????????????break;
????????}
????default:
????????{
????????????printf("\n\t\t\t\t輸入錯誤!請重新輸入!\n");
????????????break;
????????}
????}
}

功能七:返回上一級

調用menu()函數返回主界面

void?function(){
????...
????case?7:
????????{
????????????system("cls");
????????????menu();//返回主界面
????????????break;
????????}
????...
}

功能八:退出程序

void?function(){
????...
????case?8:
????????{
????????????printf("\n\t\t\t\t");
????????????exit(0);//退出系統
????????}
????...
}

最后main()函數

//主函數
int?main(){
????//設置控制臺標題,顏色,尺寸
????system("title?學生信息管理系統");
????system("color?F0");
????system("mode?con?cols=90?lines=30");

????//創造一個鏈表,存儲學生信息
????List=creatList();

????//讀取student.txt文件信息到鏈表中
????//student.txt用于存放鏈表中的學生信息
????readFromFile("student.txt",List);
????//進入主界面
????menu();

????return?0;
}

以上便是程序的界面部分,相對不難,但仍有些不足,希望對你有所幫助。

?

作者:瑾年辰良一位熱愛生活的快樂青年

"即見君子,云胡不喜?"

總結

以上是生活随笔為你收集整理的语言学生学籍管理系统流程图_基于C语言的学生管理系统(含文件)(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。