已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.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, ); 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,); 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,表示数组长度, 字符数组首地址, name_to_search,用来指向要查找的姓名函数返回值:如果找到姓名,则返回对应下标,否则返回-1*/int SearchByName(STU pt, int n,char name_to_search) int i; for (i=0; in; i+)if (strcmp( , name_to_search)=0)return i;return -1;/* 函数功能:查找并显示查找结果子模块,可按姓名和学号分别查找,找到,显示该元素的信息,如果没查到,也有相应的提示函数参数:结构体数组的指针pt,表示要输入的学生信息头 整型变量n,表示要处理的元素的个数函数返回值:无 */void Find(STU stu,int n)int number,k,choose;char name25;doprintf(请选择:1-按学号查询, 2-按姓名查询:);scanf(%d,&choose);while(!(choose=1 |choose =2);if(choose = 1)printf(请输入学号:);scanf(%d,&number);k = SearchByNumber(stu,n,number);elseprintf(请输入姓名:);scanf(%s,name);k = SearchByName(stu,n, name);if(k=-1)printf(n没有找到对应学生,请重新输入 !n);elsePrintScore(stu+k, 1);/*函数功能:菜单子模块,显示菜单功能并获得键盘选择函数参数:无 函数返回值:输入的键盘ASCII码 */char Menu(void)printf(n 1.输入学生信息n);printf( 2.列出成绩总表n);printf( 3.按平均分排序n);printf( 4.分类查找n);printf( 5.退出n);return getchar();int main() /* 主程序 */printf(n*欢迎使用学生成绩管理系统*n);char ch;STU stuNUMOFSTU;int n;while(1)ch = Menu(); /* 显示菜单 */ switch(ch) case1:printf(请输入学生人数:); scanf(%d,&n);InputStudent(stu,n); /* 调用输入模块 */ Total( stu,n ); break; case2:PrintScore(stu, n); /* 调用列表模块 */ break; case3:Sort(stu,n); /* 调用排序模块 */ printf(n 分类结果n); PrintScore(stu, n); /* 显示排序结果 */ break; case4:Find(stu,n); /*调用查找模块*/ break;case5:exit(0); /* 退回到DOS */ break; defa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《UI视觉设计(Photoshop+CorelDRAW)》高职全套教学课件
- 关于假面超人的测试题目和答案
- 2026年广东省人教版七年级历史第7单元单元检测卷试卷
- 综合素质考试题型与答案
- 解析大亚湾辅警考试的试题与答案
- 2025-2026学年开封市通许县三年级数学下学期期末试题(含答案)
- 大庆社区入职面试题目和答案
- 常信人文素养测评试题及答案呈现
- 高中电场考试题目与详细答案解析
- 文联考核试题及详细答案
- 2026秋人教版(新教材)小学数学五年级上册(全册)教学设计(附目录p273)
- 苏州工业园区娄葑街道2026年社工招聘考试【结构化面试题库+高分答题模板】(含考官评分要点)
- 预制构件生产与运输作业指导书
- DG-TJ08-2495-2026 桥梁改扩建技术标准
- 钢结构、网架和索膜结构安装工程专项施工方案
- 2026年生态环境局工作人员岗位高频面试题包含详细解答
- 药品质量投诉管理制度培训
- 甲状腺功能亢进的手术与护理
- 普通高中美术课程标准(2017年版2025年修订)
- 2026年执业医师加试院前急救考试试题与参考答案
- 2026中国机场免税店客单价影响因素及品类结构调整建议
评论
0/150
提交评论