# include & ltconio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
typedef結構
{
龍類_ 1;/*類*/
長號碼;/*學生ID */
char name[20];/*姓名*/
高高飄起;/*高度*/
浮點數學;/*數學*/
float c _ program/*C語言*/
浮動物理;/*大學物理*/
浮動英語;/*大學英語*/
浮動總和;/*總分*/
浮動平均值;/*平均分數*/
}學生;
學生stud[100];
int I = 0;
Int menu() /*菜單函數*/
{
int a;
系統(" graftabl 936 ");
Printf ("* * * * * * * * * * * * * * * * * *學生信息管理系統* * * * * * * * * * * * * * * * * * * * * * * * \ n \ n ");
Printf ("\ t \ t. (1)輸入學生信息\ n ");
Printf("\t\t\t.(2)顯示所有學生信息\ n ");
Printf("\t\t\t.(3)按平均升序和降序排序\ n ");
Printf("\t\t\t.(4)根據學號查找學生信息\ n ");
Printf ("\ t \ t. (5)插入學生信息\ n ");
Printf ("\ t \ t. (6)刪除學生信息\ n ");
Printf ("\ t \ t. (7)修改學生信息\ n ");
Printf ("\ t \ t. (8)從文件中讀取數據\ n ");
Printf("\t\t\t.(9)將所有記錄寫入文件\ n ");
Printf("\t\t\t.(0)退出此系統\ n \ n \ n ");
Printf ("* * * * * * * * * * * * * * * * * *學生信息管理系統* * * * * * * * * * * * * * * * * * * * \ n ");
Printf("請選擇妳想要的操作(0 ~ 9):");
scanf("%d ",& ampa);/*讀入壹個數字*/
while(a & lt;0 | | a & gt9)
{
Printf("輸入錯誤!請重新輸入:\ n ");
scanf("%d ",& ampa);/*輸入錯誤壹直流傳*/
}
系統(“cls”);/*清空屏幕*/
返回(a);/*返回a的值*/
}
int輸入(study[])
{
char flag = ' Y
while(flag=='Y'||flag=='y ')
{
Printf("請輸入該學生的班級:");
scanf("%ld ",& ampstud[i]。class _ 1);
Printf("請輸入學號:");
scanf("%ld ",& ampstud[i]。號);
Printf("請輸入學生姓名:");
scanf("%s ",stud[i].姓名);
Printf("請輸入學生身高:");
scanf("%f ",& ampstud[i]。個子高);
Printf("請輸入學生的"數學"成績:");
scanf("%f ",& ampstud[i]。數學);
Printf("請輸入學生的" C語言"成績:");
scanf("%f ",& ampstud[i]。c _ program);
Printf("請輸入學生的《大學物理》成績:");
scanf("%f ",& ampstud[i]。物理);
Printf("請輸入學生的《大學英語》成績:");
scanf("%f ",& ampstud[i]。英語);
getchar();
stud[i]。sum=stud[i]。數學+學習[i]。c_program+stud[i]。物理+stud[i]。英語;
stud[i]。平均值=stud[i]。sum/4;
Printf("該生總成績為% 6.2f \ t平均成績為% 6.2f \ n ",STUD [i]。SUM,STUD [i]。平均);
i++;
Printf("按:Y或Y繼續輸入學生信息,或按:N或n.\n "退出);
scanf("%c ",& amp旗幟);/*判斷是否繼續輸入*/
}
Printf("按任意鍵返回主菜單\ n ");
getchar();
系統(“cls”);
返回(壹);
}
Void display (student study [],int n)/*顯示所有記錄*/
{
int k;
如果(n==0)
Printf("沒有學生記錄!\ n ");
其他
{
Printf("班號,姓名,身高,數學,C語言,物理英語,平均分\ n ");
for(k = 0;k & ltn;K++) /*循環輸出*/
{
printf("%7ld ",stud[k]。class _ 1);
printf("%7ld ",stud[k]。號);
printf("%9s ",stud[k]。姓名);
printf("%7.1f ",stud[k]。個子高);
printf("%7.2f ",stud[k].數學);
printf("%7.2f ",stud[k].c _ program);
printf("%7.2f ",stud[k].物理);
printf("%7.2f ",stud[k].英語);
printf("%7.2f ",stud[k].sum);
printf("%8.2f\n ",stud[k].平均);
}
}
系統(“暫停”);
系統(“cls”);
}
void Sort(study[],int i) /*按平均分排序*/
{
int m,n,k;/*m,n是循環變量*/
學生t;
for(m = 0;m & ltI-1;M++) /* Sort */
for(n = m+1;n & lt我;n++)
if(stud[m].平均& lt螺柱。平均)
{
t =螺柱[m];
stud[m]= stud[n];
stud[n]= t;
}
Printf("排序順序:\ n ");
Printf("班號,姓名,身高,數學,C語言,物理英語,平均分\ n ");
for(k = 0;k & ltn;K++) /*循環輸出*/
{
printf("%7ld ",stud[k]。class _ 1);
printf("%7ld ",stud[k]。號);
printf("%9s ",stud[k]。姓名);
printf("%7.1f ",stud[k]。個子高);
printf("%7.2f ",stud[k].數學);
printf("%7.2f ",stud[k].c _ program);
printf("%7.2f ",stud[k].物理);
printf("%7.2f ",stud[k].英語);
printf("%7.2f ",stud[k].sum);
printf("%8.2f\n ",stud[k].平均);
}
系統(“暫停”);
系統(“cls”);
}
Void search (student study [],int I)/*查找並顯示壹條記錄*/
{
int p,k;/*p是要搜索的學號*/
char flag = ' y
while(flag=='y'||flag=='Y ')
{
Printf("請輸入要查找的學號:");
scanf("%d ",& ampp);
getchar();
for(k = 0;p!=stud[k]。數量和數量。& ampk & lt我;k++)
如果(k==i)
Printf("此學號不存在!\ n ");
其他
{
Printf("學生的信息是:\ n ");
Printf("班號,姓名,身高,數學,C語言,物理英語,平均分\ n ");
printf("%7ld ",stud[k]。class _ 1);
printf("%7ld ",stud[k]。號);
printf("%9s ",stud[k]。姓名);
printf("%7.1f ",stud[k]。個子高);
printf("%7.2f ",stud[k].數學);
printf("%7.2f ",stud[k].c _ program);
printf("%7.2f ",stud[k].物理);
printf("%7.2f ",stud[k].英語);
printf("%7.2f ",stud[k].sum);
printf("%8.2f\n ",stud[k].平均);
}
Printf("請輸入:Y或Y繼續搜索學生信息,退出:N或N,\ N ");
scanf("%c ",& amp旗幟);
}
系統(“cls”);
}
Int insert (student study [],int I)/*插入學生信息*/
{
char flag = ' Y
while(flag=='y'||flag=='Y ')
{
Printf("請進入班級插入學生:");
scanf("%ld ",& ampstud[i]。class _ 1);
Printf("請輸入要插入的學號:");
scanf("%ld ",& ampstud[i]。號);
Printf("請輸入要插入的學生姓名:");
scanf("%s ",& ampstud[i]。姓名);
Printf("請輸入要插入的學生身高:");
scanf("%f ",& ampstud[i]。個子高);
Printf("請輸入要插入的學生的"數學"成績:");
scanf("%f ",& ampstud[i]。數學);
Printf("請輸入待插入學生的" C語言"成績:");
scanf("%f ",& ampstud[i]。c _ program);
Printf("請輸入待插入學生的《大學物理》成績:");
scanf("%f ",& ampstud[i]。物理);
Printf("請輸入待插入學生的"大學英語"成績:");
scanf("%f ",& ampstud[i]。英語);
getchar();
stud[i]。sum=stud[i]。數學+學習[i]。c_program+stud[i]。物理+stud[i]。英語;
stud[i]。平均值=stud[i]。sum/4;
Printf("學生總分%6.2f\n ",stud[i]。sum);
Printf("該生平均分%6.3f\n ",stud[i]。平均);
i++;
Printf("請輸入Y或Y繼續插入學生信息,n或n退出");
scanf("%c ",& amp旗幟);/*判斷是否繼續輸入*/
}
getchar();
Printf("需要排序嗎?如有必要,按“Y”或“Y ”;無需按“N”或“N”。\ n ");
flag = getchar();
if(flag=='y'||flag=='Y ')
Sort(stud,I);
系統(“cls”);
返回(壹);
}
int Delete(study[],int I)/*根據學號刪除學生信息*/
{
龍s;
int t,p;
char a = ' Y/*判斷是否繼續*/
while(a=='Y'||a=='y ')
{
Printf("請輸入要刪除的學生的學號:\ n ");
scanf("%ld ",& amps);
getchar();
for(t = 0;t & lt我& amp& amps!=stud[i]。號碼;t++)
if(s==stud[t]。編號)
{
for(p = t;p & lt我;p++)
stud[p]= stud[p+1];
I = I-1;
Printf("刪除成功!\ n ");
}
Else printf("沒有找到要刪除的學號!\ n ");
Printf("繼續刪除,按' Y '或' Y '繼續,按' n '或' n '退出。\ n ");
a = getchar();/*判斷是否繼續*/
getchar();/*消除Enter鍵的影響*/
}
系統(“cls”);
返回(壹);
}
void change(study[],int I)/*修改學生信息*/
{
長p = 0;/*p用來表示要修改的學號*/
int k;/*k是循環變量*/
char a = ' y
while(a=='y'||a=='Y ')
{
printf(" \ t \ t學生信息修改:\ n ");
Printf("請輸入要修改的學生的學號:\ n ");
scanf("%ld ",& ampp);
for(k = 0;p!=stud[k]。數量和數量。& ampk & lt我;k++)
如果(k==i)
Printf("找不到學生的信息:\ n ");
其他
{
Printf("學生的信息是:\ n ");
Printf("班號,姓名,身高,數學,C語言,物理英語,平均分\ n ");
printf("%7ld ",stud[k]。class _ 1);
printf("%7ld ",stud[k]。號);
printf("%9s ",stud[k]。姓名);
printf("%7.1f ",stud[k]。個子高);
printf("%7.2f ",stud[k].數學);
printf("%7.2f ",stud[k].c _ program);
printf("%7.2f ",stud[k].物理);
printf("%7.2f ",stud[k].英語);
printf("%7.2f ",stud[k].sum);
printf("%8.2f\n ",stud[k].平均);
Printf("請輸入該學生的新信息:\ n ");
Printf("請輸入該學生的班級:");
scanf("%d ",& amp螺柱[k]。class _ 1);
Printf("請輸入學號:");
scanf("%d ",& amp螺柱[k]。號);
Printf("請輸入學生姓名:");
scanf("%s ",stud[k].姓名);
Printf("請輸入學生身高:");
scanf("%f ",& amp螺柱[k]。個子高);
Printf("請輸入學生的"數學"成績:");
scanf("%f ",& amp螺柱[k]。數學);
Printf("請輸入學生的" C語言"成績:");
scanf("%f ",& amp螺柱[k]。c _ program);
Printf("請輸入學生的《大學物理》成績:");
scanf("%f ",& amp螺柱[k]。物理);
Printf("請輸入學生的《大學英語》成績:");
scanf("%f ",& amp螺柱[k]。英語);
getchar();
螺柱[k]。sum=stud[k]。數學+stud[k]。c_program+stud[k]。物理+stud[k]。英語;
螺柱[k]。平均值=螺柱[k]。sum/4;
Printf("修改成功!\ n ");
}
Printf("繼續修改,按' y '或' y '繼續,按' n '或' n '退出。\ n ");
a = getchar();
}
系統(“暫停”);
系統(“cls”);
}
intread(study[],int I)/*從文件中讀取學生信息*/
{
int k = I;
FILE * fp/*定義文件類型的指針*/
字符文件名[20];/*定義文件名*/
Printf("請輸入文件名:\ n ");
scanf("%s ",& amp文件名);
If ((FP = fopen (filename," Rb))= = null)/*打開文件*/
{
Printf("無法打開文件!\ n ");/*打開失敗消息*/
返回0;
}
Printf("從文件%s讀取的數據是:\n ",文件名);
弗雷德(& ampstud[k],sizeof(學生),1,FP);
Printf("班號,姓名,身高,數學,C語言,物理英語,平均分\ n ");
而(!feof(fp))
{
printf("%7ld ",stud[k]。class _ 1);
printf("%7ld ",stud[k]。號);
printf("%9s ",stud[k]。姓名);
printf("%7.1f ",stud[k]。個子高);
printf("%7.2f ",stud[k].數學);
printf("%7.2f ",stud[k].c _ program);
printf("%7.2f ",stud[k].物理);
printf("%7.2f ",stud[k].英語);
printf("%7.2f ",stud[k].sum);
printf("%8.2f\n ",stud[k].平均);
k++;
弗雷德(& ampstud[k],sizeof(學生),1,FP);
}
fclose(FP);
Printf("讀入成功!\ n ");
系統(“暫停”);
系統(“cls”);
返回(k);
}
Void Save(Student stud[],int i) /*將所有記錄寫入文件*/
{
int k = 0;
FILE * fp/*定義文件指針*/
字符文件名[80];/*定義文件名*/
Printf("請輸入要存儲學生信息的文件名");/*輸入文件名*/
scanf("%s ",& amp文件名);
If ((FP = fopen (filename," wt")) = = null)/*打開文件*/
{
Printf("無法打開此文件!\ n ");
返回;
}
while(k & lt;我)
{
fwrite(& amp;(stud[k]),sizeof(學生),1,FP);
k++;
}
Printf("信息保存成功!\ n ");
fclose(FP);
}
int main(void)
{
int n = 0;
While(1) /*選擇要執行的語句*/
{
開關(菜單())
{
案例1:printf(" \ n * * * * * * * * *輸入學生信息* * * * * * * * ");/*輸入學生信息*/
n =輸入(螺柱);打破;
案例二:printf(" \ n * * * * * * * * * *顯示所有學生信息* * * * * * \ n ");
顯示(stud,n);打破;
情況3: printf ("\ n * * * * * * * * *按平均升序和降序排序* * * * * * \ n ");
Sort(stud,n);打破;
案例四:printf ("\ n * * * * * * * * *根據學號查找學生的信息* * * * * * \ n ");
搜索(stud,n);打破;
案例五:printf ("\ n * * * * * * *插入學生信息* * * * * * *);
n =嵌件(螺柱,n);打破;
案例6:printf(" \ n * * * * * * * * *刪除學生信息* * * * * * *);
n=Delete(stud,n);
案例7:printf(" \ n * * * * * * * * *修改學生信息* * * * * * \ n ");
change(stud,n);打破;
案例8:printf(" \ n * * * * * * * * *從文件中讀取數據* * * * * * \ n ");
n=Read(stud,n);打破;
情況9: printf ("\ n * * * * * * * *將所有記錄寫入文件* * * * * * \ n ");
Save(stud,n);打破;
案例0:printf(" \ n * * * * * * * * *感謝使用!* * * * * * * \ n ");
退出(0);
}
}
返回0;
}
學生管理系統,,,這個可不行