#包含“conio.h”
#包含" string.h "
#包含" stdlib.h "
void look();/*聲明查看函數*/
void save();/*聲明保存函數*/
void搜索名稱();/*聲明按名稱查看函數*/
void search _ number();/*聲明按學號查看函數*/
void訂單();/*聲明排序函數*/
void del();/*聲明刪除函數*/
int openl();/*聲明開放函數*/
void welcome();/*申報我的個人信息功能*/
void類型();/*聲明輸入函數*/
void see();/*聲明打開和查看文件的函數*/
Structure student/*定義學生信息的結構類型*/
{
字符編號[15];/*學生ID */
char name[20];/*姓名*/
char sex[4];/*性別*/
int英語;/*英語成績*/
int數學;/*數學成績*/
int中文;/*語言成績*/
浮動aver/*平均成績*/
浮動總和;/*總分*/
} stu[100];
int n;/*聲明全局變量*/
Void main() /*主要功能是用戶的操作界面*/
{
system(" color 1E ");/*設計文本顏色*/
int b,flag = 0;/*聲明局部變量*/
While(1) /*循環下列信息*/
{
printf(" \ n \ t \ t \ t歡迎使用學生成績管理系統!\ n ");
printf(" \ n \ t \ t \ t # # making \ n ");
printf(" \ t \ t \ t-\ n ");
Printf("\t\t\t1。輸入學生信息\ n \ n ");/*輸入學生的信息*/
Printf("\t\t\t2。查看輸入的學生信息\ n \ n ");/*查看輸入的學生信息*/
Printf("\t\t\t3。按姓名查看學生信息\ n \ n ");/*按姓名查看學生信息*/
Printf("\t\t\t4。按學號查看學生信息\ n \ n ");/*按學號查看學生信息*/
Printf("\t\t\t5。按平均分排序\ n \ n ");/*排序*/
Printf("\t\t\t6。刪除學生信息\ n \ n”);/*刪除學生信息*/
Printf("\t\t\t7。保存學生信息\ n \ n ");/*保存*/
Printf("\t\t\t8。打開文件\ n \ n ");/*打開文件*/
Printf("\t\t\t9。我的個人信息\ n \ n”);/*我的個人信息*/
Printf("\t\t\t0。退出\ n \ n ");/*退出*/
printf(" \ t \ t \ t請輸入您的選擇:");
scanf("%d ",& ampb);
開關(b)
{
case 1:type();打破;/*調用錄入學生信息的函數*/
案例二:look();打破;/*調用視圖函數*/
案例三:search _ name();打破;/*調用名稱視圖函數*/
案例四:search _ number();打破;/*調用學號查看功能*/
案例五:order();打破;/*呼叫排序功能*/
案例6:del();打破;/*調用刪除函數*/
案例7:save();打破;/*調用保存函數*/
案例八:見();打破;/*調用打開文件函數*/
案例九:歡迎();打破;/*調用我的個人信息功能*/
案例0:flag = 1;打破;/*退出SWITCH語句*/
默認值:printf ("Error!");
}
如果(標誌)斷開;/*如果選擇0,將退出循環*/
}
}
Void welcome() /*我的個人信息功能*/
{
系統(“CLS”);
printf(" \ n \ n \ t \ t-");/*在屏幕上輸出信息*/
printf(" \ n \ n \ n \ n \ t \ t name:# # # ");
printf(" \ t \ t \ tSex:# \ n ");
printf(" \ t \ tAge:# \ n ");
printf(" \ n \ t \ t-n \ n \ n ");
printf(" \ t \ t小學:# # # # # \ n \ n ");
printf(" \ t \ t高級中學:# # # # \ n \ n ");
Printf("\t\tS高中:# # # # # \ n \ n ");
printf(" \ t \ t大學:# # # # # \ n \ n ");
printf(" \ n \ n \ t \ t按任意鍵返回歡迎屏幕!");
getch();/*按任意鍵返回主功能*/
}
Void type() /*定義了錄入學生信息的函數*/
{
系統(“CLS”);
int I;/*定義局部變量*/
printf(" \ t \ tout輸入您要輸入的學生信息編號:");
scanf("%d ",& ampn);
for(I = 0;我& ltn;I++) /*輸入每個學生的信息*/
{
printf(" \ n \ t \ t \ t-\ n ");
Printf ("\ t \ t學號:");
scanf("%s ",& amp斯圖[我]。num);/*輸入學號*/
printf(" \ t \ t \ tname:");
scanf("%s ",& amp斯圖[我]。姓名);/*輸入姓名*/
printf(" \ t \ t \ t gender:");
scanf("%S ",& amp斯圖[我]。性);/*輸入性別*/
Printf ("\ t \ t英語:");
scanf("%d ",& amp斯圖[我]。英語);/*輸入英語成績*/
printf(" \ t \ t \ t math:");
scanf("%d ",& amp斯圖[我]。數學);/*輸入數學成績*/
printf(" \ t \ t \ t語言:");
scanf("%d ",& amp斯圖[我]。中文);/*輸入語言分數*/
斯圖[我]。aver=((float)stu[i]。english+(float)stu[i]。math+(float)stu[i]。語文)/3;/*計算平均分數*/
斯圖[我]。sum=(float)stu[i]。english+(float)stu[i]。math+(float)stu[i]。中文;/*計算總分*/
printf(" \ t \ t \ t平均等級=%4.1f\n ",stu[i]。aver);/*輸出平均分*/
printf(" \ t \ t \ t總分=%4.1f\n ",stu[i]。sum);/*輸出總分*/
}
printf(" \ n \ n \ t \ t \ t按任意鍵返回菜單!!");
getch();
save();
}
Void save() /*創建壹個文件保存函數*/
{
系統(“CLS”);
FILE * fp/*定義文件指針*/
int I;
If ((FP = fopen ("student.txt "," WB ")= = null)/*打開輸出文件*/
{
Printf("無法打開文件!\ n ");
返回;/*終止程序*/
}
for(I = 0;我& ltn;I++) /*將信息寫入學生檔案*/
if(fwrite(& amp;stu[i],sizeof(結構學生),1,fp)!=1)
Printf("文件寫入錯誤\ n ");
fclose(FP);/*關閉文件*/
printf(" \ n \ n \ n \ n \ t \ t學生信息保存成功!\ n ");
printf(" \ n \ n \ n \ n \ t \ t按任意鍵返回菜單!!");
getch();
}
Void look() /*定義了視圖函數*/
{
系統(“CLS”);
int I;
//n = openl();/*調用openl函數*/
printf(" \ t student ID \ tName \ t gender \ t English \ t math \ t Chinese \ t average \ t total \ n ");
for(I = 0;我& ltn;I++) /*輸出所有學生信息*/
{
printf(" % 10s \ t % s \ t % 2s \ t % d \ t % d \ t % d \ t % 3.1f \ t \ t % 6.1f \ n ",stu[i]。num,stu[i]。姓名,
斯圖[我]。性,斯圖[我]。英語,斯圖[我]。數學,斯圖[我]。語文,斯圖[我]。阿威,斯圖[我]。sum);
}
printf(" \ n \ n \ n \ t \ t按任意鍵返回菜單");
getch();
}
Void search_name() /*按名稱查看函數*/
{
系統(“CLS”);
int I;
char name[20];/*聲明字符數組*/
printf(" \ t \ t \ t請輸入學生姓名:\ n ");
scanf("%s ",名稱);
printf(" \ t student ID \ tName \ t gender \ t English \ t math \ t Chinese \ t average \ t total \ n ");
for(I = 0;我& ltn;i++)
If (strcmp (stu [I].name,name) = = 0)/*將輸入的名稱與結構中的名稱進行比較*/
{
printf(" % 10s \ t % s \ t % 2s \ t % d \ t % d \ t % d \ t % 3.1f \ t \ t % 6.1f \ n ",stu[i]。num,stu[i]。姓名,
斯圖[我]。性,斯圖[我]。英語,斯圖[我]。數學,斯圖[我]。語文,斯圖[我]。阿威,斯圖[我]。sum);
printf(" \ n \ n \ n \ t \ t按任意鍵返回菜單");
}
getch();
}
Void search_number() /*定義按學號查看的函數*/
{
系統(“CLS”);
int I;
字符編號[15];/*聲明字符數組*/
printf(" \ t \ t \ t請輸入您的學號:\ n ");
scanf("%s ",數字);
printf(" \ t student ID \ tName \ t gender \ t English \ t math \ t Chinese \ t average \ t total \ n ");
for(I = 0;我& ltn;i++)
If (strcmp (stu [I].num,number) = = 0)/*將輸入的學生編號與結構中的學生編號進行比較*/
printf(" % 10s \ t % s \ t % 2s \ t % d \ t % d \ t % d \ t % 3.1f \ t \ t % 6.1f \ n ",stu[i]。num,stu[i]。姓名,
斯圖[我]。性,斯圖[我]。英語,斯圖[我]。數學,斯圖[我]。語文,斯圖[我]。阿威,斯圖[我]。sum);
printf(" \ n \ n \ n \ t \ t按任意鍵返回菜單");
getch();
}
Voideorder ()/*定義排序函數*/
{
系統(“CLS”);
int i,j;
char a;
結構學生溫度;/*聲明結構變量*/
printf(" \ t student ID \ tName \ t gender \ t English \ t math \ t Chinese \ t average \ t total \ n ");
for(I = 0;我& ltn;I++) /*對數據進行排序*/
{
for(j = I+1;j & ltn;j++)
如果(斯圖[我]。sum & lt斯圖[j]。總和)
{
temp = stu[I];
stu[I]= stu[j];
stu[j]= temp;
}
printf(" % 10s \ t % s \ t % 2s \ t % d \ t % d \ t % d \ t % 3.1f \ t \ t % 6.1f \ n ",stu[i]。num,stu[i]。姓名,
斯圖[我]。性,斯圖[我]。英語,斯圖[我]。數學,斯圖[我]。語文,斯圖[我]。阿威,斯圖[我]。sum);
}
getch();
Printf("要保存嗎?(y或n)");
getchar();
scanf("%c ",& ampa);
If(a=='y') /*保存已排序的文件*/
save();
其他
printf(" exit ");
getch();
}
Void del() /*定義刪除學生信息的函數*/
{
int I;
char a;
char name[20];
系統(“CLS”);
printf(" \ t \ t \ t輸入學生姓名:\ n ");
scanf("%s ",名稱);
系統(“CLS”);
printf(" \ t student ID \ tName \ t gender \ t English \ t math \ t Chinese \ t average \ t total \ n ");
for(I = 0;我& ltn;i++)
if(strcmp(stu[i].name,name)==0)
{
printf(" % 10s \ t % s \ t % 2s \ t % d \ t % d \ t % d \ t % 3.1f \ t \ t % 6.1f \ n ",stu[i]。num,stu[i]。姓名,
斯圖[我]。性,斯圖[我]。英語,斯圖[我]。數學,斯圖[我]。語文,斯圖[我]。阿威,斯圖[我]。sum);
getch();
Printf("真的刪除?(y或n)");
getchar();
scanf("%c ",& ampa);
If(a=='y') /*是否要刪除此信息*/
{
for(;我& ltn;i++)
stu[I]= stu[I+1];
n = n-1;
Printf("您已經刪除了信息");
}
其他
printf(" exit ");
getch();
}
save();
}
Int openl() /*定義打開文件的函數*/
{
系統(“CLS”);
int I;
FILE * fp
if((fp=fopen("student.txt "," Rb ")= = NULL)
{
printf("無法打開文件。\ n ");
退出(0);
}
for(I = 0;!feof(FP);i++)
弗雷德(& ampstu[i],sizeof(struct student),1,FP);
fclose(FP);
返回(I-1);
}
Void see() /*打開並查看文件*/
{
系統(“CLS”);
int I;
n = openl();
Printf("文件打開成功!\ n ");
Printf("按任意鍵查看!\ n ");
getch();
printf(" \ t student ID \ tName \ t gender \ t English \ t math \ t Chinese \ t average \ t total \ n ");
for(I = 0;我& ltn;I++) /*輸出所有學生信息*/
{
printf(" % 10s \ t % s \ t % 2s \ t % d \ t % d \ t % d \ t % 3.1f \ t \ t % 6.1f \ n ",stu[i]。num,stu[i]。姓名,
斯圖[我]。性,斯圖[我]。英語,斯圖[我]。數學,斯圖[我]。語文,斯圖[我]。阿威,斯圖[我]。sum);
}
printf(" \ n \ n \ n \ t \ t按任意鍵返回菜單");
getch();