c语言学生成绩单制作.docx
《c语言学生成绩单制作.docx》由会员分享,可在线阅读,更多相关《c语言学生成绩单制作.docx(12页珍藏版)》请在冰豆网上搜索。
c语言学生成绩单制作
C语言课程设计报告
项目名称:
学生成绩单制作
所在班级:
####级####班
小组成员:
######
任课教师:
######
起止时间:
2014.06.15——2014.06.26
项目基本信息
项目名称
学生成绩单制作
项目简介
制作一个学生成绩单,输入学生成绩、输入学生信息函数、输出单科成绩,最高学生信息输出三门课平均成绩最高的学生信息将学生按照平均成绩降幂排序,并输出之后求出各平均成绩。
小组成员
#####
任务分工
独立完成
课程实践评定成绩记录
指导教师意见
系统完成情况:
优良中差
报告完成情况:
优良中差
答辩评定成绩
团队整体成绩:
成员成绩
综合成绩
一、问题描述及分析
输入学生成绩、输入学生信息函数、输出单科成绩,最高学生信息输出三门课平均成绩最高的学生信息将学生按照平均成绩降幂排序,并输出之后求出各平均成绩,形成一个成绩单。
二、功能模块及数据结构描述
structstudent//定义结构体
voidprint(structstudentawrry[])//输出学生信息
voidprinta(structstudentawrry[])//输出单科成绩最高学生信息
voidprintb(structstudentawrry[])//输出三门课平均成绩最高的学生信息
//主函数
voidmain()
{
structstudentstu[100];//定义结构体数组
shuru(stu);//输入学生信息
print(stu);//输出学生全部信息
printa(stu);//输出单科成绩最高学生信息
printb(stu);//输出三门课平均成绩最高的学生信息
sort(stu);//将学生按照平均成绩降幂排序,并输出
}
三、主要算法流程描述及部分核心算法
流程图如下图所示。
核心算法为:
开始
、
四、系统使用说明
1、进入学生成绩制作
2、输入学生个数
3、输入三个学生的成绩及学号信息
4求出全部学生信息
5、结束程序
五、问题及解决办法
1、输出时,有些信息显示不完整或布局不对称;通过对程序格式的进一步改进使其对称布局更美观。
2、学生全部信息输出界面不协调,有待优化改良。
3、再添加函数能实现更多功能。
课外实践总结
通过这个程序的实践我对管理系统有了深刻的了解,了解了怎样制作成绩单,通过自己的改造终于完成工作。
课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。
六、源程序
#include
#include
//定义结构体
structstudent
{
intnum;
charname[20];
floatchinese;
floatmath;
floatenglish;
floataverage;
};
intN;
//输出学生信息
voidprint(structstudentawrry[])
{
printf("全部学生信息如下:
\n");
printf("====================================================================\n");
for(inti=0;i{
printf("numbernamemathchineseenglishaverage\n");
printf("%d%s%3.2f%3.2f%3.2f%3.2f\n",awrry[i].num,awrry[i].name,awrry[i].math,awrry[i].chinese,awrry[i].english,awrry[i].average);
}
printf("====================================================================\n");
}
//输入学生信息函数
voidshuru(structstudentawrry[])
{
floatsum;
printf("====================================================================\n");
printf("请输入你想输入学生的个数:
\n");
scanf("%d",&N);
printf("输入%d个学生信息:
\n",N);
for(inti=0;i{
sum=0;
printf("输入的%d个学生信息:
\n",i+1);
printf("输入学号:
\n");
scanf("%d",&awrry[i].num);
printf("输入姓名:
\n");
scanf("%s",awrry[i].name);
printf("输入语文成绩:
\n");
scanf("%f",&awrry[i].chinese);
sum=(float)(sum+awrry[i].chinese);
printf("输入数学成绩:
\n");
scanf("%f",&awrry[i].math);
sum=(float)(sum+awrry[i].math);
printf("输入英语成绩:
\n");
scanf("%f",&awrry[i].english);
sum=(float)(sum+awrry[i].english);
awrry[i].average=(float)(sum/3.0);
}
printf("====================================================================\n");
}
//输出单科成绩最高学生信息
voidprinta(structstudentawrry[])
{
printf("单科成绩最高学生信息\n");
printf("====================================================================\n");
intk1=0,k2=0,k3=0;
for(inti=0;i{
if(awrry[k1].chinesek1=i;
}
for(intj=0;j{
if(awrry[k2].englishk2=j;
}
for(intp=0;p{
if(awrry[k3].mathk3=p;
}
printf("语文成绩最高者:
\n");
printf("学号姓名语文成绩\n");
printf("%3d%3s%3.2f\n",awrry[k1].num,awrry[k1].name,awrry[k1].chinese);
printf("数学成绩最高者:
\n");
printf("学号姓名数学成绩\n");
printf("%3d%3s%3.2f\n",awrry[k3].num,awrry[k3].name,awrry[k3].math);
printf("英语成绩最高者:
\n");
printf("学号姓名英语成绩\n");
printf("%3d%3s%3.2f\n",awrry[k2].num,awrry[k2].name,awrry[k2].english);
printf("====================================================================\n");
}
//输出三门课平均成绩最高的学生信息
voidprintb(structstudentawrry[])
{
printf("三门课平均成绩最高的学生信息\n");
printf("====================================================================\n");
floatmax=awrry[0].average;
intk=0;
for(inti=0;iif(max<=awrry[i].average)
{
max=awrry[i].average;
k=i;
}
printf("平均成绩最高者:
\n");
printf("numbernameaverage\n");
printf("%3d%3s%3.2f\n",awrry[k].num,awrry[k].name,awrry[k].average);
printf("====================================================================\n");
}
//将学生按照平均成绩降幂排序,并输出
voidsort(structstudentawrry[])
{
printf("平均成绩降幂排序\n");
printf("====================================================================\n");
floatt1,t2,t3,t4;inti,j;
charname[20];
for(i=0;ifor(j=0;jif(awrry[j].average{
t1=awrry[j].average;
awrry[j].average=awrry[j+1].average;
awrry[j+1].average=t1;
t2=awrry[j].chinese;
awrry[j].chinese=awrry[j+1].chinese;
awrry[j+1].chinese=t2;
t3=awrry[j].math;
awrry[j].math=awrry[j+1].math;
awrry[j+1].math=t3;
t4=awrry[j].english;
awrry[j].english=awrry[j+1].english;
awrry[j+1].english=t4;
strcpy(name,awrry[j].name);
strcpy(awrry[j].name,awrry[j+1].name);
strcpy(awrry[j+1].name,name);
}
printf("平均分降幂排序:
\n");
printf("numbernamemathchineseenglishaverage\n");
for(i=0;iprintf("%d%s%3.2f%3.2f%3.2f%3.2f\n",awrry[i].num,awrry[i].name,awrry[i].math,awrry[i].chinese,awrry[i].english,awrry[i].average);
printf("====================================================================\n");
}
//主函数
voidmain()
{
structstudentstu[100];//定义结构体数组
shuru(stu);//输入学生信息
print(stu);//输出学生全部信息
printa(stu);//输出单科成绩最高学生信息
printb(stu);//输出三门课平均成绩最高的学生信息
sort(stu);//将学生按照平均成绩降幂排序,并输出
}
.