C语言学生管理系统综合实验报告.doc
《C语言学生管理系统综合实验报告.doc》由会员分享,可在线阅读,更多相关《C语言学生管理系统综合实验报告.doc(19页珍藏版)》请在咨信网上搜索。
C语言学生管理系统综合实验报告 19 2020年4月19日 文档仅供参考 佛山科学技术学院 实验报告 实验名称 小型学生信息管理系统 实验项目 编写一学生信息管理系统,用来管理学生基本信息及成绩信息 专业班级 姓名 XXX 学号 指导教师 成绩 日期 一、 试验目的 本实验为学生提供了一个既动手又动脑,上机实践的机会。学生经过分析和解决该实验,将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高学生编写综合系统程序的能力。 二、 实验内容 编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。系统功能模块如下图: 显 示 主菜单 数据 输入 数据 修改 数据 输出 退出 数据 处理 查询 排序 统计 平均分 不及格科 目 具体要求为: 1. 建立学生信息,每个学生的信息应包括:学号、姓名、性别、班级、至少3门课程的成绩; 2. 数据输入:输入学生的各项信息; 3. 数据修改:根据输入学生的学号能够选择修改该学生的信息; 4. 数据处理:能够选择处理方式为:排序、查询、统计。其中: a) 排序:按学号排序 b) 查询:根据学号查询成绩 c) 统计:能够选择统计各学生的平均成绩或统计所有存在不及格科目的学生; 5. 数据输出:输出学生的相应结果信息; 6. 退出:退出整个学生信息管理系统。 7. 输出结果截屏的第一条记录一定要反映出你自己的真实信息。 三、 程序组织结构图、函数调用关系图 四、 程序清单 #include<stdio.h> #include<iostream.h> #include<string.h> struct student { char num[10]; char name[10]; char sex[4]; char clas[20]; int yw,sx,yy; float ave; }stu[100]; int i,j; void InputData() { char x; while(1) { printf("\t学号:"); scanf("%s",stu[i].num); printf("\t姓名:"); scanf("%s",stu[i].name); printf("\t性别:"); scanf("%s",stu[i].sex); printf("\t班级:"); scanf("%s",stu[i].clas); printf("\t语文:"); scanf("%d",&stu[i].yw); printf("\t数学:"); scanf("%d",&stu[i].sx); printf("\t英语:"); scanf("%d",&stu[i].yy); stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0); i++; printf("\t是否继续输入数据(Y.N)");cin>>x; if(x=='n'||x=='N') break; } } void EditData() { int count=0; char str[10]; printf("\n请输入学生学号:"); cin>>str; while (count<i) { if(strcmp(str,stu[count].num)==0) { printf("学号 姓名 性别 班级 语文 数学 英语\n"); printf("----------------------------------------------------------------\n"); printf("%-11s",stu[count].num); printf("%-13s",stu[count].name); printf("%-8s",stu[count].sex); printf("%-16s",stu[count].clas); printf("%-6d",stu[count].yw); printf("%-6d",stu[count].sx); printf("%-4d",stu[count].yy); printf("\n"); printf("----------------------------------------------------------------\n"); break; } count++; } if(count>=i) printf("\n查无此人"); else { printf("\n\t修改数据:\n"); printf("\t学号:"); scanf("%s",stu[i].num); printf("\t姓名:"); scanf("%s",stu[i].name); printf("\t性别:"); scanf("%s",stu[i].sex); printf("\t班级:"); scanf("%s",stu[i].clas); printf("\t语文:"); scanf("%d",&stu[i].yw); printf("\t数学:"); scanf("%d",&stu[i].sx); printf("\t英语:"); scanf("%d",&stu[i].yy); stu[count].ave=float((stu[count].yw+stu[count].sx+stu[count].yy)/3.0); } } void sx() { struct student temp; int a,b,c; for(a=0;a<i-1;a++) { c=a; for(b=a+1;b<i;b++) if(stu[b].ave>stu[c].ave) c=b; temp=stu[b]; stu[b]=stu[c]; stu[c]=temp; } printf("排序后结果为:\n"); printf("学号 姓名 性别 班级 语文 数学 英语\n"); printf("----------------------------------------------------------------\n"); for(c=0;c<i;c++) { printf("%-11s",stu[c].num); printf("%-13s",stu[c].name); printf("%-8s",stu[c].sex); printf("%-16s",stu[c].clas); printf("%-6d",stu[c].yw); printf("%-6d",stu[c].sx); printf("%-4d",stu[c].yy); printf("\n"); } printf("----------------------------------------------------------------\n"); } void cx() { int count=0; char str[10]; printf("\n请输入要查询的学生学号:"); cin>>str; while (count<i) { if(strcmp(str,stu[count].num)==0) { printf("学号 姓名 性别 班级 语文 数学 英语\n"); printf("----------------------------------------------------------------\n"); printf("%-11s",stu[count].num); printf("%-13s",stu[count].name); printf("%-8s",stu[count].sex); printf("%-16s",stu[count].clas); printf("%-6d",stu[count].yw); printf("%-6d",stu[count].sx); printf("%-4d",stu[count].yy); printf("\n"); printf("----------------------------------------------------------------\n"); break; } count++; } if(count>=i) printf("\n无该学号学生"); else { printf("\n"); } } void tjpjf() { int count=0; stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0); printf("学号 姓名 平均分 \n"); printf("--------------------------------------------------\n"); for(j=0;j<i;j++) while(count<i) { for(j=0;j<i;j++) { printf("%-21s",stu[count].num); printf("%-21s",stu[count].name); printf("%-6.2f",stu[count].ave); count++; printf("\n");} } printf("--------------------------------------------------\n"); } void tjbhgrs() { int j,count=0; printf("有不及格科目的学生是:\n"); printf("学号 姓名 性别 班级 语文 数学 英语\n"); printf("----------------------------------------------------------------\n"); for(j=0;j<i;j++) { if(stu[j].yw<60||stu[j].sx<60||stu[j].yy<60) {printf("%-11s",stu[count].num); printf("%-13s",stu[count].name); printf("%-8s",stu[count].sex); printf("%-16s",stu[count].clas); printf("%-6d",stu[count].yw); printf("%-6d",stu[count].sx); printf("%-4d",stu[count].yy); printf("\n"); } count++; } printf("----------------------------------------------------------------\n"); } void tj() { char x; while(1) { printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\t 1.统计平均分 2.统计不及格学生信息 3.返回 \n"); printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\n\t请选择具体的统计内容:"); cin>>x; printf("\n"); switch(x) { case '1':tjpjf();break; case '2':tjbhgrs();break; case '3':break; } if(x=='3') break; printf("\n"); } } void DataProc() { char x; while(1) { printf("\t ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\t 处 理 数 据 \n"); printf("\t ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\t \n"); printf("\t 1.按学号排序 \n"); printf("\t 2.查询 \n"); printf("\t 3.统计 \n"); printf("\t 4.返回主菜单 \n"); printf("\t \n"); printf("\t ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\n\t请选择具体的处理内容:"); cin>>x; printf("\n"); switch(x) { case '1':sx();break; case '2':cx();break; case '3':tj();break; case '4':break; } if(x=='4') break; printf("\n"); } } void DataOutput() { int count=0; printf("学号 姓名 性别 班级 语文 数学 英语\n"); printf("----------------------------------------------------------------\n"); while(count<i) { printf("%-11s",stu[count].num); printf("%-13s",stu[count].name); printf("%-8s",stu[count].sex); printf("%-16s",stu[count].clas); printf("%-6d",stu[count].yw); printf("%-6d",stu[count].sx); printf("%-6d",stu[count].yy); count++; printf("\n"); } printf("----------------------------------------------------------------\n"); } void main() { char x; while(1) { printf("\t********************************************\n"); printf("\t* *\n"); printf("\t* 学 生 信 息 管 理 系 统 *\n"); printf("\t*------------------------------------------*\n"); printf("\t* 1.输入数据 *\n"); printf("\t* 2.修改数据 *\n"); printf("\t* 3.处理数据 *\n"); printf("\t* 4.输出数据 *\n"); printf("\t* 5.退出 *\n"); printf("\t* *\n"); printf("\t********************************************\n"); printf("\n\t请选择需要进行的操作:"); cin>>x; printf("\n"); switch (x) { case '1':InputData();break; case '2':EditData();break; case '3':DataProc();break; case '4':DataOutput();break; case '5':printf("谢谢使用!\n");break; } if(x=='s') break; printf("\n"); } } 五、 运行结果 六、 实验总结(调试分析、体会、致谢) 从这一次的综合实验中,我感触很深 能够这么说,为了这个实验花费比较的功夫。就我个人来说,其实我很害怕与电脑,程序有关的东西,可能因为一直以来很少接触电脑吧,对于相关的东西比较难理解。很认真去学,还是感觉很吃力。每次上课或做实验,发现自己在这方面很跟上大家的脚步。比如说,我去做了题,可是不能理解,也记不住。可是,这次的综合实验二做起来相对之前,我发现自己有了进步。 从开始着手做,我就发现这个实验所需要的知识在前面的实验已经做过了。特别是综合实验一。我是像做实验一那样去完成这个实验的。首先把整个函数的结构,关系图先写出来。在把程序写出来时,先写主函数,然后把第一层函数的空函数写出来,调试主函数与第一层的空函数。第二步就是按照主菜单的顺序,把第一层函数写出来,输入数据的函数很快就写好,调试也没有任何问题。在写修改数据的函数就没那么容易,我参照了老师的程序,可是很奇怪,调试没问题,可当我输入数据后,进行第二的修改数据时,出现的数据一直是学号为1的学生的数据。我找了一天是哪的问题,却完全没头绪,然后我就求助舍友了,舍友帮我看了很久,她也找不到。等我返回去看流程图,才发现原来少了“if(strcmp(str,stu[count].num)==0)”这条件。接下来就是处理数据的函数,我个人感觉这里,既简单又比较难的。这个函数里面又包含里按学号排序,查询,统计这三个函数,而统计里面又有统计平均分及统计不及格学生信息两个函数。像之前一样,我先把第三层函数写好,再写第四层的。按学号排序那个因为刚好老师讲到相关的那节课很认真听了;做起来虽然有点磕磕碰碰,它的程序调试完全没问题。在调试查询的时候,我犯了一个特别低级的错误,在没有把上一次的运行窗口关掉就编译,运行,发现程序连接有错误。我第一反应以为代码出错,就一在代码上找错,但找不到,当我目光放到电脑的任务栏,才恍然大悟,没有把上次运行后的窗口关掉。而且,这种错误在做综合实验过程中犯了不止一次。这也提醒着我对于C语言很不熟练。做统计的函数时我花费了比较长的时间。其实统计里面的两个函数相对来讲不是特别难,可是因为前面的都忘了,因此在调试老是出错。后来,函数写出来了,编译,运行也没出错,可是统计出来的平均分就是不正确。看了又看,都找不到哪里有问题。我又去求助了问一个同学,找不到,又回来问舍友了。终于发现了,原来在输入数据那个求平均值那里,我把stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0); 写成了stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy/3.0));也就是括号放错地方了。 到这里为止,我已经完成了整个系统,开始全面调试,随便输了几组数据,一步一步往下进行操作,整个系统运行正常。我很开心,至少在自己努力和老师,同学的帮助下完成整个实验。在这里,我从心里深深表示,感谢在我有困难时 ,文娴和王瑶对我的帮助,感谢老师在课上的耐心指导,让我对学习C语言有了兴趣与动力。我在完成这个系统后,我更加认识到:没什么是学不会的,只在于你自己去不去努力学,我很后悔之前遇到一点小困难就放弃的行为,不过,我不会再如此轻易放弃了,遇到困难要迎难而上。 在这里,再一次对老师和同学表示真心的感谢!- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 管理 系统 综合 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文