C语言学生信息管理系统61.doc
《C语言学生信息管理系统61.doc》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统61.doc(15页珍藏版)》请在咨信网上搜索。
一.应用程序名称: Student.exe 二.应用程序的主题、设计目的: 应用程序的主题是管理好学生成绩,设计目的是进一步掌握和实践C语言编程。 三、应用程序简介: 1.基本结构: 2.基本内容: 编写一个成绩管理程序。每个学生的信息包含学生学号、姓名、性别和6门课程成绩。 (1)学生信息创建(顺序存储和链式存储都可); (2)各个信息的输入与输出; (3)按总成绩实现升序排列; (4)按学号查询成绩; (5)输出各门课程成绩高于90和低于60的学生的姓名及该门课程的成绩。 3.运行环境: 本程序使用Visual C++ 2008编译器制作,在windows 7 64bit系统中成功运行,windows XP也可正常运行。 4.测试结果: 经过测试,所要求的内容基本上达到,个人认为比较好的地方是筛选和排序,不足之处是不明白存储方面的知识,以及程序流程的认识。 5.实验心得: 参考了许多网上资料,存储方面的知识依然不懂,部分代码都不是自己写的,而且看不太懂,所以程序流程自己都不太清楚,但是,经过老师验收代码,说了很多问题之后,明白了那些不知道也不明白的问题,学到了很多东西,更好的理解了C语言的编程,明白了看代码与写代码的实际区别,以后要好好努力。 附录: // 学生信息管理.cpp : 定义控制台应用程序的入口点。 // #include "stdio.h" #include "stdafx.h" #include "string.h" #include "stdlib.h" /*定义学生结构体*/ struct Student { char ID[20],Name[20],Sex[20]; float Chinese/*语文*/; float Math/*数学*/; float English/*英语*/; float Physics/*物理*/; float Chemical/*化学*/; float Biological/*生物*/; float Add/*总分值*/; }; /*声明学生数组及学生数量*/ struct Student students[100]; int num=0; /*求总成绩值*/ float Add(struct Student stu) { return stu.Chinese+stu.Math+stu.English+stu.Physics+stu.Chemical+stu.Biological; } /*通过学号返回数组下标*/ int Student_SearchByIndex(char id[]) { int i; for (i=0;i<num;i++) { if (strcmp(students[i].ID,id)==0) { return i; } } return -1; } /*显示单条学生记录*/ void Student_DisplaySingle(int index) { printf("%8s%6s%6s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","性别","语文","数学","英语","物理","化学","生物","总分"); printf(" ---------------------------------------------------------------------------\n"); printf("%8s%6s%6s%8.1f%8.1f%8.1f%8.1f%8.1f%8.1f\n",students[index].ID,students[index].Name,students[index].Sex, students[index].Chinese,students[index].Math,students[index].English, students[index].Physics,students[index].Chemical,students[index].Biological,students[index].Add); } /*插入学生信息*/ void Student_Insert() { while(1) { printf("请输入学号:"); scanf("%s",&students[num].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[num].Name); getchar(); printf("请输入性别:"); scanf("%s",&students[num].Sex); getchar(); printf("请输入语文成绩:"); scanf("%f",&students[num].Chinese); getchar(); printf("请输入数学成绩:"); scanf("%f",&students[num].Math); getchar(); printf("请输入英语成绩:"); scanf("%f",&students[num].English); getchar(); printf("请输入物理成绩:"); scanf("%f",&students[num].Physics); getchar(); printf("请输入化学成绩:"); scanf("%f",&students[num].Chemical); getchar(); printf("请输入生物成绩:"); scanf("%f",&students[num].Biological); getchar(); students[num].Add=Add(students[num]); num++; printf("是否继续?(y/n)"); if (getchar()=='n') {system("cls"); break; } } } /*修改学生信息*/ void Student_Modify() { while(1) { char id[20]; int index; printf("请输入要修改的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要修改的学生信息为:\n"); Student_DisplaySingle(index); printf("-- 请输入新值--\n"); printf("请输入学号:"); scanf("%s",&students[index].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[index].Name); getchar(); printf("请输入性别:"); scanf("%s",&students[index].Sex); getchar(); printf("请输入语文成绩:"); scanf("%f",&students[index].Chinese); getchar(); printf("请输入数学成绩:"); scanf("%f",&students[index].Math); getchar(); printf("请输入英语成绩:"); scanf("%f",&students[index].English); getchar(); printf("请输入物理成绩:"); scanf("%f",&students[index].Physics); getchar(); printf("请输入化学成绩:"); scanf("%f",&students[index].Chemical); getchar(); printf("请输入生物成绩:"); scanf("%f",&students[index].Biological); getchar(); students[index].Add=Add(students[index]); } printf("是否继续?(y/n)"); if (getchar()=='n') {system("cls"); break; } } } /*删除学生信息*/ void Student_Delete() { int i; while(1) { char id[20]; int index; printf("请输入要删除的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要删除的学生信息为:\n"); Student_DisplaySingle(index); printf("是否真的要删除?(y/n)"); if (getchar()=='y') { for (i=index;i<num-1;i++) { students[i]=students[i+1]; } num--; } getchar(); } printf("是否继续?(y/n)"); if (getchar()=='n') { system("cls"); break; } } } /*按学号查询*/ void Student_Select() { while(1) { char id[20]; int index; printf("请输入要查询的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要查询的学生信息为:\n"); Student_DisplaySingle(index); } printf("是否继续?(y/n)"); if (getchar()=='n') { system("cls"); break; } } } /*按总分值排序*/ void Student_SortByAdd() { int i,j; struct Student tmp; for (i=0;i<num;i++) { for (j=1;j<num-i;j++) { if (students[j-1].Add<students[j].Add) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } } } /*显示学生信息*/ void Student_Display() { int i; printf("%8s%6s%6s%8s%8s%8s%8s%8s%8s%8s\n","学号","姓名","性别","语文","数学","英语","物理","化学","生物","总分"); printf(" ---------------------------------------------------------------------------\n"); for (i=0;i<num;i++) { printf("%8s%6s%6s%8.1f%8.1f%8.1f%8.1f%8.1f%8.1f%8.1f\n",students[i].ID,students[i].Name,students[i].Sex, students[i].Chinese,students[i].Math,students[i].English,students[i].Physics, students[i].Chemical,students[i].Biological,students[i].Add); }system("pause"); system("cls"); } /*选出优秀学生信息*/ void Student_90A() { int i; printf("%10s%10s%10s%10s%10s\n","科目","学号","姓名","性别","分数"); printf(" -----------------------------------------------\n"); for (i=0;i<num;i++) { if (students[i].Chinese>=90) printf("%10s%10s%10s%10s%10.1f\n","语文",students[i].ID,students[i].Name,students[i].Sex,students[i].Chinese); } printf("\n"); } void Student_90B() { int i; for (i=0;i<num;i++) { if (students[i].Math>=90) printf("%10s%10s%10s%10s%10.1f\n","数学",students[i].ID,students[i].Name,students[i].Sex,students[i].Math); } printf("\n"); } void Student_90C() { int i; for (i=0;i<num;i++) { if (students[i].English>=90) printf("%10s%10s%10s%10s%10.1f\n","英语",students[i].ID,students[i].Name,students[i].Sex,students[i].English); } printf("\n"); } void Student_90D() { int i; for (i=0;i<num;i++) { if (students[i].Physics>=90) printf("%10s%10s%10s%10s%10.1f\n","物理",students[i].ID,students[i].Name,students[i].Sex,students[i].Physics); } printf("\n"); } void Student_90E() { int i; for (i=0;i<num;i++) { if (students[i].Chemical>=90) printf("%10s%10s%10s%10s%10.1f\n","化学",students[i].ID,students[i].Name,students[i].Sex,students[i].Chemical); } printf("\n"); } void Student_90F() { int i; for (i=0;i<num;i++) { if (students[i].Biological>=90) printf("%10s%10s%10s%10s%10.1f\n","生物",students[i].ID,students[i].Name,students[i].Sex,students[i].Biological); } printf("\n"); } /*选出不及格学生信息*/ void Student_60A() { int i; printf("%10s%10s%10s%10s%10s\n","科目","学号","姓名","性别","分数"); printf(" -----------------------------------------------\n"); for (i=0;i<num;i++) { if (students[i].Chinese<60) printf("%10s%10s%10s%10s%10.1f\n","语文",students[i].ID,students[i].Name,students[i].Sex,students[i].Chinese); } printf("\n"); } void Student_60B() { int i; for (i=0;i<num;i++) { if (students[i].Math<60) printf("%10s%10s%10s%10s%10.1f\n","数学",students[i].ID,students[i].Name,students[i].Sex,students[i].Math); } printf("\n"); } void Student_60C() { int i; for (i=0;i<num;i++) { if (students[i].English<60) printf("%10s%10s%10s%10s%10.1f\n","英语",students[i].ID,students[i].Name,students[i].Sex,students[i].English); } printf("\n"); } void Student_60D() { int i; for (i=0;i<num;i++) { if (students[i].Physics<60) printf("%10s%10s%10s%10s%10.1f\n","物理",students[i].ID,students[i].Name,students[i].Sex,students[i].Physics); } printf("\n"); } void Student_60E() { int i; for (i=0;i<num;i++) { if (students[i].Chemical<60) printf("%10s%10s%10s%10s%10.1f\n","化学",students[i].ID,students[i].Name,students[i].Sex,students[i].Chemical); } printf("\n"); } void Student_60F() { int i; for (i=0;i<num;i++) { if (students[i].Biological<60) printf("%10s%10s%10s%10s%10.1f\n","生物",students[i].ID,students[i].Name,students[i].Sex,students[i].Biological); } printf("\n"); } /*将学生信息从文件读出*/ void IO_ReadInfo() { FILE *fp; int i; if ((fp=fopen("Database.txt","rb"))==NULL) { printf("不能打开文件!\n"); return; } if (fread(&num,sizeof(int),1,fp)!=1) { num=-1; } else { for(i=0;i<num;i++) { fread(&students[i],sizeof(struct Student),1,fp); } } fclose(fp); } /*将学生信息写入文件*/ void IO_WriteInfo() { FILE *fp; int i; if ((fp=fopen("Database.txt","wb"))==NULL) { printf("不能打开文件!\n"); return; } if (fwrite(&num,sizeof(int),1,fp)!=1) { printf("写入文件错误!\n"); } for (i=0;i<num;i++) { if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1) { printf("写入文件错误!\n"); } } fclose(fp); } /*主程序*/ int main() { int choice; IO_ReadInfo(); while(1) { /*主菜单*/ printf("\n\t\t-------- 学生成绩管理系统--------\n\n"); printf("\t\t\t1. 增加学生成绩记录\n"); printf("\t\t\t2. 修改学生成绩记录\n"); printf("\t\t\t3. 删除学生成绩记录\n"); printf("\t\t\t4. 按学号查询学生成绩记录\n"); printf("\t\t\t5. 按总分值排序\n"); printf("\t\t\t6. 各科优秀人(不低于)数\n"); printf("\t\t\t7. 各科不及格(低于)人数\n"); printf("\t\t\t8. 退出\n\n"); printf("请选择(1-8):"); scanf("%d",&choice); getchar(); switch(choice) { case 1:system("cls"); Student_Insert(); break; case 2:system("cls"); Student_Modify(); break; case 3:system("cls"); Student_Delete(); break; case 4:system("cls"); Student_Select(); break; case 5:system("cls"); Student_SortByAdd(); Student_Display(); break; case 6:system("cls"); Student_90A(); Student_90B(); Student_90C(); Student_90D(); Student_90E(); Student_90F(); break; case 7:system("cls"); Student_60A(); Student_60B(); Student_60C(); Student_60D(); Student_60E(); Student_60F(); break; case 8:system("cls"); return 0; break; } IO_WriteInfo(); } } 第一:程序运行主界面 第二:各项目外观- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 信息管理 系统 61
咨信网温馨提示:
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。
关于本文