怎样用C语言写学生成绩管理系统?

Python021

怎样用C语言写学生成绩管理系统?,第1张

程序如下: #include\x0d\x0avoid main()\x0d\x0a{\x0d\x0a float student[100][7]\x0d\x0a//student[][0]存放学号,student[][1]到student[][4]存放四门成绩,\x0d\x0a//student[][5]存放总分,student[][6]存放平均分,student[][7]存放排名\x0d\x0a int n,i,j,k,p,t,count,flag\x0d\x0a int a[100],b[100],c[100]\x0d\x0a//a[]存放排序后的下标,b[]存放总分(备份),c[]存放排名的数据\x0d\x0a printf("输入学生的个数:\n")\x0d\x0a scanf("%d",&n)\x0d\x0a for(i=0ib[i+1])\x0d\x0a{\x0d\x0a c[i]=count\x0d\x0a count++\x0d\x0a}\x0d\x0a }\x0d\x0a printf("\n以下是统计结果:\n")\x0d\x0a printf("学号 s[1]s[2]s[3]s[4] 总分 平均分排名\n")\x0d\x0a for(i=0i 回答于 2022-11-16

附录* 综合实例——学生成绩查询系统

这是一个用c语言编写的小软件——学生成绩查询系统,同学们可以将其作为一个综合实例,对其进行仔细的阅读和研究,体验编程处理问题的过程,加深对编程语言的理解,提高处理问题的综合能力。

1、程序的功能:

1)可以根据用户输入的输入、输出文件名,读入学生成绩,完成数据的初始化。

2)可以查询指定学生的成绩,可以是指定科目的成绩,也可以是全部科目的成绩。

3)友好退出。

2、使用说明:

1)将输入文件放到指定的目录下(即../student/)

图1

2)启动管理程序student.exe

3)在程序的使用界面,首先输入输入文件名和输出文件名,完成程序的初始化,操作如下图所示

图2

然后,按照按照提示,输入学生姓名和需要程序的成绩(此软件暂时只设置了五成成绩,同学们可以按照需要扩展)科目代码,也可以输入查询所有成绩的代码。程序成绩,如下图所示

图3

4)输入代码“q”退出程序。

3、程序代码

#include

#include

#include

FILE *f1,*f2

char file1[20],file2[20],name[200][20],name1[15]

int n,m,data[200][10]

void init(){

int i,j

char ch=' '

printf("%20c欢迎使用班级成绩管理系统\n\n",ch)

printf("请输入输入和输出文件名(中间用一个空格隔开):\n")

scanf("%s %s",file1,file2)// 1)该条语句的功能是什么?

f1=fopen(file1,"r")

f2=fopen(file2,"w")

fscanf(f1,"%d%d",&n,&m) // 2)该条语句的功能是什么?

for(i=1i<=ni++)

{

fscanf(f1,"%s",name[i])// 3)该条语句的功能是什么?

data[i][0]=0 // 4)该条语句的功能是什么?没有这条语句可不可以?

for(j=1j<=mj++)

{

fscanf(f1,"%d",&data[i][j])

data[i][0]+=data[i][j] // 5)该条语句的功能是什么?

}

}

fprintf(f2,"name\tyuwen\tshuxue\tyingyu\twuli\thuaxue\tzongfen\n ")

for(i=1i<=ni++)

{

fprintf(f2,"%s\t",name[i])

for(j=1j<=mj++)

fprintf(f2,"%d\t",data[i][j])

fprintf(f2,"%d\n",data[i][0])

}

fclose(f1)// 6)问什么可以在这关闭输入文件?

fclose(f2)

}

void search(char na[],char num){

int i=1,j

while((i<=n)&&(strcmp(na,name[i])!=0))i++

if(i<=n){

switch(num){

case '1':printf("%s的语文成绩为%d!\n",na,data[i][1])break

case '2':printf("%s的数学成绩为%d!\n",na,data[i][2])break

case '3':printf("%s的英语成绩为%d!\n",na,data[i][3])break

case '4':printf("%s的物理成绩为%d!\n",na,data[i][4])break

case '5':printf("%s的化学成绩为%d!\n",na,data[i][5])break

case 'a':

printf("%s的各科成绩为:\n",name[i])

printf("语文\t数学\t英语\t物理\t化学\t总成绩\n")

for(j=1j<=mj++)

printf("%d\t",data[i][j])

printf("%d\n",data[i][0])

break

default: printf("没有这种查询方式,请确认后再次输入!\n")

}

}

else printf("查无此人,请确认后再次查询!\n")

printf("\n\n")

}

main(){

init()//数据初始化

printf("数据初始化结束!\n\n")

printf("------------------------------------------------\n\n")

char na[20]

char num

while(1){ // 7)该条语句的功能是什么?

//scanf("%s%c%c",na,&num,&num)// 8)此处的输入可不可以用这条语句?

printf("请输入学生的姓名和要查询成绩的科目代码(中间用一个空格隔开):\n(1 语文 2 数学 3 英语 4 物理 5 化学 a 所有科目成绩 q 退出)\n")

scanf("%s",na)

if(strcmp(na,"q")==0)break// 9)问什么要用这条语句strcmp(na,"q")==0?

scanf("%c%c",&num,&num) // 10)为什么用了两次&num?

search(na,num)

printf("------------------------------------------------\n\n")

printf("\n请输入新的查询:\n\n")

}

system("pause")

}

这是我以前的一个程序,你改改吧,应该很好改