C語言實現(xiàn)學(xué)生信息管理系統(tǒng)(文件版)
更新時間:2022年06月20日 10:53:11 作者:CM666_
這篇文章主要為大家詳細介紹了C語言實現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)學(xué)生信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
下面是我自己用寫的學(xué)生信息管理系統(tǒng),為了增加數(shù)據(jù)的利用率,分為學(xué)生端和教師端,同時實現(xiàn)賬號密碼登錄,以文件的形式將其存入。
代碼如下
#include <stdio.h>
#include <string.h>
#include <string>
#include<Windows.h>
#define USER "TOM" // 事先定義用戶名,用于登錄頁面,驗證身份。
#define PW "123456789" // 事先定義密碼 ,作用同上。
void Level_menu();//主菜單的聲明--選擇學(xué)生端還是老師端。
void Level_2_menu(); //二級菜單——具體功能分化
void Student_add_Level_3_menu();// 增添學(xué)生信息菜單功能分化
void Student_Insert(); //添加單個學(xué)生信息
void Student_Insert1(); /*為上面批量輸入設(shè)置的函數(shù),其代碼與上面的
單個輸入相似,刪減了一部分*/
void Student_Tongji_menu();//統(tǒng)計菜單部分
void Student_Tongji_menu2();//統(tǒng)計二級菜單
void Student_Tongji_menu3();//統(tǒng)計
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(); /*按綜合測評從高到低排序*/
void jiangxue_menu();/*獎學(xué)金評定辦法*/
void Student_Display2();/*顯示學(xué)生信息2在獎學(xué)金評定時使用*/
/*定義學(xué)生結(jié)構(gòu)體*/
struct Student
{
char ID[20]; //學(xué)號
char Name[20]; //姓名
char sushe[6]; //宿舍房間號
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è)計成績
float pingjun; //總學(xué)分
float Banzhuren; //班主任評分
float Cepingfen; //測評分
};
/*聲明學(xué)生數(shù)組及學(xué)生數(shù)量*/
struct Student students[1000];
int num=0;
int Num;
/*通過學(xué)號返回數(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;
}
/*通過姓名返回數(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;
}
/*通過宿舍成員返回數(shù)組下標(biāo)*/
void Student_SearchBySushe()
{
system("cls");
system("color f0");
int i;
char Sushe[6] ;
printf("請輸入你想要查詢的宿舍房間號: ");
scanf("%s",&Sushe);
printf("%10s%10s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s\n","學(xué)號","姓名","宿舍號","高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","總學(xué)分","班主任評分","測評分");
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é)號","姓名","宿舍號","高等數(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("請輸入學(xué)號:");
scanf("%s",&students[num].ID);
getchar();
printf("請輸入姓名:");
scanf("%s",&students[num].Name);
getchar();
printf("請輸入宿舍號:");
scanf("%s",&students[num].sushe);
getchar();
printf("請輸入高等數(shù)學(xué)成績:");
scanf("%f",&students[num].mathA1);
getchar();
if (59<students[num].mathA1 && students[num].mathA1<100)
a8= 1.5;
else
a8=0;
printf("請輸入大學(xué)英語成績:");
scanf("%f",&students[num].EnglishA1);
getchar();
if (59<students[num].EnglishA1 && students[num].EnglishA1<100)
a1= 2;
else
a1=0;
printf("請輸入軟件技術(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("請輸入中國近代史綱要成績:");
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("請輸入軍事教育:");
scanf("%f",&students[num].junshi);
getchar();
if (59<students[num].junshi && students[num].junshi<100)
a4= 2;
else
{
a4=0;
}
printf("請輸入心理健康教育成績:");
scanf("%f",&students[num].xinli);
getchar();
if (59<students[num].xinli && students[num].xinli<100)
a5= 1.5;
else
a5=0;
printf("請輸入體育成績:");
scanf("%f",&students[num].sports);
getchar();
if (59<students[num].sports && students[num].sports<100)
a6= 2;
else
a6=0;
printf("請輸入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("請輸入班主任評分:");
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ù)請按任意鍵,否則輸入N:");
if (getchar()=='N')
{
Num=num;
break;
}
}
}
/*批量添加學(xué)生記錄*/
void Student_many1()
{
{
system("cls");
system("color f0");
int i,j;
printf("請輸入你將要添加的人員數(shù): ");
scanf("%d",&j);
for(i=0;i<j;i++)
{
Student_Insert1();
}
printf("成員添加完畢,是否跳轉(zhuǎn)至上一級菜單?\n");
printf("是?,請按任意鍵,確認輸入: \n");
if (getchar()=='Y')
{
Student_add_Level_3_menu();
}
}
}
/*為上面批量輸入設(shè)置的函數(shù),其代碼與上面的
單個輸入相似,刪減了一部分*/
void Student_Insert1()
{
{
printf("請輸入學(xué)號:");
scanf("%s",&students[num].ID);
getchar();
printf("請輸入姓名:");
scanf("%s",&students[num].Name);
getchar();
printf("請輸入宿舍號:");
scanf("%s",&students[num].sushe);
getchar();
printf("請輸入高等數(shù)學(xué)成績:");
scanf("%f",&students[num].mathA1);
getchar();
printf("請輸入大學(xué)英語成績:");
scanf("%f",&students[num].EnglishA1);
getchar();
printf("請輸入軟件技術(shù)導(dǎo)論成績:");
scanf("%f",&students[num].software);
getchar();
printf("請輸入中國近代史綱要成績:");
scanf("%f",&students[num].china_history);
getchar();
printf("請輸入軍事教育:");
scanf("%f",&students[num].junshi);
getchar();
printf("請輸入心理健康教育成績:");
scanf("%f",&students[num].xinli);
getchar();
printf("請輸入體育成績:");
scanf("%f",&students[num].sports);
getchar();
printf("請輸入C語言成績:");
scanf("%f",&students[num].C_Mark);
getchar();
printf("請輸入班主任評分:");
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("請輸入要修改的學(xué)生的學(xué)號:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("該學(xué)生不存在!\n");
}
else
{
printf("你要修改的學(xué)生信息為:\n");
Student_DisplaySingle(index);
printf("-- 請輸入新值--\n");
/*printf("請輸入學(xué)號:");
scanf("%s",&students[index].ID);
getchar();
printf("請輸入姓名:");
scanf("%s",&students[index].Name);
getchar();
printf("請輸入宿舍號:");
scanf("%s",&students[index].sushe);
getchar();
printf("請輸入高等數(shù)學(xué)成績:");
scanf("%f",&students[index].mathA1);
getchar();
printf("請輸入大學(xué)英語成績:");
scanf("%f",&students[index].EnglishA1);
getchar();
printf("請輸入軟件技術(shù)導(dǎo)論成績:");
scanf("%f",&students[index].software);
getchar();
printf("請輸入中國近代史綱要成績:");
scanf("%f",&students[index].china_history);
getchar();
printf("請輸入軍事教育:");
scanf("%f",&students[index].junshi);
getchar();
printf("請輸入心理健康教育成績:");
scanf("%f",&students[index].xinli);
getchar();
printf("請輸入體育成績:");
scanf("%f",&students[index].sports);
getchar();
printf("請輸入C語言成績:");
scanf("%f",&students[index].C_Mark);
getchar();
printf("請輸入班主任評分:");
scanf("%f",&students[num].Banzhuren);
getchar();*/
printf("請輸入學(xué)號:");
scanf("%s",&students[index].ID);
getchar();
printf("請輸入姓名:");
scanf("%s",&students[index].Name);
getchar();
printf("請輸入宿舍號:");
scanf("%s",&students[index].sushe);
getchar();
printf("請輸入高等數(shù)學(xué)成績:");
scanf("%f",&students[index].mathA1);
getchar();
if (59<students[index].mathA1 && students[index].mathA1<100)
a8= 1.5;
else
a8=0;
printf("請輸入大學(xué)英語成績:");
scanf("%f",&students[index].EnglishA1);
getchar();
if (59<students[index].EnglishA1 && students[index].EnglishA1<100)
a1= 2;
else
a1=0;
printf("請輸入軟件技術(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("請輸入中國近代史綱要成績:");
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("請輸入軍事教育:");
scanf("%f",&students[index].junshi);
getchar();
if (59<students[index].junshi && students[index].junshi<100)
a4= 2;
else
{
a4=0;
}
printf("請輸入心理健康教育成績:");
scanf("%f",&students[index].xinli);
getchar();
if (59<students[index].xinli && students[index].xinli<100)
a5= 1.5;
else
a5=0;
printf("請輸入體育成績:");
scanf("%f",&students[index].sports);
getchar();
if (59<students[index].sports && students[index].sports<100)
a6= 2;
else
a6=0;
printf("請輸入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("請輸入班主任評分:");
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ù)請按任意鍵,否則輸入N:");
if (getchar()=='N')
{
break;
}
}
}
/*按學(xué)號刪除學(xué)生信息*/
void Student_Delete()
{
system("cls");
system("color f0");
IO_ReadInfo();
int i;
while(1)
{
char id[20];
int index;
printf("請輸入要刪除的學(xué)生的學(xué)號:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("學(xué)生不存在!\n");
}
else
{
printf("你要刪除的學(xué)生信息為:\n");
Student_DisplaySingle(index);
printf("%d",index);
printf("%d",num);
{
for (i=index;i<num-1;i++)
{
students[i]=students[i+1]; //把后邊的對象都向前移動
}
num--;
}
printf("已刪除\n");
IO_WriteInfo();
}
printf("是否繼續(xù)刪除?(Y/N),繼續(xù)請按任意鍵,否則輸入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("請輸入要刪除的學(xué)生的姓名: ");
scanf("%s",&name);
getchar();
index=Student_SearchByName(name);
if (index==-1)
{
printf("學(xué)生不存在!\n");
}
else
{
printf("你要刪除的學(xué)生信息為:\n");
Student_DisplaySingle(index);
{
for (i=index;i<num-1;i++)
{
students[i]=students[i+1]; //把后邊的對象都向前移動
}
num--;
}
printf("已刪除\n");
IO_WriteInfo();
}
printf("是否繼續(xù)刪除?(Y/N),繼續(xù)請按任意鍵,否則輸入N:");
if (getchar()=='N')
{
break;
}
}
}
/*按姓名查詢*/
void Student_Select_1()
{
while(1)
{
char name[20];
int index;
printf("請輸入要查詢的學(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ù)請按任意鍵,否則輸入N:");
if (getchar()=='N')
{
break;
}
}
}
/*按學(xué)號查找*/
void Student_Select_2()
{
while(1)
{
char ID[20];
int index;
system("cls");
system("color f0");
printf("請輸入要查詢的學(xué)生的學(xué)號:");
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ù)請按任意鍵,否則輸入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é)號查詢學(xué)生記錄\n");
printf("\t\t\t\t\t\t3. 返回上一級菜單\n");
printf("\t\t\t\t\t\t4. 返回主菜單\n");
printf("\t\t\t\t\t\t請選擇(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;
}
}
}
}
/*按綜合測評從高到低排序*/
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é)號","姓名","宿舍號"," 高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分","班主任評分","測評分");
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 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("一等獎獲得人數(shù)為:%d\n",a);
printf("二等獎獲獎人數(shù)為:%d\n",b);
printf("三等獎獲獎人數(shù)為:%d\n",c);
}
//對獎學(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é)號","姓名","宿舍號"," 高等數(shù)學(xué)","大學(xué)英語","軟件技術(shù)導(dǎo)論","中國近代史","軍事教育","心理健康教育","大學(xué)體育","C語言成績","品行分","班主任評分","測評分");
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é)號","姓名","宿舍號"," 高等數(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ù)請按任意鍵,否則輸入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é)號","姓名","宿舍號"," 高等數(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 %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在獎學(xué)金評定時使用*/
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é)號","姓名","宿舍號"," 高等數(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 %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("寫入文件錯誤!\n");
}
for (i=0;i<num;i++)
{
if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1)
{
printf("寫入文件錯誤!\n");
}
}
fclose(fp);
}
/*一級菜單*/
/*賬號密碼登錄*/
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*請輸入您的賬號:*\n");
printf("\t\t\t\t\t\t******************\n");
printf(" 請輸入:");
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*請輸入您的密碼:*\n");
printf("\t\t\t\t\t\t******************\n");
printf(" 請輸入:");
scanf ("%s", password);
if (strcmp(USER, account) == 0 && strcmp(PW, password) == 0){
printf("登錄成功!\n");
break;
}
else{
j--;
printf("登錄失敗您還有%d次機會!\n", j);
}
}
if (i == 3){
printf("登錄失敗,退出!");
}
//system("pause");
system("cls");
system("color f0");
}
/*增加學(xué)生信息三級菜單模塊*/
void Student_add_Level_3_menu()
{
int choice;
while(1)
{
system("cls");
system("color f0");
IO_ReadInfo(); //讀取文件
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. 返回上一級菜單\n");
printf("\t\t\t\t\t\t4. 返回主菜單\n");
printf("\t\t\t\t\t\t請選擇(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();
}
/*二級菜單*/
/*主菜單*/
void Level_2_menu( )
{
int choice;
while(1)
{
/*二級菜單*/
/*主菜單*/
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)計學(xué)生記錄\n");
printf("\t\t\t\t\t\t6. 退出\n");
printf("\t\t\t\t\t\t請選擇(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é)號刪除信息 *\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(" 請選擇(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é)號查詢成績*\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(" 請選擇(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* 課程代號 課程名稱 學(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è)計 5.0 必修 *\n");
printf("\t\t\t\t\t\t*B08010201 C語言程序設(shè)計實訓(xùn)1 2.0 必修 *\n");
printf("\t\t\t\t\t\t*B08056601 創(chuàng)新與指導(dǎo)實踐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. 返回上一級菜單\n");
printf("\t\t\t\t\t\t2. 返回主菜單\n");
printf("\t\t\t\t\t\t請選擇(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* 課程代號 課程名稱 學(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è)計 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)實踐2 1.0 必修 *\n");
printf("\t\t\t\t\t\t*B21991100 C語言程序設(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. 返回上一級菜單\n");
printf("\t\t\t\t\t\t2. 返回主菜單\n");
printf("\t\t\t\t\t\t請選擇(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(" 請選擇(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)計菜單模塊*/
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)計菜單 *\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、按宿舍成員進行統(tǒng)計 *\n");
printf("\t\t\t\t\t\t*4、獎學(xué)金評定 *\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(" 請選擇(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)計菜單模塊*/
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)計頁面! *\n");
printf("\t\t\t\t\t\t******************************\n");
printf("\t\t\t\t\t\t*1、返回上一級統(tǒng)計菜單 *\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(" 請選擇(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)計菜單模塊*/
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)計頁面!*\n");
printf("\t\t\t\t\t\t******************************\n");
printf("\t\t\t\t\t\t*1、返回上一級統(tǒng)計菜單 *\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(" 請選擇(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();
}
}
}
/*第一級主菜單學(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(" 請選擇(1-3):");
scanf("%d",&choice);
switch(choice)
{
case 1:
system("cls");
system("color f0");
Level_1_menu(); //一級菜單,密碼登錄。
IO_ReadInfo(); //讀取文件
Level_2_menu(); //二級菜單-主菜單
IO_WriteInfo();
break;
case 2:
student_menu();
break;
case 3:
exit(0);
break;
}
}
}
/***********主程序*********/
main()
{
Level_menu();
}關(guān)于管理系統(tǒng)的更多內(nèi)容請點擊《管理系統(tǒng)專題》進行學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++結(jié)構(gòu)體與類指針知識點總結(jié)
在本篇文章里小編給大家整理了關(guān)于C++結(jié)構(gòu)體與類指針知識點以及相關(guān)內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。2019-09-09

