随机点名功能
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术: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”。
这种随机点名系统有点简单,但是实用。