资源简介
这个是几个同学一起做出来的N皇后问题,是界面化的,很容易让同学理解N皇后的原理。用C#做的。。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
using 皇后教学软件;
/*该图形界面的功能总述:
* 1. 可以接受任意一个皇后的求解
* 2. 输出皇后解的个数以及皇后解的矩阵表现形式和图解表现形式
* 3.可以根据解的个数,你可以输入任意一个数(在解的个数之内)然后显示你指定的那个解的图解
* 4.处理了各种异常,(可以随意输入哈!)包含了异常发生后的提示
* 5. 鼠标键盘可以共用,可以输入后回车来确定,或则是按按钮执行
* 6. 水平滚动条与垂直滚动条的应用
*
*/
namespace 皇后问题
{
public partial class Form1 : Form
{
private int n;//定义一个int型变量用以接受皇后的个数
private int count=0;//用以接受总共的皇后的解的个数;
private string stri = null;//记录所有皇后解的字符串,为了显示图形而设定的
private int numberOfImage;//记录当前的皇后解所对应的图片的索引
private Image theImage;//要绘图的图片对象
private Graphics g; //在图片上绘图的Graphics对象
public Form1()
{
InitializeComponent();
}
//求解按钮
private void button1_Click(object sender EventArgs e)
{
string str = textBox1.Text;
if (str != ““)//如果在文本框中已经输入字符
{
try//由于字符转化成数字有异常发生,捕获异常
{
n = Int32.Parse(str);
Queen queen = new Queen(n);
queen.PutQueen(0);
if (n == 0 || n == 2 || n == 3)//对应与0、2、3皇后是无解的所以显示无解
{
richTextBox1.Text = “无解“;
theImage = new Bitmap(600 800);//新建一个位图对象
g = Graphics.FromImage(theImage);//将位图添加到绘图的对象g中
g.Clear(Color.White);//设置背景色为白色,即将图的背景设置成和界面相同的颜色,达到重绘的效果
pictureBox1.Image = theImage;//将位图添加到pictureBox中
}
else//有解的情况
{
richTextBox1.Text = queen.Str;//显示相应的N皇后的矩阵
stri = queen.Str;
this.count = queen.Count;//总共的解的个数
this.numberOfImage = 1;//当前的皇后解对应的图解的索引为1
show(this.numberOfImage);//显示皇后的图解
textBox2.Text = this.numberOfImage.ToString();//在一个文本框中显示当前图解的索引
}
}
catch
{
MessageBox.Show(“你的输入有误,请重新输入“ “消息框“ MessageBoxButtons.OK MessageBoxIcon.Warning);
}
}
else//如果没有在文本框中没有输入,提示先输入皇后的个数
{
MessageBox.Show(“请先输入皇后个数“ “消息框“ MessageBoxButtons.OK MessageBoxIcon.Warning);
}
}
//搜索第n个解所对应的字符串,返回一个字符串
private string Search(int n)
{
int n1 = this.stri.IndexOf(String.Format(“第{0}个解为:\n“ n));//求第n个解在字符串中的开头的索引
int n2 = this.stri.IndexOf(String.Format(“第{0}个解为:\n“ n + 1));//求第n+1个解在字符串中的开头的索引
if (n2 != -1)
{//如果没到末尾的,那么求n+1的索引是存在的,即n2 != -1;
r
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 70676 2008-07-28 15:17 皇后教学软件\1.jpg
..A.SH. 5632 2009-06-25 22:24 皇后教学软件\Thumbs.db
文件 943 2008-07-28 09:30 皇后教学软件\皇后教学软件.sln
..A..H. 32768 2009-06-20 18:08 皇后教学软件\皇后教学软件.suo
文件 14570 2008-07-29 10:01 皇后教学软件\皇后教学软件\Answers.cs
文件 13334 2008-07-28 22:30 皇后教学软件\皇后教学软件\Answers.designer.cs
文件 5814 2008-07-28 22:30 皇后教学软件\皇后教学软件\Answers.resx
文件 13921 2008-07-30 14:52 皇后教学软件\皇后教学软件\AutoForm1.cs
文件 7845 2008-07-30 14:43 皇后教学软件\皇后教学软件\AutoForm1.designer.cs
文件 6181 2008-07-30 13:02 皇后教学软件\皇后教学软件\AutoForm1.resx
文件 15576 2008-07-30 14:53 皇后教学软件\皇后教学软件\Game.cs
文件 8627 2008-07-30 13:04 皇后教学软件\皇后教学软件\Game.Designer.cs
文件 6008 2008-07-30 13:04 皇后教学软件\皇后教学软件\Game.resx
文件 344 2008-07-28 17:26 皇后教学软件\皇后教学软件\Help.cs
文件 2414 2008-07-28 16:11 皇后教学软件\皇后教学软件\Help.Designer.cs
文件 7082 2008-07-28 16:11 皇后教学软件\皇后教学软件\Help.resx
文件 473 2008-07-28 10:28 皇后教学软件\皇后教学软件\Information.cs
文件 4218 2008-07-28 10:07 皇后教学软件\皇后教学软件\Information.Designer.cs
文件 5814 2008-07-28 10:07 皇后教学软件\皇后教学软件\Information.resx
文件 365 2008-07-28 17:26 皇后教学软件\皇后教学软件\Introduce.cs
文件 2658 2008-07-28 17:26 皇后教学软件\皇后教学软件\Introduce.designer.cs
文件 7948 2008-07-28 17:19 皇后教学软件\皇后教学软件\Introduce.resx
文件 1786 2008-07-28 22:18 皇后教学软件\皇后教学软件\MainForm1.cs
文件 10376 2008-07-28 22:18 皇后教学软件\皇后教学软件\MainForm1.Designer.cs
文件 1183028 2008-07-28 22:18 皇后教学软件\皇后教学软件\MainForm1.resx
文件 1912 2008-07-28 18:53 皇后教学软件\皇后教学软件\mypeag.jpg
文件 481 2008-07-28 14:31 皇后教学软件\皇后教学软件\Program.cs
文件 4053 2008-07-28 14:22 皇后教学软件\皇后教学软件\Queen.cs
文件 6708 2008-07-29 10:40 皇后教学软件\皇后教学软件\皇后教学软件.csproj
文件 570 2008-07-29 10:40 皇后教学软件\皇后教学软件\皇后教学软件.csproj.user
............此处省略68个文件信息
- 上一篇:.obj模型读取显示 c#版
- 下一篇:ASP.net博客系统带数据库
相关资源
- .obj模型读取显示 c#版
- c#车牌识别系统完整实现
- 电子秤称重仪表串口通讯c#程序
- 数据结构C#语言描述高清版
- C#窗体图书管理系统
- C#实现的自行车出租管理有数据库
- C# winform开发的skyline动画文字及图片
- 智能评教系统(C#_ASP.NET)
- 房屋中介管理系统C#+MSQL无错版+使用文
- c#图书管理系统源程序
- PDF转图片C#
- C# 骑士走棋盘
- 好看好用的IP地址自动设置小程序方便
- OPC UA C#
- c#解析dxf开源代码netDxf
- C#断点续传
- c#下完整的人脸识别
- C#程序设计经典教程(第二版)课后习
- C# NTP 时钟同步 获取指定IP系统时间
- 0237 C#通过OPC连接PLC读写数据源码.ra
- 基于C#的台达PLCModus串口通信控件及源
- c#编写的门禁管理系统
- paintdotnet-0.1.63.zip
- 商业化C#报表设计器源代码
- KeyBoardMaster 源码
- C#编写的小游戏贪吃蛇源码
- C# asp.net高校教师档案管理系统项目源
- C# 留言板自己写的,带数据库
- C#写的自定义安装包,打包程序源代码
- 超市管理系统 c# sql 及设计报告
评论
共有 条评论