c学生综合成绩查询
1. 学生综合测评系统C程序源代码
要期沿简轨替束滔臣月
2. C语言编程 学生成绩管理(结构体数组、函数、指针、算法、流程结构及文件等的综合应用)
累死了...
不要以0为学号...
必须在该目录下新建"stud.dat",并输入一行 "0 test 0 0 0 0"
对于"对学生单科成绩排序,输出学生姓名与该科成绩",我建了一个菜单,以选择哪一科...
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
累死了...
不要以0为学号...
必须在该目录下新建"stud.dat",并输入一行 "0 test 0 0 0 0"
对于"对学生单科成绩排序,输出学生姓名与该科成绩",我建了一个菜单,以选择哪一科...
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
int num;
char name[20];
float score[4];
float average;
}stu[10000];
long t,max;
bool unpass[1000];
FILE *fstu=fopen("stud.dat","at+");
int init()
{
int no,i;
float s[4],ave;
char nam[20];
while (!feof(fstu))
{
fscanf(fstu,"%d",&no);
fscanf(fstu,"%s",nam);
fscanf(fstu,"%f%f%f%f",&s[1],&s[2],&s[3],&ave);
if (no>max) max=no;
stu[no].num=no;
strcpy(stu[no].name,nam);
unpass[no]=false;
for (i=1;i<=3;i++)
{
stu[no].score[i]=s[i];
if (s[i]<60) unpass[no]=true;
}
stu[no].average=ave;
}
}
int stuinsert()
{
int no,i;
float s[3],sum;
char nam[20],cha;
loop:printf("请输入学生的学号、姓名及三门课的成绩 \n");
scanf("%d",&no);
scanf("%s",nam);
scanf("%f%f%f/n",&s[1],&s[2],&s[3]);
if (no>max) max=no;
stu[no].num=no;
sum=0.0;
strcpy(stu[no].name,nam);
unpass[no]=false;
for (i=1;i<=3;i++)
{
stu[no].score[i]=s[i];
sum=sum+s[i];
if (s[i]<60) unpass[no]=true;
}
stu[no].average=sum/3.0;
fprintf(fstu,"\n");
fprintf(fstu,"%d %s %f %f %f %f\n",stu[no].num,stu[no].name,stu[no].score[1],stu[no].score[2],stu[no].score[3],stu[no].average);
}
int find(int x)
{
long i,no;
switch (x)
{
case 1:printf("请输入学号:");
scanf("%d",&no);
printf("%d %s %f %f %f %f\n",stu[no].num,stu[no].name,stu[no].score[1],
stu[no].score[2],stu[no].score[3],stu[no].average);
break;
case 2:for (i=1;i<=max;i++)
if (unpass[i]) printf("%d %s %f %f %f %f\n",stu[i].num,stu[i].name,stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].average);
break;
}
}
int sort(int x)
{
extern int headprint(int x);
student so[1000];
int i,j,k,n;
switch (x)
{
case 1:for (i=1;i<=max;i++)
if (stu[i].num==i)
printf("%d %s %f\n",i,stu[i].name,stu[i].average);
break;
case 2:n=0;
for (i=1;i<=max;i++)
{
j=1;
if (stu[i].num==i)
while ((so[j].average>stu[i].average)&&(j<=n)) j++;
n++;
for (k=n;k>=j;k--) so[k]=so[k-1];
so[j]=stu[i];
}
for (i=1;i<=n;i++) printf("%d %s %f %f %f %f\n",so[i].num,so[i].name,so[i].score[1],so[i].score[2],so[i].score[3],so[i].average);
break;
case 3:headprint(4);
}
}
int othersort(int x)
{
extern int headprint(int x);
student so[1000];
int i,j,k,n,q;
q=0;
switch (x)
{
case 1:if (q==0) q=1;
case 2:if (q==0) q=2;
case 3:if (q==0) q=3;
n=0;
for (i=1;i<=max;i++)
{
j=1;
if (stu[i].num==i)
while ((so[j].score[q]>stu[i].score[q])&&(j<=n)) j++;
n++;
for (k=n;k>=j;k--) so[k]=so[k-1];
so[j]=stu[i];
}
for (i=1;i<=n;i++) printf("%d %s %f\n",so[i].num,so[i].name,so[i].score[q]);
break;
}
}
int select(int x)
{
extern int headprint(int x);
int p;
switch (x)
{
case 1:scanf("%d",&p);
switch (p)
{
case 1:stuinsert();break;
case 2:headprint(2);break;
case 3:headprint(3);break;
case 4:t=0;break;
}
break;
case 2:scanf("%d",&p);
find(p);break;
case 3:scanf("%d",&p);
sort(p);break;
case 4:scanf("%d",&p);
othersort(p);break;
}
}
int headprint(int x)
{
switch (x)
{
case 1:printf("学生成绩管理系统\n");
printf("1、 成绩录入\n");
printf("2、 成绩查询\n");
printf("3、 成绩统计\n");
printf("4、 退出\n");
select(x);
break;
case 2:printf("1、 按学号查询学生记录\n");
printf("2、 查询不及格学生的记录\n");
select(x);
break;
case 3:printf("1、 计算学生的平均分\n");
printf("2、 根据学生的平均分高低,对学生的数据进行排序后输出\n");
printf("3、 对学生单科成绩排序,输出学生姓名与该科成绩\n");
select(x);
break;
case 4:printf("1、 第一科\n");
printf("2、 第二科\n");
printf("3、 第三科\n");
select(x);
break;;
}
}
int main()
{
max=0;
t=1;
init();
loop:headprint(1);
if (t!=0) goto loop;
}
3. c语言学生综合测评系统
根据复你提供的信息,思制路如下:
typedef struct{int id;...}student; //先根据学生信息定义结构体
student a{1,"张三",1,993902938,89,79,80,0};
某个学生综合测评总分= a.89*0.55+a.79*0.25+a.80*0.20;
double wg[NUM]; //将每个学生综合测评总分加入数组
再进行全班评比即对数组进行升序排序
4. 利用C语言开发一个“学生成绩综合管理系统”
#include<stdio.h>
#include<string.h>
#define N 50
#define M 3
struct student
{
int num;
char name[30];
float score[M+1]; //:给总成绩预留一个空间
}stu[N];
void print(char *fn)
void input()
{
FILE *fp;
char filename[30]="stu_list";
int i,j;
for(i=0;i<N;i++)
{
printf("请输入学生信息:学号 名字 各科成绩\n");
scanf("%d",&stu[i].num);
gets(stu[i].name);
for(j=0;j<M;j++)
scanf("%f",stu[i].score[j]);
getchar();
}
if((fp=fopen("stu_list","wb+"))==NULL)
{
printf("cannot open stu_list !\n");
exit(0);
}
fwrite(stu,sizeof(struct student),N,fp); //:将数据存入文件中
fclose(fp);
printf("数据输入结束!\n");
print(filename);
}
void seek(char name[]) //:按名字查找
{
FILE *fp;
int i,j;
if((fp=fopen("stu_list","rb"))==NULL)
{
printf("cannot open stu_list !\n");
exit(0);
}
fread(stu,sizeof(struct student),N,fp);//:从文件中读取数据
fclose(fp);
fof(i=0;i<N;i++)
if(strcmp(name,stu[i].name)==0)//:查找并核对所找学生,若找到则输出信息
{
puts(stu[i].name);
printf("%d",stu[i].num);
for(j=0;j<M;j++)
printf("%5f",stu[i].score[j]);
printf("\n");
break;
}
if(i==N) printf("查无此人!\n");//:找不到
}
void sort(int n) //:进行单科成绩排序
{
FILE *fp;
char filename[30]="stu_listdan";
int i,j;
struct student t;
if((fp=fopen("stu_list","rb"))==NULL)
{
printf("cannot open stu_list !\n");
exit(0);
}
fread(stu,sizeof(struct student),N,fp);
fclose(fp);
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(stu[i].score[n]<stu[j+1].score[n])
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
if((fp=fopen(filename,"wb"))==NULL)
{
printf("cannot open this file!\n");
exit(0);
}
fwrite(stu,sizeof(struct student),N,fp);
fclose(fp);
print(filename);
}
void choice()
{
int i,choice;
printf("请选择排序内容: \n");
printf("1: 单科排序 \n");
printf("2: 按总成绩排序 \n");
printf("0: 退出 \n");
printf("请选择: \n");
scanf("%d",&choice);
switch(choice)
{
case 1:printf("输入按哪门课程排序: \n");
scanf("%d",&i);
sort(i);
break;
case 2:sort(M);
break;
case 0:exit(0);
}
}
void print(char *fn)
{
FILE *fp;
int i,j;
if((fp=fopen(fn,"rb"))==NULL)
{
printf("cannot open this file!\n");
exit(0);
}
fread(stu,sizeof(struct student),N,fp);
fclose(fp);
for(i=0;i<N;i++)
{
printf("%d",stu[i].num);
printf("%s",stu[i].name);
for(j=0;j<m;j++)
printf("%5f",stu[i].score[j]);
printf("\n");
}
void sum()
{
FILE *fp;
char filename[20]="stu_listzong";
int i,j;
if((fp=fopen("stu_list","rb"))==NULL)
{
printf("cannot open stu_list!\n");
exit(0);
}
fread(stu,sizeof(struct student),N,fp);
fclose(fp);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
stu[i].score[M]=stu[i].score[M]+stu[i].score[j];
if((fp=fopen(filename,"wb"))==NULL)
{
printf("cannot open stu_listzong!\n");
exit(0);
}
fwrite(stu,sizeof(struct student),N,fp);
fclose(fp);
print(filename);
}
void main()
{
int select;
char s[30],filename[]="stu_list";
do
{
printf(" 学生成绩信息管理系统 \n");
printf(" 1: 成绩录入 \n ");
printf(" 2: 成绩查询 \n");
printf(" 3: 成绩排序 \n");
printf(" 4: 成绩管理 \n");
printf(" 5: 成绩输出 \n");
printf(" 0: 退出 \n");
printf(" 请选择: \n");
scanf("%d",&select);
getchar();
switch(select)
{
case 1:input();break;
case 2:printf("请输入姓名: \n");
gets(s);
seek(s);break;
case 3:choice();break;
case 4:sum();break;
case 5:print(filename);break;
case 0:exit(0);
}
}while(1);
}
有点仓促,不太和要求,你就借鉴一下吧 估计你会有思路的
5. c语言学生管理系统
我在写啊 等哈
6. 求学生综合测评C程序的源代码,在线等
这个你在网上搜索下就有的。内容太多了。
7. 学生综合测评管理系统C语言程序
#include <stdio.h>
#include <stdlib.h>
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 (!) {
printf("no enough memory for STU\n"); exit(0);
}
fin = fopen("score.txt","r");
for (i=0;i<N;i++){
fscanf(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;i<N-1;i++){
for (j=i+1;j<N;j++){
if (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;i<N;i++){
fprintf(fout,"%d %s %d %d %d %d\n",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);
}
8. 1.学生综合成绩统计工具 (用c语言编写)
晕死。不会做就网络找人做。。。还不如好好看看书,自己写出来,确实不会请教别人
9. 班级学生综合测评分数计算程序(C语言)
如果系统不支持中文,姓名要按英文输入,例如:
1 zhang_san 100 100 100 100
2 li_si 50 50 50 50
3 wang_wu 60 70 80 90
4 zhao_liu 70 70 80 90
----------------------------------
#include <stdio.h>
#include <stdlib.h>
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\n"); exit(0);
}
fin = fopen("score.txt","r");
for (i=0;i<N;i++){
fscanf(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;i<N-1;i++){
for (j=i+1;j<N;j++){
if (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;i<N;i++){
fprintf(fout,"%d %s %d %d %d %d\n",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);
}