课程设计:混合数据排序
来源:互联网 发布:淘宝美工招聘信息 编辑:程序博客网 时间:2024/04/28 17:43
一、题目:混合数据排序
二、目的与要求
1. 目的:
(1)通过该题目的设计,培养学生综合利用C++语言解决问题的能力,使学生理解和掌握C++中组的应用及
排序算法,将所学知识转化为分析和设计简单实际问题的能力,并学会查资料和工具书,进行创新设计。
(2)提高学生建立程序文档、归纳总结的能力。
2. 基本要求:
(1)要求用C++语言编程,在Visual C++环境下调试完成;
(2)要求使用C++的结构体和自定义函数完成设计;
(3)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。
(4)程序调试通过后,完成程序文档的整理,加必要的注释。
三、设计方法和基本原理
1. 课题功能描述
开发一个排序程序,用户输入长度(数据个数)可变的数据,输入字母,则按字符排序;输入数字,则按
数字排序;输入字母和数字的混合数据,则首先区分数字和字母,然后各自排序。
2. 基本原理
1) 通过ASCII判断输入的是否为字母;
2)用两个数组各自保存字符和数字。
3. 问题解决方案(编程要求):
编写程序,实现区分混合数据并实现排序,并且由用户选择升序或降序两种方式。
例如:输入数据“abd3564fe”,则排序结果如选择“降序”如下图所示:、
四、主要技术问题的描述:
通过两个一维数组保存两种类型的数据,由于数组的大小不确定,可使用new函数分配数组存储空间。排序
的算法可使用冒泡法或比较互换法,或其他方法。
五、创新要求
实现对字符串和数字的混合排序。
六、课程设计的考核方式及评分方法
1.考核方式
(1) 学生要提交书面课程设计报告(A4纸打印);并将设计报告的电子文档、.cpp源文件和.h头文件放
到一个文件夹里(如果是基于MFC的编程,另外还包括源程序的压缩包)上传到所对应班级的学生名称相应
文件夹中。
(2) 课程设计结束时,在机房当场验收。教师提供测试数据,由学生运行所设计的系统,检查运行结果
是否正确,并回答教师提出的有关问题。
2.评分方法
根据出勤率、课程设计期间纪律、课程设计运行结果、课程设计报告及答辩情况综合评分。
七、书写设计报告的要求(详细内容见“设计报告模板”)
八、说明:课程设计的有关文档,“设计报告模板”和“课程设计要求”请在下载任务书处下载。
急忙急忙写额,不完善的地方希望指出:
PaiXu.cpp源代码如下:
#include <iostream>#include "string"#include <stdio.h>void Ascending(char *pAscend,int nAsNum); //声明升序函数void Descending(char *pDescend,int nDeNum); //声明降序函数using namespace std;int main(){char *pCin=new char[1000]; //申请空间存放用户输入的数据char *pNum=new char[1000]; //申请空间存放用户输入数据中的数字char *pLetter=new char[1000]; //申请空间存放用户输入数据中的字母cout<<"请输入数据:"<<endl;cin>>pCin;int nNum=0;for (int i=0;pCin[i]!='\0';i++){nNum++;}cout<<"输入的字符个数是:"<<nNum<<endl;int nNum_Num=0; //数字个数int nNum_Letter=0; //字母个数//判别是数字还是字母,分别存在各自的数组中for (int j=0;j<nNum;j++){if ((pCin[j]<='9')&&(pCin[j]>='0')){pNum[nNum_Num]=pCin[j];nNum_Num++;}if ((pCin[j]<='z')&&(pCin[j]>='a')){pLetter[nNum_Letter]=pCin[j];nNum_Letter++;}}cout<<"字符为数字的是:";for (int m=0;m<nNum_Num;m++){cout<<pNum[m];}cout<<endl;cout<<"字符为字母的是:";for (int n=0;n<nNum_Letter;n++){cout<<pLetter[n];}cout<<endl;cout<<"其中数字个数是:"<<nNum_Num<<endl;cout<<"其中字母个数是:"<<nNum_Letter<<endl;cout<<endl;cout<<"选择排序方式(1--升序 2--降序):";char cHit;while(1){cin>>cHit;switch (cHit){case '1':cout<<"数字升序为:";Ascending(pNum,nNum_Num);cout<<"字母升序为:";Ascending(pLetter,nNum_Letter);break;case '2':cout<<"数字降序为:";Descending(pNum,nNum_Num);cout<<"字母降序为:";Descending(pLetter,nNum_Letter);break;default:cout<<"输入不符合要求!"<<endl;break;}cout<<endl;cout<<"选择排序方式(1--升序 2--降序):"<<endl;} cout<<endl;delete [] pCin;delete [] pNum;delete [] pLetter;return 0;}//升序函数 采用冒泡法void Ascending(char *pAscend,int nAsNum){int i=0,j=0,n=0;char temp;for (i=nAsNum-1;i>0;i--){for(j=0;j<i;j++){if (pAscend[j]>=pAscend[j+1]){temp = pAscend[j];pAscend[j] = pAscend[j+1];pAscend[j+1] = temp;}}}for (n=0;n<nAsNum;n++){cout<<pAscend[n];}cout<<endl;}//降序函数 采用冒泡法void Descending(char *pDescend,int nDeNum){int i=0,j=0,n=0;char temp;for (i=nDeNum-1;i>0;i--){for(j=0;j<i;j++){if (pDescend[j]<=pDescend[j+1]){temp = pDescend[j];pDescend[j] = pDescend[j+1];pDescend[j+1] = temp;}}}for (n=0;n<nDeNum;n++){cout<<pDescend[n];}cout<<endl;}
运行出来的如下:
- 课程设计:混合数据排序
- 对字母数字混合的数据排序
- 【SQL】对混合数据进行排序
- ORACLE对字母和数字混合的数据排序
- 数据结构图--课程设计
- 数据结构各种内部排序课程设计
- 冒泡、快速、归并排序课程设计
- 汉字数字混合排序
- 数据库中英文混合排序
- Mysql 中英文混合排序
- iOS 中英文混合排序
- 中英文混合排序
- 数字字母混合排序
- SQL中英文混合排序
- 中英文混合排序
- sqlserver 2005 混合排序
- [简易]中英文混合排序
- 中英文混合排序
- NeHe OpenGL第三十三课:TGA文件
- 重定义extjs中button被点击后的样式
- 获取元素样式值 document.defaultView.getComputedStyle
- ff支持的Ajax请求
- 从resource中读取xml,并进行解析
- 课程设计:混合数据排序
- LXR安装
- 关于EL表达式中requestScope和param区别
- Android:创建动态UI
- libcurl教程
- 理解Flex3的组件和框架的生命周期
- Select下拉列表类(支持输入模糊查询)
- ODP.NET 32位简介和下载地址
- PE暗渡对冲基金