当前位置:首页 » 考试成绩 » 学生成绩管理系统前段设计

学生成绩管理系统前段设计

发布时间: 2020-12-30 11:24:55

1. 求学生成绩管理系统设计

你好贪呀,连概念结构设计和逻辑结构设计都要呀.在这里我给你讲一下设计思想好了.版
首先,你得选定一个权软件开发平台和工具.比如在windows平台,用delphi,vb 开发.
之后,选择数据库,如果单机版的话,请你用access,如果网络版的话用sql server.
然后对系统进行分析,之后开始设计.

其实对于学生成绩管理来说,成绩管理只是一方面,还要进行学生管理,教师管理,课程管理,成绩分析等等.成绩管理的前提是学生,教师,课程.在成绩管理之后还要考虑成绩分析,这是很重要的.一个管理信息系统(MIS)不光要对数据进行存储,处理,而且还要对数据进行分析,如果可以的话还要做出决策支持.
如果要做网络版的话,还得考虑一些网络方面的控制.
分析之后,如果要做到将来维护方便还得做成模块化,之后开始设计及编码.
这是一点介见,如果你将来要想干计算机编程这一行的话,那么,你就要自己来做,自己来分析和思考.这样才能进步.

2. 1. 学生成绩管理系统设计

可以通过Bai Hi通知我
有时间可能完成你所面临的任务
一样的要求也可能通知我

ES:\\
交易提醒:预付定金是诈骗

3. 简单的学生成绩管理系统的设计

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0; /* */
struct student
{
char num[10];/* 学号 */
char name[20];
char sex[10];
int cgrade;
int mgrade;
int egrade;
int totle;
int ave;
char neartime[10];/* 最近更新时间 */
};

typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;

void menu()
{
printf("********************************************************************************");
printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n");
printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n");
printf("\t5保存学生资料\t\t\t\t\t0退出系统\n");
printf("********************************************************************************\n");
}

void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong()
{
printf("\n=====>提示:输入错误!\n");
}

void Nofind()
{
printf("\n=====>提示:没有找到该学生!\n");
}

void printc() /* 本函数用于输出中文 */
{
printf(" 学号\t 姓名 性别 英语成绩 数学成绩 C语言成绩 总分 平均分\n");
}

void printe(Node *p)/* 本函数用于输出英文 */
{
printf("%-12s%s\t%s\t%d\t%d\t%d\t %d\t %d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);
}

Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */
{
Node *r;
if(strcmp(nameornum,"num")==0) /* 按学号查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r=r->next;
}
}
return 0;
}
void Add(Link l) /* 增加学生 */
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; /* 将指针置于最末尾 */
while(1)
{
printf("请你输入学号(以'0'返回上一级菜单:)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}
p=(Node *)malloc(sizeof(Node));
strcpy(p->data.num,num);
printf("请你输入姓名:");
scanf("%s",p->data.name);
getchar();
printf("请你输入性别:");
scanf("%s",p->data.sex);
getchar();
printf("请你输入c语言成绩:");
scanf("%d",&p->data.cgrade);
getchar();
printf("请你输入数学成绩:");
scanf("%d",&p->data.mgrade);
getchar();
printf("请你输入英语成绩:");
scanf("%d",&p->data.egrade);
getchar();
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle / 3;
/* 信息输入已经完成 */
p->next=NULL;
r->next=p;
r=p;
shoudsave=1;
}
}

void Qur(Link l) /* 查询学生 */
{
int sel;
char findmess[20];
Node *p;
if(!l->next)
{
printf("\n=====>提示:没有资料可以查询!\n");
return;
}
printf("\n=====>1按学号查找\n=====>2按姓名查找\n");
scanf("%d",&sel);
if(sel==1)/* 学号 */
{
printf("请你输入要查找的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else if(sel==2) /* 姓名 */
{
printf("请你输入要查找的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();

}

void Del(Link l) /* 删除 */
{
int sel;
Node *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以删除!\n");
return;
}
printf("\n=====>1按学号删除\n=====>2按姓名删除\n");
scanf("%d",&sel);
if(sel==1)
{
printf("请你输入要删除的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else if(sel==2)
{
printf("请你输入要删除的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}

void Modify(Link l)
{
Node *p;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以修改!\n");
return;
}
printf("请你输入要修改的学生学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("请你输入新学号(原来是%s):",p->data.num);
scanf("%s",p->data.num);
printf("请你输入新姓名(原来是%s):",p->data.name);
scanf("%s",p->data.name);
getchar();
printf("请你输入新性别(原来是%s):",p->data.sex);
scanf("%s",p->data.sex);
printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade);
scanf("%d",&p->data.cgrade);
getchar();
printf("请你输入新的数学成绩(原来是%d分):",p->data.mgrade);
scanf("%d",&p->data.mgrade);
getchar();
printf("请你输入新的英语成绩(原来是%d分):",p->data.egrade);
scanf("%d",&p->data.egrade);
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle/3;
printf("\n=====>提示:资料修改成功!\n");
shoudsave=1;
}
else
Nofind();

}

void Disp(Link l)
{
int count=0;
Node *p;
p=l->next;

if(!p)
{
printf("\n=====>提示:没有资料可以显示!\n");
return;
}
printf("\t\t\t\t显示结果\n");
printstart();
printc();
printf("\n");
while(p)
{
printe(p);
p=p->next;
}
printstart();
printf("\n");
}

void Tongji(Link l)
{
Node *pm,*pe,*pc,*pt,*pa; /* 用于指向分数最高的接点 */
Node *r=l->next;
if(!r)
{
printf("\n=====>提示:没有资料可以统计!\n");
return ;
}
pm=pe=pc=pt=pa=r;
while(r!=NULL)
{
if(r->data.cgrade>=pc->data.cgrade)
pc=r;
if(r->data.mgrade>=pm->data.mgrade)
pm=r;
if(r->data.egrade>=pe->data.egrade)
pe=r;
if(r->data.totle>=pt->data.totle)
pt=r;
if(r->data.ave>=pa->data.ave)
pa=r;

r=r->next;
}
printf("------------------------------统计结果--------------------------------\n");
printf("总分最高者:\t%s %d分\n",pt->data.name,pt->data.totle);
printf("平均分最高者:\t%s %d分\n",pa->data.name,pa->data.ave);

printf("英语最高者:\t%s %d分\n",pe->data.name,pe->data.egrade);
printf("数学最高者:\t%s %d分\n",pm->data.name,pm->data.mgrade);
printf("c语言最高者:\t%s %d分\n",pc->data.name,pc->data.cgrade);
printstart();
}

void Sort(Link l)
{
Link ll;
Node *p,*rr,*s;

ll=(Link)malloc(sizeof(Node)); /* 用于做新的连表 */
ll->next=NULL;

if(l->next==NULL)
{
printf("\n=====>提示:没有资料可以排序!\n");
return ;
}
p=l->next;
while(p)
{
s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息 */
s->data=p->data;
s->next=NULL;

rr=ll;
while(rr->next!=NULL && rr->next->data.totle>=p->data.totle)
rr=rr->next;
if(rr->next==NULL)
rr->next=s;
else
{
s->next=rr->next;
rr->next=s;
}
p=p->next;
}
free(l);
l->next=ll->next;
printf("\n=====>提示:排序已经完成!\n");
}

void Save(Link l)
{
FILE* fp;
Node *p;
int flag=1,count=0;
fp=fopen("c:\\student","wb");
if(fp==NULL)
{
printf("\n=====>提示:重新打开文件时发生错误!\n");
exit(1);
}
p=l->next;

while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count);
shoudsave=0;
}
fclose(fp);
}

int main()
{
Link l;/* 连表 */
FILE *fp; /* 文件指针 */
int sel;
char ch;
char jian;

int count=0;
Node *p,*r;

l=(Node*)malloc(sizeof(Node));
l->next=NULL;
r=l;

fp=fopen("C:\\student","rb");
if(fp==NULL)
{
printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
fp=fopen("C:\\student","wb");
else
exit(0);
}
printf("\n=====>提示:文件已经打开,正在导入记录......\n");

while(!feof(fp))
{
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
}

fclose(fp); /* 关闭文件 */
printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);

while(1)
{
menu();
printf("请你选择操作:");
scanf("%d",&sel);

if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(l);
}
printf("\n=====>提示:你已经退出系统,再见!\n");
break;
}
switch(sel)
{
case 1:Add(l);break; /* 增加学生 */
case 2:Del(l);break;/* 删除学生 */
case 3:Qur(l);break;/* 查询学生 */
case 4:Modify(l);break;/* 修改学生 */
case 5:Save(l);break;/* 保存学生 */
case 9:printf("\t\t\t==========帮助信息==========\n");break;
default: Wrong();getchar();break;
}
}
system("pause");
return 0;
}

4. 学生成绩管理系统的设计与实现

给一个我以前写过的吧,功能应该差不多#include #include #include #include #include #include #include #include #include using namespace std;/*定义学生结构体*/struct Student{ char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Average;};/*声明学生数组及学生数量*/struct Student students[1000];int num=0; /*求平均值*/float Avg(struct Student stu){ return (stu.Mark1+stu.Mark2+stu.Mark3)/3;} /*通过学号返回数组下标*/int Student_SearchByIndex(char id[]){ int i; for (i=0;i

5. 如何设计一个学生成绩管理系统

这个我以前做过的,
登陆界面要分2种情况,第一个是管理员登陆
第二个是学生登陆,要设定权限

管理员可以对学生进行管理,可以对学生的成绩进行增删改查的管理。
也可以对学生的信息进行操作,可以增加科目,可以注册学生,可以编辑学生所在的班级,以及班主任姓名。

学生界面的话,这个权限就很少了,可以查询自己的各科成绩。你可以把这个查询做的丰富一点。比如按科目查询,可以做模糊查询。可以查询本次考试的最高分等等。
因为这个系统比较简单,所以没什么好说的,
数据库我用的是sqlserver,表结构你可以自己想想啊,全说明了就没意思了。
希望对你能有帮助

6. 设计一个简单的学生成绩管理系统,

我没写,只能和你说说怎么写。
可以由类模板和数组写。
我说说类模板的吧。
定义一个Student类存放学生信息(姓名,初始排名,各科成绩,个人总分);
初始排名由输入顺序排,在计算名字的时候就可以通过冒泡排序。
在里面定义计算总分的函数。
下面定义一个Caozuo类,用学生链表的做。你可以去找下这个例子。
数组的就很简单了,你只要想想。先定义数组(姓名,成绩),总分就是个人每科成绩的和,下面5个函数都可以通过数组遍历实现。如
cout<<"请输入你要查询的学生的名字:"<<endl;
cin>>n;
for(int i=0;i<=Maxsize;i++)
{
if(Student[i].name==n)
Student[i].Print();
}

7. 学生成绩管理系统有什么设计原则

#包括
包括
结构学生{
诠释身份证;
字符名称[10];
诠释年龄
>字符性[10];
字符张谷[20];
整数分殊;
字符专业户[50];
} ST [50];
我= 0;
无效淑如(){
烧焦了;
做{
printf的(“\ n请输入学号:”);
scanf函数( “%d”,&ST [i]的ID);
fflush(stdin)中;
printf的(“\ n请输入你的名字:”);
获取(ST [I]名);
printf的(“\ n”);
printf的(“请输入年龄:”);
scanf的(“为%d”,&ST [i]的年龄); printf(“请\ n请输入性别:”);
得到(ST [I]。性);

fflush(stdin)中
fflush(stdin)中;
printf的(“\ n请输入院系:”);
得到(ST [I]。张谷);
printf的(“\ n请输入成绩:”);
scanf的(“%D”,ST [I]。分殊);
fflush(stdin)中;
printf的(“\ n请输入一个专业:);
获得(ST [I]。专业户);
printf的(“\ n是否继续输入学生信息?(Y / N)”);
fflush(stdin)中;
= getchar函数();
+ +;
}(A =='Y'&& <= 50);

}

BR />无效仙师()
年龄{
诠释;
printf的(“\ t学号\ t姓名\ t \ t性别\ t学院\ T专业\ T分数的\ n“);
为(J = 0; <; + +)
printf的(”\ t%D \ T%S \ T%D \ T%S \ t%的小号\ t%d \ t其中%s \ n“,
ST [J]。身份证,ST [J]。名称,ST [J]。年龄,ST [J]。性别,ST张谷[J]。 ,ST [J]。分殊,ST [J]。专业户);
}

无效叉着()
{
INT M
字符名称[20],B;

{
printf的(“\ n请输入要发现学生的姓名:”);
fflush(stdin)中;
获取(名称);
为(M = 0,M <I,M + +)
{
(STRCMP(名,ST [M]。名)== 0)
{
printf的(“\ n \你在位置%d的学生发现!!\ n”;,M +1); BR />打破;
}
}
(M> = 20)
printf的(“\ n \ t没有找到这个学生!\ n”); />其他
{
printf的(“学生编号性别年龄教师专业成绩”);
printf的(“\ t%D \ T%S \ T%D \ T%\吨%S \ T%d \ t其中%s \ n“,
ST [M]。身份证,ST [M]。名称,ST [M]。年龄,ST [M]。性别,ST [M]。张谷,ST [M]。分殊,ST [M]。专业户);
}
printf的(“\ n能否找到另一种是学生吗?(Y / N)”);
> fflush(stdin)中
B = getchar函数();

}而(B =='Y');

}
a>
无效闪出()
{
字符名称[20],C;
整数A,B;

{
输出(“\ n请输入你要删除的学生姓名:\ n”);
fflush(stdin)中
获取(名称);
(A = 0; <我一个+ +)
{
(STRCMP(名称,ST [A]。名)== 0)
打破;
}
/ a>(B = A,B <I,B + +)
ST [B] = ST [+1];
(A>;我)
printf的(“ \ T没有找到这名学生!!\ n“);

其他
{
-
仙师();
} BR />
printf的(“\ n是否继续删除另一名学生的信息?(Y / N)”);
fflush(stdin)中;
C = getchar函数(); BR />},而(C =='Y');

}

无效charu()

淑如( );

}

廉政的main()
{
诠释改变;
做{
系统(“CLS”);
printf的(“========================的====学生信息管理系统==== =============================== \ n“);
printf的(”\ t \ t:输入学生信息\ n“);
printf的(”\ t \ t:学生信息\ n“);
printf的(”
\ t \ t:查找学生信息\ n“);的printf (“\ t \ t:删除学生信息\ n”);
printf的(“\ t \ t五:插入学生信息\ n”);
printf的(“\ t \ t VI:退出程序\ n“);
fflush(stdin)中;
printf的(”\ t \ t请输入选项:);
scanf的(“%d”,&的变化);切换(改变)

{
案件1:
淑如();突破;
案例2:
仙师()突破;
案例3:
的叉着();突破;
情况4:
闪出();突破;
情况下,5:
charu();休息;
案例6:
突破;

}

}(change! = 6);
系统(“暂停”);
返回0;
}

,正如约瑟夫链表是相对简单的,你拿去做可以做到这一点。

8. 学生成绩管理系统(C语言)的设计方法论述

程序设计的基本目标是用算法对问题的原始数据进行处理,从而获得所期望的效果。但这仅仅是程序设计的基本要求。要全面提高程序的质量,提高编程效率,使程序具有良好的可读性、可靠性、可维护性以及良好的结构,编制出好的程序来,应当是每位程序设计工作者追求的目标。而要做到这一点,就必须掌握正确的程序设计方法和技术。而C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。所以采用结构化程序设计方法,对管理系统进行自顶向下,逐步细化,模块化设计.

对题目的需求分析得出:管理系统对学生的成绩信息进行管理,学生信息包括:学号、姓名、学期、每门课程的成绩、平均成绩、名次。实现:学生信息的录入;修改;删除和查询,按学期、学号、姓名等查询。
而对输入的学生成绩正确的计算了平均分、最高分、最低分、统计了不及格情况及各分数段的人数。并按要求的格式正确打印.
【功能函数设计】
这个程序比较烦琐,要求计算平均分,还要算最高分、最低分、统计不及格人数和按不同科目的分数顺序输出,如果每一个都写一个函数,程序会非常的大,同时效率也不是很高。在此用的应该是一种比较好的方法,此处用到了以下几个函数:
输入函数:
void input (mark *s)/*数据输入函数*/
输出函数:
void print (mark *p)/*输出学生的记录的函数*/
void den(mark *p,mark *q,int *m)/*该函数的功能是将第一个的记录赋给第二个*/
此函数是为后面的sign函数的调用,把一个人的信息存在一个链表中,
void converse (mark *s,fsp *q)/*将学生的记录转放到中间变量q中*/
此函数实现的功能是把数学,英语,计算机的个作为一个链表存储在一起,为后面的过程更简便。
void sign(mark *s,mark *a,mark *b,mark *c,mark *d,fsp *q)
此函数的功能是对学生的各科成绩及平均分进行排序。
void count(mark *s) /*统计各科平均分 各科的最高(低)分及各分数段的人数*/
void found(mark *s)/*输入学生的学号查询学生的成绩情况*/

(1) 程序清单
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define N 7 /*学生的人数*/
typedef struct
{
char num[5];
char name[10]; /*记录姓名和学号*/
float math,english,comput,average; /*各个科目及平均分*/
}mark; /*定义学生记录结构体类型*/
typedef struct
{
float fen[4];
int n;
}fsp;/*定义学生记录转化的中间变量*/
void input (mark *s)/*数据输入函数*/
{
int i;
mark *p;
printf("请输入每个学生的记录\n");
for(i=0,p=s;i<N;i++,p++)
{
scanf("%s%s%f%f%f",p->num,p->name,&p->math,&p->english,&p->comput);
p->average=(p->math+p->english+p->comput)/3;
}
}
void print (mark *p)/*输出学生的记录的函数*/
{
int i;
mark *s;
for(i=0,s=p;i<N;i++,s++)
printf("%s %s %.1f %.1f %.1f %.1f\n", s->num,s->name,s->math,s->english,s->comput,s->average);
}
void den(mark *p,mark *q,int *m)/*该函数的功能是将第一个的记录赋给第二个*/
{
int i; /*m中存放学生的位序号(按成绩排序)*/
for(i=0;i<N;i++)
{ strcpy((q+i)->num,(p+*(m+i))->num);
strcpy((q+i)->name,(p+*(m+i))->name);
(q+i)->math=(p+*(m+i))->math;
(q+i)->english=(p+*(m+i))->english;
(q+i)->comput=(p+*(m+i))->comput;
(q+i)->average=(p+*(m+i))->average;
}
}
void converse (mark *s,fsp *q)/*将学生的记录转放到中间变量q中*/
{
fsp *p;
int i;
for(i=0,p=q;i<N;i++,p++)
{ p->n=i;
*(p->fen)=(s+i)->math;
*(p->fen+1)=(s+i)->english;
*(p->fen+2)=(s+i)->comput;
*(p->fen+3)=(s+i)->average;
}
}
void sign(mark *s,mark *a,mark *b,mark *c,mark *d,fsp *q)
{ /*对学生的各科成绩及平均分进行排序*/
int t[N],i,j,k,x,n;/*t中存放学生的位序号(按成绩排序)*/
float temp;/*排序过程中的中间变量 */
for(i=0;i<4;i++)/*i的不同指向不同的科目及平均成绩 */
{ for(j=0;j<N;j++)
{ temp=*((q+j)->fen+i); x=j;/*初始化中间变量*/
for(k=j+1;k<N;k++)
if( *((q+k)->fen+i)<temp )
{ x=k; temp=*((q+k)->fen+i);}
if(x!=j)
{ temp=*((q+j)->fen+i);
*((q+j)->fen+i)=*((q+x)->fen+i);
*((q+x)->fen+i)=temp;
n=(q+j)->n; (q+j)->n=(q+x)->n; (q+x)->n=n;
}/*交换两变量 */
t[j]=(q+j)->n;
}
switch(i)
{ case 0: den(s,a,t);break;
case 1: den(s,b,t);break;
case 2: den(s,c,t);break;
case 3: den(s,d,t);break;
}
}
}
void count(mark *s)/*统计各科平均分 各科的最高(低)分及各分数段的人数*/
{
float ave[3]={0};/*存放各科平均分 */
float m[3][2] ;
int num[3][5]={0};/*存放各分数段的人数*/
int i;
m[0][1]=m[0][0]=s->math;
m[1][0]=m[1][1]=s->english;
m[2][0]=m[2][1]=s->comput;
for(i=0;i<N;i++)
{ ave[0]+=(s+i)->math;
ave[1]+=(s+i)->english;
ave[2]+=(s+i)->comput;
if( (s+i)->math > m[0][0] )
m[0][0]=(s+i)->math;
else if( (s+i)->math < m[0][1] )
m[0][1]=(s+i)->math;
if( (s+i)->english > m[1][0] )
m[1][0]=(s+i)->english;
else if( (s+i)->english < m[1][1] )
m[1][1]=(s+i)->english;

if( (s+i)->comput > m[2][0] )
m[2][0]=(s+i)->comput;
else if( (s+i)->comput < m[2][1] )
m[2][1]=(s+i)->comput;
/*统计各科的最高(低)分*/
if((s+i)->math<60.0)
num[0][0]++;
else if((s+i)->math<70.0)
num[0][1]++;
else if((s+i)->math<80.0)
num[0][2]++;
else if((s+i)->math<90.0)
num[0][3]++;
else num[0][4]++;
/*统计数学各分数段的人数*/
if((s+i)->english<60.0)
num[1][0]++;
else if((s+i)->english<70.0)
num[1][1]++;
else if((s+i)->english<80.0)
num[1][2]++;
else if((s+i)->english<90.0)
num[1][3]++;
else num[1][4]++;
/*统计英语各分数段的人数*/
if((s+i)->comput<60.0)
num[2][0]++;
else if((s+i)->comput<70.0)
num[2][1]++;
else if((s+i)->comput<80.0)
num[2][2]++;
else if((s+i)->comput<90.0)
num[2][3]++;
else num[2][4]++;
/*统计计算机各分数段的人数 */
}
for(i=0;i<3;i++)
ave[i]=ave[i]/N;
printf("三门科的平均分分别为:\n%.1f %.1f %.1f\n",ave[0],ave[1],ave[2]);
printf("三门科的最高分与最底分分别为:\n");
printf("%.1f %.1f\n%.1f %.1f\n%.1f %.1f\n",
m[0][0],m[0][1],m[1][0],m[1][1],m[2][0],m[2][1]);
printf("三门科不及格 60-69 70-79 80-89 90分以上的人数分别为:\n");
printf("数学: %3d%5d%6d%6d%4d\n",num[0][0],num[0][1],num[0][2],num[0][3],num[0][4]);
printf("英语: %3d%5d%6d%6d%4d\n",num[1][0],num[1][1],num[1][2],num[1][3],num[1][4]);
printf("计算机:%3d%5d%6d%6d%4d\n",num[2][0],num[2][1],num[2][2],num[2][3],num[2][4]);
}
void found(mark *s)/*输入学生的学号查询学生的成绩情况*/
{
char a[10];/*接受输入的学号*/
int flag,i;/*循环变量*/
char * b="exit";
do
{ flag=0;
printf("请输入所要查询的学生的学号或姓名\n");
getchar();
gets(a);
for(i=0;i<N;i++)
if(strcmp(a,(s+i)->num)==0 || strcmp(a,(s+i)->name)==0 )
{printf("该生的学号,姓名,各门课程及平均成绩为:\n%s %s %.1f %.1f %.1f %.1f\n"
,(s+i)->num,(s+i)->name,(s+i)->math,(s+i)->english,(s+i)->comput,(s+i)->average);/*成绩打印*/
flag=1;}
if(flag==0) printf("查无此人\n");
}while(strcmp(a,b));
printf("查询结束");
}
main()
{
mark *s,*a,*b,*c,*d;
fsp *p;
s=(mark*)malloc(N*sizeof(mark));
a=(mark*)malloc(N*sizeof(mark));
b=(mark*)malloc(N*sizeof(mark));
c=(mark*)malloc(N*sizeof(mark));
d=(mark*)malloc(N*sizeof(mark));
p=(fsp*)malloc(N*sizeof(fsp));/*各变量空间开辟 */
input(s);
printf("初始化学生的记录为:\n");
print(s);
converse(s,p);
sign(s,a,b,c,d,p);
printf("按数学成绩排序学生的记录为:\n");
print(a);
printf("按英语成绩排序学生的记录为:\n");
print(b);
printf("按计算机成绩排序学生的记录为:\n");
print(c);
printf("按平均成绩排序学生的记录为:\n");
print(d);
count(s);
found(s);
getch();
}

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919