分享一個自製隨機抽籤小程序

2021-02-14 信息技術教師的自我修煉


最近學C#和WINFORM,想著通過實例學習更能激發學習興趣,於是弄了這麼一個小程序,功能就是在自建的抽籤名單中隨機抽籤。

直接貼代碼。

有三個主要代碼文件:

1、program.cs   這個代碼功能就是設置了從第一個窗體啟動程序

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace sjs

{

    static class Program

    {

        /// <summary>

        /// 應用程式的主入口點。

        /// </summary>

        [STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new reSetBtn());

        }

    }

}

2、setIn.cs,主窗體的代碼,功能是錄入,查詢,刪除,重置,顯示姓名,然後也有進入隨機抽籤的入口。

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;

//**************************

//   隨機抽籤小軟體0.1

//   作者:匡星星

//**************************

namespace sjs

{

    public partial class reSetBtn : Form

    {

        public reSetBtn()

        {

            InitializeComponent();

        }

        //定義變量

        List<string> NameList = new List<string> {"張三","李四","王五","趙六"}; //創建一個存儲名單的空列表列表

        bool isShow = false ;   //判斷是否顯示列表名單,默認值是不顯示

        //錄入按鈕

        public void InSetBtn_Click(object sender, EventArgs e)

        {

            string strName = inSetText.Text;

            //遍歷數組,查詢數組中是否有相同的名字

            if (NameList.Count == 0)    //當列表中為空的時候,直接將第一個名字添加進去

            {

                NameList.Add(strName);  //新的姓名,存儲到列表中

                MessageBox.Show("姓名添加成功!", "添加成功!");

            }

            else

            {

                foreach (string strTemp in NameList)   //NameList.Count 獲取列表的元素的個數

                {

                    if (strName == strTemp)

                    {

                        MessageBox.Show("系統中已經有相同的名字,請重新輸入!!", "姓名重複");  //姓名重複,要求重新輸入

                        break;

                    }

                    else

                    {

                        NameList.Add(strName);  //新的姓名,存儲到列表中

                        MessageBox.Show("姓名添加成功!", "添加成功!");

                        break;

                    }

                    break;

                }

            }

           

            

        }

        //重置按鈕,清空列表並清空列出文本框內容

        private void Button1_Click(object sender, EventArgs e)

        {

            NameList.Clear();   //清空列表

            showText.Clear();  //清空列出文本框內容

            MessageBox.Show("抽籤名單已清空!", "提示");

        } 

        //列出所有名單按鈕

        private void ShowListBtn_Click(object sender, EventArgs e)

        {

            isShow = true;          //判斷是否顯示名單

            string outList;

            showText.Clear();       //清空當前顯示的左側名單

            if (isShow == true)

            {

                if(NameList.Count == 0)

                {

                    MessageBox.Show("名單為空!", "提示");

                }

                else

                {

                    foreach (string temp in NameList)

                    {

                        outList = temp + " ";

                        showText.AppendText(outList + "\r\n");

                    }

                    isShow = false;   //重置列出名單按鈕

                }

            }

        }

        //刪除某個特定的姓名

        private void DelName_Click(object sender, EventArgs e)

        {

            string delTheName = inSetText.Text;

            for(int i = NameList.Count; i >= 0; i-- )

            {

                if( NameList.Contains(delTheName))

                {

                    string message;

                    NameList.Remove(delTheName);

                    message = "姓名「" + delTheName + "」刪除成功!";

                    MessageBox.Show(message, "提示");

                    break;

                }

                else

                {

                    MessageBox.Show("名單中不存在這個姓名!", "提示");

                    break;

                }

            }

        }

        //跳轉到主窗體

        private void DrawBtn_Click(object sender, EventArgs e)

        {

            this.Hide();

            signWin newSignWin = new signWin();

            newSignWin.Show();

            newSignWin.mainNameList = this.NameList;   //在窗口跳轉時,將列表對象的值傳輸到新窗體的列表中

        }

    }

}

3、signWin.cs  這是第二個窗體的代碼,功能就是隨機抽籤。

 

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;

//**************************

//   隨機抽籤小軟體0.1

//   作者:匡星星

//**************************

namespace sjs

{

    public partial class signWin : Form

    {

        public signWin()

        {

            InitializeComponent();

        }

        bool boolVal = false;   //定義抽籤的標籤

        //跳轉到數據錄入窗體

        private void Button1_Click(object sender, EventArgs e)

        {

            this.Hide();

            reSetBtn inset = new reSetBtn();

            inset.Show();

        }

        public List<string> mainNameList = new List<string>();

        //抽籤按鈕

        private void SignStart_Click(object sender, EventArgs e)

        {

            int i = 0;

            if (boolVal == false)

            { 

                Random rd = new Random();

                i = rd.Next(0, mainNameList.Count());    //產生隨機數

                showNameBox.Text = mainNameList[i];     //將指定的列表中的名字傳給文本框

                boolVal = true;   //更新標籤,避免連續點擊,造成重複抽籤

            }

        }

        private void SignStop_Click(object sender, EventArgs e)

        {

            showNameBox.Clear();   //清空文本框裡的名字

            boolVal = false;    //更新標籤,使抽籤可用

            //showNameBox.Text = "姓名";

        }

    }

}

 

代碼到此為止。新手上路,肯定有不足之處,希望大神們多多指點!最後奉上軟體截圖和軟體的網盤地址。

網盤地址:https://pan.baidu.com/s/1fB5WnvsJu7oXz2_sCsAc5g

提取碼:ohcc

相關焦點

  • 一個興趣愛好——wuli小抽籤
    我是在從事工作的第一年喜歡上寫小程序的,並將其當作我的一個業餘興趣愛好。微信小程序是2017年初開始公測的,我是在2017年末開始自學小程序的,也勉強算得上微信小程序的第一批玩家了! 微信小程序極大的降低了個人普通玩家的上手難度,不過其官方的開發文檔對小白卻不怎麼友好。
  • 《龍族幻想》遊戲要怎麼抽籤 遊戲抽籤方法分享
    導 讀 龍族幻想是騰訊旗艦級的RPG遊戲,玩家可以在遊戲中完成每日任務,獲得一個抽籤的機會,玩家在抽籤的時候會隨機出運勢
  • 【擴散】東山縣2017年初中招生電腦隨機抽籤工作方案,家長們、同學們快收好!
    二、抽籤資格  西埔地區、前樓地區、白埕小學、山口小學(原西埔中學招生範圍)畢業生參加東山一中、西埔中學初中招生電腦隨機抽籤,銅陵地區畢業生參加東山二中、石齋中學初中招生電腦隨機抽籤。縣內外符合上述兩個城區就學條件的初中轉錄對象不參加本次電腦隨機抽籤活動,分別安排在西埔中學和石齋中學就學。
  • 給大家分享一個javascript隨機數字小程序
    <title>隨機數字</title><script>//1.得到一個隨機數字//2.數字每次不能重複//3.可以連續出現//4.按空格顯示隨機數字window.onload=function(){var arr=[],i;for(i=0;i<100;i++){
  • 2021年H1B保持隨機抽籤! 按薪抽籤規則推遲至明年
    讓眾多留學生們焦心的H1B抽籤規則有新進展啦:按薪資等級抽籤的政策被推遲到2022年3月9日生效,今年的H1B申請制度將延續之前的隨機抽籤規則!(截圖來自The Economic Times,版權歸其所有)從2020年末頒布H1B抽籤新規開始,想必大家都看到了不少圍繞新規的討論和政策變更。
  • 自學Python筆記:從隨機紅包小程序學界面的使用
    昨天用了半天的完成了下面的小程序,今天分享一下思路。import randomfrom tkinter import *master = Tk()master.title('隨機紅包程序')mainloop() #mainloop 是一個主循環,窗口顯示出來後等待各種消息,比如滑鼠、鍵盤等操作,本小程序只用一個。
  • 小學新生如何編班 多學校由老師抽籤或電腦隨機
    小學新生 如何編班許多學校採取電腦隨機或抽籤方式,以公平均衡的原則編班  新學期開學,一年級新生紛紛進入小學,開啟了接受義務教育的人生旅程。小學新生是如何編班的?怎樣才能選一個「好班」?這是很多家長關注的問題。
  • 三輪隨機抽籤 確保「陽光分班」
    晨報融媒體訊(記者 王豔梅)8月31日上午,2020級初一新生「陽光分班」抽籤儀式在各校同時進行,家長代表以抽籤的方式確定班、科任團隊,並現場公布分班結果,這標誌著我市2020年初中「陽光分班」圓滿結束。 「陽光分班」是市教育局貫徹落實全省上學不求人「四零承諾」相關要求的重要舉措。
  • 抽籤靈籤佔卜流量主小程序開發
    抽籤靈籤佔卜流量主小程序開發開發基於:觀音靈籤是民間流傳的,在佛前佔卦的一種求籤籤種,(佛法當中,有地藏菩薩親宣的「佔察善惡業報經」,只要誠心,皆可根據經文求問各種事情。)各地略有不同,此小程序版觀音靈籤為100籤,籤文自古至今流傳久遠,各地籤文略有不同。
  • 用EXCEL製作隨機抽獎小程序
    今天教大家用EXCEL製作隨機抽獎小程序。方法其實很簡單,只需要兩個函數組合成一個公式!
  • 一深企50萬隻口罩本周末投放市場,App登錄預約,隨機抽籤
    將於本周六、周日(22日、23日)兩天採取預約抽籤的方式,全部投放市場,緩解市民對口罩的需求。 有需要的市民可通過下載叮噹快藥App即可登錄預約,同時,為保障資源更公平的惠及市民,叮噹快藥將於2月24日12點根據當日全國疫情治癒數由系統隨機抽籤,中籤用戶在4小時內完成支付即可在家等候叮噹配送小哥免費將口罩無接觸送達
  • 市直11所初中完成隨機均衡編班,班主任抽籤產生
    隨後,學校工作人員將13個班級名單列印出來,由我市人大代表梅曉波、政協委員劉丹鋒現場抽籤決定每個班級的班主任,整個過程公開公正透明。全市市直初中正式實行隨機均衡編班,是我市去年以來在義務教育招生管理方面推出的全新舉措,同時,杜絕了快慢班、重點班、實驗班等各種名義的違規分班,為促進我市教育優質均衡,樹立良好教育行風起到了重要的推動作用。
  • 公務員面試考官考生隨機抽籤 考試有望分級分類
    這是我市首次採用公務員錄用面試評分系統,所有考官、考生現場抽籤,隨機產生面試小組。打分、計分也在電腦中進行,成績一旦提交,就不可更改。  今後,這套系統將在全市公務員招錄中逐步推廣,以此減少面試中的人為因素,讓招錄更加公平公正。
  • 三中附中、西南中學新生入學抽籤名單及抽籤號碼公布!明天直播搖號
    經審核,符合三中附中抽籤資格的共2744人,另外有31人屬於政策優待生,直接錄取不參與抽籤。2020年三中附中招生計劃為756人,除去直接錄取人數,三中附中實際抽籤學位數為725個。符合西南中學抽籤資格的共1958人,另外有23人屬於政策優待生,直接錄取不參與抽籤。2020年西南中學招生計劃為756人,除去直接錄取人數,西南中學實際抽籤學位數為733個。
  • 聊城:隨機搖號「搖」出教育公平
    根據《東昌府區2020年義務教育階段學校招生工作意見》,對於審核後符合入學條件人數超出招生計劃的民辦學校,政策規定的優撫對象優先錄取,剩餘學位全部採取隨機派位方式招生。  8月15日,東昌府區民辦學校義務教育「幼升小」「小升初」隨機派位工作正式啟動。
  • 大瀝鎮公辦學校插班生抽籤結果公示!
    今日(8月4日)下午,大瀝鎮公辦學校插班生電腦隨機派位工作在黃岐中心小學舉行。現場由大瀝鎮教育局負責監督搖號組織工作,公證人員、紀檢人員、人大代表、新聞媒體代表和家長代表全程參與監督,確保電腦隨機搖號錄取工作的公平、公正。
  • 謎一樣的H-1B抽籤過程 了解一下?
    人人都知道H-1B的抽籤過程就像中樂透一樣,按照美國移民局USCIS的說法是:電腦抽籤隨機篩選過程computer-generated random selection processes。然而,誰都不知道,電腦的隨機篩選程序是怎麼設定的,是依據什麼樣的原理設計的,或者,乾脆就是像彩票一樣,純隨機?
  • 新舉措| 實驗小學、紫薇小學2019級新生分班——公開抽籤!其他許多...
    分班抽籤實現教育公平馬上就要開學了,如何分班,師資怎麼樣?成了很多小學新生家長關注的焦點問題。為規範學校分班秩序,8月30日,縉雲縣教育局舉行學校小微權力清單學校公開分班抽籤儀式,對實驗小學、紫薇小學2019級新生分班進行了公開抽籤。
  • 海城區公布2020年秋季學期小學(幼兒園)電腦隨機抽籤錄取結果
    海城區2020年秋季學期小學(幼兒園)電腦隨機抽籤錄取結果公告根據《北海市海城區2020年秋季學期公辦小學招生辦法》及《北海市海城區公辦幼兒園2020年秋季學期招生簡章》,海城區實行部分公辦小學、幼兒園網上報名,電腦隨機抽籤確定學位工作。
  • 襄陽「小程序達人」自製小程序助力社區疫情防控
    大量的工作致使我這個「小程序達人」自製了體溫監測填報小程序、「雙報到」機關幹部報到登記小程序、居民生活物資接龍小程序。科技改變生活,也改變了工作方式,推進了基層工作的高效開展。但是疫情發展非常之快,入戶排查增大了居民的風險,讓這些只有一個口罩做防護的社區工作者兢兢戰戰。這種形勢下,排查防控工作必須要做,但是如何才能降低人員接觸交叉感染的風險,又能有效提升疫情的防控效果,讓我陷入沉思。