您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 学生信息管理系统实验报告
实验名称:学生管理系统的设计与实现学院:计算机与信息技术学院专业:计算机科学与技术(应用)班别:3班姓名:黄雨梅学号:201421012808一、实验目的强化学生对C语言的基本语法和基本编程技能的熟练掌握,并在此基础上,重点培养学生对实际应用问题进行抽象分析的能力和综合运用C语言知识进行具体实现的编程能力。二、实验内容综合应用C语言中讲授的流程控制语句、模块化程序设计方法(函数)和丰富的数据类型(针、数组、结构体等)完成“学生管理系统”的设计与实现。三、实验环境Windows8系统,C语言开发环境:啊哈C(因为VC在我的win8下不是很稳定,所以我选择”啊哈C”这个软件,用起来比较简洁方便)四、实验要求1、总体要求:系统功能齐全,运行结果正确,用户界面友好,使用简单方便。2、系统数据要求:学生信息如下:学号、姓名、年龄、所在系、3门课程名称及成绩、总分、平均分。3、系统功能要求:⑴输入至少10个学生的自然信息(学号、姓名、年龄、所在系、4门课程成绩)。⑵计算每个学生的总分、平均分,并输出每个学生的学号,姓名,总分,平均分。⑶根据学生的总分进行排序输出。⑷针对课程不同科目进行排序输出。⑸统计输出每门课程的平均分。⑹实现多种查询功能(例如:根据学号或姓名或所在系等,查询一个或多个学生信息)。⑺对于已输入的学生信息进行储存。⑻能实现学生信息的增、删、改操作。五、实验设计代码#includestdio.h#includeconio.h#includestdlib.h#includestring.h#definemax2000voidmenu();voidinput();//输入数据函数voidsort();//排序数据函数voiddisplay();//显示数据函数voiddisplay1();//显示各科成绩函数voidinsert();//插入数据函数voiddel();//删除数据函数voidaverage();//求平均值函数voidfind();//查找数据函数voidsave();//保存数据函数voidread();//读出数据函数voiddel_file();//删除文件函数voidmodify();//修改文件函数intnew_num=0;structstudent//定义学生信息{intnum;//学号charname[20];//姓名chardepartment[30];//学院intage;//年龄floatgaoshu;//高数成绩floatcyuyan;//C语言成绩floatyingyu;//英语成绩floatwuli;//物理成绩floatsort;//排序后的成绩floatave;//平均分floatsum;//总分};voidmain(){inta,flag1,flag2;charname[20]=123456,password[10]=123456;charperson[20],password1[10];printf(\t\t欢迎进入学生成绩管理系统!\n\n);printf(\t\t\t用户登录\n\n);for(a=0;a!=3;){printf(\t\t\t\t用户名:);gets(person);flag1=strcmp(person,name);printf(\t\t\t\t密码:);gets(password1);flag2=strcmp(password,password1);if(flag1==0&&flag2==0){printf(\n\n\n\t\t\t\t登陆成功!\n\n);menu();break;}else{printf(\n\t\t\t用户名或密码错误!\n\n);printf(\n\t\t\t请注意:您还剩%d次机会!\n\n,2-a);a++;}}if(a=3)printf(您输入的用户名或密码有误,已被系统强制退出\n);}structstudentstu[max],*p;voidmenu()//主函数{intas;charch;do{printf(\n\n\n\n);start:printf(\n\n\n\n\t\t\t\t欢迎使用学生成绩管理系统\n);printf(\n\n\t\t\t\t按任意键继续);ch=getch();}while(!ch);system(cls);//以下是程序功能do{printf(\n\t\t\t\t1.录入学生基本信息\n\t\t\t\t2.显示学生总成绩信息\n\t\t\t\t3.对总成绩排序\n\t\t\t\t4.显示学生单科成绩排序\n\t\t\t\t5.添加学生信息\n\t\t\t\t6.删除学生信息\n\t\t\t\t7.修改学生信息\n\t\t\t\t8.查询学生信息\n\t\t\t\t9.从文件读入学生信息\n\t\t\t\t10.删除文件中学生信息\n\t\t\t\t11.保存学生信息\n\t\t\t\t12.退出\n);printf(\t\t\t\t选择功能选项(输入所选功能前的数字):);fflush(stdin);scanf(%d,&as);switch(as){case1:system(cls);input();break;case2:system(cls);display();break;case3:system(cls);sort();break;case4:system(cls);display1();break;case5:system(cls);insert();break;case6:system(cls);del();break;case7:system(cls);modify();break;case8:system(cls);find();break;case9:system(cls);read();break;case10:system(cls);del_file();break;case11:system(cls);save();break;case12:system(exit);exit(0);default:system(cls);gotostart;}}while(1);//while(1)时表示永远循环}voidinput()//学生信息录入{inti=0;charch;do{printf(\t\t\t\t1.录入学生信息\n输入第%d个学生的信息\n,i+1);printf(\n输入学生学号:);scanf(%u,&stu[i].num);fflush(stdin);printf(\n输入学生姓名:);fflush(stdin);gets(stu[i].name);printf(\n输入学生学院:);fflush(stdin);gets(stu[i].department);printf(\n输入学生年龄:);fflush(stdin);scanf(%d,&stu[i].age);fflush(stdin);printf(\n输入学生高数成绩:);scanf(%f,&stu[i].gaoshu);fflush(stdin);printf(\n输入学生C语言成绩:);fflush(stdin);scanf(%f,&stu[i].cyuyan);printf(\n输入学生英语成绩:);fflush(stdin);scanf(%f,&stu[i].yingyu);printf(\n输入学生物理成绩:);fflush(stdin);scanf(%f,&stu[i].wuli);printf(\n\n);i++;new_num=i;printf(是否继续输入?(Y/N));fflush(stdin);ch=getch();system(cls);}while(ch!='n'&&ch!='N');system(cls);}voidsort()//排序数据函数{structstudenttemp;inti,j;average();for(i=1;inew_num;i++){for(j=1;j=new_num-i;j++){if(stu[j-1].avestu[j].ave){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}printf(排序已完成,选择2显示结果\n);system(pause);system(cls);}voidsort1()//高数成绩排序{structstudenttemp;inti,j;for(i=1;inew_num;i++){for(j=1;j=new_num-i;j++){if(stu[j-1].gaoshustu[j].gaoshu){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}voidsort2()//C语言成绩排序{structstudenttemp;inti,j;for(i=1;inew_num;i++){for(j=1;j=new_num-i;j++){if(stu[j-1].cyuyanstu[j].cyuyan){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}voidsort3()//英语成绩排序{structstudenttemp;inti,j;for(i=1;inew_num;i++){for(j=1;j=new_num-i;j++){if(stu[j-1].yingyustu[j].yingyu){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}voidsort4()//物理成绩排序{structstudenttemp;inti,j;for(i=1;inew_num;i++){for(j=1;j=new_num-i;j++){if(stu[j-1].wulistu[j].wuli){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}voiddisplay()//显示数据函数{inti;charas;average();do{printf(\t\t\t班级学生信息列表\n);printf(\t学号\t姓名\t学院\t年龄\t高数\tC语言\t英语\t物理\t平均值\n);for(i=0;inew_num&&stu[i].name[0];i++)printf(\t%u%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n,stu[i].num,stu[i].name,stu[i].department,stu[i].age,stu[i].gaoshu,stu[i].cyuyan,stu[i].yingyu,stu[i].wuli,stu[i].ave);printf(\t\t\t按任意键返回主菜单);fflush(stdin);as=getch();}while(!as);system(cls);}voiddisplay1()//显示数据函数{inti;charas;do{printf(\t\t\t班级学生高数成绩排序\n\n);printf(\t学号\t姓名\t学院\t年龄\t高数\n);sort1();for(i=0;inew_num&&stu[i].name[0];i++)printf(\t%u%s\t%s\t%d\t%.2f\t\n,stu[i].num,stu[i].name,stu[i].department,stu[i].age,stu[i].gaoshu);printf(\t\t\t班级学生C语言成绩排序\n\n);printf(\t学号\t姓名\t学院\t年龄\tC语言\n);sort2();for(i=0;inew_num&&stu[i].name[0];i++)printf(\t%u%s\t%s\t%d\t%.2f\t\n,stu[i].num,stu[i].name,stu[i].departme
本文标题:学生信息管理系统实验报告
链接地址:https://www.777doc.com/doc-4516216 .html