一、题目:混合数据排序

二、目的与要求

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;
}

运行出来的如下:

课程设计:混合数据排序相关推荐

  1. 计算机网络ip数据包分析题,计算机网络课程设计-IP数据包解析实验报告

    计算机网络课程设计-IP数据包解析实验报告 解析 IP数据报实验报告目录目录 21.课程设计目的 .22.课程设计要求 .23.相关知识 .24.课程设计分析 .64.1 网卡设置64.2 使用套接字 ...

  2. 计算机网络ip数据包分析题,计算机网络课程设计_IP数据包的捕获及分析.doc

    CENTRAL SOUTH UNIVERSITY 计算机网络课程设计报告 目录 第一章 课程设计的目的与要求1 1.1 课程设计的目的1 1.2 课程设计的要求1 第二章 课程设计的内容3 2.1 课 ...

  3. 《数据结构》课程设计-排序算法可视化

    <数据结构>课程设计-js实现排序算法可视化 先上效果图: 一.数据可视化 1.什么是数据可视化 数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视 ...

  4. 中英文混合拼音排序(从首字母开始,相同则往下比较)

    中英文混合拼音排序(从首字母开始,相同则往下比较) 中文/英文混合数据 进行转拼音(中文),按照26个字母顺序排序,从首字母开始比较,相同则比较第二个字母,如此类推,直到结束排序为止. pom.xml ...

  5. 【毕业设计_课程设计】基于大数据个性化音乐推荐算法分析

    文章目录 0 前言 1 研究目的 2 研究方法 2.1 传统推荐算法 2.2 基于LightGBM决策树模型的推荐算法 3 研究结论 4 最后 0 前言 基于大数据个性化音乐推荐算法分析 提示:适合用 ...

  6. c语言大作业成绩分析问题,河南科技大学c语言课程设计-综合排序设计报告-成绩分析问题.doc...

    河南科技大学c语言课程设计-综合排序设计报告-成绩分析问题.doc 河南科技大学综合程序设计报告成绩分析问题学院电气工程学院年级专业电子161学号161404110104学生姓名李恺指导教师赵老师1. ...

  7. 企业职工工资在线管理信息系统【数据建模与程序设计课程设计报告】

    若本文对你有用请点赞.关注我哟!有些人建议我把指导书也写进博客,所以文章略长. 复习累了可以看看我的视频,有惊喜哦! https://www.bilibili.com/video/BV117411c7 ...

  8. 数据可视化课程设计——北京新发地官网数据分析与可视化展示【内容在jupyter notebook里面展示】包含数据爬取与可视化分析详解

    目录 一.课题说明 1.1.设计原因: 1.2.设计目标: 1.3.开发环境: 1.4.爬取网站链接 二.准备工作 2.1.数据获取: 2.2.爬取的数据说明: 2.3.爬虫程序设计的思路: 三.详细 ...

  9. 将100本英文书名做字典排序 c语言,C语言课程设计一种简单的英文词典排版系统c.doc...

    C语言课程设计一种简单的英文词典排版系统c 英文摘要中国地质大学(武汉)C语言课程设计学 院:机电学院 专 业:通信工程 题 目:一种简单的英文词典排版系统 班 级:075094 姓 名: 学 号: ...

最新文章

  1. 一幅图读懂量子力学(数学的判决)
  2. jquery实现上传图片及图片大小验证、图片预览效果代码
  3. THINKPHP_关联模型_HAS_ONE/HAS/MANY/BELONGS_TO
  4. 迭代器、生成器、面向过程编程思想
  5. Activity的用法(一):Notification Activity
  6. 初次尝试使用IDAPro修改程序控制流程
  7. 4.5-4.9 磁盘格式化,磁盘挂载,手动增加swap空间
  8. 使用JDBCTemplate实现与Spring结合,方法公用 ——接口(BaseDao)
  9. centos图形化桌面的文件在哪_CentOS 安装图形桌面
  10. 2014.9.13模拟赛【数位和乘积】
  11. Newtonsoft.Json.dll 使用
  12. OC之description
  13. 电商促销海报PSD模板|临摹优秀,设计好的banner广告从试炼开始!
  14. 基于JAVA+Spring+MYSQL的码头船只出行管理系统
  15. 【字符串】面试题之以逗号分割字符串,形成二维数组
  16. 奖补多的2022年合肥高新区高成长企业申报时间入选范围及申报条件材料
  17. Python数据分析-房价的影响因素图解
  18. Cisco思科路由器配置GRE通道的简单例子
  19. Mininet教程(六):多数据中心带宽实验
  20. 【LBS】移动互联网基于LBS地理位置应用开发必备

热门文章

  1. js使用const的好处_let和const命令
  2. Web开发必学的8个网页优化技巧!
  3. matlab 病态方程组,数值分析(Hilbert矩阵)病态线性方程组的求解Matlab程序
  4. python查找指定字符所在行号_在python中获取当前位置所在的行号和函数名
  5. C语言取小于自身的最大整数,C语言整数类型(含取值范围和长度)
  6. python 环境管理工具_python3环境管理器
  7. mysql中error22_docker中将MySQL运行在容器中失败提示“ InnoDB : Error 22 with aio_write”的解决办法...
  8. java 注解学习_JAVA注解学习
  9. C语言学习笔记---字符读取函数scanf()、gets()、fgets()
  10. LogStash实现MySQL数据增量同步到ElasticSearch