C课程设计模拟抽奖软件设计Word下载.docx
- 文档编号:22028710
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:36
- 大小:356.66KB
C课程设计模拟抽奖软件设计Word下载.docx
《C课程设计模拟抽奖软件设计Word下载.docx》由会员分享,可在线阅读,更多相关《C课程设计模拟抽奖软件设计Word下载.docx(36页珍藏版)》请在冰豆网上搜索。
根据功能分析出系统的设计思路如下:
管理员登录方可使用本软件。
设置特等奖、一等奖、二等奖、三等奖、四等奖、五等奖共六个奖项。
用户可以选择抽取中任意一个奖项。
抽取每个奖项之前可以设置各个奖项获奖名额,若不进行获奖名额设置则默认使用系统设置的获奖名额。
中奖号的抽取使用数字0~100作为抽奖号,编程实现抽奖号码的滚动,按下停止键时得到的数字便是中奖号,选择是否保存中奖号码。
每个奖项对应的中奖号及对应奖品可以在结果查看和奖品查看中查看,抽奖结束后可以对中奖信息进行清除。
3.2系统设计
3.2.1系统功能模块设计
系统管理员登录模块:
账号登录对中奖信息进行管理。
抽奖设置模块:
能够对抽取的各个奖项人数进行设置。
抽奖模块:
利用抽奖号滚动的方法实现抽奖功能.
查看结果模块:
能够查看当前各个奖项对应的的中奖号码。
查看奖品模块:
能够查看各个奖项对应的奖品。
清除结果模块:
删除中奖信息。
3.2.2数据库系统设计
管理员信息表(Table1)
列名
数据类型
长度
是否为主键
是否为空
注释
UserName
Char
50
是
否
管理员账号
UsrPsw
登录密码
图3-1
3.2.3系统功能图
图3-2
3.2.4系统流程图
图3-3
4.程序设计
4.1管理员登陆模块
4.1.1界面分析与设计
本软件可以可以查看抽奖结果、进行获奖名额设置、能对获奖数据进行存储以及清空抽奖记录。
而这些功能需要用户用户通过登录验证密码后方可使用,故设计用户登录模块界面如图4-1所示。
图4-1
4.1.2主要代码
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringconnString=(@"
DataSource=.\SQLEXPRESS;
AttachDbFilename=E:
\三级项目抽奖软件\抽奖软件\Database1.mdf;
IntegratedSecurity=True;
UserInstance=True"
);
SqlConnectionconn=newSqlConnection(connString);
conn.Open();
stringsql="
select*fromdengluwhereName='
"
+txtUsername.Text.Trim().ToLower()+"
'
andPwd='
+txtPassword.Text.Trim()+"
;
SqlCommandcmd=newSqlCommand(sql,conn);
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
//txtUsername=this.txtUsername.Text.Trim();
ResultFormfrm=newResultForm();
frm.Show();
this.Hide();
}
else
MessageBox.Show("
用户名或密码错误"
"
出错了"
MessageBoxButtons.OK,MessageBoxIcon.Error);
conn.Close();
ResultFormre=newResultForm();
re.ShowDialog();
4.2抽奖系统主体模块
4.2.1界面分析与设计
抽取每个奖项之前用户可以按抽奖设置按钮设置特等奖、一等奖、二等奖、三等奖、四等奖、五等奖的获奖名额。
用户可以选择抽取其中任意一个奖项,点击开始抽奖按钮进行抽奖。
每个奖项对应的中奖号及对应奖品可以在结果查看和奖品查看中查看,抽奖结束后可以点击清空记录按钮对中奖信息进行清除。
抽奖系统主体模块界面如图4-2所示。
图4-2
4.2.2主要代码
privatevoidbtnstart_Click(objectsender,EventArgse)
if(rdo1.Checked==true)
LuckyFormluck1=newLuckyForm();
luck1.choose=1;
luck1.ShowDialog();
elseif(rdo2.Checked==true)
LuckyFormluck2=newLuckyForm();
luck2.choose=2;
luck2.ShowDialog();
elseif(rdo3.Checked==true)
LuckyFormluck3=newLuckyForm();
luck3.choose=3;
luck3.ShowDialog();
elseif(rdo4.Checked==true)
LuckyFormluck4=newLuckyForm();
luck4.choose=4;
luck4.ShowDialog();
elseif(rdo5.Checked==true)
LuckyFormluck5=newLuckyForm();
luck5.choose=5;
luck5.ShowDialog();
elseif(rdot.Checked==true)
LuckyFormluck=newLuckyForm();
luck.choose=0;
luck.ShowDialog();
//查看结果
privatevoidbtnresult_Click(objectsender,EventArgse)
frm1cha=newfrm1();
cha.Show();
//查看奖品
privatevoidbtnsee_Click(objectsender,EventArgse)
ShowFormre=newShowForm();
//退出
privatevoidLoginForm_FormClosing(objectsender,FormClosingEventArgse)
if(restart==false)
{
DialogResultre=MessageBox.Show("
您要退出抽奖系统吗?
关闭提示"
MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if(re==DialogResult.Yes)
DialogResultree=MessageBox.Show("
退出后本次抽奖记录将消失,确认要退出吗?
重要提醒"
MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if(ree==DialogResult.Cancel)
e.Cancel=true;
privatevoidLoginForm_FormClosed(objectsender,FormClosedEventArgse)
GC.Collect();
this.Dispose();
}
//清空
privatevoidbtnrestart_Click(objectsender,EventArgse)
您确定要清空抽奖记录吗?
提示"
MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
if(re==DialogResult.OK)
restart=true;
Application.Restart();
4.3获奖名额设置模块
4.3.1界面分析与设计
用户点击抽奖设置按钮后弹出获奖名额设置窗口,用户可以修改每个奖项抽出的获奖人数。
若用户设置名额超出该奖项设定个数,则弹出用户设置名额超出范围对话框,要求用户重新修改获奖人数。
获奖名额设置模块界面设计如图4-3、4-4所示。
图4-3
图4-4
privatevoidSetForm_Load(objectsender,EventArgse)
txt.Text=UserHelper.te.ToString();
txt1.Text=UserHelper.one.ToString();
txt2.Text=UserHelper.two.ToString();
txt3.Text=UserHelper.three.ToString();
txt4.Text=UserHelper.four.ToString();
txt5.Text=UserHelper.five.ToString();
//保存设置
privatevoidsaveset()
try
UserHelper.te=Convert.ToInt32(txt.Text);
UserHelper.one=Convert.ToInt32(txt1.Text);
UserHelper.two=Convert.ToInt32(txt2.Text);
UserHelper.three=Convert.ToInt32(txt3.Text);
UserHelper.four=Convert.ToInt32(txt4.Text);
UserHelper.five=Convert.ToInt32(txt5.Text);
UserHelper.allset=Convert.ToInt32(txt.Text)+Convert.ToInt32(txt1.Text)+Convert.ToInt32(txt2.Text)+Convert.ToInt32(txt3.Text)+Convert.ToInt32(txt4.Text)+Convert.ToInt32(txt5.Text);
privateboolvliainput()
boolresult=true;
inttxtno1=Convert.ToInt32(txt1.Text);
if(txtno1<
0||txtno1>
100)
txt1.Clear();
txt1.Focus();
你输入的数字大小不符合!
请输入~100之间的数字!
错误提示"
MessageBoxButtons.OK,MessageBoxIcon.Information);
result=false;
catch(Exception)
输入不符合要求!
"
MessageBoxButtons.OK,MessageBoxIcon.Stop);
inttxtno2=Convert.ToInt32(txt2.Text);
if(txtno2<
1||txtno2>
1000)
txt2.Clear();
txt2.Focus();
请输入数字!
MessageBoxButtons.OK,MessageBoxIcon.Stop);
inttxtno3=Convert.ToInt32(txt3.Text);
if(txtno3<
1||txtno3>
txt3.Clear();
txt3.Focus();
inttxtno4=Convert.ToInt32(txt4.Text);
if(txtno4<
1||txtno4>
txt4.Clear();
txt4.Focus();
inttxtno5=Convert.ToInt32(txt5.Text);
if(txtno5<
1||txtno5>
txt5.Clear();
txt5.Focus();
returnresult;
4.4奖项抽取模块
4.4.1界面分析与设计
中奖号的抽取使用数字0~100作为抽奖号,编程实现抽奖号码的滚动,按下停止键时得到的数字便是中奖号,选择是否保存中奖号码。
若选择保存则显示保存的号码,不保存则重新抽取获奖号。
界面右下角显示设置的获奖名额个数及已抽出的获奖号个数。
若获奖号全部抽出时,用户继续抽取该奖项,则弹出提醒对话框,提醒用户该奖项已全部抽出,并返回抽奖主界面。
奖项抽取模块界面如图4-5、4-6所示。
图4-5
图4-6
4.4.2主要代码
publicpartialclassLuckyForm:
Form
publicintchoose;
intpernum;
//总人数(图片的数量)
inti=0;
//图片下标(总人数)
intindex;
//中奖者的下标(滚动下标)
intdj=1;
//抽奖等级
intsave=0;
//是否保存
Stringwinner="
//中奖者下标
boolgo=true;
//判断开始按钮
intwined=0;
//已抽出的中奖人数
Randomran=newRandom(DateTime.Now.Millisecond);
inttmpadd=0;
privatestaticintaset=0;
privatestaticintsetnum=0;
publicLuckyForm()
InitializeComponent();
privatevoidzhongjianglist()
if(dj==1)
foreach(stringainUserHelper.yiwinner)
if(a!
=null)
listBox1.Items.Add(a);
break;
elseif(dj==2)
foreach(stringbinUserHelper.erwinner)
if(b!
listBox1.Items.Add(b);
elseif(dj==3)
foreach(stringcinUserHelper.sanwinner)
if(c!
listBox1.Items.Add(c);
elseif(dj==4)
foreach(stringdinUserHelper.siwinner)
if(d!
listBox1.Items.Add(d);
elseif(dj==5)
foreach(stringeinUserHelper.wuwinner)
if(e!
listBox1.Items.Add(e);
elseif(dj==0)
foreach(stringtinUserHelper.twinner)
if(t!
listBox1.Items.Add(t);
privatevoidLuckyForm_Load(objectsender,EventArgse)
//显示抽几等奖
if(choose==1)
lblno.Text="
一等奖"
lblset.Text=UserHelper.one.ToString();
//设置名额
lblcc.Text=readnum
(1).ToString();
//抽出名额
dj=1;
elseif(choose==2)
二等奖"
lblset.Text=UserHelper.two.ToString();
lblcc.Text=readnum
(2).ToString();
dj=2;
elseif(choose==3)
三等奖"
lblset.Text=UserHelper.three.ToString();
lblcc.Text=readnum(3).ToString();
dj=3;
elseif(choose==4)
四等奖"
lblset.Text=UserHelper.four.ToString();
lblcc.Text=readnum(4).ToString();
dj=4;
elseif(choose==5)
五等奖"
lblset.Text=UserHelper.five.ToString();
lblcc.Text=readnum(5).ToString();
dj=5;
elseif(choose==0)
特等奖"
lblset.Text=UserHelper.te.ToString();
lblcc.Text=readnum(0).ToString();
dj=0;
zhongjianglist();
//读取用户信息放到数组中去默认最大人数是
UserHel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 模拟 抽奖 软件设计
![提示](https://static.bdocx.com/images/bang_tan.gif)