C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(文件版)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
下面是我自己用寫的學(xué)生信息管理系統(tǒng),為了增加數(shù)據(jù)的利用率,分為學(xué)生端和教師端,同時(shí)實(shí)現(xiàn)賬號(hào)密碼登錄,以文件的形式將其存入。
代碼如下
#include <stdio.h> #include <string.h> #include <string> #include<Windows.h> #define USER "TOM" // 事先定義用戶名,用于登錄頁面,驗(yàn)證身份。 #define PW "123456789" // 事先定義密碼 ,作用同上。 void Level_menu();//主菜單的聲明--選擇學(xué)生端還是老師端。 void Level_2_menu(); //二級(jí)菜單——具體功能分化 void Student_add_Level_3_menu();// 增添學(xué)生信息菜單功能分化 void Student_Insert(); //添加單個(gè)學(xué)生信息 void Student_Insert1(); /*為上面批量輸入設(shè)置的函數(shù),其代碼與上面的 單個(gè)輸入相似,刪減了一部分*/ void Student_Tongji_menu();//統(tǒng)計(jì)菜單部分 void Student_Tongji_menu2();//統(tǒng)計(jì)二級(jí)菜單 void Student_Tongji_menu3();//統(tǒng)計(jì) void IO_ReadInfo();/*將學(xué)生信息從文件(student database.txt)中讀出*/ void IO_WriteInfo();/*將學(xué)生信息寫入文件(Database.txt)*/ void student_Delete_menu(); /*刪除學(xué)生信息菜單*/ void student_menu1();/*學(xué)生查詢課程信息菜單*/ void student_Kecheng_menu2(); void Student_From_high_to_low1(); /*按綜合測(cè)評(píng)從高到低排序*/ void jiangxue_menu();/*獎(jiǎng)學(xué)金評(píng)定辦法*/ void Student_Display2();/*顯示學(xué)生信息2在獎(jiǎng)學(xué)金評(píng)定時(shí)使用*/ /*定義學(xué)生結(jié)構(gòu)體*/ struct Student { char ID[20]; //學(xué)號(hào) char Name[20]; //姓名 char sushe[6]; //宿舍房間號(hào) float mathA1; //高等數(shù)學(xué)成績 float EnglishA1; //大學(xué)英語成績 float software; //軟件技術(shù)導(dǎo)論 float china_history;//中國近代史綱要 float junshi; //軍事教育 float xinli; //心理健康輔導(dǎo) float sports; //體育*/ float C_Mark; //C語言程學(xué)設(shè)計(jì)成績 float pingjun; //總學(xué)分 float Banzhuren; //班主任評(píng)分 float Cepingfen; //測(cè)評(píng)分 }; /*聲明學(xué)生數(shù)組及學(xué)生數(shù)量*/ struct Student students[1000]; int num=0; int Num; /*通過學(xué)號(hào)返回?cái)?shù)組下標(biāo)*/ int Student_SearchByIndex(char id[]) { int i; for (i=0;i<num;i++) { if (strcmp(students[i].ID,id)==0) { return i; } } return -1; } /*通過姓名返回?cái)?shù)組下標(biāo)*/ int Student_SearchByName(char name[]) { int i; for (i=0;i<num;i++) { if (strcmp(students[i].Name,name)==0) { return i; } } return -1; } /*通過宿舍成員返回?cái)?shù)組下標(biāo)*/ void Student_SearchBySushe() { system("cls"); system("color f0"); int i; char Sushe[6] ; printf("請(qǐng)輸入你想要查詢的宿舍房間號(hào): "); scanf("%s",&Sushe); printf("%10s%10s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號(hào)","姓名","宿舍號(hào)","高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","總學(xué)分","班主任評(píng)分","測(cè)評(píng)分"); printf("------------------------------------------------------------------------------------------------------------------------\n"); for (i=0;i<num;i++) { if (strcmp(students[i].sushe,Sushe)==0) { printf("%10s%10s%5s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun,students[i].Banzhuren,students[i].Cepingfen); } } printf("數(shù)據(jù)加載完畢!"); Student_Tongji_menu2(); } /*顯示單條學(xué)生記錄*/ void Student_DisplaySingle(int index) { printf("%10s%10s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號(hào)","姓名","宿舍號(hào)","高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分"); printf("------------------------------------------------------------------------------------------------------------------------\n"); printf("%10s%10s%5s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[index].ID,students[index].Name,students[index].sushe,students[index].mathA1,students[index].EnglishA1,students[index].software,students[index].china_history,students[index].junshi,students[index].xinli,students[index].sports,students[index].C_Mark,students[index].pingjun); } /*增加單條學(xué)生記錄*/ void Student_Insert() { system("cls"); system("color f0"); float a1,a2,a3,a4,a5,a6,a7,a8; float j=0; while(1) { printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%s",&students[num].ID); getchar(); printf("請(qǐng)輸入姓名:"); scanf("%s",&students[num].Name); getchar(); printf("請(qǐng)輸入宿舍號(hào):"); scanf("%s",&students[num].sushe); getchar(); printf("請(qǐng)輸入高等數(shù)學(xué)成績:"); scanf("%f",&students[num].mathA1); getchar(); if (59<students[num].mathA1 && students[num].mathA1<100) a8= 1.5; else a8=0; printf("請(qǐng)輸入大學(xué)英語成績:"); scanf("%f",&students[num].EnglishA1); getchar(); if (59<students[num].EnglishA1 && students[num].EnglishA1<100) a1= 2; else a1=0; printf("請(qǐng)輸入軟件技術(shù)導(dǎo)論成績:"); scanf("%f",&students[num].software); getchar(); if (59<students[num].software && students[num].software<100) a2= 1.5; else a2=0; printf("請(qǐng)輸入中國近代史綱要成績:"); scanf("%f",&students[num].china_history); getchar(); if (59<students[num].china_history && students[num].china_history<100) a3= 2.5; else a3=0; printf("請(qǐng)輸入軍事教育:"); scanf("%f",&students[num].junshi); getchar(); if (59<students[num].junshi && students[num].junshi<100) a4= 2; else { a4=0; } printf("請(qǐng)輸入心理健康教育成績:"); scanf("%f",&students[num].xinli); getchar(); if (59<students[num].xinli && students[num].xinli<100) a5= 1.5; else a5=0; printf("請(qǐng)輸入體育成績:"); scanf("%f",&students[num].sports); getchar(); if (59<students[num].sports && students[num].sports<100) a6= 2; else a6=0; printf("請(qǐng)輸入C語言成績:"); scanf("%f",&students[num].C_Mark); getchar(); if (59<students[num].C_Mark && students[num].C_Mark<100) a7= 3.5; else a7=0; printf("請(qǐng)輸入班主任評(píng)分:"); scanf("%f",&students[num].Banzhuren); getchar(); students[num].pingjun=a1+a2+a3+a4+a5+a6+a7+a8; //總學(xué)分 j=(students[num].pingjun*0.4)+(students[num].Banzhuren*0.6); students[num].Cepingfen=j; num++; printf("是否繼續(xù)?(Y/N),繼續(xù)請(qǐng)按任意鍵,否則輸入N:"); if (getchar()=='N') { Num=num; break; } } } /*批量添加學(xué)生記錄*/ void Student_many1() { { system("cls"); system("color f0"); int i,j; printf("請(qǐng)輸入你將要添加的人員數(shù): "); scanf("%d",&j); for(i=0;i<j;i++) { Student_Insert1(); } printf("成員添加完畢,是否跳轉(zhuǎn)至上一級(jí)菜單?\n"); printf("是?,請(qǐng)按任意鍵,確認(rèn)輸入: \n"); if (getchar()=='Y') { Student_add_Level_3_menu(); } } } /*為上面批量輸入設(shè)置的函數(shù),其代碼與上面的 單個(gè)輸入相似,刪減了一部分*/ void Student_Insert1() { { printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%s",&students[num].ID); getchar(); printf("請(qǐng)輸入姓名:"); scanf("%s",&students[num].Name); getchar(); printf("請(qǐng)輸入宿舍號(hào):"); scanf("%s",&students[num].sushe); getchar(); printf("請(qǐng)輸入高等數(shù)學(xué)成績:"); scanf("%f",&students[num].mathA1); getchar(); printf("請(qǐng)輸入大學(xué)英語成績:"); scanf("%f",&students[num].EnglishA1); getchar(); printf("請(qǐng)輸入軟件技術(shù)導(dǎo)論成績:"); scanf("%f",&students[num].software); getchar(); printf("請(qǐng)輸入中國近代史綱要成績:"); scanf("%f",&students[num].china_history); getchar(); printf("請(qǐng)輸入軍事教育:"); scanf("%f",&students[num].junshi); getchar(); printf("請(qǐng)輸入心理健康教育成績:"); scanf("%f",&students[num].xinli); getchar(); printf("請(qǐng)輸入體育成績:"); scanf("%f",&students[num].sports); getchar(); printf("請(qǐng)輸入C語言成績:"); scanf("%f",&students[num].C_Mark); getchar(); printf("請(qǐng)輸入班主任評(píng)分:"); scanf("%f",&students[num].Banzhuren); getchar(); if (54<students[num].C_Mark && students[num].C_Mark< 60) //把55~59分之間的成績都加上5分 { students[num].C_Mark += 5; } num++; } } /*修改學(xué)生信息*/ void Student_Modify() { system("cls"); system("color f0"); float a1,a2,a3,a4,a5,a6,a7,a8; float j=0; while(1) { char id[20]; int index; printf("請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào):"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("該學(xué)生不存在!\n"); } else { printf("你要修改的學(xué)生信息為:\n"); Student_DisplaySingle(index); printf("-- 請(qǐng)輸入新值--\n"); /*printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%s",&students[index].ID); getchar(); printf("請(qǐng)輸入姓名:"); scanf("%s",&students[index].Name); getchar(); printf("請(qǐng)輸入宿舍號(hào):"); scanf("%s",&students[index].sushe); getchar(); printf("請(qǐng)輸入高等數(shù)學(xué)成績:"); scanf("%f",&students[index].mathA1); getchar(); printf("請(qǐng)輸入大學(xué)英語成績:"); scanf("%f",&students[index].EnglishA1); getchar(); printf("請(qǐng)輸入軟件技術(shù)導(dǎo)論成績:"); scanf("%f",&students[index].software); getchar(); printf("請(qǐng)輸入中國近代史綱要成績:"); scanf("%f",&students[index].china_history); getchar(); printf("請(qǐng)輸入軍事教育:"); scanf("%f",&students[index].junshi); getchar(); printf("請(qǐng)輸入心理健康教育成績:"); scanf("%f",&students[index].xinli); getchar(); printf("請(qǐng)輸入體育成績:"); scanf("%f",&students[index].sports); getchar(); printf("請(qǐng)輸入C語言成績:"); scanf("%f",&students[index].C_Mark); getchar(); printf("請(qǐng)輸入班主任評(píng)分:"); scanf("%f",&students[num].Banzhuren); getchar();*/ printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%s",&students[index].ID); getchar(); printf("請(qǐng)輸入姓名:"); scanf("%s",&students[index].Name); getchar(); printf("請(qǐng)輸入宿舍號(hào):"); scanf("%s",&students[index].sushe); getchar(); printf("請(qǐng)輸入高等數(shù)學(xué)成績:"); scanf("%f",&students[index].mathA1); getchar(); if (59<students[index].mathA1 && students[index].mathA1<100) a8= 1.5; else a8=0; printf("請(qǐng)輸入大學(xué)英語成績:"); scanf("%f",&students[index].EnglishA1); getchar(); if (59<students[index].EnglishA1 && students[index].EnglishA1<100) a1= 2; else a1=0; printf("請(qǐng)輸入軟件技術(shù)導(dǎo)論成績:"); scanf("%f",&students[index].software); getchar(); if (59<students[index].software && students[index].software<100) a2= 1.5; else a2=0; printf("請(qǐng)輸入中國近代史綱要成績:"); scanf("%f",&students[index].china_history); getchar(); if (59<students[index].china_history && students[index].china_history<100) a3= 2.5; else a3=0; printf("請(qǐng)輸入軍事教育:"); scanf("%f",&students[index].junshi); getchar(); if (59<students[index].junshi && students[index].junshi<100) a4= 2; else { a4=0; } printf("請(qǐng)輸入心理健康教育成績:"); scanf("%f",&students[index].xinli); getchar(); if (59<students[index].xinli && students[index].xinli<100) a5= 1.5; else a5=0; printf("請(qǐng)輸入體育成績:"); scanf("%f",&students[index].sports); getchar(); if (59<students[index].sports && students[index].sports<100) a6= 2; else a6=0; printf("請(qǐng)輸入C語言成績:"); scanf("%f",&students[index].C_Mark); getchar(); if (59<students[index].C_Mark && students[index].C_Mark<100) a7= 3.5; else a7=0; printf("請(qǐng)輸入班主任評(píng)分:"); scanf("%f",&students[index].Banzhuren); getchar(); students[index].pingjun=a1+a2+a3+a4+a5+a6+a7+a8; //總學(xué)分 j=(students[index].pingjun*0.4)+(students[index].Banzhuren*0.6); students[index].Cepingfen=j; } printf("是否繼續(xù)?(Y/N),繼續(xù)請(qǐng)按任意鍵,否則輸入N:"); if (getchar()=='N') { break; } } } /*按學(xué)號(hào)刪除學(xué)生信息*/ void Student_Delete() { system("cls"); system("color f0"); IO_ReadInfo(); int i; while(1) { char id[20]; int index; printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào):"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("學(xué)生不存在!\n"); } else { printf("你要?jiǎng)h除的學(xué)生信息為:\n"); Student_DisplaySingle(index); printf("%d",index); printf("%d",num); { for (i=index;i<num-1;i++) { students[i]=students[i+1]; //把后邊的對(duì)象都向前移動(dòng) } num--; } printf("已刪除\n"); IO_WriteInfo(); } printf("是否繼續(xù)刪除?(Y/N),繼續(xù)請(qǐng)按任意鍵,否則輸入N:"); if (getchar()=='N') { break; } } } /*按姓名刪除學(xué)生信息*/ void Student_Delete_1() { system("cls"); system("color f0"); IO_ReadInfo(); int i; while(1) { char name[20]; int index; printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名: "); scanf("%s",&name); getchar(); index=Student_SearchByName(name); if (index==-1) { printf("學(xué)生不存在!\n"); } else { printf("你要?jiǎng)h除的學(xué)生信息為:\n"); Student_DisplaySingle(index); { for (i=index;i<num-1;i++) { students[i]=students[i+1]; //把后邊的對(duì)象都向前移動(dòng) } num--; } printf("已刪除\n"); IO_WriteInfo(); } printf("是否繼續(xù)刪除?(Y/N),繼續(xù)請(qǐng)按任意鍵,否則輸入N:"); if (getchar()=='N') { break; } } } /*按姓名查詢*/ void Student_Select_1() { while(1) { char name[20]; int index; printf("請(qǐng)輸入要查詢的學(xué)生的姓名:"); scanf("%s",&name); getchar(); index=Student_SearchByName(name); if (index==-1) { printf("學(xué)生不存在!\n"); } else { printf("你要查詢的學(xué)生信息為:\n"); Student_DisplaySingle(index); } printf("是否繼續(xù)?(Y/N),繼續(xù)請(qǐng)按任意鍵,否則輸入N:"); if (getchar()=='N') { break; } } } /*按學(xué)號(hào)查找*/ void Student_Select_2() { while(1) { char ID[20]; int index; system("cls"); system("color f0"); printf("請(qǐng)輸入要查詢的學(xué)生的學(xué)號(hào):"); scanf("%s",&ID); getchar(); index=Student_SearchByIndex(ID); if (index==-1) { printf("學(xué)生不存在!\n"); } else { printf("你要查詢的學(xué)生信息為:\n"); Student_DisplaySingle(index); } printf("是否繼續(xù)?(Y/N),繼續(xù)請(qǐng)按任意鍵,否則輸入N:"); if (getchar()=='N') { break; } } } void Student_Search_menu() { int choice; while(1) { system("cls"); system("color f0"); printf("\t\t\t\t\t\t1. 按姓名查詢學(xué)生記錄\n"); printf("\t\t\t\t\t\t2. 按學(xué)號(hào)查詢學(xué)生記錄\n"); printf("\t\t\t\t\t\t3. 返回上一級(jí)菜單\n"); printf("\t\t\t\t\t\t4. 返回主菜單\n"); printf("\t\t\t\t\t\t請(qǐng)選擇(1-4):"); scanf("%d",&choice); getchar(); switch(choice) { case 1:Student_Select_1(); break; case 2:Student_Select_2(); break; case 3:Level_2_menu(); break; case 4:Level_menu(); break; } } } /*按C語言成績從高到低排序*/ void Student_From_high_to_low() { int i,j; struct Student tmp; for (i=0;i<num;i++) { for (j=1;j<num-i;j++) { if (students[j-1].C_Mark<students[j].C_Mark) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } } } /*按C語言成績從低到高排序*/ void Student_From_low_to_high() { int i,j; struct Student tmp; for (i=0;i<num;i++) { for (j=1;j<num-i;j++) { if (students[j-1].C_Mark>students[j].C_Mark) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } } } /*按綜合測(cè)評(píng)從高到低排序*/ void Student_From_high_to_low1() { int i,j,k; struct Student tmp; for (i=0;i<num;i++) { for (j=1;j<num-i;j++) { if (students[j-1].Cepingfen<students[j].Cepingfen) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } } /*system("cls"); system("color f0"); while(1) { int k; printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號(hào)","姓名","宿舍號(hào)"," 高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分","班主任評(píng)分","測(cè)評(píng)分"); printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"); for (k=0;k<num;k++) { if(59<students[k].mathA1&&students[k].mathA1<101&&59<students[k].EnglishA1&&students[k].EnglishA1<101&&59<students[k].software&&students[k].software<101&&59<students[k].china_history&&students[k].china_history<101&&59<students[k].junshi&&students[k].junshi<101&&59<students[k].xinli&&students[k].xinli<101&&59<students[k].sports&&students[k].sports<101&&59<students[k].C_Mark&&students[k].C_Mark<101); { printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[k].ID,students[k].Name,students[k].sushe,students[k].mathA1,students[k].EnglishA1,students[k].software,students[k].china_history,students[k].junshi,students[k].xinli,students[k].sports,students[k].C_Mark,students[k].pingjun,students[k].Banzhuren,students[k].Cepingfen); } } printf("數(shù)據(jù)加載完畢!"); jiangxue_menu(); Student_Tongji_menu3(); } */ } /*獎(jiǎng)學(xué)金評(píng)定辦法*/ void jiangxue_menu() { float i=0,j=0,k=0; int a,b,c; i=num*0.1; j=num*0.15; k=num*0.2; a=(int)i; b=(int)j; c=(int)k; printf("一等獎(jiǎng)獲得人數(shù)為:%d\n",a); printf("二等獎(jiǎng)獲獎(jiǎng)人數(shù)為:%d\n",b); printf("三等獎(jiǎng)獲獎(jiǎng)人數(shù)為:%d\n",c); } //對(duì)獎(jiǎng)學(xué)金及格的人員篩選出來 void jiangxue() { system("cls"); system("color f0"); while(1) { int k; printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號(hào)","姓名","宿舍號(hào)"," 高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分","班主任評(píng)分","測(cè)評(píng)分"); printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"); for (k=0;k<num;k++) { if(59<students[k].mathA1&&students[k].mathA1<101&&59<students[k].EnglishA1&&students[k].EnglishA1<101&&59<students[k].software&&students[k].software<101&&59<students[k].china_history&&students[k].china_history<101&&59<students[k].junshi&&students[k].junshi<101&&59<students[k].xinli&&students[k].xinli<101&&59<students[k].sports&&students[k].sports<101&&59<students[k].C_Mark&&students[k].C_Mark<101); { printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[k].ID,students[k].Name,students[k].sushe,students[k].mathA1,students[k].EnglishA1,students[k].software,students[k].china_history,students[k].junshi,students[k].xinli,students[k].sports,students[k].C_Mark,students[k].pingjun,students[k].Banzhuren,students[k].Cepingfen); } } printf("數(shù)據(jù)加載完畢!"); jiangxue_menu(); Student_Tongji_menu3(); } } /*顯示學(xué)生信息*/ void Student_Display() { system("cls"); system("color f0"); while(1) { int i; printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號(hào)","姓名","宿舍號(hào)"," 高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分"); printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"); for (i=0;i<num;i++) { printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun); } printf("是否繼續(xù)?(Y/N),繼續(xù)請(qǐng)按任意鍵,否則輸入N:"); if (getchar()=='N') { break; } } } /*顯示學(xué)生信息1*/ void Student_Display1() { system("cls"); system("color f0"); while(1) { int i; printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號(hào)","姓名","宿舍號(hào)"," 高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分","班主任評(píng)分","測(cè)評(píng)分"); printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"); for (i=0;i<num;i++) { printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun,students[i].Banzhuren,students[i].Cepingfen); } printf("數(shù)據(jù)加載完畢!"); Student_Tongji_menu3(); } } /*顯示學(xué)生信息2在獎(jiǎng)學(xué)金評(píng)定時(shí)使用*/ void Student_Display2() { system("cls"); system("color f0"); while(1) { int i; printf("%10s%10s %8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號(hào)","姓名","宿舍號(hào)"," 高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分","班主任評(píng)分","測(cè)評(píng)分"); printf("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"); for (i=0;i<num;i++) { printf("%10s%10s %8s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",students[i].ID,students[i].Name,students[i].sushe,students[i].mathA1,students[i].EnglishA1,students[i].software,students[i].china_history,students[i].junshi,students[i].xinli,students[i].sports,students[i].C_Mark,students[i].pingjun,students[i].Banzhuren,students[i].Cepingfen); } printf("數(shù)據(jù)加載完畢!"); jiangxue_menu(); Student_Tongji_menu3(); } } /*將學(xué)生信息從文件(student database.txt)中讀出*/ void IO_ReadInfo() { FILE *fp; int i; if ((fp=fopen("student database.txt","rb"))==NULL) { printf("不能打開文件!\n"); return; } if (fread(&num,sizeof(int),1,fp)!=1) { num=-1; } else { for(i=0;i<num;i++) { fread(&students[i],sizeof(struct Student),1,fp); } } fclose(fp); } /*將學(xué)生信息寫入文件(Database.txt)*/ void IO_WriteInfo() { FILE *fp; int i; if ((fp=fopen("student database.txt","wb"))==NULL) { printf("不能打開文件!\n"); return; } if (fwrite(&num,sizeof(int),1,fp)!=1) { printf("寫入文件錯(cuò)誤!\n"); } for (i=0;i<num;i++) { if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1) { printf("寫入文件錯(cuò)誤!\n"); } } fclose(fp); } /*一級(jí)菜單*/ /*賬號(hào)密碼登錄*/ void Level_1_menu( ) { char account[20]; char password[30]; int i = 0; int j = 3; for (; i < 3; i++){ printf("\n\n\n\n\t\t\t\t\t\t *主菜單*\n"); printf("\t\t\t\t\t\t******************\n"); printf("\t\t\t\t\t\t*請(qǐng)輸入您的賬號(hào):*\n"); printf("\t\t\t\t\t\t******************\n"); printf(" 請(qǐng)輸入:"); scanf ("%s", account); printf("\t\t\t\t\t\t******************\n"); //scanf ("%s", account); printf("\t\t\t\t\t\t******************\n"); printf("\t\t\t\t\t\t*請(qǐng)輸入您的密碼:*\n"); printf("\t\t\t\t\t\t******************\n"); printf(" 請(qǐng)輸入:"); scanf ("%s", password); if (strcmp(USER, account) == 0 && strcmp(PW, password) == 0){ printf("登錄成功!\n"); break; } else{ j--; printf("登錄失敗您還有%d次機(jī)會(huì)!\n", j); } } if (i == 3){ printf("登錄失敗,退出!"); } //system("pause"); system("cls"); system("color f0"); } /*增加學(xué)生信息三級(jí)菜單模塊*/ void Student_add_Level_3_menu() { int choice; while(1) { system("cls"); system("color f0"); IO_ReadInfo(); //讀取文件 printf("\t\t\t\t\t\t1. 單個(gè)添加學(xué)生信息\n"); printf("\t\t\t\t\t\t2. 批量添加學(xué)生信息\n"); printf("\t\t\t\t\t\t3. 返回上一級(jí)菜單\n"); printf("\t\t\t\t\t\t4. 返回主菜單\n"); printf("\t\t\t\t\t\t請(qǐng)選擇(1-4):"); scanf("%d",&choice); getchar(); switch(choice) { case 1:Student_Insert(); IO_WriteInfo(); //寫入文件 break; case 2:Student_many1(); IO_WriteInfo(); //寫入文件 break; case 3:Level_2_menu(); break; case 4:Level_menu(); break; } IO_WriteInfo(); //寫入文件 } //Student_Insert(); } /*二級(jí)菜單*/ /*主菜單*/ void Level_2_menu( ) { int choice; while(1) { /*二級(jí)菜單*/ /*主菜單*/ system("cls"); system("color f0"); IO_ReadInfo(); //讀取文件 printf("\n\t\t\t\t\t\t------ 學(xué)生成績管理系統(tǒng)------\n"); printf("\t\t\t\t\t\t1. 增加學(xué)生記錄\n"); printf("\t\t\t\t\t\t2. 修改學(xué)生記錄\n"); printf("\t\t\t\t\t\t3. 刪除學(xué)生記錄\n"); printf("\t\t\t\t\t\t4. 查詢學(xué)生記錄\n"); printf("\t\t\t\t\t\t5. 統(tǒng)計(jì)學(xué)生記錄\n"); printf("\t\t\t\t\t\t6. 退出\n"); printf("\t\t\t\t\t\t請(qǐng)選擇(1-6):"); scanf("%d",&choice); getchar(); switch(choice) { case 1: Student_add_Level_3_menu(); break; case 2: Student_Modify(); break; case 3: student_Delete_menu(); break; case 4: Student_Search_menu(); break; case 5: Student_Tongji_menu(); break; case 6: Level_menu(); break; } IO_WriteInfo(); } } /*學(xué)生端成績查詢模塊*/ void student_Delete_menu() { int choice; while(1) { system("cls"); system("color f0"); IO_ReadInfo(); //讀取文件 printf("\n\n\n\n\t\t\t\t\t\t************************\n"); printf("\t\t\t\t\t\t* 刪除學(xué)生信息菜單******\n"); printf("\t\t\t\t\t\t************************\n"); printf("\t\t\t\t\t\t*1、按姓名刪除信息 *\n"); printf("\t\t\t\t\t\t*2、按學(xué)號(hào)刪除信息 *\n"); printf("\t\t\t\t\t\t*3、返回上一級(jí)功能菜單 *\n"); printf("\t\t\t\t\t\t*4、返回主菜單 *\n"); printf("\t\t\t\t\t\t************************\n"); printf("\t\t\t\t\t\t************************\n"); printf(" 請(qǐng)選擇(1-4):"); scanf("%d",&choice); switch(choice) { case 1: system("cls"); system("color f0"); Student_Delete_1(); break; case 2: system("cls"); system("color f0"); Student_Delete(); break; case 3: Level_2_menu(); break; case 4: Level_menu(); break; } IO_WriteInfo(); } } /*學(xué)生端成績查詢模塊*/ void student_menu() { int choice; while(1) { system("cls"); system("color f0"); IO_ReadInfo(); //讀取文件 printf("\n\n\n\n\t\t\t\t\t\t*******************\n"); printf("\t\t\t\t\t\t* 學(xué)生菜單 *\n"); printf("\t\t\t\t\t\t*******************\n"); printf("\t\t\t\t\t\t*1、按姓名查詢成績*\n"); printf("\t\t\t\t\t\t*2、按學(xué)號(hào)查詢成績*\n"); printf("\t\t\t\t\t\t*3、查詢課程信息 *\n"); printf("\t\t\t\t\t\t*4、退出 *\n"); printf("\t\t\t\t\t\t*******************\n"); printf("\t\t\t\t\t\t*******************\n"); printf(" 請(qǐng)選擇(1-3):"); scanf("%d",&choice); switch(choice) { case 1: system("cls"); system("color f0"); Student_Select_1(); break; case 2: Student_Select_2(); break; case 3: student_menu1(); break; case 4: Level_menu(); break; } IO_WriteInfo(); } } void student_Kecheng_menu1() { printf("\n\n\n\n\t\t\t\t\t\t************************************************\n"); printf("\t\t\t\t\t\t* 課程代號(hào) 課程名稱 學(xué)分 必修/選修*\n"); printf("\t\t\t\t\t\t*B27020100 中國近現(xiàn)代史綱要 2.0 必修 *\n"); printf("\t\t\t\t\t\t*B10060111 大學(xué)英語A1 4.0 必修 *\n"); printf("\t\t\t\t\t\t*B14010101 大學(xué)體育1 2.0 必修 *\n"); printf("\t\t\t\t\t\t*B06010111 高等數(shù)學(xué)A1 5.0 必修 *\n"); printf("\t\t\t\t\t\t*B08050101 軟件技術(shù)導(dǎo)論 2.0 必修 *\n"); printf("\t\t\t\t\t\t*B08010100 C語言程序設(shè)計(jì) 5.0 必修 *\n"); printf("\t\t\t\t\t\t*B08010201 C語言程序設(shè)計(jì)實(shí)訓(xùn)1 2.0 必修 *\n"); printf("\t\t\t\t\t\t*B08056601 創(chuàng)新與指導(dǎo)實(shí)踐1 1.0 必修 *\n"); printf("\t\t\t\t\t\t*B21991100 軍事教育 2.0 選修 *\n"); printf("\t\t\t\t\t\t**************************************************\n"); printf("\t\t\t\t\t\t**************************************************\n"); printf("\t\t\t\t\t\t1. 返回上一級(jí)菜單\n"); printf("\t\t\t\t\t\t2. 返回主菜單\n"); printf("\t\t\t\t\t\t請(qǐng)選擇(1-2):"); int choice; scanf("%d",&choice); while(1) switch(choice) { case 1:student_menu1(); break; case 2:Level_menu(); break; } //寫入文件 } void student_Kecheng_menu2() { printf("\n\n\n\n\t\t\t\t\t\t************************************************\n"); printf("\t\t\t\t\t\t* 課程代號(hào) 課程名稱 學(xué)分 必修/選修*\n"); printf("\t\t\t\t\t\t*B27010100 思想道德修養(yǎng) 3.0 必修 *\n"); printf("\t\t\t\t\t\t*B10060112 大學(xué)英語A2 4.0 必修 *\n"); printf("\t\t\t\t\t\t*B14010102 大學(xué)體育2 2.0 必修 *\n"); printf("\t\t\t\t\t\t*B06010112 高等數(shù)學(xué)A2 5.0 必修 *\n"); printf("\t\t\t\t\t\t*B08052200 數(shù)字邏輯設(shè)計(jì) 2.0 必修 *\n"); printf("\t\t\t\t\t\t*B06050131 大學(xué)物理C1 2.5 必修 *\n"); printf("\t\t\t\t\t\t*B06020100 離散數(shù)學(xué) 4.0 必修 *\n"); printf("\t\t\t\t\t\t*B08056601 創(chuàng)新與指導(dǎo)實(shí)踐2 1.0 必修 *\n"); printf("\t\t\t\t\t\t*B21991100 C語言程序設(shè)計(jì)實(shí)踐2 2.0 選修 *\n"); printf("\t\t\t\t\t\t**************************************************\n"); printf("\t\t\t\t\t\t**************************************************\n"); printf("\t\t\t\t\t\t1. 返回上一級(jí)菜單\n"); printf("\t\t\t\t\t\t2. 返回主菜單\n"); printf("\t\t\t\t\t\t請(qǐng)選擇(1-2):"); int choice; scanf("%d",&choice); while(1) switch(choice) { case 1:student_menu1(); break; case 2:Level_menu(); break; } //寫入文件 } /*學(xué)生端學(xué)生課程查詢模塊*/ void student_menu1() { int choice; while(1) { system("cls"); system("color f0"); IO_ReadInfo(); //讀取文件 printf("\n\n\n\n\t\t\t\t\t\t*******************\n"); printf("\t\t\t\t\t\t* 課程信息 *\n"); printf("\t\t\t\t\t\t*******************\n"); printf("\t\t\t\t\t\t*1、第一學(xué)期 *\n"); printf("\t\t\t\t\t\t*2、第二學(xué)期 *\n"); printf("\t\t\t\t\t\t*3、第三學(xué)期 *\n"); printf("\t\t\t\t\t\t*4、第四學(xué)期 *\n"); printf("\t\t\t\t\t\t*5、第五學(xué)期 *\n"); printf("\t\t\t\t\t\t*6、第六學(xué)期 *\n"); printf("\t\t\t\t\t\t*7、第七學(xué)期 *\n"); printf("\t\t\t\t\t\t*8、退出 *\n"); printf("\t\t\t\t\t\t*******************\n"); printf("\t\t\t\t\t\t*******************\n"); printf(" 請(qǐng)選擇(1-3):"); scanf("%d",&choice); switch(choice) { case 1: system("cls"); system("color f0"); student_Kecheng_menu1(); break; case 2: system("cls"); system("color f0"); student_Kecheng_menu2(); break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: break; case 8: Level_menu(); break; } IO_WriteInfo(); } } /*統(tǒng)計(jì)菜單模塊*/ void Student_Tongji_menu() { int choice; while(1) { system("cls"); system("color f0"); IO_ReadInfo(); //讀取文件 printf("\n\n\n\n\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t* 學(xué)生統(tǒng)計(jì)菜單 *\n"); printf("\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t*1、按C語言成績從高到低排序 *\n"); printf("\t\t\t\t\t\t*2、按C語言成績從低到高排序 *\n"); printf("\t\t\t\t\t\t*3、按宿舍成員進(jìn)行統(tǒng)計(jì) *\n"); printf("\t\t\t\t\t\t*4、獎(jiǎng)學(xué)金評(píng)定 *\n"); printf("\t\t\t\t\t\t*5、返回功能菜單 *\n"); printf("\t\t\t\t\t\t*6、返回主菜單 *\n"); printf("\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t******************************\n"); printf(" 請(qǐng)選擇(1-5):"); scanf("%d",&choice); switch(choice) { case 1: Student_From_high_to_low(); Student_Display1(); break; case 2: Student_From_low_to_high(); Student_Display1(); break; case 3: Student_SearchBySushe(); break; case 4: Student_From_high_to_low1(); Student_Display2(); break; case 5: Level_2_menu( ); break; case 6: Level_menu(); break; } IO_WriteInfo(); } } /*統(tǒng)計(jì)菜單模塊*/ void Student_Tongji_menu2() { int choice; while(1) { IO_ReadInfo(); //讀取文件 printf("\n\n\n\n\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t* 你目前在學(xué)生宿舍統(tǒng)計(jì)頁面! *\n"); printf("\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t*1、返回上一級(jí)統(tǒng)計(jì)菜單 *\n"); printf("\t\t\t\t\t\t*2、返回功能選擇菜單 *\n"); printf("\t\t\t\t\t\t*3、返回主菜單 *\n"); printf("\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t******************************\n"); printf(" 請(qǐng)選擇(1-3):"); scanf("%d",&choice); switch(choice) { case 1: system("cls"); system("color f0"); Student_Tongji_menu(); case 2: system("cls"); system("color f0"); Level_2_menu( ); case 3: system("cls"); system("color f0"); Level_menu(); } } } /*統(tǒng)計(jì)菜單模塊*/ void Student_Tongji_menu3() { int choice; while(1) { IO_ReadInfo(); //讀取文件 printf("\n\n\n\n\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t* 你目前按C語言成績統(tǒng)計(jì)頁面!*\n"); printf("\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t*1、返回上一級(jí)統(tǒng)計(jì)菜單 *\n"); printf("\t\t\t\t\t\t*2、返回功能選擇菜單 *\n"); printf("\t\t\t\t\t\t*3、返回主菜單 *\n"); printf("\t\t\t\t\t\t******************************\n"); printf("\t\t\t\t\t\t******************************\n"); printf(" 請(qǐng)選擇(1-3):"); scanf("%d",&choice); switch(choice) { case 1: system("cls"); system("color f0"); Student_Tongji_menu(); case 2: system("cls"); system("color f0"); Level_2_menu( ); case 3: system("cls"); system("color f0"); Level_menu(); } } } /*第一級(jí)主菜單學(xué)生or老師的判斷*/ void Level_menu() { int choice; while(1) { system("cls"); system("color f0"); printf("\n\n\n\n\n\n\n\t\t\t\t\t\t******************\n"); printf("\t\t\t\t\t\t*1、教師端 *\n"); printf("\t\t\t\t\t\t*2、學(xué)生端 *\n"); printf("\t\t\t\t\t\t*3、退出 *\n"); printf("\t\t\t\t\t\t******************\n"); printf(" 請(qǐng)選擇(1-3):"); scanf("%d",&choice); switch(choice) { case 1: system("cls"); system("color f0"); Level_1_menu(); //一級(jí)菜單,密碼登錄。 IO_ReadInfo(); //讀取文件 Level_2_menu(); //二級(jí)菜單-主菜單 IO_WriteInfo(); break; case 2: student_menu(); break; case 3: exit(0); break; } } } /***********主程序*********/ main() { Level_menu(); }
關(guān)于管理系統(tǒng)的更多內(nèi)容請(qǐng)點(diǎn)擊《管理系統(tǒng)專題》進(jìn)行學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
opencv實(shí)現(xiàn)角點(diǎn)檢測(cè)
這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)角點(diǎn)檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08C語言簡明講解隊(duì)列的實(shí)現(xiàn)方法
隊(duì)列(Queue)與棧一樣,是一種線性存儲(chǔ)結(jié)構(gòu),它具有如下特點(diǎn):隊(duì)列中的數(shù)據(jù)元素遵循“先進(jìn)先出”(First?In?First?Out)的原則,簡稱FIFO結(jié)構(gòu)。在隊(duì)尾添加元素,在隊(duì)頭刪除元素2022-04-04C++結(jié)構(gòu)體與類指針知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了關(guān)于C++結(jié)構(gòu)體與類指針知識(shí)點(diǎn)以及相關(guān)內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。2019-09-09C語言中獲取進(jìn)程識(shí)別碼的相關(guān)函數(shù)
這篇文章主要介紹了C語言中獲取進(jìn)程識(shí)別碼的相關(guān)函數(shù),分別為getpid()函數(shù)和getppid()函數(shù)的使用,需要的朋友可以參考下2015-08-08