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);
}