大理学院数学与计算学院
《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);
} }
}
四、总结
在老师的悉心耐心的指导下,在同学的帮助下,顺利完成了本次试验
因篇幅问题不能全部显示,请点此查看更多更全内容