?? 學生成績管理系統.txt
字號:
學生成績管理系統
計算機網絡安全研究協會 趙飛宇
/*這是一個學生管理系統,它有輸入,輸出,求和,查詢等幾項功能*/
#include <conio.h>
#include <stdio.h>
FILE *fp;
int a[100][10]; /*定義一個二位數組用來存放學生成績*/
int stu;
inputx()
{
gotoxy(15,13);
textcolor(RED);
printf("請輸入你們班的學生數:");
scanf("%d",&stu);
}
input() /*輸入學生成績*/
{
int i;
for(i=1;i<=stu;i++)
{ scanf("%8d%8d%8d%8d%8d%8d",&a[i][1],&a[i][2],&a[i][3],&a[i][4],&a[i][5],&a[i][6]);
}
}
print1() /*輸出成績表,并求總分,平均分和排名次*/
{
int i,j;
int b[100],c[100];
int t,loc,k;
fp=fopen("成績表.txt","w");
for(i=1;i<=stu;i++) /*求總分和平均分*/
{
a[i][7]=0;
for(j=2;j<=6;j++)
a[i][7]=a[i][7]+a[i][j];
a[i][8]=a[i][7]/5;
}
for(i=1;i<=stu;i++) /*排名*/
{
b[i]=a[i][7];
c[i]=i;
}
for(i=1;i<=stu-1;i++)
{
loc=i;
for(j=i+1;j<=stu;j++)
if(b[j]>b[loc])
loc=j;
if(loc!=i)
{t=b[i];b[i]=b[loc];b[loc]=t;
t=c[i];c[i]=c[loc];c[loc]=t;
}
}
for(i=1;i<=stu;i++)
for(k=1;k<=stu;k++)
if(c[k]==i)
{
a[i][9]=k;
break;
}
for(i=1;i<=stu;i++) /*輸出成績表*/
{
for(j=1;j<=9;j++)
printf("%-6d",a[i][j]);
printf("\n");
}
/*以下輸出成績表存到一個文件中*/
fprintf(fp,"學號 語文 數學 英語 物理 化學 總分 均分 名次\n");
for(i=1;i<=stu;i++)
{
for(j=1;j<=9;j++)
fprintf(fp,"%-6d",a[i][j]);
fprintf(fp,"\n");
}
}
print2() /*求各科總分和平均分*/
{
int i,j;
int m[3][6];
for(j=2;j<=6;j++)
{
m[1][j-1]=0;
for(i=1;i<=stu;i++)
m[1][j-1]=m[1][j-1]+a[i][j];
m[2][j-1]=m[1][j-1]/stu;
}
for(i=1;i<=2;i++)
{
for(j=1;j<=5;j++)
printf("%-6d",m[i][j]);
printf("\n");
}
}
change() /*修改學生成績*/
{
int m,b,c,i,n=0;
printf("請輸入您要修改的學生的學號:");
scanf("%d",&m);
printf("1,語文;2,數學;3,英語;4,物理;5,化學;\n");
printf("請選擇您要修改的科目:");
scanf("%d",&b);
printf("請輸入新的學生成績:");
scanf("%d",&c);
for(i=1;i<=stu;i++)
if(m!=a[i][1]) n++;
else {
n++;
break;
}
a[n][b+1]=c;
printf("\n重新輸出成績表\n");
printf("學號 語文 數學 英語 物理 化學 總分 均分 名次\n");
print1();
go();
}
go() /*選擇菜單*/
{
int n;
printf("\n現在您將會遇到以下幾種情況:\n");
printf("1,繼續查詢;2,修改數據;3,重新運行;4,結束程序;\n");
printf("請您根據需要按鍵選擇:");
scanf("%d",&n);
if(n==1)find();
if(n==2)change();
if(n==3)main();
if(n==4){
clrscr();
printf("*********感謝您使用本程序*********\n");
printf("這是我編寫的第一個系統程序,為了感謝您的使用,請到3509寢室找李曉鋒領獎\n");
printf("\n\n");
printf("再次感謝您的使用\n");
printf("------------ByeBye----------------");
}
getch();
}
find1() /*按名次查詢學生成績*/
{
int n,i;
printf("請輸入您要查詢的學生的名次:");
scanf("%d",&n);
printf("名次 學號 語文 數學 英語 物理 化學 總分 均分\n");
for(i=1;i<=stu;i++)
if(n==a[i][9])
{ printf("%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d",a[i][9],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8]);
break;
}
printf("\n");
go();
}
find2() /*按學號查詢學生成績*/
{
int n,i;
printf("請輸入您要查詢的學生的學號:");
scanf("%d",&n);
printf("學號 語文 數學 英語 物理 化學 總分 均分 名次\n");
for(i=1;i<=stu;i++)
if(n==a[i][1])
{ printf("%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d",a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8],a[i][9]);
break;
}
printf("\n");
go();
}
find3_1(int n) /*輸出科目查詢結果*/
{
int i;
printf("學號 名次 語文 數學 英語 物理 化學 總分 均分\n");
for(i=1;i<=stu;i++)
if(a[i][n+1]>=90)
{ printf("%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d%-6d",a[i][1],a[i][9],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8]);
printf("\n");
}
go();
}
find3() /*科目選擇菜單*/
{
int n;
printf("現有以下五種科目供查詢:\n");
printf("1,語文;2,數學;3,英語;4,物理;5,化學;\n");
printf("請按鍵選擇:");
scanf("%d",&n);
find3_1(n);
}
find() /*查詢方式菜單*/
{
int m;
printf("根據您的要求,有以下3種查詢方式: \n");
printf("1,按名次查詢;\n");
printf("2,按學號查詢;\n");
printf("3,查詢某科成績在90分以上的學生的情況;\n");
printf("現在,按照您的需要請按鍵:");
scanf("%d",&m);
if(m==1)find1();
if(m==2)find2();
if(m==3)find3();
}
main() /*主函數運用文本編輯對歡迎界面進行排版*/
{
int i;
clrscr(); /*清屏*/
textcolor(YELLOW);
{
gotoxy(20,9);
printf("******歡迎使用學生成績管理系統!******\n");
gotoxy(20,11);
printf("------------制作人:趙飛宇------------\n");
gotoxy(20,13);
printf("******歡迎注冊:zfy0422@sina.com******\n");
gotoxy(20,15);
printf("***********飛宇軟件開發公司***********\n");
gotoxy(20,17);
printf("版權所有 未經同意 不得復制 違者必究");
}
for(i=1;i<=44;i++) /*輸出用#組成的矩形以達到美觀的效果*/
{
{
gotoxy(16+i,19);
printf("#");
}
{
gotoxy(16+i,7);
printf("#");
}
}
for(i=1;i<=13;i++)
{
{
gotoxy(16,6+i);
printf("#");
}
{
gotoxy(61,6+i);
printf("#");
}
}
getch();
clrscr();
inputx();
clrscr();
gotoxy(3,3);
printf("\n學生成績管理系統\n\n");
printf("一,輸入成績\n");
printf("請輸入學生的成績:\n" );
printf("學號 語文 數學 英語 物理 化學\n");
input();
printf("\n");
printf("二,輸出成績表\n");
printf("學號 語文 數學 英語 物理 化學 總分 均分 名次\n");
print1();
printf("\n");
printf("三,輸出各科總分及平均分\n");
printf("語文 數學 英語 物理 化學\n");
print2();
printf("\n");
printf("四,查詢\n");
find();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -