




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件基础上机题之排序算法PAGEPAGE1
年级10级班号5
学号
10064132专业自动化
姓名
刘满实验名称排序算法的相关操作实验类型设计型综合型创新型实验目的或要求实验目的:1.掌握基本的文件读取操作;2.掌握快速排序、冒泡排序算法的实现。实验要求:1.编程实现快速排序、冒泡排序各算法函数;2.编写主函数对各排序函数进行测试实验原理(算法流程)开始
开始输出主菜单选择界面输出主菜单选择界面输入x的值其他:输入x的值输入项无效,请重新输入!x=?x=?1234快速排序退出冒泡快速排序退出冒泡排序显示成绩输入rturn的值输入rturn的值rturn=N假rturn=N真结束结束组内分工(可选)无实验结果分析及心得体会成绩评定教师签名:2010年月日#include"stdafx.h"#include"stdio.h"#include"stdlib.h"#include<time.h>#definen8/*宏定义录入学生成绩的个数*/#defineFILE_PATH"f:\\grade.txt"/*对文件路径进行宏定义*/typedefintKeyType;typedefstruct{ KeyTypegrade; charname[20];}RecType;RecTypeR[n];voidshowagrade();/*读取显示成绩*/voidBubblesort(RecTypeR[]);/*对学生成绩进行冒泡排序,并输出*/voidQuicksort(RecTypeR[],intlow,inthigh);/*对学生成绩进行快速排序,并输出*/intPartition(RecTypeR[],inti,intj);/*分治算法*/voidmenu(){ printf("★★★★★★★★★★★★★★★★★★★★★★★★★★\n"); printf("★1.读取显示成绩★\n"); printf("★2.对学生成绩进行冒泡排序,并输出★\n"); printf("★3.对学生成绩进行快速排序,并输出★\n"); printf("★4.退出★\n"); printf("★★★★★★★★★★★★★★★★★★★★★★★★★★\n");} voidmain(){ inti,x,low,high; charrturn; menu(); while(1) { printf("请选择相应功能:"); fflush(stdin); scanf("%d",&x); switch(x) { case1: //仅显示成绩 showagrade(); printf("仅显示成绩完成,是否继续?(N退出,任意键继续)\n"); fflush(stdin); scanf("%c",&rturn); if(rturn=='N') exit(0); break; case2://对学生成绩进行冒泡排序,并输出 Bubblesort(R); printf("\n"); printf("对学生成绩进行冒泡排序,并输出完成,是否继续?(N退出,任意键继续)\n"); fflush(stdin); scanf("%c",&rturn); if(rturn=='N') exit(0); break; case3://对学生成绩进行快速排序,并输出 Quicksort(R,1,7); for(i=1;i<=7;i++) printf("%d\t",R[i]); printf("\n"); printf("对学生成绩进行快速排序,并输出完成,是否继续?(N退出,任意键继续)\n"); fflush(stdin); scanf("%c",&rturn); if(rturn=='N') exit(0); break; case4: return; default: printf("输入选项无效!请重新输入!\n"); } }}voidshowagrade()/*读取显示成绩*/{ FILE*fp; fp=fopen(FILE_PATH,"r+");/*获得只读文件的地址*/ chartempbuf[100];/*定义字符数组*/ fgets(tempbuf,100,fp);/*从fp指向的文件中读取100个数据到tempbuf*/ charname[20]; intgrade; inti=1; while(i<n) { fscanf(fp,"%*s%d",&R[i]); printf("%d\t",R[i]); i++; } printf("\n"); fclose(fp);}voidBubblesort(RecTypeR[])/*对学生成绩进行冒泡排序,并输出*/{ inti,j,flag=0; RecTypeq; for(i=1;i<7;i++) { for(j=6;j>=i;j--) if(R[j+1].grade<R[j].grade)/*如果R[j+1].grade<R[j].grade,则交换两数据的位置*/ { R[0]=R[j+1]; R[j+1]=R[j]; R[j]=R[0]; flag=1;/*flag=1标志数据进行过移位*/ } if(!flag)/*flag=0说明该组数据原本就是按顺序排定,此时返回系统*/ return; } for(i=1;i<=7;i++) printf("%d\t",R[i]);}voidQuicksort(RecTypeR[],intlow,inthigh)/*对学生成绩进行快速排序,并输出*/{ intpivotpos,i; if(low<high) { pivotpos=Partition(R,low,high);/*调用分治算法*/ Quicksort(R,low,pivotpos-1);/*用递归法进行快速排序*/ Quicksort(R,pivotpos+1,high); }}intPartition(RecTypeR[],inti,intj)/*分治算法,找到基准记录的位置,供快速排序调用*/{ RecTypepivot=R[i]; w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路工程施工进度管理措施
- 一年级数学下册教学计划与家长沟通方案
- 2025年功能性电刺激仪系列项目发展计划
- 网络安全保证措施与数据保护体系
- 班级文化的国际化视野与跨文化交流
- 2025年度冷链仓储温控设备租赁合同模板
- 2025年中国金枪鱼油行业发展监测及发展趋势预测报告
- 社区疫情防控演练方案与流程设计
- 科技产品中的现代简约风格板式家具设计实践
- BSCI长期目标计划与市场竞争力提升
- 王淑玲《做最好的自己》读书分享
- 《优秀教师的自我修炼》读书笔记PPT模板思维导图下载
- 列车运行阻力
- 疾病诊断相关分组概念
- Python深度学习实战-基于Pytorch全书电子讲义完整版ppt整套教学课件最全教学教程
- 2023年黑龙江建筑职业技术学院高职单招(语文)试题库含答案解析
- 十八项医疗核心制度考试题及答案
- 《地史学》第01章-绪论
- 《高级计量经济学》-上课讲义课件
- 主要工业产品统计指南
- 发证机关所在地区代码表
评论
0/150
提交评论