當前位置:編程學習大全網 - 源碼下載 - C語言 做考試系統 白送100 做好了加分在線等

C語言 做考試系統 白送100 做好了加分在線等

//優化了下代碼,比較完美了,樓主給看看```

#include <stdio.h>

#include <stdlib.h>

struct student

{

int no; //學號

char name[10];

float math,chinese,english; //三門課程的成績

double avr; //平均成績

};

struct student STU[50];

int input(int n) //錄入信息函數

{

char ch = 'y';

printf("\n\n請按以下格式輸入學生信息(可用Tab鍵對齊):\n");

while ((ch=='y') || (ch=='Y'))

{

printf("學號\t姓名\t數學\t語文\t英語\n");

scanf("%d%s%f%f%f",&STU[n].no,STU[n].name,&STU[n].math,&STU[n].chinese,&STU[n].english);

printf("\n是否繼續?(按Y繼續,其它結束)");

scanf(" %c",&ch);

STU[n].avr = (STU[n].math+STU[n].chinese+STU[n].english)/3.0;

n++;

}

return n;

}

void display(int count) //顯示信息函數

{

int i;

printf("\n學號\t姓名\t數學\t語文\t英語\t平均分");

printf("\n");

for(i=0;i<count;i++)

{

printf("%d",STU[i].no);

printf("\t%s",STU[i].name);

printf("\t%.1f",STU[i].math);

printf("\t%.1f",STU[i].chinese);

printf("\t%.1f",STU[i].english);

printf("\t%.2f",STU[i].avr);

printf("\n");

}

}

void sort(int count) //排序函數

{

int i,j;

/* 冒泡排序法*/

struct student t;

for(i=0;i<count;i++)

for(j=0;j<count-i-1;j++) //比較元素

{

if(STU[j].avr<STU[j+1].avr)

{

t=STU[j];

STU[j]=STU[j+1];

STU[j+1]=t;

}

}

}

int readDat(char file[],int n) //讀取文件函數

{

FILE *fp;

if((fp = fopen(file,"r")) == NULL)

{

printf("文件打開錯誤!\n");

exit(1);

}

printf("文件打開成功!\n");

fscanf(fp,"學號\t姓名\t數學\t語文\t英語\t平均\n");

while(!feof(fp))

{

fscanf(fp,"%d%s%f%f%f",&STU[n].no,STU[n].name,&STU[n].math,&STU[n].chinese,&STU[n].english);

STU[n].avr = (STU[n].math+STU[n].chinese+STU[n].english)/3.0;

n++;

}

fclose(fp);

return n-1;

}

void writeDat(char file[],int n) //寫入文件函數

{

FILE *fp;

int i;

if((fp = fopen(file,"w")) == NULL)

{

printf("文件打開錯誤!\n");

exit(1);

}

fprintf(fp,"學號\t姓名\t數學\t語文\t英語\t平均\n");

for(i=0; i<n; i++)

fprintf(fp,"%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\n",STU[i].no,STU[i].name,STU[i].math,STU[i].chinese,STU[i].english,STU[i].avr);

printf("文件保存成功!\n");

fclose(fp);

}

void main()

{

int num=0;

char filename[10];

char key;

while(1)

{

system("CLS");

printf("\t\t*******歡迎使用C語言成績管理系統*******\n");

printf("\t\t* 1、成績錄入 *\n");

printf("\t\t* 2、保存成績 *\n");

printf("\t\t* 3、讀取成績 *\n");

printf("\t\t* 4、排序功能 *\n");

printf("\t\t* 5、成績顯示 *\n");

printf("\t\t* 0、退出 *\n");

printf("\t\t***************************************\n");

printf("請選擇:\n");

scanf(" %c",&key);

switch(key)

{

case '1': //成績錄入

num = input(num);

break;

case '2': //保存成績

if(num == 0)

printf("請先輸入或讀取數據!\n");

else

{

printf("請輸入文件名:");

scanf("%s",filename);

writeDat(filename,num);

}

break;

case '3': //讀取成績

printf("請輸入文件名:");

scanf("%s",filename);

num = readDat(filename,num);

break;

case '4': //排序功能

if(num == 0)

printf("請先輸入或讀取數據!\n");

else

{

sort(num);

printf("排序完成!\n");

}

break;

case '5': //成績顯示

if(num == 0)

printf("請先輸入或讀取數據!\n");

else

display(num);

break;

case '0': //退出

exit(0);

default:

printf("輸入錯誤!\n");

break;

}

system("PAUSE");

}

}

  • 上一篇:韓信開創壹套戰法,用妙計奇險致勝,為何後世名將再也沒人敢用?
  • 下一篇:快手返利app是真的嗎?快手平臺返利規則?
  • copyright 2024編程學習大全網