学生成绩管理系统实验报告.docx
- 文档编号:966245
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:13
- 大小:145.92KB
学生成绩管理系统实验报告.docx
《学生成绩管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统实验报告
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=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 实验 报告