您的当前位置:首页班级成绩管理系统C语言

班级成绩管理系统C语言

2023-02-25 来源:乌哈旅游


大理学院数学与计算学院

《C语言课程设计》设计报告

题目名称:班级成绩管理系统

班级:2011级通信工程1班 学号:********** 姓名:***

一、 功能介绍

1,本系统采用一个结构体数组,每个数据的结构包括:学号、姓名、M门课程名称。

2,本程序具有:(1)成绩录入(2)成绩显示(3)成绩删除(4)成绩排序、统计(5)退出系统

二、总体设计 2.1功能模块设计

1、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。 2、本系统显示这样的菜单:

请选择系统功能项:

a、成绩录入

b、

成绩显示

c、成绩排序(平均分排序) d、成绩修改 e、成绩统计

(1) 显示每门课程成绩最高的学生的基本信息 (2) 显示每门课程的平均成绩

(3) 显示超过某门课程平均成绩的学生人数

f、退出系统

3、执行一个具体的功能之后,程序将重新显示菜单。

2.2 算法或流程图设计

(请见最后一页附图)

三、功能模块的实现 3.1 函数调用关系图

统模块图如下:

主函数

主界面

录显删查 排统退入示除询 序计出功功功功 功功功能 能 能 能 能 能 能

3.2 功能实现代码

#include \"stdio.h\" #include \"stdlib.h\"

struct Student { char num[10]; /*学号*/ char name[15];

/*姓名*/

char xueyuan[15]; /*学院*/ char banji[15]; /*班级*/ int cgrade; /*C语言成绩*/ int mgrade; /*数学成绩*/ int egrade; /*英语成绩*/ int total; /*总分*/ float ave;

/*平均分*/

};

//主菜单界面

====================================================================================================================================== void menu() {

// system(\"cls\"); /*调用DOS命令,清屏*/ printf(\"\\n

学生成绩管理系统\\n\\n\\n\");

printf(\" *************************主菜单******************************\\n\"); printf(\" * 1 创建学生信息 2 插入学生信息 *\\n\"); printf(\" * 3 删除学生信息 4 修改学生信息 *\\n\"); printf(\" * 5 按学号排序 6 查询学生信息 *\\n\"); printf(\" * 7 按总分排序 8 学生信息整理 *\\n\"); printf(\" * 9 保存学生信息 0 退出系统 *\\n\"); printf(\" *************************************************************\\n\");

}

void input(Student s[])//成绩输入 { int i,j; for(i=0;i<3;i++) {

printf(\"请输入学号:\"); scanf(\"%s\",s[i].num);

printf(\"\\n\");

printf(\"请输入姓名:\"); scanf(\"%s\",s[i].name); printf(\"\\n\");

printf(\"请输入学院:\");

scanf(\"%s\",s[i].xueyuan);

printf(\"\\n\");

printf(\"请输入班级:\"); scanf(\"%s\",s[i].banji);

printf(\"\\n\");

printf(\"请输入C语言:\"); scanf(\"%s\",s[i].cgrade);

printf(\"\\n\");

printf(\"请输入数学:\"); scanf(\"%s\",s[i].mgrade);

printf(\"\\n\");

printf(\"请输入英语:\"); scanf(\"%s\",s[i].egrade);

printf(\"\\n\");

printf(\"请输入总分:\"); scanf(\"%s\",s[i].total);

printf(\"\\n\");

printf(\"请输入平均分:\"); scanf(\"%s\",s[i].ave); printf(\"\\n\"); }

void xianshi(Student s[])//成绩显示 {

int i,j; for(i=0;i<3;i++)

{ printf(\"%s,\s[i].num);

printf(\"%s,\s[i].name); printf(\"%s,\s[i].xueyuan ); printf(\"%s,\s[i].banji);

printf(\"%s,\s[i].cgrade); printf(\"%s,\s[i].mgrade); printf(\"%s,\s[i].egrade); printf(\"%s,\s[i].total); printf(\"%s,\s[i].ave); printf(\"\\n\");

} }

void paixu(Student s[])//成绩排序 {

float num; int i,j=0,t; for(i=0;i<2;i++) {

for(j=0;j<3-i;j++) {

num=student s[0].ave; if(num<=student s[j].ave) {

num=student s[j].ave;

T=j;

}

Student s[j]=student s[t]; } } } }

void xiugai(Student s[])//成绩修改 {

int i,j,key;

printf(\"请输入需修改的学号:\"); scanf(\"%s\",j); for(i=0;i<3;i++)

{

If(j==student s[i].num) k=i; }

printf(\"你想修改的是什么1:姓名 2:学院 3班级 4:C成绩,

数学成绩 6英语成绩 7总分 8平均分\");

scanf(\"%d\",key); case(key)

1:printf(\"请输入需修改的姓名:\")scanf(\"%s\",s[k].name);

2:printf(\"请输入需修改的学院:\")scanf(\"%s\",s[k].xueyuan); 2:printf(\"请输入需修改的班级:\")scanf(\"%s\",s[k].banji); 2:printf(\"请输入需修改的c成绩:\")scanf(\"%s\",s[k].cgrade); 2:printf(\"请输入需修改的数学:\")scanf(\"%s\",s[k].mgrade); 2:printf(\"请输入需修改的英语:\")scanf(\"%s\",s[k].egrade); 2:printf(\"请输入需修改的总成绩:\")scanf(\"%s\",s[k].total); 2:printf(\"请输入需修改的平均分:\")scanf(\"%s\",s[k].ave); }

void tongji(Student s[])//成绩统计 {float k,pingjunfeng; int i,t,d; long int f;

printf(\"c语言成绩最高分的成绩单:\") k=student s[0].cgrade; for(i=0,i<3,i++) {

if(k<=student s[i].cgrade)

{

k=student s[i].cgrade;

T=j;

} }

printf(\"%s,\s[t].num);

printf(\"%s,\s[t].name); printf(\"%s,\s[t].xueyuan ); printf(\"%s,\s[t].banji); printf(\"%s,\s[t].cgrade); printf(\"%s,\s[t].mgrade); printf(\"%s,\s[t].egrade); printf(\"%s,\s[t].total); printf(\"%s,\s[t].ave); printf(\"\\n\");

printf(\"数学成绩最高分的成绩单:\") k=student s[0].mgrade; for(i=0,i<3,i++) {

if(k<=student s[i].mgrade)

5

{

k=student s[i].mgrade;

T=j;

} }

printf(\"%s,\s[t].num);

printf(\"%s,\s[t].name); printf(\"%s,\s[t].xueyuan ); printf(\"%s,\s[t].banji); printf(\"%s,\s[t].cgrade); printf(\"%s,\s[t].mgrade); printf(\"%s,\s[t].egrade); printf(\"%s,\s[t].total); printf(\"%s,\s[t].ave); printf(\"\\n\");

printf(\"英语成绩最高分的成绩单:\") k=student s[0].egrade; for(i=0,i<3,i++) {

if(k<=student s[i].egrade)

{

k=student s[i].egrade;

T=j;

} }

printf(\"%s,\s[t].num);

printf(\"%s,\s[t].name); printf(\"%s,\s[t].xueyuan ); printf(\"%s,\s[t].banji); printf(\"%s,\s[t].cgrade); printf(\"%s,\s[t].mgrade); printf(\"%s,\s[t].egrade); printf(\"%s,\s[t].total); printf(\"%s,\s[t].ave); printf(\"\\n\");

printf(\"c语言成绩平均分:\") f=0;

for(i=0;i<3;i++) {

f=student s[i]+f;

}

cpingjunfeng=f/3:

printf(\"%d,\pingjunfeng);

printf(\"数学成绩平均分:\") f=0;

for(i=0;i<3;i++) {

f=student s[i]+f; }

mpingjunfeng=f/3:

printf(\"%d,\pingjunfeng);

printf(\"英语成绩平均分:\"); f=0;

for(i=0;i<3;i++) {

f=student s[i]+f; }

ePingjunfeng=f/3:

printf(\"%d,\pingjunfeng);

printf(\"超出c语言成绩平均分的人数:\"); D=0;

for(i=0;i<3;i++) {

If(student [i].cgrade>=cpingjunfeng)d++; }

printf(\"%d,\

printf(\"超出数学成绩平均分的人数:\"); D=0;

For(i=0;i<3;i++) {

If(student [i].mgrade>=mpingjunfeng)d++; }

printf(\"%d,\

printf(\"超出c语言成绩平均分的人数:\"); D=0;

for(i=0;i<3;i++) {

If(student [i].egrade>=epingjunfeng)d++; }

printf(\"%d,\

}

void main() {

while(1) { int key=0;

student student[60]; do { menu();

printf(\"请输入菜单项:\"); scanf(\"%d\",&key); switch(key) { case 1: input(student);

break;

case 2: xianshi(student); break;

case 3: paixu(student); break;

case 4: xiugai(student); break; case 5: tongji(student); break; default: printf(\"Error! Input again!\");

}while(key!=0);

} }

}

四、总结

在老师的悉心耐心的指导下,在同学的帮助下,顺利完成了本次试验

因篇幅问题不能全部显示,请点此查看更多更全内容