當前位置:首頁 » 考試成績 » 學生成績管理程序的設計c語言

學生成績管理程序的設計c語言

發布時間: 2021-01-16 21:14:40

1. 用C語言設計一個學生成績管理系統

#include <stdio.h>
#include <string.h>

#include <stdlib.h>
#defineMAX1000

/*定義學生成績信息結構*/
struct stu
{

char id[8];
char name[8];


(1)學生成績管理程序的設計c語言擴展閱讀:

short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)

long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)

long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)

signed:修飾整型數據,有符號數據類型。(C89標准新增)

unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)

restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標准新增)

復雜類型關鍵字

struct:結構體聲明。(K&R時期引入)

union:聯合體聲明。(K&R時期引入)

enum:枚舉聲明。(C89標准新增)

typedef:聲明類型別名。(K&R時期引入)

sizeof:得到特定類型或特定類型變數的大小。(K&R時期引入)

inline:內聯函數用於取代宏定義,會在任何調用它的地方展開。(C99標准新增)

2. c語言實現設計一個學生成績管理系統課程

參考代碼如下,不過還是建議自己寫一寫比較好:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student //結構體
{
char name[20]; //姓名
char number[20]; //學號
double math; //數學
double english; //英語
double chinese; //語文
double program; //程序
}s[50];

void head() //界面
{
printf(
"**********************************************************************\n"
"** **\n"
"** **\n"
"** 學生成績管理系統 **\n"
"** **\n"
"** 1.信息錄入 **\n"
"** 2.信息統計 **\n"
"** 3.信息瀏覽 **\n"
"** 4.信息查詢 **\n"
"** 5.信息排序 **\n"
"** 6.信息刪除 **\n"
"** 0.退出系統 **\n"
"** **\n"
"**********************************************************************\n"
);
}
void ru(struct student s[], int* n) //文件導入函數
{
FILE *p;
int i=*n;
if((p=fopen("數據.txt", "r"))==NULL)
{
n=n;
}
else
{
while(!feof(p))
{
fscanf(p, "%s%s%lf%lf%lf%lf\n", s[i].name, s[i].number, &s[i].math, &s[i].english, &s[i].chinese, &s[i].program);
i++;
*n=*n+1;
}
}
fclose(p);
}
void chu(struct student s[], int n)
{
FILE *p;
int i=0;
if((p=fopen("數據.txt", "w"))==NULL)
{
printf("無法打開此文件!");
}
else
{
while(i<n-1)
{
fprintf(p, "%s %s %lf %lf %lf %lf\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
i++;
}
fprintf(p, "%s %s %lf %lf %lf %lf", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
fclose(p);
}
void dayin(struct student s[], int n) //顯示所有信息
{
int i;
double all=0.0;
printf("\n姓名\t\t學號\t\t數學\t英語\t語文\t程序\t總分\n");
for (i=0; i<n; i++)
{
all=s[i].math+s[i].english+s[i].chinese+s[i].program;
printf("%s\t\t%s\t\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program, all);
}
}
void shuru(struct student s[], int* n) //信息輸入函數
{
int i=*n, j, k, m;
printf("請輸入學生姓名:");
scanf("%s", s[i].name);
printf("請輸入學生學號:");
for (j=0; ; j++)
{
m=0;
scanf("%s", s[i].number);
for (k=0; k<i; k++)
{
if (strcmp(s[i].number, s[k].number)==0)
{
m=m+1;
printf("學號重復,請重新輸入學號:");
break;
}
}
if (m==0)
{
break;
}
}
printf("請輸入數學成績:");
scanf("%lf", &s[i].math);
printf("請輸入英語成績:");
scanf("%lf", &s[i].english);
printf("請輸入語文成績:");
scanf("%lf", &s[i].chinese);
printf("請輸入程序成績:") ;
scanf("%lf", &s[i].program);
printf("添加信息成功!\n");
*n=*n+1;
chu(s, *n);
}
void paixu(struct student s[], int n) //排序函數
{
int i, j;
double all1, all2;
struct student stu;
for (i=0; i<n-1; i++)
{
for (j=i+1; j<n; j++)
{
all1=s[i].math+s[i].english+s[i].chinese+s[i].program;
all2=s[j].math+s[j].english+s[j].chinese+s[j].program;
if (all1<all2)
{
stu=s[i];
s[i]=s[j];
s[j]=stu;
}
}
}
printf("排序後的數據:\n");
dayin(s, n);
}
void chazhao(struct student s[], int n) //查找函數
{
char name[20], num[20];
int m1, m2=0, i, j;
printf("1.按姓名查找\n2.按學號查找\n選擇查詢方式(1或2):");
scanf("%d", &m1);
if (m1==1)
{
printf("請輸入您要查找的學生姓名:");
scanf("%s", name);
for (i=0; i<n; i++)
{
if (strcmp(s[i].name, name)==0)
{
m2=m2+1;
if (m2==1)
{
printf("\n姓名\t\t學號\t數學\t英語\t語文\t程序\n");
}
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
}
if (m2==0)
{
printf("沒有此學生信息!\n");
}
}
else if (m1==2)
{
printf("請輸入您要查找的學生學號:");
scanf("%s", num);
j=0;
for (i=0; i<n; i++)
{
if (strcmp(s[i].number, num)==0)
{
m2=m2+1;
if (m2==1)
{
printf("\n姓名\t\t學號\t數學\t英語\t語文\t程序\n");
}
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", s[i].name, s[i].number, s[i].math, s[i].english, s[i].chinese, s[i].program);
}
}
if (m2==0)
{
printf("沒有此學生信息!\n");
}
}
}
void shanchu(struct student s[], int* n) //刪除函數
{
char num[20];
int m=0, i, j;
printf("請輸入您要刪除的學生學號:");
scanf("%s", num);
for (i=0; i<=*n; i++)
{
if (strcmp(s[i].number, num)==0)
{
m=m+1;
for (j=i; j<*n; j++)
{
s[j]=s[j+1];
}
*n=*n-1;
}
}
if (m==0)
{
printf("沒有此學生信息!\n");
}
else
{
chu(s, *n);
printf("刪除完畢!\n");
}
}
void allAndAver(struct student s[], int n)
{
int i ;
double all=0.0, aver=0.0;
for (i=0; i<n; i++)
{
all=s[i].math+s[i].english+s[i].chinese+s[i].program;
aver=all/4;
printf("%s\t\t%s\t\t%.1lf\t%.1lf\n", s[i].name, s[i].number, all, aver);
}
}
void Fail(struct student s[], int n) //統計單科不及格人數
{
int i, fail[4]={0};
for (i=0; i<n; i++)
{
if (s[i].math<60)
{
fail[0]++;
}
if (s[i].english<60)
{
fail[1]++;
}
if (s[i].chinese<60)
{
fail[2]++;
}
if (s[i].program<60)
{
fail[3]++;
}
}
printf("\n不及格信息:\n");
printf("數學不及格的人數為:%d人\n", fail[0]);
printf("英語不及格的人數為:%d人\n", fail[1]);
printf("語文不及格的人數為:%d人\n", fail[2]);
printf("程序不及格的人數為:%d人\n", fail[3]);
}
void Max(struct student s[], int n) //統計單科最高分人數
{
int i, counter[4]={0};
double max[4]={s[0].math, s[0].english, s[0].chinese, s[0].program};
for (i=0; i<n; i++)
{
if (s[i].math>max[0])
{
max[0]=s[i].math;
}
if (s[i].math>max[1])
{
max[1]=s[i].math;
}
if (s[i].math>max[2])
{
max[2]=s[i].math;
}
if (s[i].math>max[3])
{
max[3]=s[i].math;
}
}
for (i=0; i<n; i++)
{
if (s[i].math==max[0])
{
counter[0]++;
}
if (s[i].math==max[1])
{
counter[1]++;
}
if (s[i].math==max[2])
{
counter[2]++;
}
if (s[i].math==max[3])
{
counter[3]++;
}
}
printf("\n最高分信息:\n");
printf("數學最高分為:%.1lf, 人數為:%d人\n", max[0], counter[0]);
printf("英語最高分為:%.1lf, 人數為:%d人\n", max[1], counter[1]);
printf("語文最高分為:%.1lf, 人數為:%d人\n", max[2], counter[2]);
printf("程序最高分為:%.1lf, 人數為:%d人\n", max[3], counter[3]);
}
void Min(struct student s[], int n) //統計單科最低分人數
{
int i, counter[4]={0};
double min[4]={s[0].math, s[0].english, s[0].chinese, s[0].program};
for (i=0; i<n; i++)
{
if (s[i].math<min[0])
{
min[0]=s[i].math;
}
if (s[i].math<min[1])
{
min[1]=s[i].math;
}
if (s[i].math<min[2])
{
min[2]=s[i].math;
}
if (s[i].math<min[3])
{
min[3]=s[i].math;
}
}
for (i=0; i<n; i++)
{
if (s[i].math==min[0])
{
counter[0]++;
}
if (s[i].math==min[1])
{
counter[1]++;
}
if (s[i].math==min[2])
{
counter[2]++;
}
if (s[i].math==min[3])
{
counter[3]++;
}
}
printf("\n最低分信息:\n");
printf("數學最低分為:%.1lf, 人數為:%d人\n", min[0], counter[0]);
printf("英語最低分為:%.1lf, 人數為:%d人\n", min[1], counter[1]);
printf("語文最低分為:%.1lf, 人數為:%d人\n", min[2], counter[2]);
printf("程序最低分為:%.1lf, 人數為:%d人\n", min[3], counter[3]);
}
void tongji(struct student s[], int n) //統計函數
{
printf("統計信息如下:\n");
printf("\n姓名\t\t學號\t\t總分\t平均分\n");
allAndAver(s, n);
Max(s, n);
Min(s, n) ;
Fail(s, n);
}
int main() //主函數
{
int k, n=0;
ru(s, &n);
chu(s, n);
while (1)
{
head();
printf("\n請按對應的鍵選擇相應的功能:");
scanf("%d",&k);
switch (k)
{
case 1:
shuru(s, &n);
break;
case 2:
tongji(s, n);
break;
case 3:
dayin(s, n);
break;
case 4:
chazhao(s, n);
break;
case 5:
paixu(s, n);
break;
case 6:
shanchu(s, &n);
break;
case 0:
exit(1);
break;
default : printf("請輸入正確的命令!\n");
}
system("pause");
system("cls");
}
return 0;
}

3. c語言課程設計之學生成績管理系統設計的程序

#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include<string.h>

#define MAX 80
#define max 3

int nu=0;

struct classname
{
char name[20];
float score;
};

struct student
{
char no[20];
char std_name[20];
struct classname km[max];
float ave;
float sum;
int save;
};

struct student stu[MAX],*p;

void chushi()
{
int i,j;
for(i=0;i<MAX;i++)
{
for(j=0;j<20;j++)
{
stu[i].no[j]=NULL;
stu[i].std_name[j]=NULL;
stu[i].km[j].name[j]=NULL;
stu[i].km[j].score=0;
}
stu[i].ave=0;
stu[i].sum=0;
stu[i].save=0;
}
}

void av()/*求平均值*/
{
int i;
for(i=0;i<nu;i++)
{
stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
}
}

void first_check()
{
FILE *p;
int i,j;
struct classname frist[max];
for(i=0;i<max;i++)
{
for(j=0;j<20;j++)
frist[i].name[j]=NULL;
frist[i].score=0;
}
if ((p=fopen("c:\\kemu.txt","r"))==NULL)
{
printf("您好,歡迎使用學生成績管理系統\n\n因為您是第一次使用,請輸入科目名稱(三科)\n\n");
p=fopen("c:\\kemu.txt","w");
printf("輸入課程1名稱:");
scanf("%s",frist[0].name);
fprintf(p,"%s\n",frist[0].name);
printf("輸入課程2名稱:");
scanf("%s",frist[1].name);
fprintf(p,"%s\n",frist[1].name);
printf("輸入課程3名稱:");
scanf("%s",frist[2].name);
fprintf(p,"%s\n",frist[2].name);
}
system("cls");
fclose(p);
}

void save_nu()
{
FILE *p;
p=fopen("c:\\renshu.txt","w");
fprintf(p,"%d\n",nu);
fclose(p);
}

void Save_add(int n)
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","at");
if (p == NULL)
{
printf("文件不存在!!\n");
exit(0);
}
save_nu();
for (i = 0;i<n;i++)
if(stu[i].save==1)
{
stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}

void Save()
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","w");
if (p == NULL)
{
printf("文件不存在!!\n");
exit(0);
}
save_nu();
for (i = 0;i<nu;i++)
if(stu[i].save==1)
{
av();
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}

int read_nu()
{
FILE *p;
char ch,s[10]={'\0'};
int i=0;
p=fopen("c:\\renshu.txt","r");
if(p==NULL)
{
save_nu();
return 0;
}
ch=fgetc(p);
while(ch!='\n')
{
s[i]=ch;
ch=fgetc(p);
i++;
}
nu=atoi(s);
fclose(p);
return 0;
}

int read_km()
{
FILE *p;
int i,j=0;
char s[20]={'\0'};
chushi();
p=fopen("c:\\kemu.txt","r");
if(p==NULL)
{
printf("ERROR read_km");
return 0;
}
fgets(s,20,p);
while(strlen(s)!=0)
{
for(i=0;i<strlen(s);i++)
if(s[i]==10)
{
s[i]='\0';
break;
}
for(i=0;i<=nu;i++)
strcpy(stu[i].km[j].name,s);
for(i=0;i<20;i++)
s[i]='\0';
j++;
fgets(s,20,p);
}
}

void read()
{
FILE *p;
int i,j,n,k,z=0;
char s[50]={'\0'};
char o[10]={'\0'};
p=fopen("c:\\cheji.txt","r");
if(p==NULL)
printf("ERROR_read");
chushi();
read_km();
fgets(s,50,p);
while(strlen(s)!=0)
{
j=0;
for(i=0;i<50;i++)
{
if(s[i]!='\n')
{
n=0;
while(j==0)
{
if(s[i]!=' ')
{
stu[z].no[n]=s[i];
n++;i++;
}
else
break;
}
while(j==1)
{
if(s[i]!=' ')
{
stu[z].std_name[n]=s[i];
n++;i++;
}
else
break;
}
while(j==2)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[0].score=atoi(o);
break;
}
}
while(j==3)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[1].score=atoi(o);
break;
}
}
while(j==4)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[2].score=atoi(o);
break;
}
}
while(j==5)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].ave=atoi(o);
break;
}
}
while(j==6)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].sum=atoi(o);
break;
}
}
for(k=0;k<10;k++)
o[k]='\0';
}
else
break;
j++;
}
for(i=0;i<50;i++)
s[i]='\0';
fgets(s,50,p);
z++;
}
}

void putin()
{
int n,i=0;
char ch;
read_km();
do
{
printf("\t\t\t\t錄入學員信息\n輸入第%d個學員的信息\n",i+1);
printf("\n輸入學生編號:");
scanf("%s",stu[i].no);
printf("\n輸入學員姓名:");
scanf("%s",stu[i].std_name);
printf("\n輸入課程%s的分數:",stu[0].km[0].name);
scanf("%f",&stu[i].km[0].score);
printf("\n輸入課程%s的分數:",stu[0].km[1].name);
scanf("%f",&stu[i].km[1].score);
printf("\n輸入課程%s的分數:",stu[0].km[2].name);
scanf("%f",&stu[i].km[2].score);
stu[i].save=1;
printf("\n\n");
i++;
n=i;
printf("是否繼續輸入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
if(nu==0)
{
nu=n;
Save();
}
else
{
nu=n+nu;
Save_add(n);
}
}

int putout()
{
int i;char s;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
read();
do
{
printf("學生成績信息:\n\n");
for(i=0;i<nu;i++)
printf("學號:%s 姓名:%s\n%s分數:%2.1f\t%s分數:%2.1f\t%s分數:%2.1f\n平均分數:%2.1f\t總成績:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].km[0].name,stu[i].km[0].score,stu[i].km[1].name,stu[i].km[1].score,stu[i].km[2].name,stu[i].km[2].score,stu[i].ave,stu[i].sum);
printf("\t\t按任意鍵返回主菜單");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

int sort()/*排序數據函數*/
{
struct student temp;
int i,j;
char s;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
chushi();
read();
for(i=1;i<nu;i++)
{
for(j=1;j<=nu-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
do
{
printf("學生成績信息:\n\n");
for(i=0;i<nu;i++)
printf("學號:%s 姓名:%s 平均成績:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].ave);
printf("\t\t按任意鍵返回主菜單");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

void find()/*查詢函數*/
{
int j,i=0;
int c=0;
char search[10]={'\0'};
char as;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
chushi();
read();
do
{
printf("輸入要查詢課程名稱:");
scanf("%s",search);
for(j=0;j<max;j++)
if(!strcmp(stu[i].km[j].name,search))
{
c=1;
printf("\n該課程不及格學生姓名:\n");
for(i=0;i<nu;i++)
if(stu[i].km[j].score<60)
printf("%s\n",stu[i].std_name);
}
if(c==0)
printf("無此課程!");
printf("\n\t\t按任意鍵返回主菜單");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void tongji()
{
int j,m,z,i=0;
char s;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
chushi();
read();
for(z=0;z<max;z++)
{
m=stu[i].km[z].score;j=0;
printf("%s 最高分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(m<stu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
j=0;i=0;m=stu[i].km[z].score;
printf("%s 最低分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(m>stu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
m=0;j=0;i=0;
printf("%s 平均分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
m=m+stu[i].km[z].score;
printf("%d\n",m/nu);
m=0;i=0;
printf("%s 分數低於的60人數: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(stu[i].km[z].score<60)
m++;
printf("%d\t",m);
m=0;j=0;i=0;
printf("%s 分數高於60的人數: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(stu[i].km[z].score>60)
m++;
printf("%d\n\n",m);
}
do
{
printf("\t\t按任意鍵返回主菜單");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

void main()/*主函數*/
{
int as;
first_check();
start: printf("\n\t\t\t歡迎使用學生成績管理系統\n");
/*一下為功能選擇模塊*/
do
{
printf("\n\t\t\t\t1.錄入學員信息\n\t\t\t\t2.顯示學員信息\n\t\t\t\t3.成績排序信息\n\t\t\t\t4.查詢不及格學生\n\t\t\t\t5.統計信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t選擇功能選項:");
fflush(stdin);
read_nu();
scanf("%d",&as);
switch(as)
{
case 1:system("cls");putin();break;
case 2:system("cls");putout();break;
case 3:system("cls");sort();break;
case 4:system("cls");find();break;
case 5:system("cls");tongji();break;
case 6:system("exit");exit(0);
default:system("cls");goto start;
}
}
while(1);
/*至此功能選擇結束*/
}

4. c語言設計學生成績管理程序

這個設計不是很復雜,可以嘗試自己做做,

不懂的地方,我幫你解決。me 我,

給你部分代碼,
/* 1。根據學生信息定義一個結構體類型,再說明一個該結構體類型的數組。*/
struct stu_info{
char stuNo[10];/* No */
char stuName[30];/* Name */
float stuScore[3];/* the three scores */
float aveScore; /* average score */
float totalScore; /* total score */
}stu[10];
/* 2。用input函數從鍵盤上輸入學生的數據。 */
void input()
{ int i = 0;
printf("Input the students' infomation(FORMAT LIKE:No Name score1 score2 score3):\n");
while(i < 10)
{ printf("Input %d:",i + 1);
scanf("%s%s%f%f%f",stu[i].stuNo,stu[i].stuName,&stu[i].stuScore[0],&stu[i].stuScore[1],&stu[i].stuScore[2]);
i++;
}
}
/* 3。用average函數求出每個學生總成績、平均成績和所有學生的總平均成績。 */
float average()
{ int i = 0;

5. C語言程序設計——學生成績管理系統設計的編程

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0; //
struct student
{
char num[10];//學號
char name[20];
char sex[4];
int cgrade;
int mgrade;
int egrade;
int totle;
int ave;
char neartime[10];//最近更新時間
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;
void menu()
{
printf("********************************************************************************");
printf("\t1輸入學生資料\t\t\t\t\t2刪除學生資料\n");
printf("\t3查詢學生資料\t\t\t\t\t4修改學生資料\n");
printf("\t5顯示學生資料\t\t\t\t\t6統計學生成績\n");
printf("\t7排序學生成績\t\t\t\t\t8保存學生資料\n");
printf("\t9獲取幫助信息\t\t\t\t\t0退出系統\n");
printf("********************************************************************************\n");
}
void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong()
{
printf("\n=====>提示:輸入錯誤!\n");
}
void Nofind()
{
printf("\n=====>提示:沒有找到該學生!\n");
}
void printc() // 本函數用於輸出中文
{
printf(" 學號\t 姓名 性別 英語成績 數學成績 C語言成績 總分 平均分\n");
}
void printe(Node *p)//本函數用於輸出英文
{
printf("%-12s%s\t%s\t%d\t%d\t%d\t %d\t %d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);
}
Node* Locate(Link l,char findmess[],char nameornum[]) //該函數用於定位連表中符合要求的接點,並返回該指針
{
Node *r;
if(strcmp(nameornum,"num")==0) //按學號查詢
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) //按姓名查詢
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r=r->next;
}
}
return 0;
}
void Add(Link l) //增加學生
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; //將指針置於最末尾
while(1)
{
printf("請你輸入學號(以'0'返回上一級菜單:)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>提示:學號為'%s'的學生已經存在,若要修改請你選擇'4 修改'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}

p=(Node *)malloc(sizeof(Node));

strcpy(p->data.num,num);
printf("請你輸入姓名:");
scanf("%s",p->data.name);
getchar();
printf("請你輸入性別:");
scanf("%s",p->data.sex);
getchar();
printf("請你輸入c語言成績:");
scanf("%d",&p->data.cgrade);
getchar();
printf("請你輸入數學成績:");
scanf("%d",&p->data.mgrade);
getchar();
printf("請你輸入英語成績:");
scanf("%d",&p->data.egrade);
getchar();
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle / 3;
//信息輸入已經完成
p->next=NULL;
r->next=p;
r=p;
shoudsave=1;

}
}
void Qur(Link l) //查詢學生
{
int sel;
char findmess[20];
Node *p;
if(!l->next)
{
printf("\n=====>提示:沒有資料可以查詢!\n");
return;
}
printf("\n=====>1按學號查找\n=====>2按姓名查找\n");
scanf("%d",&sel);
if(sel==1)//學號
{
printf("請你輸入要查找的學號:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\t\t\t\t查找結果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else if(sel==2) //姓名
{
printf("請你輸入要查找的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
printf("\t\t\t\t查找結果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();

}
void Del(Link l) //刪除
{
int sel;
Node *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:沒有資料可以刪除!\n");
return;
}
printf("\n=====>1按學號刪除\n=====>2按姓名刪除\n");
scanf("%d",&sel);
if(sel==1)
{
printf("請你輸入要刪除的學號:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:該學生已經成功刪除!\n");
shoudsave=1;
}
else
Nofind();
}
else if(sel==2)
{
printf("請你輸入要刪除的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:該學生已經成功刪除!\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}
void Modify(Link l)
{
Node *p;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:沒有資料可以修改!\n");
return;
}
printf("請你輸入要修改的學生學號:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("請你輸入新學號(原來是%s):",p->data.num);
scanf("%s",p->data.num);
printf("請你輸入新姓名(原來是%s):",p->data.name);
scanf("%s",p->data.name);
getchar();
printf("請你輸入新性別(原來是%s):",p->data.sex);
scanf("%s",p->data.sex);
printf("請你輸入新的c語言成績(原來是%d分):",p->data.cgrade);
scanf("%d",&p->data.cgrade);
getchar();
printf("請你輸入新的數學成績(原來是%d分):",p->data.mgrade);
scanf("%d",&p->data.mgrade);
getchar();
printf("請你輸入新的英語成績(原來是%d分):",p->data.egrade);
scanf("%d",&p->data.egrade);
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle/3;
printf("\n=====>提示:資料修改成功!\n");
shoudsave=1;
}
else
Nofind();
}
void Disp(Link l)
{
int count=0;
Node *p;
p=l->next;
if(!p)
{
printf("\n=====>提示:沒有資料可以顯示!\n");
return;
}
printf("\t\t\t\t顯示結果\n");
printstart();
printc();
printf("\n");
while(p)
{
printe(p);
p=p->next;
}
printstart();
printf("\n");
}
void Tongji(Link l)
{
Node *pm,*pe,*pc,*pt,*pa; //用於指向分數最高的接點
Node *r=l->next;
if(!r)
{
printf("\n=====>提示:沒有資料可以統計!\n");
return ;
}
pm=pe=pc=pt=pa=r;
while(r!=NULL)
{
if(r->data.cgrade>=pc->data.cgrade)
pc=r;
if(r->data.mgrade>=pm->data.mgrade)
pm=r;
if(r->data.egrade>=pe->data.egrade)
pe=r;
if(r->data.totle>=pt->data.totle)
pt=r;
if(r->data.ave>=pa->data.ave)
pa=r;
r=r->next;
}
printf("------------------------------統計結果--------------------------------\n");
printf("總分最高者:\t%s %d分\n",pt->data.name,pt->data.totle);
printf("平均分最高者:\t%s %d分\n",pa->data.name,pa->data.ave);
printf("英語最高者:\t%s %d分\n",pe->data.name,pe->data.egrade);
printf("數學最高者:\t%s %d分\n",pm->data.name,pm->data.mgrade);
printf("c語言最高者:\t%s %d分\n",pc->data.name,pc->data.cgrade);
printstart();
}
void Sort(Link l)
{
Link ll;
Node *p,*rr,*s;
ll=(Link)malloc(sizeof(Node)); //用於做新的連表
ll->next=NULL;
if(l->next==NULL)
{
printf("\n=====>提示:沒有資料可以排序!\n");
return ;
}
p=l->next;
while(p)
{
s=(Node*)malloc(sizeof(Node)); //新建接點用於保存信息
s->data=p->data;
s->next=NULL;
rr=ll;
while(rr->next!=NULL && rr->next->data.totle>=p->data.totle)
rr=rr->next;
if(rr->next==NULL)
rr->next=s;
else
{
s->next=rr->next;
rr->next=s;
}
p=p->next;
}
free(l);
l->next=ll->next;
printf("\n=====>提示:排序已經完成!\n");
}
void Save(Link l)
{
FILE* fp;
Node *p;
int flag=1,count=0;
fp=fopen("c:\\student","wb");
if(fp==NULL)
{
printf("\n=====>提示:重新打開文件時發生錯誤!\n");
exit(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>提示:文件保存成功.(有%d條記錄已經保存.)\n",count);
shoudsave=0;
}
fclose(fp);
}
void main()
{
Link l;//連表
FILE *fp; //文件指針
int sel;
char ch;
char jian;
int count=0;
Node *p,*r;
printf("\t\t\t\t學生成績管理系統\n\t\t\t\t-------07康尼學院 張丹(240072507)\n");
l=(Node*)malloc(sizeof(Node));
l->next=NULL;
r=l;
fp=fopen("C:\\student","rb");
if(fp==NULL)
{
printf("\n=====>提示:文件還不存在,是否創建?(y/n)\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
fp=fopen("C:\\student","wb");
else
exit(0);
}
printf("\n=====>提示:文件已經打開,正在導入記錄......\n");
while(!feof(fp))
{
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp)) //將文件的內容放入接點中
{
p->next=NULL;
r->next=p;
r=p; //將該接點掛入連中
count++;
}
}
fclose(fp); //關閉文件
printf("\n=====>提示:記錄導入完畢,共導入%d條記錄.\n",count);
while(1)
{
menu();
printf("請你選擇操作:");
scanf("%d",&sel);
if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf("\n=====>提示:資料已經改動,是否將改動保存到文件中(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(l);
}
printf("\n=====>提示:你已經退出系統,再見!\n");
break;
}
switch(sel)
{
case 1:Add(l);break; //增加學生
case 2:Del(l);break;//刪除學生
case 3:Qur(l);break;//查詢學生
case 4:Modify(l);break;//修改學生
case 5:Disp(l);break;//顯示學生
case 6:Tongji(l);break;//統計學生
case 7:Sort(l);break;//排序學生
case 8:Save(l);break;//保存學生
case 9:printf("\t\t\t==========幫助信息==========\n");break;
default: Wrong();getchar();break;
}
}
}
//

6. C語言學生成績管理程序

#include"stdio.h"

/*定義學生結構體*/

structStudent

{

charID[20];

charName[20];

floatMark1;

floatMark2;

floatMark3;

floatAverage;

};

/*聲明學生數組及學生數量*/

structStudentstudents[1000];

intnum=0;

/*求平均值*/

floatAvg(structStudentstu)

{

return(stu.Mark1+stu.Mark2+stu.Mark3)/3;

}

/*通過學號返回數組下標*/

intStudent_SearchByIndex(charid[])

{

inti;

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

{

if(strcmp(students[i].ID,id)==0)

{

returni;

}

}

return-1;

}

/*通過姓名返回數組下標*/

intStudent_SearchByName(charname[])

{

inti;

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

{

if(strcmp(students[i].Name,name)==0)

{

returni;

}

}

return-1;

}

/*顯示單條學生記錄*/

voidStudent_DisplaySingle(intindex)

{

printf("%10s%10s%8s%8s%8s%10s ","學號","姓名","成績","成績","成績","平均成績");

printf("------------------------------------------------------------- ");

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f ",students[index].ID,students[index].Name,

students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);

}

/*插入學生信息*/

voidStudent_Insert()

{

while(1)

{

printf("請輸入學號:");

scanf("%s",&students[num].ID);

getchar();

printf("請輸入姓名:");

scanf("%s",&students[num].Name);

getchar();

printf("請輸入成績:");

scanf("%f",&students[num].Mark1);

getchar();

printf("請輸入成績:");

scanf("%f",&students[num].Mark2);

getchar();

printf("請輸入成績:");

scanf("%f",&students[num].Mark3);

getchar();

students[num].Average=Avg(students[num]);

num++;

printf("是否繼續?(y/n)");

if(getchar()=='n')

{

break;

}

}

}

/*修改學生信息*/

voidStudent_Modify()

{

floatmark1,mark2,mark3;

while(1)

{

charid[20];

intindex;

printf("請輸入要修改的學生的學號:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if(index==-1)

{

printf("學生不存在! ");

}

else

{

printf("你要修改的學生信息為: ");

Student_DisplaySingle(index);

printf("--請輸入新值-- ");

printf("請輸入學號:");

scanf("%s",&students[index].ID);

getchar();

printf("請輸入姓名:");

scanf("%s",&students[index].Name);

getchar();

printf("請輸入成績:");

scanf("%f",&students[index].Mark1);

getchar();

printf("請輸入成績:");

scanf("%f",&students[index].Mark2);

getchar();

printf("請輸入成績:");

scanf("%f",&students[index].Mark3);

getchar();

students[index].Average=Avg(students[index]);

}

printf("是否繼續?(y/n)");

if(getchar()=='n')

{

break;

}

}

}

/*刪除學生信息*/

voidStudent_Delete()

{

inti;

while(1)

{

charid[20];

intindex;

printf("請輸入要刪除的學生的學號:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if(index==-1)

{

printf("學生不存在! ");

}

else

{

printf("你要刪除的學生信息為: ");

Student_DisplaySingle(index);

printf("是否真的要刪除?(y/n)");

if(getchar()=='y')

{

for(i=index;i<num-1;i++)

{

students[i]=students[i+1];

}

num--;

}

getchar();

}

printf("是否繼續?(y/n)");

if(getchar()=='n')

{

break;

}

}

}

/*按姓名查詢*/

voidStudent_Select()

{

while(1)

{

charname[20];

intindex;

printf("請輸入要查詢的學生的姓名:");

scanf("%s",&name);

getchar();

index=Student_SearchByName(name);

if(index==-1)

{

printf("學生不存在! ");

}

else

{

printf("你要查詢的學生信息為: ");

Student_DisplaySingle(index);

}

printf("是否繼續?(y/n)");

if(getchar()=='n')

{

break;

}

}

}

/*按平均值排序*/

voidStudent_SortByAverage()

{

inti,j;

structStudenttmp;

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

{

for(j=1;j<num-i;j++)

{

if(students[j-1].Average<students[j].Average)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

/*顯示學生信息*/

voidStudent_Display()

{

inti;

printf("%10s%10s%8s%8s%8s%10s ","學號","姓名","成績","成績","成績","平均成績");

printf("------------------------------------------------------------- ");

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

{

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f ",students[i].ID,students[i].Name,

students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);

}

}

/*將學生信息從文件讀出*/

voidIO_ReadInfo()

{

FILE*fp;

inti;

if((fp=fopen("Database.txt","rb"))==NULL)

{

printf("不能打開文件! ");

return;

}

if(fread(&num,sizeof(int),1,fp)!=1)

{

num=-1;

}

else

{

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

{

fread(&students[i],sizeof(structStudent),1,fp);

}

}

fclose(fp);

}

/*將學生信息寫入文件*/

voidIO_WriteInfo()

{

FILE*fp;

inti;

if((fp=fopen("Database.txt","wb"))==NULL)

{

printf("不能打開文件! ");

return;

}

if(fwrite(&num,sizeof(int),1,fp)!=1)

{

printf("寫入文件錯誤! ");

}

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

{

if(fwrite(&students[i],sizeof(structStudent),1,fp)!=1)

{

printf("寫入文件錯誤! ");

}

}

fclose(fp);

}

/*主程序*/

main()

{

intchoice;

IO_ReadInfo();

while(1)

{

/*主菜單*/

printf(" ------學生成績管理系統------ ");

printf("1.增加學生記錄 ");

printf("2.修改學生記錄 ");

printf("3.刪除學生記錄 ");

printf("4.按姓名查詢學生記錄 ");

printf("5.按平均成績排序 ");

printf("6.退出 ");

printf("請選擇(1-6):");

scanf("%d",&choice);

getchar();

switch(choice)

{

case1:

Student_Insert();

break;

case2:

Student_Modify();

break;

case3:

Student_Delete();

break;

case4:

Student_Select();

break;

case5:

Student_SortByAverage();

Student_Display();

break;

case6:

exit();

break;

}

IO_WriteInfo();

}

}

7. 學生成績管理程序設計(C語言)

我有幾行和你要求不太相符的代碼,大部分是相同的只是沒有對文件的操作,快考試了,也沒時間寫了,你先拿去用吧!
定有錯誤和低效之處,發現後,請你指出來,謝謝!!!

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#define PRIN printf("%-14s%-14s%-14.2f%-14.2f%-14.2f\n",p->num,p->name,p->ch,p->math,p->all); //輸出鏈表
#define CLA 2

//________________定義結構體變數___________________
struct student //定義學生個人信息結構體變數
{
char num[20];//學號
char name[20];//姓名
float ch;//語文成績
float math;//數學成績
float all;//總分
struct student *next;
}stu;

struct sta //定義課程信息結構體變數
{
char classname[20];//課程名字
float aver;//平均分
float pass;//及格率
float top;//最高分
float low;//最低分
};

int n; //定義學生人數

//______________________________________________________主函數________________________________________________________
int main()
{
struct student *input();
void output(struct student *);
struct student *sort(struct student *);
void search(struct studdent *);
void statictics(struct student *head);
void write(struct student *);
struct student *ins(struct student *);
struct student *del(struct student *);
void quit(void);
struct student *head;
int i;
int flag=0;

printf("===============================學生成績管理系統===============================\n");
printf(" Copyringt 1990-2010 SoftWaring\n\n");

printf("歡迎你使用本系統\n\n");
while(1)
{
printf("1.輸入學生成績\n2.輸出學生成績\n3.統計課程信息\n4.增加學生信息\n5.刪除學生信息\n6.查找學生成績\n7.退 出\n\n");
scanf("%d",&i);
fflush(stdin);

switch(i)
{
case 1:head=input();flag=1;break;
case 2:if(flag) output(head); else {printf("請先輸入數據\n按任意鍵回到主菜單!\n\n");getch();} break;
case 3:statictics(head);break;
case 4:if(flag) head=ins(head); else {printf("請先輸入數據\n按任意鍵回到主菜單!\n\n");getch();} break;
case 5:if(flag) head=del(head); else {printf("請先輸入數據\n按任意鍵回到主菜單!\n\n");getch();} break;
case 6:search(head);break;
case 7:quit();
default :printf("輸入錯誤\n請輸入1-7:");
}
}
return 0;
}

//___________________________________________________輸入學生成績_____________________________________________________
struct student *input()
{
struct student *p, *pnext;
struct student *head;
int i;

printf("請輸入學生人數:");
scanf("%d",&n);

head=p=pnext=(struct student *)malloc(sizeof(struct student));

for(i=0;i<n;i++) //輸入學生成績
{
p->all=0; //初始化總成績
printf("請輸入第 %d 個學生的信息\n",i+1);
printf("————————————\n\n");

printf("請輸入學號:");
scanf("%s",p->num);
fflush(stdin);

printf("請輸入姓名:");
scanf("%s",p->name);
fflush(stdin);

printf("請輸入語文成績:");
scanf("%f",&p->ch);
fflush(stdin);
p->all+=p->ch;

printf("請輸入數學成績:");
scanf("%f",&p->math);
fflush(stdin);
p->all+=p->math;
printf("\n");

p=(struct student *)malloc(sizeof(struct student));
pnext->next=p;
pnext=p;
}
pnext->next=NULL;

printf("\n請按任意鍵回到主菜單\n\n");
getch();
return sort(head);
}

//_______________________________________________________輸出_________________________________________________________
void output(struct student *head)
{
struct student *p;
p=head;

printf("————————————輸出學生成績————————————\n");
printf("學號 姓名 語文 數學 總分\n\n");

while(p->next!=NULL)
{
PRIN
p=p->next;
}
printf("\n");
printf("請按任意鍵回到主菜單\n\n");
fflush(stdin);
getch();

}

//_______________________________________________________排序_________________________________________________________
struct student *sort(struct student *head)
{
struct student *p;
char temp[20];
float t;
int i, j;

for(i=0;i<n;i++)
{
p=head;
for(j=0;j<n-i;j++)
{
if(p->all<p->next->all)
{
strcpy(temp,p->name);
strcpy(p->name,p->next->name);
strcpy(p->next->name,temp);

strcpy(temp,p->num);
strcpy(p->num,p->next->num);
strcpy(p->next->num,temp);

t=p->math;
p->math=p->next->math;
p->next->math=t;

t=p->ch;
p->ch=p->next->ch;
p->next->ch=t;

t=p->all;
p->all=p->next->all;
p->next->all=t;
}
p=p->next;
}
}

return head;
}
//_______________________________________________________查找_________________________________________________________
void search(struct student *head)
{
struct student *p;
int i;//查詢方式
int flag=0;//標志是否有此學生
char sear[20];//查詢內容

printf("1.按姓名查找\n2.按學號查找\n請選擇你要查找的方式:");
scanf("%d",&i);

if(i==1)
printf("請輸入名字:");
else
if(i==2)
printf("請輸入學號:");
else
;//有待補充完成
scanf("%s",sear);
p=head;
while(p->next)
{
if(!strcmp(sear,p->name)||!strcmp(sear,p->num))
{
if(flag==0)
{
printf("————————————查詢學生成績————————————\n");
printf("學號 姓名 語文 數學 總分\n\n");
}
PRIN
flag++;
}
p=p->next;
}
if(flag)
{
printf("\n查找完畢!\n\n");
}
else
{
printf("你查找的內容不存在\n\n");
}
printf("請按任意鍵回到主菜單\n\n");
getch();
}

//_________________________________________________________增加_______________________________________________________
struct student *ins(struct student *head)
{
struct student *p, *p1,*p2;
char c;

p=head;
p=(struct studnet *)malloc(sizeof(struct student));
printf("------增加學生成績------\n\n");
while(1)
{
p->all=0;
printf("請輸入學號:");
scanf("%s",p->num);
fflush(stdin);

printf("請輸入姓名:");
scanf("%s",p->name);
fflush(stdin);

printf("請輸入語文成績:");
scanf("%f",&p->ch);
fflush(stdin);
p->all+=p->ch;

printf("請輸入數學成績:");
scanf("%f",&p->math);
fflush(stdin);
p->all+=p->math;
printf("\n");
n++;//增加學生個數計數器

p1=head;
while((p->all<p1->all)&&(p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p->all>=p1->all)
{
if(head==p1)
head=p;
else
p2->next=p;
p->next=p1;
}
else
{
p1->next=p;
p->next=NULL;
}

printf("是否需要再增加學生(Y/任意鍵視為不添加)\n");
c=getch();
if(c!='Y'&&c!='y')
break;

p=(struct student *)malloc(sizeof(struct student));
}
printf("請按任意鍵回到主菜單\n\n");
getch();
return head;
}
//_________________________________________________________刪除_______________________________________________________
struct student *del(struct student *head)
{
struct student *p1,*p2;
char delname[20];
char delnum[20];

printf("----------刪除學生信息----------\n\n");
fflush(stdin);
printf("請輸入學號:");
scanf("%s",delnum);
fflush(stdin);
printf("請輸入姓名:");
scanf("%s",delname);
fflush(stdin);
p1=head;
while((p1->next!=NULL)&&strcmp(delname,p1->name)&&strcmp(delnum,p1->num))
{
p2=p1;
p1=p1->next;
}
if(!strcmp(delname,p1->name)&&!strcmp(delnum,p1->num))
{
if(head==p1)
head=p1->next;
else
p2->next=p1->next;
printf("已成功刪除!!!\n");
n-=1;
}
else
printf("無法找到學號:%s\n 姓名:%s\n",delnum,delname);
printf("按任意鍵回到主菜單!\n\n");
getch();

return head;
}
//____________________________________________________統計課程信息____________________________________________________
void statictics(struct student *head)
{
struct student *p;
struct sta course[CLA]={{"CHINA"},{"MATH"}};
int i;
int flag=0;

p=head;

while(p->next) //統計語文信息
{
course[0].aver+=p->ch;
if(p->ch>=60)
course[1].pass++;
course[0].top=(p->ch>p->next->ch)?p->ch:p->ch;
course[0].low=(p->ch<p->next->ch)?p->ch:p->ch;
p=p->next;
}

p=head;
while(p->next) //統計數學信息
{
course[1].aver+=p->math;
if(p->math>=60)
course[1].pass++;
course[1].top=(p->math>p->next->math)?p->math:p->math;
course[1].low=(p->math<p->next->math)?p->math:p->math;
flag++;
p=p->next;
}

printf("—————————————輸入課程信息——————————————\n\n:");
printf("課程名稱 平均分 及格率 最高分 最低分\n");
for(i=0;i<CLA;i++)
printf("%-16s%-16.2f%-16.2f%-16.2f%16.2f\n",course[i].classname,course[i].aver/flag,course[i].pass/flag*100,course[i].top,course[i].low);
printf("\n輸入出完畢!\n");
}

//____________________________________________________退出_____________________________________________________________
void quit()
{
printf("請按任意鍵退出!\n");
fflush(stdin);
getch();
exit(0);
}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919