作业六:猜猜看,检验朋友熟悉度——Winform程序

原创 2015年07月08日 07:29:06

1.目的
以最快的速度认识、了解身边的人; 促进人与人之间的互动交流;
2.目标
满足基本功能;对原型进行简单的验证;
3.内容
功能:
随机显示一个名字与 3张相片,选择相片,提示结果,显示图片正确信息;
功能一
随机显示 一张相片与若3个名字,选择名字,提示结果;
功能二
4.重点——随机概率
概率计算:记录对每个人的认识概率P,并根据认识概率,确定“猜猜看”游戏中学生出现的频率。
认识概率P = 识别的准确次数/(识别的准确次数+识别的错误次数)
原则1:认识概率 高的学生,在猜猜看游戏中出现的频率相对低一些。
原则2:认识概率 低的学生,在猜猜看游戏中出现的频率相对高一些。
原则3:认识概率 100%的学生,也有出现的可能性。
原则4:认识概率 0%的学生,也不必每次都出现。
5.效果
【显示主页面——选择图片路径】
DialogResult result = folderBrowserDialog1.ShowDialog();
if (result == DialogResult.OK)
{
folderName = folderBrowserDialog1.SelectedPath;
lblImg.Text = folderName;
lblImg.Show();
btnChoiceName.Show();
}
这里写图片描述
【显示主页面——选择名单路径(采取默认路径和默认文件类型)】
openFileDialog1.InitialDirectory = “E:/Fighting/C#/实验/第六次作业——猜猜看/name_file”;
openFileDialog1.Filter = “txt files (.txt)|.txt|All files (.)|.“;
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
lblName.Text = openFileDialog1.FileName;
strClassFilename = openFileDialog1.FileName;

// 根据班级文件名,得到保存结果的文件名名称:result_班级文件名  
strResultFilename = "result_" + openFileDialog1.SafeFileName;

// 获取文件流
StreamReader srReadFile = new StreamReader(strClassFilename, System.Text.Encoding.Default);

// 读取流直至结束
while (!srReadFile.EndOfStream)
{
    //读取每行数据
    String strReadLine = srReadFile.ReadLine();

    //按照空格进行分割
    String[] sArray = strReadLine.Split(' ');
    ListId.Add(sArray[1]);
    ListName.Add(sArray[2]);

    //学生人数
    countStu = countStu + 1;
}
// 关闭读取流文件
srReadFile.Close();

//选择功能模块
lblName.Show();
btnGuessImg.Show();
btnGuessName.Show();

}
这里写图片描述
【显示主页面——功能模块】
这里写图片描述
【看图猜名】
//
//看名字,猜图片
// 产生三个不重复的随机数字组成数组
//并从其中产生一个待猜测的数字
//更新图片
//
Hashtable hashtable = new Hashtable();

//随机数组,4位
int[] rmArray = new int[RmNum + 1];

//待猜随机数
Random rm = new Random();

//产生RmNum个随机数
for (int i = 0; hashtable.Count < RmNum; i++)
{
    int nValue = rm.Next(0, countStu);
    if (!hashtable.ContainsValue(nValue))
    {
        rmArray[i] = nValue;
        hashtable.Add(nValue, nValue);
    }
}
//猜测数,在数组前3位取,置于第4位
rmArray[RmNum] = rm.Next(0, RmNum);

// 产生相关的相片
lbl2.Text = ListId[rmArray[rmArray[RmNum]]].ToString() + ListName[rmArray[rmArray[RmNum]]].ToString();
lbl4.Text = ListId[rmArray[0]].ToString() + ListName[rmArray[0]].ToString();
lbl5.Text = ListId[rmArray[1]].ToString() + ListName[rmArray[1]].ToString();
lbl6.Text = ListId[rmArray[2]].ToString() + ListName[rmArray[2]].ToString();
lbl2.Show();
lbl4.Hide();
lbl5.Hide();
lbl6.Hide();

// 更新图片,需要判断图片是否存在;若不存在则使用一幅画来替代test.jpg 
String strTest = folderName + "/" + "test.jpg";
String strImg = folderName + "/" + lbl4.Text + ".jpg";    
pictureBox1.Image = new Bitmap(GetPhoteFilename(strImg, strTest));
strImg = folderName + "/" + lbl5.Text + ".jpg";
strTest = folderName + "/" + "test.jpg";
pictureBox2.Image = new Bitmap(GetPhoteFilename(strImg, strTest));
strImg = folderName + "/" + lbl6.Text + ".jpg";
strTest = folderName + "/" + "test.jpg";
pictureBox3.Image = new Bitmap(GetPhoteFilename(strImg, strTest));
pictureBox1.Show();
pictureBox2.Show();
pictureBox3.Show(); 

//
//点击事件
//
//显示答案
lbl4.Show();
lbl5.Show();
lbl6.Show();

// 正确的答案
string message;
if (lbl4.Text == lbl2.Text)
{
    message = "哇,记忆力真棒!是否继续?";
}
else
{
    message = "哈哈,猜错了!是否继续?";
}
string caption = "猜猜看游戏结果";

MessageBoxButtons buttons = MessageBoxButtons.YesNo;

// Displays the MessageBox.
DialogResult result = MessageBox.Show(message, caption, buttons);

//是否继续
if (result == System.Windows.Forms.DialogResult.Yes)
{
    // 更换
    guessImg_method(3);
}
else
{
    this.Close();
}

这里写图片描述
【看图猜名效果(揭示答案)】
这里写图片描述
【看图猜名】
这里写图片描述
【看图猜名效果(揭示答案)】
这里写图片描述
【看名猜图】
注:实现算法类似看图猜名,就不在赘述。
这里写图片描述
【看名猜图(揭示答案)】
这里写图片描述
【看名猜图】
这里写图片描述
【看名猜图(揭示答案)】
这里写图片描述
6.作业总结
通过该程序的分析与实施过程中,观察现象,分析问题,思考解决方法,个人在C#语言程序设计领域,能够更加熟练的运用可视化编程相关知识,加深了知识的映像,加强了动手操作能力。
尽管程序功能有待提高,仍存在一定的问题,诸如数据库联通、文件存储等,但是,有问题就意味着有提升的空间,挫折才能衬托成功的可贵,我们应当珍惜每次的挫折考验。只有不断的发现不足,开动思维,收集资料解答疑问,这样才能在任何一个领域内越走越远,越走越好。

《C#程序设计》猜猜看小游戏制作

由于对C#的应用不熟悉,我临时改用JSP制作本次课程设计。在JSP页面,随机显示一张英雄联盟的英雄图片,通过下拉复选框选择你心中的答案,点击提交后显示本次猜测结果,通过超链接又可以返回本页面继续游戏。...
  • py1994829
  • py1994829
  • 2015年07月07日 12:52
  • 692

spss效度检验方法

spss效度检验方法 首先对问卷进行信度分析,在信度合格的情况下进行效度分析, 效度分析的工作包括KMO和bartlett的球形度检验,使用去掉了在信度分析的步骤里面去掉了部分问题的问卷 打开sav文...
  • fate_killer_liu_jie
  • fate_killer_liu_jie
  • 2015年06月07日 13:09
  • 1432

(八) 拟合优度检验&独立性检验

  • u014135091
  • u014135091
  • 2014年08月02日 17:32
  • 892

winform 猜猜看

说明: 1>窗体应用程序。 2>一个窗体(Form1),一个按钮(btnStart),一个文本(labTime) 3>截图: 4>代码如下: using System; u...
  • u013816709
  • u013816709
  • 2014年08月21日 14:12
  • 642

《C#程序设计》第六次作业:《猜猜看》游戏

本周作业布置地址:http://user.qzone.qq.com/303727350/blog/1433931626。
  • u011524722
  • u011524722
  • 2015年06月14日 23:49
  • 473

单总体分布卡方拟合优度检验

Table of Contents 1. 概率分布的检验2. 如何验证分布服从正态分布 1 概率分布的检验 筛子是否均衡的检验 考虑如下问题: 一枚骰子, 投掷...
  • yazhaolv
  • yazhaolv
  • 2013年12月02日 17:34
  • 1948

应用统计学与R语言实现学习笔记(七)——拟合优度检验

Chapter 7 Goodness of Fit本篇是第七章,内容是拟合优度检验。
  • ESA_DSQ
  • ESA_DSQ
  • 2017年05月10日 01:43
  • 1873

C#第六次作业:猜猜看

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data...
  • sinat_26819115
  • sinat_26819115
  • 2015年07月07日 13:58
  • 177

Excel在统计分析中的应用—第九章—非参数检验-x2检验-拟合优度检验

单一个假设检验,花了我近两个星期才完成。今天,终于可以进入新的章节,也是更高级的内容——非参数检验了。 “非参数检验(Nonparametric tests)是统计分析方法的重要组成部分,它与参数检...
  • hpdlzu80100
  • hpdlzu80100
  • 2017年12月07日 00:53
  • 223

linux基本命令(很全的)

Ubuntu的图形界面使用起来非常方便,但是要想对Linux熟练掌握,就必须学会它的操作命令。虽然可能会花费一些时间,不过从长远的角度来说,这的确是一件事半功倍的事情,它会让我们更了解Linux,更灵...
  • lykangjia
  • lykangjia
  • 2013年09月13日 18:04
  • 16922
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:作业六:猜猜看,检验朋友熟悉度——Winform程序
举报原因:
原因补充:

(最多只允许输入30个字)