学生成绩管理系统实验报告.docx

上传人:b****1 文档编号:966245 上传时间:2022-10-14 格式:DOCX 页数:13 大小:145.92KB
下载 相关 举报
学生成绩管理系统实验报告.docx_第1页
第1页 / 共13页
学生成绩管理系统实验报告.docx_第2页
第2页 / 共13页
学生成绩管理系统实验报告.docx_第3页
第3页 / 共13页
学生成绩管理系统实验报告.docx_第4页
第4页 / 共13页
学生成绩管理系统实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统实验报告.docx

《学生成绩管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统实验报告.docx

学生成绩管理系统实验报告

 

C语言集中上机实习报告

 

院系:

 光电工程学院

班级:

02111507  

姓名:

 

指导教师:

谢竞博

题  目:

学生成绩管理系统

 

2016年12月8日完成

 

实验报告的正文有七部分,分别是:

•题目名称:

•设计思路:

包括总体设计和每个模块的算法

•最初程序代码:

•调试过程(写明调试过程中出现的所有语法错误和逻辑错误,这是评定成绩的主要依据)

•最终程序代码:

•测试结果:

(截图)

•心得体会:

下面以一个简单的题目为例:

一、题目:

学生成绩管理系统

二、思路:

先定义学生人数和学号和学生姓名和各科成绩变量,再调用函数,最后再输出,系统基本完善。

三、最初程序代码:

#include

#include

#include

#defineNUMOFSTU10/*定义学生人数*/

#defineNUMOFCOURSE2/*定义考试科目*/

structstudent

{

intnumber;/*每个学生的学号*/

charname[10];/*每个学生的姓名*/

intscore[NUMOFCOURSE];/*每个学生M门功课的成绩*/

floatsum;/*每个学生的总成绩*/

floataverage;/*每个学生的平均成绩*/

};

typedefstructstudentSTU;

voidPrintScore(STUpt[],intn);

voidInputStudent(STUpt[],intn);

voidTotal(STUpt[],intn);

voidSort(STUpt[],intn);

intSearchByNumber(STUpt[],intn,intnumber_to_search);

intSearchByName(STUpt[],intn,charname_to_search[]);

charMenu(void);

四、调试过程:

出现的提示如下:

1.执行cl.exe时出错.

执行结果:

经过对整个程序的排错,发现在过程中,缺少一个结束语。

将输出那行改正为:

在后面添加}

结果正确。

2.H:

\C语言\学生成绩管理系统.cpp(135):

errorC2143:

syntaxerror:

missing';'before'{'

执行cl.exe时出错.

执行结果:

经过排查,发现在if(pt[j].sum>pt[k].sum)

k=j;

(k!

=i)

{

temp=pt[k];

pt[k]=pt[i];自定义变量时,缺少if条件语句,结果导致整个自定义变量发生改变

在k=j;

(k!

=i)前面添加if条件语句

结果正确

3.调试过程中,在使用按姓名查询时,出现

经排查,发现在intSearchByNumber(STUpt[],intn,intnumber_to_search)

{

inti;

for(i=0;i

if(pt[i].number==number_to_search)

returni;

returni;

}返回按姓名查询时,返回值确定错误,误将返回-1写成i导致返回值全部为查询方式

将i改为-1之后,调试正常

 

五、最终程序为:

#include

#include

#include

#defineNUMOFSTU10/*定义学生人数*/

#defineNUMOFCOURSE2/*定义考试科目*/

structstudent

{

intnumber;/*每个学生的学号*/

charname[10];/*每个学生的姓名*/

intscore[NUMOFCOURSE];/*每个学生M门功课的成绩*/

floatsum;/*每个学生的总成绩*/

floataverage;/*每个学生的平均成绩*/

};

typedefstructstudentSTU;

voidPrintScore(STUpt[],intn);

voidInputStudent(STUpt[],intn);

voidTotal(STUpt[],intn);

voidSort(STUpt[],intn);

intSearchByNumber(STUpt[],intn,intnumber_to_search);

intSearchByName(STUpt[],intn,charname_to_search[]);

charMenu(void);

 

/*函数功能:

打印学生的信息,此子程序即可以打印全部学生成绩的信息,

也可以打印个别几个学生的信息

函数参数:

结构体数组的指针pt,表示要打印的学生的起始地址

整型参数n,表示要打印n个学生成绩

函数返回值:

*/

voidPrintScore(STUpt[],intn)

{

inti,j;

charstring[100]={'\0'},temp[NUMOFCOURSE];

strcat(string,"Number");/*建立表头*/

strcat(string,"Name");

for(i=1;i<=NUMOFCOURSE;i++)

{

strcat(string,"Score");

itoa(i,temp,10);

strcat(string,temp);

strcat(string,"");

}

strcat(string,"sum");

strcat(string,"average");

printf("%s",string);/*打印表头*/

for(i=0;i

{/*打印n个学生的信息*/

printf("\nNo.%3d%8s",pt[i].number,pt[i].name);

for(j=0;j

printf("%7d",pt[i].score[j]);

printf("%8.2f%8.2f\n",pt[i].sum,pt[i].average);

}

}

/*函数功能:

从键盘获得学生的信息子程序

函数参数:

结构体数组的指针pt,表示要输入的学生信息头

整型变量n,表示要输入的元素的个数

函数返回值:

*/

voidInputStudent(STUpt[],intn)

{

inti,j;

for(i=0;i

{

printf("\n输入学号:

");

scanf("%d",&pt[i].number);

printf("\n输入名字:

");

scanf("%s",pt[i].name);

for(j=0;j

{

if(j)

{

printf("\n输入高数分数score2:

");

}

else{

printf("\n输入英语分数score1:

");

}

scanf("%d",&pt[i].score[j]);

}

}

}

/*函数功能:

计算每个学生的M门功课的总成绩和平均成绩子模块

函数参数:

结构体数组的指针pt,表示要输入的学生信息头

 整型变量n,表示要处理的元素的个数

函数返回值:

*/

voidTotal(STUpt[],intn)

{

inti,j;

for(i=0;i

{

pt[i].sum=0;

for(j=0;j

pt[i].sum=pt[i].sum+pt[i].score[j];

pt[i].average=pt[i].sum/NUMOFCOURSE;

}

}

/*函数功能:

用选择法按总成绩由高到低排序

函数参数:

结构体数组的指针pt,表示要输入的学生信息头

 整型变量n,表示要处理的元素的个数

函数返回值:

*/

voidSort(STUpt[],intn)

{

inti,j,k;

STUtemp;

for(i=0;i

{

k=i;

for(j=i;j

if(pt[j].sum>pt[k].sum)

k=j;

if(k!

=i)

{

temp=pt[k];

pt[k]=pt[i];

pt[i]=temp;

}

}

}

/*函数功能:

用顺序查找法按学号查找

函数参数:

结构体数组首地址pt,

整型变量n,表示数组长度,

整型变量number_to_search,表示要查找的学号

函数返回值:

如果找到学号,则返回对应下标,否则返回-1

*/

intSearchByNumber(STUpt[],intn,intnumber_to_search)

{

inti;

for(i=0;i

if(pt[i].number==number_to_search)

returni;

return-1;

}

/*函数功能:

用顺序查找法按学号查找

函数参数:

结构体数组首地址pt,

整型变量n,表示数组长度,

字符数组首地址,name_to_search, 用来指向要查找的姓名

函数返回值:

如果找到姓名,则返回对应下标,否则返回-1

*/

intSearchByName(STUpt[],intn,charname_to_search[])

{

inti;

for(i=0;i

if(strcmp(pt[i].name,name_to_search)==0)

returni;

return-1;

}

/*函数功能:

查找并显示查找结果子模块,可按姓名和学号分别查找,

       找到,显示该元素的信息,如果没查到,也有相应的提示

函数参数:

结构体数组的指针pt,表示要输入的学生信息头

 整型变量n,表示要处理的元素的个数

函数返回值:

*/

voidFind(STUstu[],intn)

{

intnumber,k,choose;

charname[25];

do

{

printf("请选择:

1-按学号查询,2-按姓名查询:

");

scanf("%d",&choose);

}while(!

(choose==1||choose==2));

if(choose=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1