资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言集中上机实习报告院 系: 光电工程学院班 级: 02111507姓 名: 指导教师: 谢竞博题目: 学生成绩管理系统 2016年 12月8日完成实验报告的正文有七部分,分别是:题目名称:设计思路:包括总体设计和每个模块的算法最初程序代码:调试过程(写明调试过程中出现的所有语法错误和逻辑错误,这是评定成绩的主要依据)最终程序代码:测试结果:(截图)心得体会:下面以一个简单的题目为例:一、题目:学生成绩管理系统二、思路:先定义学生人数和学号和学生姓名和各科成绩变量,再调用函数,最后再输出,系统基本完善。三、最初程序代码:#include #include #include #define NUMOFSTU 10 /* 定义学生人数 */#define NUMOFCOURSE2 /* 定义考试科目 */struct studentint number; /* 每个学生的学号 */charname10; /* 每个学生的姓名 */int scoreNUMOFCOURSE; /* 每个学生M门功课的成绩 */floatsum; /* 每个学生的总成绩 */floataverage; /* 每个学生的平均成绩 */;typedef struct student STU;void PrintScore(STU pt, int n);void InputStudent(STU pt,int n);void Total(STU pt,int n);void Sort(STU pt,int n);int SearchByNumber(STU pt, int n,int number_to_search); int SearchByName(STU pt, int n,char name_to_search); char Menu(void);四、调试过程:出现的提示如下:1.执行 cl.exe 时出错.执行结果:经过对整个程序的排错,发现在过程中,缺少一个结束语。将输出那行改正为:在后面添加 结果正确。2. H:C语言学生成绩管理系统.cpp(135) : error C2143: syntax error : missing ; before 执行 cl.exe 时出错.执行结果:经过排查,发现在if(ptj.sum ptk.sum)k=j; (k!=i) temp = ptk;ptk = pti;自定义变量时,缺少if条件语句,结果导致整个自定义变量发生改变在k=j; (k!=i)前面添加if条件语句结果正确3.调试过程中,在使用按姓名查询时,出现经排查,发现在int SearchByNumber(STU pt, int n,int number_to_search) int i; for (i=0; in; i+)if (pti.number = number_to_search)return i;return i; 返回按姓名查询时,返回值确定错误,误将返回-1写成i导致返回值全部为查询方式将i改为-1之后,调试正常五、最终程序为:#include #include #include #define NUMOFSTU 10 /* 定义学生人数 */#define NUMOFCOURSE2 /* 定义考试科目 */struct studentint number; /* 每个学生的学号 */charname10; /* 每个学生的姓名 */int scoreNUMOFCOURSE; /* 每个学生M门功课的成绩 */floatsum; /* 每个学生的总成绩 */floataverage; /* 每个学生的平均成绩 */;typedef struct student STU;void PrintScore(STU pt, int n);void InputStudent(STU pt,int n);void Total(STU pt,int n);void Sort(STU pt,int n);int SearchByNumber(STU pt, int n,int number_to_search); int SearchByName(STU pt, int n,char name_to_search); char Menu(void); /*函数功能:打印学生的信息,此子程序即可以打印全部学生成绩的信息, 也可以打印个别几个学生的信息函数参数:结构体数组的指针pt,表示要打印的学生的起始地址 整型参数n,表示要打印n个学生成绩函数返回值:无*/void PrintScore(STU pt, int n) int i,j;char string100=0,tempNUMOFCOURSE;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; in; i+) /* 打印n个学生的信息 */ printf(nNo.%3d%8s,pti.number, pti.name); for(j=0;jNUMOFCOURSE;j+)printf(%7d,pti.scorej); printf(%8.2f%8.2fn,pti.sum,pti.average); /* 函数功能:从键盘获得学生的信息子程序 函数参数:结构体数组的指针pt,表示要输入的学生信息头 整型变量n,表示要输入的元素的个数 函数返回值:无 */void InputStudent(STU pt,int n) int i,j; for(i=0; in; i+)printf(n 输入学号:);scanf(%d,&pti.number);printf(n 输入名字:);scanf(%s,pti.name); for(j=0; jNUMOFCOURSE; j+)if (j)printf(n 输入高数分数score2:);elseprintf(n 输入英语分数score1:);scanf(%d,&pti.scorej); /* 函数功能:计算每个学生的M门功课的总成绩和平均成绩子模块函数参数:结构体数组的指针pt,表示要输入的学生信息头 整型变量n,表示要处理的元素的个数函数返回值:无*/void Total(STU pt,int n) int i,j;for (i=0; in; i+) pti.sum = 0; for(j=0;jNUMOFCOURSE;j+) pti.sum = pti.sum + pti.scorej; pti.average = pti.sum/NUMOFCOURSE;/* 函数功能:用选择法按总成绩由高到低排序函数参数:结构体数组的指针pt,表示要输入的学生信息头 整型变量n,表示要处理的元素的个数 函数返回值:无*/void Sort(STU pt,int n) int i,j,k;STU temp;for(i=0; in-1; i+)k = i;for(j=i; j ptk.sum)k=j;if(k!=i) temp = ptk;ptk = pti;pti = temp; /* 函数功能:用顺序查找法按学号查找函数参数:结构体数组首地址pt, 整型变量n,表示数组长度, 整型变量 number_to_search,表示要查找的学号函数返回值:如果找到学号,则返回对应下标,否则返回-1*/int SearchByNumber(STU pt, int n,int number_to_search) int i; for (i=0; in; i+)if (pti.number = number_to_search)return i;return -1;/* 函数功能:用顺序查找法按学号查找函数参数:结构体数组首地址pt, 整型变量n,表示数组长度,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号