#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student{ //建立“學生”結構體
char name[30]; //宣告資料型別
int number;
float score[10],sum;
double avi;
};
struct student cj[100];
struct student z[1];
int n,q,u;
int main()
{
system("title 學生成績管理系統");
system("mode con cols=60 lines=25");
system("color 8B");
void shuru();
void chaxun();
void xiugai();
void shanchu();
void tianjia();
void quanbu();
void dayubashi();
void bujige();
void zuigaofen();
void meimen();
void paiming();
int xuanze;
system("date /T");
system("TIME /T");
while(1)
{
printf("歡迎來到學生管理系統\n\n"); //選擇選單方便選擇
printf(" 輸入學生資訊請輸入1 \n");
printf(" 查詢學生資訊請輸入2 \n");
printf(" 修改學生資訊請輸入3 \n");
printf(" 洗掉學生資訊請輸入4 \n");
printf(" 添加學生資訊請輸入5 \n");
printf(" 查詢全部資訊請輸入6 \n");
printf(" 輸出平均分大于80分的同學請輸入7 \n");
printf(" 輸出不及格的同學請輸入8 \n");
printf(" 輸出最高分的同學請輸入9 \n");
printf(" 輸出每門課最高分的同學請輸入10 \n");
printf(" 按平均分排名請輸入11 \n");
printf(" 退出系統請輸入12 \n");
scanf("%d",&xuanze); //輸入選擇結果
switch(xuanze)
{
case 1:shuru(); break; //輸入1時的情況
case 2:chaxun(); break; //輸入2時的情況
case 3:xiugai(); break; //輸入3時的情況
case 4:shanchu(); break; //輸入4時的情況
case 5:tianjia(); break; //輸入5時的情況
case 6:quanbu(); break; //輸入6時的情況
case 7:dayubashi(); break; //輸入7時的情況
case 8:bujige(); break; //輸入8時的情況
case 9:zuigaofen(); break; //輸入9時的情況
case 10:meimen(); break; //輸入10時的情況
case 11:paiming(); break; //輸入11時的情況
case 12:{
printf("*************************謝謝使用*************************\n");
return 0; //輸入12時的情況
}
}
}
}
void shuru()
{
int i,j;
char an;
printf("請問您要輸入幾條資料?\n");
scanf("%d",&n);
printf("請問您要輸入幾個科目?\n");
scanf("%d",&u);
for(i=0;i<n;i++)
{
cj[i].avi=0;
cj[i].sum=0;
printf("請輸入學生學號:\n"); //輸入學號
scanf("%d",&cj[i].number);
printf("請輸入學生姓名:\n"); //輸入姓名
scanf("%s",cj[i].name);
for(j=0;j<u;j++)
{
printf("請輸入score%d的成績:\n",j+1);
scanf("%f",&cj[i].score[j]);
cj[i].avi=cj[i].avi+(cj[i].score[j]/u); //計算平均成績
}
for(j=0;j<u;j++)
cj[i].sum=cj[i].sum+cj[i].score[j]; //計算總成績
}
system("cls");
for(i=0;i<n;i++)
printf("%s的平均成績為%.2lf,總成績為%.2f\n",cj[i].name,cj[i].avi,cj[i].sum); //輸出個人平均成績和總成績
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void chaxun()
{
int x,i,j,m=0;
char an;
printf("請輸入學號查詢資訊:\n");
scanf("%d",&x);
for(i=0;i<n;i++)
{
m++;
if(x==cj[i].number)
{
printf("%s的",cj[i].name);
for(j=0;j<u;j++)
{
printf("score%d為%.2f,",j+1,cj[i].score[j]);
}
system("cls");
printf("平均成績為%.2lf,總成績為%.2f\n\n",cj[i].avi,cj[i].sum);
m--;
break;
}
}
if(m==n)
{
system("cls");
printf("您輸入的學號不存在!!\n");
}
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void xiugai()
{
int k,i,j,m=0;
char an;
printf("請輸入您所要修改成績的學號:\n");
scanf("%d",&k);
for(i=0;i<n;i++)
{
m++;
if(k==cj[i].number)
{
cj[i].avi=0;
cj[i].sum=0;
printf("請輸入學生姓名:\n"); //輸入姓名
scanf("%s",cj[i].name);
for(j=0;j<u;j++)
{
printf("請輸入score%d的成績:\n",j+1);
scanf("%f",&cj[i].score[j]);
cj[i].avi=cj[i].avi+(cj[i].score[j])/u; //計算平均成績
}
for(j=0;j<u;j++)
cj[i].sum=cj[i].sum+cj[i].score[j]; //計算總成績
printf("%s的",cj[i].name);
for(j=0;j<u;j++)
{
printf("score%d為%.2f,",j+1,cj[i].score[j]);
}
system("cls");
printf("平均成績為%.2lf,總成績為%.2f\n",cj[i].avi,cj[i].sum);
m--;
break;
}
}
if(m==n)
{
system("cls");
printf("您輸入的學號不存在!!\n");
}
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void shanchu()
{
int m,i,s=0;
char an;
printf("請輸入您所要洗掉成績的學號:\n");
scanf("%d",&m);
for(i=0;i<n;i++)
{
s++;
if(m==cj[i].number)
{
cj[i].number=cj[i+50].number;
strcpy(cj[i].name,cj[i+50].name);
cj[i].avi=cj[i+50].avi;
cj[i].sum=cj[i+50].sum;
s--;
system("cls");
printf("已洗掉\n");
break;
}
}
if(s==n)
{
system("cls");
printf("您輸入的學號不存在!!\n");
}
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void tianjia()
{
int i,j;
char an;
printf("請問您要添加幾條資料?\n");
scanf("%d",&q);
for(i=0;i<q;i++)
{
cj[n+i].avi=0;
cj[n+i].sum=0;
printf("請輸入學生學號:\n"); //輸入學號
scanf("%d",&cj[n+i].number);
printf("請輸入學生姓名:\n"); //輸入姓名
scanf("%s",cj[n+i].name);
for(j=0;j<u;j++)
{
printf("請輸入score%d的成績:\n",j+1);
scanf("%f",&cj[n+i].score[j]);
cj[n+i].avi=cj[n+i].avi+(cj[n+i].score[j]/u); //計算平均成績
}
for(j=0;j<u;j++)
cj[n+i].sum=cj[n+i].sum+cj[n+i].score[j]; //計算總成績
}
n+=q;
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void quanbu()
{
int i;
char an;
system("cls");
printf("************************\n");
printf("姓名 平均成績 總成績\n");
for(i=0;i<n;i++)
printf("%-9s%-10.2lf%-8.2f\n",cj[i].name,cj[i].avi,cj[i].sum); //輸出個人平均成績和總成績
printf("************************\n");
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void dayubashi()
{
int i;
char an;
system("cls");
printf("************************\n");
printf("姓名 平均成績 總成績\n");
for(i=0;i<n;i++)
{
if(cj[i].avi>80)
printf("%-9s%-11.2lf%-8.2f\n",cj[i].name,cj[i].avi,cj[i].sum);
}
printf("************************\n");
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void bujige()
{
int i,j;
char an;
system("cls");
printf("************************\n");
printf("姓名 平均成績 總成績\n");
for(i=0;i<n;i++)
{
for(j=0;j<u;j++)
{
if(cj[i].score[j]<60)
{
printf("%-9s%-11.2lf%-8.2f\n",cj[i].name,cj[i].avi,cj[i].sum);
break;
}
}
}
printf("************************\n");
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void zuigaofen()
{
int i,j;
char an;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
if(cj[i].avi < cj[j].avi)
{
z[0]=cj[i];
cj[i]=cj[j];
cj[j]=z[0];
}
}
system("cls");
printf("************************\n");
printf("姓名 平均成績 總成績\n");
printf("%-9s%-11.2lf%-8.2f\n",cj[0].name,cj[0].avi,cj[0].sum);
printf("************************\n");
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void meimen()
{
int i,j,k;
float t;
char an;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
for(k=0;k<u;k++)
{
if(cj[i].score[k] < cj[j].score[k])
{
t=cj[i].score[k];
cj[i].score[k]=cj[j].score[k];
cj[j].score[k]=t;
}
}
system("cls");
for(k=0;k<u;k++)
{
printf("score%d的最高分為%.2f\n",k+1,cj[0].score[k]);
}
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
void paiming()
{
int i,j;
char an;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
if(cj[i].avi < cj[j].avi)
{
z[0]=cj[i];
cj[i]=cj[j];
cj[j]=z[0];
}
}
system("cls");
printf("*******************************\n");
printf("排名 姓名 平均成績 總成績\n");
for(i=0;i<n;i++)
{
printf("%-9d%-9s%-11.2lf%-8.2f\n",i+1,cj[i].name,cj[i].avi,cj[i].sum);
}
printf("*******************************\n");
printf("\n\n\n輸入任意字符結束\n");
scanf("%s",&an);
system("cls");
}
uj5u.com熱心網友回復:
貼出代碼是來炫耀的嗎?還是給大家分享的?如果有問題,建議將問題詳細描述出來。如果想讓別人看懂你的代碼,而不用文字描述,那么需要你的代碼可讀性要高。代碼風格和可讀性怎么樣?自己有信心不?
uj5u.com熱心網友回復:
可讀性再高也不看
uj5u.com熱心網友回復:
小新還是覺得看一看好!uj5u.com熱心網友回復:
要是想讓這個代碼用檔案儲存該進行那些修改呢uj5u.com熱心網友回復:
發帖時表情左面不是有發代碼的選項嗎,用那個發效果會好點
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/151767.html
標籤:新手樂園
