永发信息网

求C语言 “成绩管理系统”中的查询学生成绩,一种是按性别查询,一种是按成绩分布区间查询。急,在线等!

答案:2  悬赏:80  手机版
解决时间 2021-02-15 21:32
  • 提问者网友:浩歌待明月
  • 2021-02-15 11:22
求C语言 “成绩管理系统”中的查询学生成绩,两种模式,一种是按性别查询,并统计人数输出;一种是按成绩分布区间查询,并统计人数输出。 急,在线等!~谢各位大神了~
最佳答案
  • 五星知识达人网友:廢物販賣機
  • 2021-02-15 12:23
改过来了现在这些程序(不包括你没上传的)已经过60了#include "stdio.h"#include "string.h"#include "stdlib.h"#define N 2struct Student{ char num[10];char name[8];int Chinese;int math; int English; float average;};typedef struct Student Student;void notes (Student *stu);void sort(Student *stu);void main(){Student stu[N];int i;printf("\n——————————————————————学生成绩管理系统——————————————————————\n");for(i=0;i
全部回答
  • 1楼网友:長槍戰八方
  • 2021-02-15 13:05

#include <malloc.h> #include <stdio.h> #include <stdlib.h> #define len sizeof(struct scorenode) #define debug #include <string.h> struct scorenode {int number; char name[10]; float yuwen; float yingyu; float shuxue; struct scorenode *next; }; typedef struct scorenode score; int n,k; score *creat2311(void) { score*head; score *p1,*p2,*p3,*max; int i,j; float fen; char t[10]; n=0; p1=p2=p3=(score *)malloc(len);head=p3; printf("请输入学生资料,输0退出!\n"); repeat1: printf("请输入学生学号(学号应大于0):"); scanf("%d",&p1->number); while(p1->number<0) {getchar(); printf("输入错误,请重新输入学生学号:"); scanf("%d",&p1->number);} if(p1->number==0) goto end; else { p3=head; if(n>0) {for(i=0;i<n;i++) {if(p1->number!=p3->number) p3=p3->next; else {printf("学号重复,请重输!\n"); goto repeat1; } } } } printf("请输入学生姓名:"); scanf("%s",&p1->name); printf("请输入语文成绩(0~100):"); scanf("%f",&p1->yuwen); while(p1->yuwen<0||p1->yuwen>100) {getchar(); printf("输入错误,请重新输入语文成绩"); scanf("%f",&p1->yuwen);} printf("请输入英语成绩(0~100):"); scanf("%f",&p1->yingyu); while(p1->yingyu<0||p1->yingyu>100) {getchar(); printf("输入错误,请重新输入英语成绩"); scanf("%f",&p1->yingyu);} printf("请输入数学成绩(0~100):"); scanf("%f",&p1->shuxue); while(p1->shuxue<0||p1->shuxue>100) {getchar(); printf("输入错误,请重新输入数学成绩"); scanf("%f",&p1->shuxue);} head=null; while(p1->number!=0) { n=n+1; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(score *)malloc(len); printf("请输入学生资料,输0退出!\n"); repeat2:printf("请输入学生学号(学号应大于0):"); scanf("%d",&p1->number); while(p1->number<0) {getchar(); printf("输入错误,请重新输入学生学号:"); scanf("%d",&p1->number);} if(p1->number==0) goto end; else { p3=head; if(n>0) {for(i=0;i<n;i++) {if(p1->number!=p3->number) p3=p3->next; else {printf("学号重复,请重输!\n"); goto repeat2; } } } } printf("请输入学生姓名:"); scanf("%s",&p1->name); printf("请输入语文成绩(0~100):"); scanf("%f",&p1->yuwen); while(p1->yuwen<0||p1->yuwen>100) {getchar(); printf("输入错误,请重新输入语文成绩"); scanf("%f",&p1->yuwen);} printf("请输入英语成绩(0~100):"); scanf("%f",&p1->yingyu); while(p1->yingyu<0||p1->yingyu>100) {getchar(); printf("输入错误,请重新输入英语成绩"); scanf("%f",&p1->yingyu);} printf("请输入数学成绩(0~100):"); scanf("%f",&p1->shuxue); while(p1->shuxue<0||p1->shuxue>100) {getchar(); printf("输入错误,请重新输入数学成绩"); scanf("%f",&p1->shuxue);} }

end: p1=head; p3=p1; for(i=1;i<n;i++) { for(j=i+1;j<=n;j++) { max=p1; p1=p1->next; if(max->number>p1->number) { k=max->number; max->number=p1->number; p1->number=k; strcpy(t,max->name); strcpy(max->name,p1->name); strcpy(p1->name,t); fen=max->yuwen; max->yuwen=p1->yuwen; p1->yuwen=fen; fen=max->yingyu; max->yingyu=p1->yingyu; p1->yingyu=fen; fen=max->shuxue; max->shuxue=p1->shuxue; p1->shuxue=fen; }

} max=head;p1=head; } p2->next=null; printf("输入的学生数为:%d个!\n",n); return(head);

} score *load2311(score *head) { score *p1,*p2; int m=0; char filepn[10]; file *fp; printf("请输入文件路径及文件名:"); scanf("%s",filepn); if((fp=fopen(filepn,"r+"))==null) { printf("不能打开文件!\n"); return 0; } fscanf(fp," 考试成绩管理系统 \n"); fscanf(fp,"作者:周纯钢 班级: 信息023 学号:11 \n"); fscanf(fp,"-----------------------------------------\n"); fscanf(fp,"|学号\t|姓名\t|语文\t|英语\t|数学\t|\n"); fscanf(fp,"-----------------------------------------\n"); printf(" 考试成绩管理系统 \n"); printf(" 作者:周纯钢 班级: 信息023 学号:11 \n"); printf("-----------------------------------------\n"); printf("|学号\t|姓名\t|语文\t|英语\t|数学\t|\n"); printf("-----------------------------------------\n"); m=m+1; if(m==1) { p1=(score *)malloc(len); fscanf(fp,"%d%s%f%f%f",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue); printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue); head=null; do { n=n+1; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(score *)malloc(len); fscanf(fp,"%d%s%f%f%f\n",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue); printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue); }while(!feof(fp)); p2->next=p1; p1->next=null; n=n+1; }printf("-----------------------------------------\n"); fclose(fp); return (head); }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯