C语言实现简单的成绩管理功能
某专业学生成绩信息存储在D盘根目录下,文件名为info.txt,规定学生人数不超过1000,如果学生单科成绩小于60,或总分小于210,则为考试没通过。下面有一个示例。
文件示例:D盘下面文件 info.txt
运行结果:
#include <stdio.h>
struct info {
char name[100];
int scores[3];
}info[1000];
int main(int argc, char const *argv[])
{
int count,notpass=0,i=0;
FILE *fp;
if(argc!=1)
{
printf("Error format,Usage:display filenamel\n");
return;
}
if((fp=fopen("d:\\info.txt","r"))==NULL)
{
printf("The file can not be opened.\n");
return;
}
while(!feof(fp))
{
fscanf(fp,"%s%d%d%d",info[i].name,&info[i].scores[0],&info[i].scores[1],&info[i].scores[2]);
i++;
}
count=i;
fclose(fp);
printf("所有学生信息如下\n");
i=0;
while(i<count)
{
printf("name:%-15s math:%-5d computer:%-5d english:%-5d\n",info[i].name,info[i].scores[0],info[i].scores[1],info[i].scores[2]);
i++;
}
printf("以下学生没有通过考试\n");
for(i=0;i<count;i++)
{
if(info[i].scores[0]<60||info[i].scores[1]<60||info[i].scores[2]<60||info[i].scores[0]+info[i].scores[1]+info[i].scores[2]<210)
{
printf("%s\n",info[i].name);
notpass++;
}
}
printf("没有通过考试的人数:%d\n",notpass);
return 0;
}