資源簡(jiǎn)介
這個(gè)是幾個(gè)同學(xué)一起做出來(lái)的N皇后問(wèn)題,是界面化的,很容易讓同學(xué)理解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?皇后教學(xué)軟件;
/*該圖形界面的功能總述:
?*??1.?可以接受任意一個(gè)皇后的求解
?*??2.?輸出皇后解的個(gè)數(shù)以及皇后解的矩陣表現(xiàn)形式和圖解表現(xiàn)形式
?*??3.可以根據(jù)解的個(gè)數(shù),你可以輸入任意一個(gè)數(shù)(在解的個(gè)數(shù)之內(nèi))然后顯示你指定的那個(gè)解的圖解
?*??4.處理了各種異常,(可以隨意輸入哈!)包含了異常發(fā)生后的提示
?*??5.?鼠標(biāo)鍵盤(pán)可以共用,可以輸入后回車來(lái)確定,或則是按按鈕執(zhí)行
?*??6.?水平滾動(dòng)條與垂直滾動(dòng)條的應(yīng)用
?*
?*/
namespace?皇后問(wèn)題
{
????public?partial?class?Form1?:?Form
????{
????????private?int?n;//定義一個(gè)int型變量用以接受皇后的個(gè)數(shù)
????????private?int?count=0;//用以接受總共的皇后的解的個(gè)數(shù);
????????private?string?stri?=?null;//記錄所有皇后解的字符串,為了顯示圖形而設(shè)定的
????????private?int?numberOfImage;//記錄當(dāng)前的皇后解所對(duì)應(yīng)的圖片的索引
????????private?Image?theImage;//要繪圖的圖片對(duì)象?
????????private?Graphics?g;?//在圖片上繪圖的Graphics對(duì)象
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????//求解按鈕
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????
????????????string?str?=?textBox1.Text;
????????????if?(str?!=?““)//如果在文本框中已經(jīng)輸入字符
????????????{
????????????????try//由于字符轉(zhuǎn)化成數(shù)字有異常發(fā)生,捕獲異常
????????????????{
????????????????????n?=?Int32.Parse(str);
????????????????????Queen?queen?=?new?Queen(n);
????????????????????queen.PutQueen(0);
????????????????????if?(n?==?0?||?n?==?2?||?n?==?3)//對(duì)應(yīng)與0、2、3皇后是無(wú)解的所以顯示無(wú)解
????????????????????{
????????????????????????richTextBox1.Text?=?“無(wú)解“;
????????????????????????theImage?=?new?Bitmap(600?800);//新建一個(gè)位圖對(duì)象
????????????????????????g?=?Graphics.FromImage(theImage);//將位圖添加到繪圖的對(duì)象g中
????????????????????????g.Clear(Color.White);//設(shè)置背景色為白色,即將圖的背景設(shè)置成和界面相同的顏色,達(dá)到重繪的效果
????????????????????????pictureBox1.Image?=?theImage;//將位圖添加到pictureBox中
????????????????????}
????????????????????else//有解的情況
????????????????????{
????????????????????????richTextBox1.Text?=?queen.Str;//顯示相應(yīng)的N皇后的矩陣
????????????????????????stri?=?queen.Str;
????????????????????????this.count?=?queen.Count;//總共的解的個(gè)數(shù)
????????????????????????this.numberOfImage?=?1;//當(dāng)前的皇后解對(duì)應(yīng)的圖解的索引為1
????????????????????????show(this.numberOfImage);//顯示皇后的圖解
????????????????????????textBox2.Text?=?this.numberOfImage.ToString();//在一個(gè)文本框中顯示當(dāng)前圖解的索引
????????????????????}
????????????????}
????????????????catch?
????????????????{
????????????????????MessageBox.Show(“你的輸入有誤,請(qǐng)重新輸入“?“消息框“?MessageBoxButtons.OK?MessageBoxIcon.Warning);
????????????????}
????????????}
????????????else//如果沒(méi)有在文本框中沒(méi)有輸入,提示先輸入皇后的個(gè)數(shù)
????????????{
????????????????MessageBox.Show(“請(qǐng)先輸入皇后個(gè)數(shù)“?“消息框“?MessageBoxButtons.OK?MessageBoxIcon.Warning);
????????????}
????????}
????????//搜索第n個(gè)解所對(duì)應(yīng)的字符串,返回一個(gè)字符串
????????private?string?Search(int?n)
????????{
???????
????????????int?n1?=?this.stri.IndexOf(String.Format(“第{0}個(gè)解為:\n“?n));//求第n個(gè)解在字符串中的開(kāi)頭的索引
????????????int?n2?=?this.stri.IndexOf(String.Format(“第{0}個(gè)解為:\n“?n?+?1));//求第n+1個(gè)解在字符串中的開(kāi)頭的索引
????????????if?(n2?!=?-1)
????????????{//如果沒(méi)到末尾的,那么求n+1的索引是存在的,即n2?!=?-1;
????????????????r
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????70676??2008-07-28?15:17??皇后教學(xué)軟件\1.jpg
????..A.SH.??????5632??2009-06-25?22:24??皇后教學(xué)軟件\Thumbs.db
?????文件????????943??2008-07-28?09:30??皇后教學(xué)軟件\皇后教學(xué)軟件.sln
????..A..H.?????32768??2009-06-20?18:08??皇后教學(xué)軟件\皇后教學(xué)軟件.suo
?????文件??????14570??2008-07-29?10:01??皇后教學(xué)軟件\皇后教學(xué)軟件\Answers.cs
?????文件??????13334??2008-07-28?22:30??皇后教學(xué)軟件\皇后教學(xué)軟件\Answers.designer.cs
?????文件???????5814??2008-07-28?22:30??皇后教學(xué)軟件\皇后教學(xué)軟件\Answers.resx
?????文件??????13921??2008-07-30?14:52??皇后教學(xué)軟件\皇后教學(xué)軟件\AutoForm1.cs
?????文件???????7845??2008-07-30?14:43??皇后教學(xué)軟件\皇后教學(xué)軟件\AutoForm1.designer.cs
?????文件???????6181??2008-07-30?13:02??皇后教學(xué)軟件\皇后教學(xué)軟件\AutoForm1.resx
?????文件??????15576??2008-07-30?14:53??皇后教學(xué)軟件\皇后教學(xué)軟件\Game.cs
?????文件???????8627??2008-07-30?13:04??皇后教學(xué)軟件\皇后教學(xué)軟件\Game.Designer.cs
?????文件???????6008??2008-07-30?13:04??皇后教學(xué)軟件\皇后教學(xué)軟件\Game.resx
?????文件????????344??2008-07-28?17:26??皇后教學(xué)軟件\皇后教學(xué)軟件\Help.cs
?????文件???????2414??2008-07-28?16:11??皇后教學(xué)軟件\皇后教學(xué)軟件\Help.Designer.cs
?????文件???????7082??2008-07-28?16:11??皇后教學(xué)軟件\皇后教學(xué)軟件\Help.resx
?????文件????????473??2008-07-28?10:28??皇后教學(xué)軟件\皇后教學(xué)軟件\Information.cs
?????文件???????4218??2008-07-28?10:07??皇后教學(xué)軟件\皇后教學(xué)軟件\Information.Designer.cs
?????文件???????5814??2008-07-28?10:07??皇后教學(xué)軟件\皇后教學(xué)軟件\Information.resx
?????文件????????365??2008-07-28?17:26??皇后教學(xué)軟件\皇后教學(xué)軟件\Introduce.cs
?????文件???????2658??2008-07-28?17:26??皇后教學(xué)軟件\皇后教學(xué)軟件\Introduce.designer.cs
?????文件???????7948??2008-07-28?17:19??皇后教學(xué)軟件\皇后教學(xué)軟件\Introduce.resx
?????文件???????1786??2008-07-28?22:18??皇后教學(xué)軟件\皇后教學(xué)軟件\MainForm1.cs
?????文件??????10376??2008-07-28?22:18??皇后教學(xué)軟件\皇后教學(xué)軟件\MainForm1.Designer.cs
?????文件????1183028??2008-07-28?22:18??皇后教學(xué)軟件\皇后教學(xué)軟件\MainForm1.resx
?????文件???????1912??2008-07-28?18:53??皇后教學(xué)軟件\皇后教學(xué)軟件\mypeag.jpg
?????文件????????481??2008-07-28?14:31??皇后教學(xué)軟件\皇后教學(xué)軟件\Program.cs
?????文件???????4053??2008-07-28?14:22??皇后教學(xué)軟件\皇后教學(xué)軟件\Queen.cs
?????文件???????6708??2008-07-29?10:40??皇后教學(xué)軟件\皇后教學(xué)軟件\皇后教學(xué)軟件.csproj
?????文件????????570??2008-07-29?10:40??皇后教學(xué)軟件\皇后教學(xué)軟件\皇后教學(xué)軟件.csproj.user
............此處省略68個(gè)文件信息
評(píng)論
共有 條評(píng)論