随機點名功能
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
開發工具與關鍵技術:Visual Studio 2015
作者:朱海恩
撰寫時間:2019年8月02日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
随機抽人點名軟體功能很簡單,就是随機點名,已經點過的人名,還參與下次點名(不去重複)。主要側重于功能實作,界面沒有美化,代碼也寫得很随意,大概知識點有:産生随機數等。
随機點名器:
1、存儲所有學生姓名,添加
功能描述:
1、擷取班級名單的檔案路徑
2、随機生成一個學生
大概的流程:
- 聲明一個字元串來擷取班級名單的檔案路徑
- 執行個體化一個僞随機數生成器類
- 讀取路徑為文本檔案的文本内容到數組,一行為一個成員,是以不用分割了
- 标簽文本擷取随機數對應到的人名
XAML頁面:
XAML頁面的設定可以根據自己想要的來設計。我這裡就簡單的設計了一下,就給了一張圖檔做背景圖,還有一個按鈕和文本框。代碼如下:
<Image Source="/Images/573fc5be7d65c.jpg"
Stretch="Fill">
</Image>
<TextBox Name="lb_name"
Background="LightSkyBlue"
Opacity="0.5"
Width="250"
Height="60"
FontSize="20"
FontWeight="Black"
FontFamily="Vivaldi"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Margin="260,189,283.6,171">
</TextBox>
<Button Content="随機按鈕"
Width="100"
Height="50"
FontSize="20"
Background="SkyBlue"
FontWeight="Black"
Click="Button_Click"
Margin="336,307,357.6,63">
</Button>
C#代碼如下:
private void Button_Click(object sender, RoutedEventArgs e)
{
//擷取程式運作目錄下的NAME.TXT檔案路徑
string path = Directory.GetCurrentDirectory() + "\\name.txt";
//執行個體化一個僞随機數生成器類.
Random rand = new Random(System.Guid.NewGuid().GetHashCode());
//讀取路徑為path文本檔案的文本内容到數組.一行為一個成員是以不用分割了.
//ReadAllLines方法預設采用UTF8編碼
string[] str_nameText = File.ReadAllLines(path);
//标簽文本為取随機數對應到人名.
lb_name.Text = str_nameText[rand.Next(0, str_nameText.Length)];
}
最終界面效果圖:
注意點:
- 讀取檔案到TextBox時出現中文亂碼。怎麼辦?
解決方法:
(1)将文本檔案儲存為UTF-8編碼
(2)将文本檔案儲存為ANSI編碼(這是Windows文本檔案預設的編碼)
2、未能找到檔案,問題如下圖所示:
解決方法:
在建立檔案名的時候,不要給字尾,比如檔案名為“name.txt”,那麼我們可以把字尾去掉,改成為“name”。
這種随機點名系統有點簡單,但是實用。