用c语言编写一个成绩管理系统_c语言成绩管理系统

2020-02-29 其他范文 下载本文

用c语言编写一个成绩管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言成绩管理系统”。

程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:(1)主菜单 学生成绩管理系统

1、成绩录入

2、成绩查询

3、成绩统计

4、退出(2)各菜单项功能 ① 成绩录入:输入学生的学号、姓名及三门课的成绩; ② 成绩查询:(至少一种查询方式)。v 按学号查询学生记录。v 查询不及格学生的记录。③成绩统计: v 计算学生的平均分; v 根据学生的平均分高低,对学生的数据进行排序后输出; v 对学生单科成绩排序,输出学生姓名与该科成绩; ④退出系统:退出整个系统(即主菜单)。(3)结构体数组: #define N 30 struct student {int num;/* 定义学号*/

char name[20];/* 定义姓名*/

float score[3];/* 定义存贮三门课成绩的数组*/

float average;/* 定义平均成绩*/

};struct student stu[N];/* 定义结构体数组,存贮多个学生的记录*/

.#include

#include

#include

struct student

{ int num;char name[20];

float score[4];

float average;

}

stu[10000];

long t,max;

bool unpa[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);

unpa[no]=false;f

or(i=1;i

{

stu[no].score[i]=s[i];

if(s[i]

unpa[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);

unpa[no]=false;

for(i=1;i

{

stu[no].score[i]=s[i];

sum=sum+s[i];

if(s[i]

unpa[no]=true;

}

stu[no].average=sum/3.0;

fprintf(fstu,“n”);

fprintf(fstu,“%d %s %f %f %f %fn”,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 %fn”,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

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

break;

case 2:n=0;

for(i=1;i

{

j=1;if(stu[i].num==i)

while((so[j].average>stu[i].average)&&(j

j++;n++;

for(k=n;k>=j;k--)so[k]=so[k-1];so[j]=stu[i];

}

for(i=1;i

printf(“%d %s %f %f %f %fn”,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

{

j=1;

if(stu[i].num==i)

while((so[j].score[q]>stu[i].score[q])&&(j

j++;

n++;

for(k=n;k>=j;k--)

so[k]=so[k-1];

so[j]=stu[i];

}

for(i=1;i

printf(“%d %s %fn”,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”);

5printf(“

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;

}

《用c语言编写一个成绩管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
用c语言编写一个成绩管理系统
点击下载文档
相关专题 c语言成绩管理系统 语言 成绩管理系统 c语言成绩管理系统 语言 成绩管理系统
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文