《C++教学资料》混合数据排序2.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学计算机软件技术基础(VC)2012年课程设计报告 学院 信息工程学院 班级 电技111班 姓名 吴迪 学号 112016 成绩____ 一、题目: 混合数据排序(03) 二、设计思路 1、总体设计 分析程序的功能 开发一个排序程序,用户输入长度(数据个数)可变的数据,输入字母,则按字符排序;输入数字,则按数字排序;输入字母和数字的混合数据,则首先区分数字和字母,然后各自排序。 系统总体结构: 本课程设计用到了函数调用、冒泡法排序、for循环、new函数、以及if函数等等,成功实现了混合数据的区分与排序,并可由用户自己选择升序亦或降序。 此程序包涵main函数,shengxu函数,jiangxu函数,bubblesort函数。 此程序先用new函数来申请一个动态空间,存放数据,再输入一个长度不定的数据,存在这个空间,对这些数据进行处理。 通过ASCII码值对输入的数据进行分类(分为字母和数字两类)并用冒泡法排序后输出。 一轮排序后由用户选择是继续下一轮排序还是退出程序。 模块 函数名称 冒泡法排序 bubbleSort 升序排序 shengxu 降序排序 jiangxu 主函数 main 2、各功能模块的设计:说明各功能模块的实现方法 1)BubbleSort函数 对分类好的数据进行排序:从第一个数据开始,对数组中两两相邻的数据进行比较,如q[0]与q[1]比较,若q[0]大于q[1],则q[0]与q[1]交换,较大的数向后移动,然后q[1]与q[2]比较……直到q[n-2]与q[n-1]比较结束,这样就形成了一个有序数组。 shengxu函数 输入n个数据。 如果输入的数据ASCII码值满足(q[i]=Aq[i]=z),即m==n,则说明数据全部为字母,只对字母进行升序排序,其中输出时for(i=0;in;i++)。 如果输入的数据ASCII码值不是全部满足(q[i]=Aq[i]=z) ,即(mnm0),则说明数据中既有数字又有字母,则按照ASCII码值升序排序后再根据ASCII码值分别输出,if(q[i]=Aq[i]=z)输出字母,if(q[i]=0q[i]=9)输出数字,输出时for(i=0;in;i++)。 如果输入的数据ASCII码值都不满足(q[i]=Aq[i]=z),则说明输入的数据都为数字,则只对数字升序排序,其中输出时for(i=0;in;i++)。 3) jiangxu函数 降序与升序类似,只是输出时for(i=n-1;i=0;i--)。 4)main函数 用new函数来申请一个动态空间,存放数据,再输入一个长度不定的数据,存在这个空间,调用shengxu函数和jiangxu函数对数据进行处理。用switch函数,输入“1”执行升序,输入“2”执行降序。 程序执行一次后用delete运算符释放内存空间。 按照提示还可以进行下一轮排序。 5)创新设计部分 能对纯数字进行排序,能对字母进行排序,能对字母和数字的混合数据进行排序。 运用了new函数分配了动态空间,能对不定长度的数据排序。 运用多个函数调用,使程序简洁高效。 能连续进行数据的排序。 3、设计中的主要困难及解决方案 设计中需要对不定长度的数据分配内存,通过查阅资料运用new函数解决了此问题。 对混合数据的分开排序遇到困难,通过老师讲过的知识想到可以运用ASCII码值区分数据并分别输出。 4、你所设计的程序最终完成的功能 说明你编制的程序能完成的功能 能对不定长度的数字和字母的混合数据进行排序,也能对纯数字或纯字母进行排序,并且用户可以自己选择升序或降序,还可以连续输入数据并排序,可以随时退出。 准备的测试数据及运行结果 三、程序清单 1)main函数 void main() { int n,x,a; for(a=2;a!=0;) { char *q; cout\n**************************************************\n; cout\n****************03混合数据排序 *****************\n; cout请输入需要排序的数据个数: ; cinn; cout请输入数据:; if((q=new char [n]) == 0) //new函数 向系统申请动态空间 { coutThere is not full memory!\n; exit(1); }

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档