精选问答
c编程、、、、、、、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、品德成绩、综合测评总分、综合测评名次。考试平均成绩、品德成绩分别占综合测评总分的80%,20%。A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序输入。 (2) 插入(修改)同学信息:提示:输入或修改同学信息。(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除该信息。(4)

2019-04-13

c编程、、、、、、、
学生综合测评系统
每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、品德成绩、综合测评总分、综合测评名次。考试平均成绩、品德成绩分别占综合测评总分的80%,20%。
A、学生信息处理
(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序输入。
(2) 插入(修改)同学信息:
提示:输入或修改同学信息。
(3) 删除同学信息:
提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除该信息。
(4) 查询学生信息:
   提示:输入查询条件(如学号、姓名等),显示该学生信息。
B、学生数据处理:
(1) 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
(2) 学生测评数据输入并计算综合测评总分及名次。
提示:综合测评总分=(考试成绩)*0.8 +品德成绩*0.2。
(3) 学生数据管理
提示:输入学号或姓名,显示该同学信息
(4) 学生数据的导入:
提示:从文件中导入学生的信息
(5) 学生数据的保存:
提示:将学生的信息存入到文件中。
C、学生综合信息输出
提示:输出学生信息到屏幕。
优质解答
#include
#include
typedef struct stu{
int id;
char name[40];
int mark[4];
float total;
} STU;
int id;
int m1,m2,m3,m4;
char str[40];
void main()
{
int i,j,N=0;
FILE *fin, *fout;
STU tmp;
STU *s;
fin = fopen("score.txt","r");
while (1){
if ( fscanf(fin,"%*d %*s %*d %*d %*d %*d") ==EOF) break;
N++;
}
fclose(fin);
s = (STU *) malloc(N * sizeof(STU));
if (!s) {
printf("no enough memory for STU"); exit(0);
}
fin = fopen("score.txt","r");
for (i=0;ifscanf(fin,"%d %s %d %d %d %d",&id,&str[0],&m1,&m2,&m3,&m4);
s[i].id = id;
strcpy(&s[i].name[0],str);
s[i].mark[0]= m1;
s[i].mark[1]= m2;
s[i].mark[2]= m3;
s[i].mark[3] = m4;
s[i].total = 0.2*m1 + 0.6*m2 + 0.5 * m3 + 0.15*m4;
}
fclose(fin);
for (i=0;ifor (j=i+1;jif (s[j].total > s[i].total){
tmp = s[j]; s[j]=s[i];s[i]=tmp;
};
};
};
fout = fopen("score_Q.txt","w");
for(i=0;ifprintf(fout,"%d %s %d %d %d %d",s[i].id,s[i].name,s[i].mark[0],s[i].mark[1],s[i].mark[2],s[i].mark[3]);
}
fclose(fout);
exit(0);
}
#include
#include
typedef struct stu{
int id;
char name[40];
int mark[4];
float total;
} STU;
int id;
int m1,m2,m3,m4;
char str[40];
void main()
{
int i,j,N=0;
FILE *fin, *fout;
STU tmp;
STU *s;
fin = fopen("score.txt","r");
while (1){
if ( fscanf(fin,"%*d %*s %*d %*d %*d %*d") ==EOF) break;
N++;
}
fclose(fin);
s = (STU *) malloc(N * sizeof(STU));
if (!s) {
printf("no enough memory for STU"); exit(0);
}
fin = fopen("score.txt","r");
for (i=0;ifscanf(fin,"%d %s %d %d %d %d",&id,&str[0],&m1,&m2,&m3,&m4);
s[i].id = id;
strcpy(&s[i].name[0],str);
s[i].mark[0]= m1;
s[i].mark[1]= m2;
s[i].mark[2]= m3;
s[i].mark[3] = m4;
s[i].total = 0.2*m1 + 0.6*m2 + 0.5 * m3 + 0.15*m4;
}
fclose(fin);
for (i=0;ifor (j=i+1;jif (s[j].total > s[i].total){
tmp = s[j]; s[j]=s[i];s[i]=tmp;
};
};
};
fout = fopen("score_Q.txt","w");
for(i=0;ifprintf(fout,"%d %s %d %d %d %d",s[i].id,s[i].name,s[i].mark[0],s[i].mark[1],s[i].mark[2],s[i].mark[3]);
}
fclose(fout);
exit(0);
}
相关问答