C#随机点名系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#随机点名系统
设计报告
班级: 软件1202
*名:**
学号: *********
2013 年12 月
一、设计描述:
此系统为课堂随机点名系统:
采用了windows窗体界面设计创建了此系统。

系统功能包括:
1、从已设置的学号文本信息文件中随机抽取一个学号。

2、记录某一个学号被点名信息。

3、显示当前被点学号的被点信息,以及所有同学被点信息。

4、每一个同学最多被点三次,当被点次数超过3时,显示警告窗口,提示用户重新点名。

二、系统详细设计——控件选取:
1、listBox1:用来存放及显示所有同学被点信息。

2、Button1:就是开始点名按钮,用来控制随机抽数,当点下开始按钮,其会变成停止按钮,按下停止按钮,显示最终被点学号。

3、Button2:就是用来显示当前被点同学的被点情况。

4、Button3:就是重置按钮,用来清除listBox1中的数据信息。

5、Button4:就是显示listBox1中记录的所有同学被点情况。

6、timer1:用来控制抽取过程中数据在空白处闪动。

7、label1:用来显示被点学号。

三、系统详细设计——代码实现:
using System;
using System.IO;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Timers;
namespace点名系统
{
public partial class Form1 : Form
{
bool first_click = true; //初始化
int x;
int[] c = new int[31];
String num;
Random r = new Random();
ArrayList content = new ArrayList();
ArrayList result = new ArrayList();
public Form1()
{
InitializeComponent();
timer1.Interval = 10;
timer1.Stop();
} //初始化 end
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e) //timer1:控制随机点名,在已创建的文件中,随机读取相关学号信息
{
FileStream fs1 = new FileStream(@"D:/2.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs1);
string str1 = sr.ReadToEnd();
sr.Close(); fs1.Close();
string[] strQ = str1.Split('\n');
Random rdn = new Random();
int index = rdn.Next(0, strQ.Length);
x = index;
num = strQ[index];
label1.Text = strQ[index];
} //timer end
private void button1_Click(object sender, EventArgs e) //button1:开始点名按钮,用来控制timer1的运行,以及提示警告
{
first_click = !first_click;
if (!first_click)
{
timer1.Start();
button1.Text = "停止";
}
else
{
timer1.Stop();
button1.Text = "开始";
c[x]++;
if (c[x] > 3)
MessageBox.Show("该同学已被点过 3 次,请重新点名"); //警告提示。

this.listBox1.Items.Add(num+" "+c[x]);
}
} //Button1 end
private void button2_Click(object sender, EventArgs e) //button2:显示当前同学被点信息(<4)
{
if(c[x] == 3)
MessageBox.Show("该同学第 3 次被点!");
else if (c[x] == 2)
MessageBox.Show("该同学第 2 次被点!");
else if (c[x] == 1)
MessageBox.Show("该同学第 1 次被点!");
} //Button2 end
private void button3_Click(object sender, EventArgs e) //button3:清除tlistBox1中记录的信息。

{
this.listBox1.Items.Clear();
result.Clear();
} //button3 end
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e) //button4:显示listBox1中记录的所有同学被点信息
{
this.listBox1.Visible = !this.listBox1.Visible;
this.button3.Visible = !this.button3.Visible;
}//button4 end
}
}
四、系统实现
1、点击开始运行:
2、点击开始点名按钮:
开始点名按钮变成停止按钮。

3、点击停止按钮:
显示被点学号16。

4、点击‘该同学被点信息按钮’会出现:
5、点击‘所有被点信息按钮’会出现:
左边空白出,会出现listBox1以及‘重置’按钮,在listBox1中,左边一列是被点过的过的学号,右边是被点过的次数。

点击‘重置’按钮,listBox1会被清空。

6、当某同学被点超过3次(每个同学最都被点3次),会出现:
会出现提示窗口。

无法再显示该同学被点信息。

7、该程序中所用的文件在D:/2.txt 中,具体如下:
这就是文本文件中存储的,某一个班级的所有学号信息。

五、小结:
这个界面的设计,是看了网上一个点名软件的的界面,觉得挺好看,也很方便,于是照着他的界面,并加以修改,加上了自己的一点想法,设计了这么一个点名的软件。

由于知识掌握的不是十分牢固,在此期间遇到过很多我连理解都不能理解的问题,所以自然也不知道该如何修改。

但是凭着自己的一些小聪明和所查的一些资料,总算是改好了。

我在设计的过程中,是采用了循序渐进的方法,一步一步的完成了这个设计。

在每一小方面完成时,都感觉特别的开心,因为都是自己通过各种努力摸索出来的。

这次的实验让我对图形界面的设计也有了更多的认识,真的觉得十分有趣,比以前编程软件中的运行界面好看太多太多了,以前的运行环境真的有点单调,设计了图形界面,就可以在自己设计的环境下运行。

这种感觉真好。

以后还会多多的学习这方面的知识,感觉真的很有用。

相关文档
最新文档