收藏 分销(赏)

C语言学生信息管理系统61.doc

上传人:快乐****生活 文档编号:3058569 上传时间:2024-06-14 格式:DOC 页数:15 大小:120KB 下载积分:8 金币
下载 相关 举报
C语言学生信息管理系统61.doc_第1页
第1页 / 共15页
C语言学生信息管理系统61.doc_第2页
第2页 / 共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(); } } 第一:程序运行主界面 第二:各项目外观
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服