




kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
kok电子竞技:文档简介
1、精选优质文档-倾情为你奉上程序设计实践kok电子竞技一、题目(1) 问题描述设计数据结构完成一个学院学生相关信息的存储,并在此基础上编写算法实现学生成绩管理。(2) 课程设计目的应用线性数据结构存储信息,并能够合理的应用排序及查找算法,学会应用散列法。(3) 基本要求 一个学院由若干个班组成;所有学生修相同的考试课和考查课。 管理系统能够实现:学生加入,学生毕业,学生成绩统计,学生查询,学生排名等管理操作。(要考虑考试课和考查课的比重关系) 为方便查找,要求针对学生姓名进行散列法查找。 管理系统应有完整地界面(最好是图形化界面)。(4) 实现提示主要集中在散列函数的构造和冲突的解决上。二、问题分析及求解
2、基本思路1 定义一个学生信息的结构体2 声明各种功能函数3 定义主菜单项目以及子菜单项目4 输入 输出信息和查询修改删除等操作三、问题求解的整体框架结构1 主函数通过调用函数实现成绩查询和管理2 菜单界面函数3 输入学生信息4删除学生信息5 修改学生信息6 查询学生信息7 显示学生信息并保存以及纠错功能四、主要算法#include #include #include #include /int main() int choose,editnum,dispnum,compnum,sortnum; /* 定义5个输入变量*/ system(cls); StuCover(); getch(); wh
3、ile(1) MainMenu(); / couttt请输入序号:endl; scanf(%d,&choose); switch(choose) */ case 1:Open(stu,&stunum);break; case 2:Save(stu,&stunum);break; case 3: do EditMenu(); couttt请输入序号:endl; scanf(%d,&editnum); switch(editnum) case 1:Add(stu,&stunum);break; case 2:Del(stu,&stunum);break; case 3:Modify(stu,&st
4、unum);break; case 0:Quit(0);break; while(editnum!=0); break; case 4: do DispMenu(); couttt请输入序号:endl; scanf(%d,&dispnum); switch(dispnum) / case 1:DispOne(stu,&stunum);break; case 2:DispAll(stu,stunum);break; case 3: do SortMenu(); couttt请输入序号:endl; scanf(%d,&sortnum); switch(sortnum) case 1:AsceSor
5、t(stu,stunum);break; case 2:DropSort(stu,stunum);break; case 0:Quit(0);break; / while(sortnum!=0); /* 内循环3结束*/ break; case 4:NotElig(stu,stunum);break; case 0:Quit(0);break; while(dispnum!=0); break; case 5: do CompMenu(); couttt请输入序号:endl; scanf(%d,&compnum); switch(compnum) case 1:CompSum(stu,stun
6、um);break; case 2:SearchMax(stu,stunum);break; case 3:SearchMin(stu,stunum);break; case 0:Quit(0);break; while(compnum!=0); break; case 0:Quit(1);break; return 0; void gotoxy(int x,int y)COORD c;c.X=x-1;c.Y=y-1;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); void Quit(int flag) if(flag=
7、1) system(cls); coutnnnnnnttt操作结束,退出系统!endl; getch(); system(cls); exit(0); else if(flag=0) system(cls); coutnnnnnnttt操作结束,返回上级菜单!endl; getch(); system(cls); void StuCover() system(cls); coutnnnendl; couttt班级学生成绩管理系统nnendl; void MainMenu() int n; system(cls); coutnnnendl; cout |* * * * * 学生成绩管理系统 *
8、* * * *|nendl; cout |.|nendl; cout | 请选择菜单序号(05) |nendl; cout |.|nendl; cout | 1-打开文件 |nendl; cout | 2-保存文件 |nendl; cout | 3-编辑数据 |nendl; cout | 4-显示数据 |nendl; cout | 5-数据计算 |nendl; cout | 0-退出系统 |nendl; cout |.|nendl; couttt请选择序号:endl; scanf(%d,&n); cout您选择了第 项!nnendl; void DispMenu() int n; system
9、(cls); coutnnnendl; cout |* * * * * *显示子菜单 * * * * *|nendl; cout |.|nendl; cout | 请选择菜单序号(04) |nendl; cout |.|nendl; cout | 1-查看选定记录 |nendl; cout | 2-显示全部记录 |nendl; cout | 3-显示排序记录 |nendl; cout | 4-显示不及格记录 |nendl; cout | 0-返回上级菜单 |nendl; cout |.|nendl; couttt请选择序号:endl; scanf(%d,&n); cout您选择了第 项!nne
10、ndl; void EditMenu() int n; system(cls); coutnnnendl; cout |* * * * * * * 编辑子菜单 * * * * * *|nendl; cout |.|nendl; cout | 请选择菜单序号(03) |nendl; cout |.|nendl; cout | 1-增加记录 |nendl; cout | 2-删除记录 |nendl; cout | 3-修改记录 |nendl; cout | 0-返回上级菜单 |nendl; cout |.|nendl; couttt请选择序号:endl; scanf(%d,&n); cout您选择
11、了第 项!nnendl;void CompMenu() int n; system(cls); coutnnnendl; cout |* * * * * * * 计算子菜单 * * * * * *|nendl; cout |.|nendl; cout | 请选择菜单序号(03) |nendl; cout |.|nendl; cout | 1-计算总成绩和平均成绩 |nendl; cout | 2-计算最高分(平均分) |nendl; cout | 3-计算最低分(平均分) |nendl; cout | 0-返回上级菜单 |nendl; cout |.|nendl; couttt请选择序号:en
12、dl; scanf(%d,&n); cout您选择了第 项!nnendl;void SortMenu() int n; system(cls); coutnnnendl; cout |* * * * * * * 排序子菜单 * * * * * *|nendl; cout |.|nendl; cout | 请选择菜单序号(02) |nendl; cout |.|nendl; cout | 1-按升序排序 |nendl; cout | 2-按降序排序 |nendl; cout | 0-返回上级菜单 |nendl; cout |.|nendl; couttt请选择序号:endl; scanf(%d,
13、&n); cout您选择了第 项!nnendl;void SearchMax(struct student stu,int stusize) 访问函数 */ float max=stu0.stuscore4; int i; system(cls); for(i=1;istusize;i+) if(maxstui.stuscore4) max=stui.stuscore4; gotoxy(20,5); cout成绩最高的是:nmaxendl; gotoxy(20,10); cout查找最高分成功,按任意键返回上级菜单!endl; getch();void SearchMin(struct stu
14、dent stu,int stusize) 访问函数 */ float min=stu0.stuscore4; int i; system(cls); for(i=1;istui.stuscore4) min=stui.stuscore4; gotoxy(20,5); cout成绩最高的是:nminendl; gotoxy(20,10); cout查找最低分成功,按任意键返回上级菜单!endl; getch();void NotElig(struct student stu,int stusize) int i,flag=0; system(cls); gotoxy(20,5); cout不合
15、格成绩:endl; for(i=0;istusize;i+) if(stui.stuscore460) coutstui.stuscore4endl; flag=1; if(!flag) gotoxy(35,5); cout没有不合格成绩!endl; gotoxy(20,10); cout查找不及格成绩成功,按任意键返回上级菜单!endl; getch();void CompSum(struct student stu,int stusize) /* 计算总成绩和平均成绩函数声明*/ int i,j; float sumscore; system(cls); if(stusize=0) got
16、oxy(22,5); cout数组中没有学生记录或文件没有打开,不能计算总成绩和平均成绩!endl; getch(); else for(i=0;istusize;i+) sumscore=0; for(j=0;j3;j+) sumscore+=stui.stuscorej; stui.stuscore3=sumscore; stui.stuscore4=sumscore/3.0f; gotoxy(20,5); cout计算总成绩和平均成绩成功,按任意键返回上级菜单!endl; getch();void AsceSort(struct student stu,int stusize) /* 按
17、升序排列指针访问函数 */ int i,j; float temp; float temp_scoreSTUSIZE,*pf; /*定义一个新数组*/ system(cls); pf=temp_score; for(i=0;istusize;i+) /*给新数组赋值*/ temp_scorei=stui.stuscore4; for(i=0;istusize-1;i+) /*双重循环实现学生成绩按升序排列*/ for(j=0;jstusize-i-1;j+) if(*(pf+j+1)*(pf+j) temp=*(pf+j); *(pf+j)=*(pf+j+1); *(pf+j+1)=temp;
18、 gotoxy(5,5); cout升序排列结果:endl; for(i=0;istusize;i+) cout*(pf+i)endl; gotoxy(20,10); cout升序排列成功,按任意键返回上级菜单!endl; getch();void DropSort(struct student stu,int stusize) /* 按降序排列指针访问函数 */ int i,j; float temp; float temp_scoreSTUSIZE,*pf; /*定义一个新数组*/ system(cls); pf=temp_score; for(i=0;istusize;i+) /*给新数
19、组赋值*/ temp_scorei=stui.stuscore4; for(i=0;istusize-1;i+) /*双重循环实现学生成绩按降序排列*/ for(j=0;j*(pf+j) temp=*(pf+j); *(pf+j)=*(pf+j+1); *(pf+j+1)=temp; gotoxy(5,5); cout降序排列结果:endl; for(i=0;istusize;i+) printf(%6.1f,*(pf+i); gotoxy(20,10); cout降序排列成功,按任意键返回上级菜单!=40) gotoxy(30,2); cout数组已满,不能再增加记录!endl; retur
20、n 0; else do /*判断输入的增加记录数是否合适*/ gotoxy(30,2); cout请输入增加的记录个数:endl; scanf(%d,&number); if(number=40) gotoxy(30,4); cout输入增加记录个数错,请重新输入!endl; while(number=40); stunum=*size+number; system(cls); gotoxy(33,2); cout学生信息输入!endl; for(i=*size;istunum;i+) gotoxy(15,5); cout请输入第个学生学号:i+1endl; gotoxy(15,7); co
21、ut请输入第个学生姓名:i+1endl; gotoxy(15,9); cout请输入第1门成绩:endl; gotoxy(15,11); cout请输入第2门成绩:endl; gotoxy(15,13); cout请输入第3门成绩:endl; gotoxy(37,5); scanf(%d,&stui.stunum); gotoxy(37,7); scanf(%s,&stui.stuname); for(j=0;j3;j+) gotoxy(32,9+j*2); scanf(%f,&stui.stuscorej); if(i=*size) gotoxy(33,4); cout没有记录输入!endl
22、; *size=stunum; gotoxy(33,15); cout按任意键返回上级菜单!endl; getch(); return 0; int Del(struct student stu,int *stusize) int i,k; int loop=0; int number; system(cls); gotoxy(33,2); cout删除学生记录!nendl; if(*stusize=0) gotoxy(20,4); cout数组中没有学生记录或文件没有打开,不能删除记录!endl; getch(); return 0; else do system(cls); gotoxy(
23、25,2); cout删除学生记录(不能删除记录请输入-)!nendl; gotoxy(28,4); cout请输入被删除学生的学号:nendl; scanf(%d,&number); if(number=-1) return 0; for(i=0,k=0;i*stusize;i+) if(number=stui.stunum) loop=1; k=i; break; if(loop!=1) gotoxy(25,6); cout输入学生学号出错,按任意键重新输入!endl; getch(); while(loop!=1); for(i=k;i*stusize;i+) stui=stui+1;
24、gotoxy(25,6); cout删除成功,按任意键返回上级菜单!endl; *stusize=*stusize-1; getch(); return 0; int Modify(struct student stu,int *stusize) int i,k; int loop=0; int number; system(cls); gotoxy(33,2); cout修改学生记录!nendl; if(*stusize=0) gotoxy(20,4); cout数组中没有学生记录或文件没有打开,不能修改记录!endl; getch(); return 0; else do system(c
25、ls); gotoxy(25,2); cout修改学生记录!(不修改记录请输入-)nendl; gotoxy(28,4); cout请输入被修改学生的学号:endl; scanf(%d,&number); if(number=-1) return 0; for(i=0,k=0;i*stusize;i+) if(number=stui.stunum) loop=1; k=i; break; if(loop!=1) gotoxy(25,6); cout输入学生学号出错,按任意键重新输入!endl; getch(); while(loop!=1); system(cls); gotoxy(33,2)
26、; cout修改学生记录!nendl; gotoxy(28,4); cout学号:stuk.stunumendl; gotoxy(28,6); cout姓名:stuk.stunameendl; gotoxy(28,8); cout成绩:stuk.stuscore0endl; gotoxy(28,10); cout成绩:stuk.stuscore1endl; gotoxy(28,12); cout成绩:stuk.stuscore2endl; gotoxy(34,4); cout&stuk.stunumendl; gotoxy(34,6); cout&stuk.stunameendl; gotox
27、y(35,8); cout&stuk.stuscore0endl; gotoxy(35,10); scanf(%f,&stuk.stuscore1); gotoxy(35,12); scanf(%f,&stuk.stuscore2); gotoxy(25,14); cout修改成功,按任意键返回上级菜单!endl; getch(); return 0;int DispAll(struct student stu,int size) int i,j; system(cls); if(size=0) gotoxy(20,4); cout数组中没有学生记录或文件没有打开,不能显示记录!endl; g
28、etch(); return 0; else gotoxy(5,4); cout学号 姓名 成绩 成绩 成绩 总成绩 平均成绩endl; for(i=0;isize;i+) gotoxy(5,6+i); coutstui.stunumendl; coutstui.stunameendl; for(j=0;j5;j+) coutstui.stuscorejendl; coutnendl; gotoxy(28,7+size); cout按任意键返回上级菜单!endl; getch(); return 0;int DispOne(struct student stu,int *stusize) in
29、t i,j,k,loop,number; do system(cls); gotoxy(25,2); cout查看学生记录!(不查看记录请输入-)nendl; gotoxy(28,4); cout请输入被查看学生的学号:endl; scanf(%d,&number); if(number=-1) return 0; for(i=0,k=0;i*stusize;i+) if(number=stui.stunum) loop=1; k=i; break; if(loop!=1) gotoxy(25,6); cout输入学生学号出错,按任意键重新输入!endl; getch(); while(loo
30、p!=1); gotoxy(5,4); cout学号 姓名 成绩 成绩 成绩 总成绩 平均成绩endl; gotoxy(5,6); coutstuk.stunumendl; coutstuk.stunameendl; for(j=0;j5;j+) coutstuk.stuscorejendl; coutnendl; gotoxy(28,8); cout按任意键返回上级菜单!endl; getch(); return 0;void Open(struct student stu,int *size) int i=0,m=0; FILE *fp,*fp1; if(fp=fopen(studentscore,rb)=NULL) fp1=fopen(studentscore,wb+); fclose(fp1); if(fp=fopen(zhangguohua,rb)=NULL) fp1=fopen(zhangguohua,wb+); fprintf(fp1,%d,m); fclose(fp1); system(cls); if(fp=fopen(studentscore,rb)=NULL)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
kok电子竞技:最新文档
- 数学-陕西2025年宝鸡市高考模拟检测试题 (二)(宝鸡二模)试题和答案
- 竹制围栏施工方案范本
- 干挂石材拆除施工方案
- 借电缆合同范例
- 个人合伙企业合同范本
- 第1课《计算机网络》教学设计 2023-2024学年浙教kok电子竞技(2023)初中信息技术七kok电子竞技上册
- 北京锅炉拆除合同范例
- 生态环境教育计划
- 优化人事部门工作效率的步骤计划
- 高中生职业规划与指导方案计划
- 2025年安徽卫生健康职业学院单招职业适应性考试题库审定kok电子竞技
- 2025年兴安职业技术学院单招职业技能测试题库新kok电子竞技
- 高考语文复习:观点思辨类高考作文写法指导 课件
- 城区道路环卫作业整体市场化投标文件(技术方案)
- 2025年合肥经济技术职业学院单招职业适应性测试题库及答案一套
- 2025年黑龙江职业学院单招职业技能测试题库完整
- 2025年赣州职业技术学院单招职业适应性测试题库一套
- 2025年道路运输企业安全生产管理人员考试题(附答案)
- 2025年哈尔滨铁道职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 中医适宜技术-中药热奄包
- 2024年湖南大众传媒职业技术学院单招职业技能测试题库及答案解析
评论
0/150
提交评论