c#实验一:基于winform的冒泡排序练习
一、界面设计
在排序前textbox中输入数字,以逗号隔开,通过两个button实现降序排序或升序排序,然后在排序后textbox中显示
三个关键点:
1、监测输入是否合法,最好使用正则表达式
2、拆分textbox中字符串,使用String类的slipt方法
3、冒泡排序法
二、关于拆分textbox中字符串
1、如果以空格作为字符串结束标志,应采用以下语句
string str = textBox1.Text.Trim();
string[] ss = str.Split();
2、如果以逗号作为结束标志,应采用以下语句
string str = textBox1.Text.Trim(); 或者 string str = textBox1.Text;
string[] ss = str.Split(',');
三、冒泡排序法
冒泡排序法就是把数组中的元素按从小到大或从大到小顺序排例,注意每次比较的次数依次减小
公式格式为:
for(int i = ; i < array.length - ; i++)
{
for(int j = ; j < array.length - - i; j++) //不能忘减i
{
int temp;
if(array[j] < array[j + ])
{
temp = array[j]; //这里决定了是降序,还是升序
array[j] = array[j + ] ;
array[j + ] =temp;
}
}
}
四、完整代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.RegularExpressions; namespace 冒泡法排序
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button2_Click(object sender, EventArgs e) //降序排列
{
string str = textBox1.Text.Trim();
//string str = textBox1.Text;
string[] ss = str.Split(); string temp = "";
for (int i = ; i < ss.Length - ; i++)
{
for (int j = ; j < ss.Length - - i; j++)
{
if (int.Parse(ss[j]) < int.Parse(ss[j + ]))
{
temp = ss[j];
ss[j] = ss[j + ];
ss[j + ] = temp;
}
}
}
for (int i = ; i < ss.Length; i++)
{
textBox2.AppendText(ss[i]);
textBox2.AppendText(",");
}
} private void button1_Click(object sender, EventArgs e) //升序排例
{
string str = textBox1.Text.Trim();
//string str = textBox1.Text;
string[] ss = str.Split(','); string temp = "";
for (int i = ; i < ss.Length - ; i++)
{
for (int j = ; j < ss.Length - - i; j++)
{
if (int.Parse(ss[j]) > int.Parse(ss[j + ]))
{
temp = ss[j];
ss[j] = ss[j + ];
ss[j + ] = temp;
}
}
}
for (int i = ; i < ss.Length; i++)
{
textBox2.AppendText(ss[i]);
textBox2.AppendText(",");
}
} private void Form1_Load(object sender, EventArgs e)
{
int[] array = { , , , , , , , , , , , , , , , , , }; for (int i = ; i < array.Length - ; i++)
{
for (int j = ; j < array.Length - -i; j++)
{
if (array[j] <= array[j + ])
{
int temp = array[j];
array[j] = array[j + ]; //把大的放在前面
array[j + ] = temp; //小的放在后面
}
}
} //for (int ik = 0; ik < array.Length; ik++)
//{
// textBox2.AppendText(array[ik].ToString());
// textBox2.AppendText(",");
//}
foreach(int i in array)
{
textBox2.AppendText(i.ToString());
textBox2.AppendText(",");
}
} private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
}
}
}
c#实验一:基于winform的冒泡排序练习的更多相关文章
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- {VS2010C#}{WinForm}{ActiveX}VS2010C#开发基于WinForm的ActiveX控件
在VS2010中使用C#开发基于WinForm的ActiveX控件 常见的一些ActiveX大部分是使用VB.Delphi.C++开发,使用C#开发ActiveX要解决下面三个问题: 使.NET组件可 ...
- 如何基于Winform开发框架或混合框架基础上进行项目的快速开发
在开发项目的时候,我们为了提高速度和质量,往往不是白手起家,需要基于一定的基础上进行项目的快速开发,这样可以利用整个框架的生态基础模块,以及成熟统一的开发方式,可以极大提高我们开发的效率.本篇随笔就是 ...
- 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现
关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...
- 实验:基于http的yum源
实验:基于http的yum源 selinux,firewalld已经关闭',系统为CentOS7 repodata所在的目录就是yum源 下面介绍了如何把本地光盘通过httpd服务器变成yum源:多个 ...
- ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架
前面介绍了很多ABP系列的文章,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机构.用户.角色.权限.菜单等内 ...
- 在net Core3.1上基于winform实现依赖注入实例
目录 在net Core3.1上基于winform实现依赖注入实例 1.背景 2.依赖注入 2.1依赖注入是什么? 2.1依赖注入的目的 2.2依赖注入带来的好处 2.2.1生命周期的控制 2.2.2 ...
随机推荐
- Django+Bootstrap+Mysql 搭建个人博客(二)
2.1.博客首页设计 (1)settings.py MEDIA_ROOT = os.path.join(BASE_DIR,'media').replace("//","/ ...
- java设计模式(1)---总则
设计模式总则 一.概述 1.什么是设计模式 设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 解释下: 分类编目:就是说可以找到一些特征去划分这些设计模式,从而进行分类. ...
- Python链接Mssql之Python库pymssql
连接数据库 pymssql连接数据库的方式和使用sqlite的方式基本相同: 使用connect创建连接对象 connect.cursor创建游标对象,SQL语句的执行基本都在游标上进行 cursor ...
- Hystrix是如何工作的
接上一篇:<Hystrix介绍> 流程图 下面这幅图相当重要 稍微解释一下上面的流程: Construct a HystrixCommand or HystrixObservableCom ...
- C# 《编写高质量代码改善建议》整理&笔记 --(一)基本语言篇
题记:这是自己的观后感,工作两年了,本来打算好好学习设计模式,或者作为客户端深入了解GPU编程的,但是突然发现还有这么一本书. <编写高质量代码改善建议>,感觉这正是自己需要的. 我是做 ...
- JS判断客户端是否是iOS或者Android手机移动端(转载)
前言: 上午有一个移动端的项目负责人问我,在ios系统上样式出现问题,因为内核原因,我改来改去,在ios弄好了,但在安卓有问题了,突然想到了一种办法,既然ios是一种机型,安卓是一种机型,可以检测用户 ...
- 爬虫协议 Tobots
一.简介 Robots 协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取 ...
- Linux基础知识第一讲,基本目录结构与基本命令
目录 一丶Window 与 Linux的目录结构 1.Windows 与 Linux目录简介 2.Linux目录主要作用 3.任务栏与菜单栏,与关闭按钮 二丶Linux终端与常见命令学习 1.终端中的 ...
- kubernetes进阶之一:简单例子
kubernetes 从一个简单例子开始 参考 <kubernetes 权威指南>一节的 从一个简单例子开始,操作实录. 一.Java Web 应用结构 二.启动MySql服务 1.首先为 ...
- VS2015安装水晶报表
最近在做一个打印功能,本来是不想用水晶报表的.想直接用微软原生的报表rdlc完成,但是整了一个上午老是打印乱码,且网上找资料找也找不出. 无奈放弃,然后就想到用水晶报表了,以前用过水晶报表,不过一直都 ...