1、 最终程序代码: 测试结果:(截图) 心得体会:下面以一个简单的题目为例:一、题目:学生成绩管理系统二、思路:先定义学生人数和学号和学生姓名和各科成绩变量,再调用函数,最后再输出,系统基本完善。三、最初程序代码:#include string.hstdlib.h#define NUMOFSTU 10 /* 定义学生人数 */#define NUMOFCOURSE 2 /* 定义考试科目 */struct student int number; /* 每个学生的学号 */ char name10; /* 每个学生的姓名 */ int scoreNUMOFCOURSE; /* 每个学生M门功课的成
2、绩 */ float sum; /* 每个学生的总成绩 */ float average; /* 每个学生的平均成绩 */;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_
3、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;=i)前面添加if
4、条件语句结果正确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之后,调试正常五、最终程序为:/* 函数功能:打印学生的信息,此子程序即可以打印全部学生成绩的信息, 也可以打印个别几个学生的信息 函数参数:结构体数组的指针pt,表示要打
5、印的学生的起始地址 整型参数n,表示要打印n个学生成绩 函数返回值:无*/void PrintScore(STU pt, int n) int i,j; char string100=0,tempNUMOFCOURSE; strcat(string, Number ); /* 建立表头 */Name for (i=1;=NUMOFCOURSE; strcat(string, Score itoa(i,temp, 10); strcat(string, temp); strcat(string,sum average printf(%s,string); /* 打印表头 */ /* 打印n个学生
6、的信息 */ printf(nNo.%3d%8s,pti.number, pti.name); for(j=0;jNUMOFCOURSE;j+) printf(%7d,pti.scorej);%8.2f%8.2fn,pti.sum,pti.average); 从键盘获得学生的信息子程序 结构体数组的指针pt,表示要输入的学生信息头 整型变量n,表示要输入的元素的个数无 void InputStudent(STU pt,int n) for(i=0;n 输入学号: scanf(%d,&pti.number);n 输入名字:,pti.name); for(j=0; j if(k! pti = te
7、mp;用顺序查找法按学号查找结构体数组首地址pt, 整型变量n,表示数组长度, 整型变量 number_to_search,表示要查找的学号如果找到学号,则返回对应下标,否则返回-1int SearchByNumber(STU pt, int n,int number_to_search) return -1; 字符数组首地址, name_to_search,用来指向要查找的姓名如果找到姓名,则返回对应下标,否则返回-1int SearchByName(STU pt, int n,char name_to_search) if (strcmp(pti.name , name_to_search)=0)查找并显示查找结果子模块,可按姓名和学号分别查找,找到,显示该元素的信息,如果没查到,也有相应的提示void Find(STU stu,int n) int number,k,choose; char name25; do请选择:1-按学号查询, 2-按姓名查询:choose); while(!(choose=1 |choose =2); if(choose =
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1