下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 系统需求分析

系统需求分析.doc

系统需求分析

郭贞固
2017-09-16 0人阅读 举报 0 0 暂无简介

简介:本文档为《系统需求分析doc》,可适用于IT/计算机领域

系统需求分析第章系统需求分析MFC简介MFC是一个很大的、扩展了的C类层次结构它能使开发Windows应用程序变得更加容易。与传统上使用C语言直接访问WindowsAPI相反使用MFC和C的优点是MFC已经包含和压缩了所有标准的“样板文件”代码这些代码是所有用C编写的Windows程序所必需的。因此用MFC编写的程序要比用C语言编写的程序小得多。另外MFC所编写的程序的性能也毫无损失。必要时你也可以直接调用标准C函数因为MFC不修改也不隐藏Windows程序的基本结构。使用MFC的最大优点是它为你做了所有最难做的事。MFC中包含了上成千上万行正确、优化和功能强大的Windows代码。MFC极大地加快了你的程序开发速度。系统功能分析使用VisualC实现一个模拟点扑克牌游戏的程序要求能够进行简单的要牌、发牌、重置功能。具体功能要求如下:()玩家最多可以要张牌()如果牌的点数之和大于点则自动判输()在不超过点的情况下,玩家与电脑比较牌的点数大小,大者为赢家()界面美观,操作可靠。第章系统总体设计根据需求分析本系统为一个点扑克牌游戏娱乐系统,用户可以通过该娱乐系统进行游戏娱乐。作为休闲娱乐软件,界面设计美观操作可靠是设计的一个重要要素。通过查资料充分了解扑克牌游戏的规则、结构和特点后采用MFC编写此娱乐游戏系统。在通过对牌类游戏软件系统需求分析的基础上得到如图所示的系统功能模块图点扑克牌游戏玩电家脑要不重要不要置要牌了牌了图系统功能模块图第章详细设计界面设计系统界面如图所示图系统界面、开始point项目用AppWizard创建基于对话框的应用程序启动VisualC并用AppWizard为point应用程序创建初始文件。建立项目的方式如下:从主菜单叶选取File|New。从项目属性表中的可选项目表内选取MFCAppWizard(exe)。将项目命名为point。、添加标识按钮将OK按钮的标题改为„要牌将其ID由IDOK改为IDCBUTTON。将Cancel的标题改为„不要了,将其ID由IDOK改为IDCBUTTON。从控件栏中点击‘按钮,用鼠标在界面画一个按钮,将按钮的标题改为„重置,其ID改为IDCBUTTON。、添加编辑框和静态文本框从控件栏中点击‘编辑框’在界面上画出两个编辑框用来记录显示牌的点数。从控件栏中点击„静态文本框’在界面上画出两个静态文本框分别把标题改为玩家和„电脑’。程序代码点Dlgcpp:implementationfile#include"stdafxh"#include"点h"#include"点Dlgh"#ifdefDEBUG#definenewDEBUGNEW#undefTHISFILEstaticcharTHISFILE=FILE#endifCAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public:CAboutDlg()DialogData{{AFXDATA(CAboutDlg)enum{IDD=IDDABOUTBOX}}}AFXDATAClassWizardgeneratedvirtualfunctionoverrides{{AFXVIRTUAL(CAboutDlg)protected:virtualvoidDoDataExchange(CDataExchange*pDX)DDXDDVsupport}}AFXVIRTUALImplementationprotected:{{AFXMSG(CAboutDlg)}}AFXMSGDECLAREMESSAGEMAP()}CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){{{AFXDATAINIT(CAboutDlg)}}AFXDATAINIT}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX){{AFXDATAMAP(CAboutDlg)}}AFXDATAMAP}BEGINMESSAGEMAP(CAboutDlg,CDialog){{AFXMSGMAP(CAboutDlg)Nomessagehandlers}}AFXMSGMAPENDMESSAGEMAP()CMyDlgdialogCMyDlg::CMyDlg(CWnd*pParent*=*):CDialog(CMyDlg::IDD,pParent){timespc=timesuser=totalpc=totaluser=GetDlgItem(IDCEDIT)>SetWindowText("")GetDlgItem(IDCEDIT)>SetWindowText(""){{AFXDATAINIT(CMyDlg)NOTE:theClassWizardwilladdmemberinitializationhere}}AFXDATAINITNotethatLoadIcondoesnotrequireasubsequentDestroyIconinWinmhIcon=AfxGetApp()>LoadIcon(IDRMAINFRAME)}voidCMyDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX){{AFXDATAMAP(CMyDlg)NOTE:theClassWizardwilladdDDXandDDVcallshere}}AFXDATAMAP}BEGINMESSAGEMAP(CMyDlg,CDialog){{AFXMSGMAP(CMyDlg)ONWMSYSCOMMAND()ONWMPAINT()ONWMQUERYDRAGICON()ONBNCLICKED(IDCBUTTON,OnButton)ONBNCLICKED(IDCBUTTON,OnButton)ONBNCLICKED(IDCBUTTON,OnButton)}}AFXMSGMAPENDMESSAGEMAP()CMyDlgmessagehandlersBOOLCMyDlg::OnInitDialog(){CDialog::OnInitDialog()Add"About"menuitemtosystemmenuIDMABOUTBOXmustbeinthesystemcommandrangeASSERT((IDMABOUTBOXxFFF)==IDMABOUTBOX)ASSERT(IDMABOUTBOX<xF)CMenu*pSysMenu=GetSystemMenu(FALSE)if(pSysMenu!=){CStringstrAboutMenustrAboutMenuLoadString(IDSABOUTBOX)if(!strAboutMenuIsEmpty()){pSysMenu>AppendMenu(MFSEPARATOR)pSysMenu>AppendMenu(MFSTRING,IDMABOUTBOX,strAboutMenu)}}SettheiconforthisdialogTheframeworkdoesthisautomaticallywhentheapplication'smainwindowisnotadialogSetIcon(mhIcon,TRUE)SetbigiconSetIcon(mhIcon,FALSE)SetsmalliconTODO:AddextrainitializationherereturnTRUEreturnTRUEunlessyousetthefocustoacontrol}voidCMyDlg::OnSysCommand(UINTnID,LPARAMlParam){if((nIDxFFF)==IDMABOUTBOX){CAboutDlgdlgAboutdlgAboutDoModal()}else{CDialog::OnSysCommand(nID,lParam)}}Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelowtodrawtheiconForMFCapplicationsusingthedocumentviewmodel,thisisautomaticallydoneforyoubytheframeworkvoidCMyDlg::OnPaint(){if(IsIconic()){CPaintDCdc(this)devicecontextforpaintingSendMessage(WMICONERASEBKGND,(WPARAM)dcGetSafeHdc(),)CentericoninclientrectangleintcxIcon=GetSystemMetrics(SMCXICON)intcyIcon=GetSystemMetrics(SMCYICON)CRectrectGetClientRect(rect)intx=(rectWidth()cxIcon)inty=(rectHeight()cyIcon)DrawtheicondcDrawIcon(x,y,mhIcon)}else{CDialog::OnPaint()}}ThesystemcallsthistoobtainthecursortodisplaywhiletheuserdragstheminimizedwindowHCURSORCMyDlg::OnQueryDragIcon(){return(HCURSOR)mhIcon}intCMyDlg::randomnum(void){intnumnum=rand()*RANDMAXreturnnum}voidCMyDlg::OnButton(){TODO:Addyourcontrolnotificationhandlercodehereshowresult()}voidCMyDlg::OnButton(){TODO:Addyourcontrolnotificationhandlercodeheretimespc=timesuser=totalpc=totaluser=GetDlgItem(IDCEDIT)>SetWindowText("")GetDlgItem(IDCEDIT)>SetWindowText("")}voidCMyDlg::OnButton(){TODO:Addyourcontrolnotificationhandlercodehereif(timesuser!=){timesuser=intii=randomnum()totaluser=totalusericharstritoa(totaluser,str,)GetDlgItem(IDCEDIT)>SetWindowText(str)computer()}else{if(timespc!=){AfxMessageBox("你已经要了次牌了~")computer()}else{AfxMessageBox("你已经要了次牌了~")}}}voidCMyDlg::computer(){if(totalpc>=){等待玩家}else{if(timespc!=){timespc=intii=randomnum()totalpc=totalpcicharstritoa(totalpc,str,)GetDlgItem(IDCEDIT)>SetWindowText(str)}else{等待玩家}}}voidCMyDlg::showresult(){if((totalpc>)(totaluser>)){if(totalpc>=totaluser){AfxMessageBox("祝贺你:玩家,你赢了~")}else{AfxMessageBox("很遗憾,你输了~")}}if((totalpc>)(totaluser<=)){AfxMessageBox("祝贺你:玩家,你赢了~")}if((totalpc<=)(totaluser>)){AfxMessageBox("很遗憾,你输了~")}if((totalpc<=)(totaluser<=)){if(totalpc>=totaluser){AfxMessageBox("很遗憾,你输了~")}if(totalpc<totaluser)else{AfxMessageBox("祝贺你:玩家,你赢了~")}*if(totalpc=totaluser){AfxMessageBox("平局~")}*}}第章测试数据与结果测试数据:()当玩家和电脑的牌总点数<=:若玩家点数<=电脑点数,则玩家输(结果如下图)若玩家点数>电脑点数,则玩家赢(结果如下图)。()当玩家和电脑的牌总点数>=:若玩家点数<=电脑点数,则玩家赢(结果如下图)若玩家点数>电脑点数,则玩家赢(结果如下图)。()当玩家的牌总点数<=,电脑的牌总点数>:则玩家赢(结果如下图)()当玩家的牌总点数>,电脑的牌总点数<=:则玩家输(结果如下图)第章实习体会和收获为了此次课程设计在实验前做了很多事先准备比如在网上搜集相关的知识资料同时对VC及MFC等知识进行了更加层次的学习并了解了MCI一些相关知识,并且对一些相关控件的属性及使用方法也有了进一步的了解。对游戏娱乐软件开发有了更进一步的认识提高了软件设计水平收获非常大。参考文献《VisualC实践与提高》中国铁道出版社刘长明杨工明编著《VisualC游戏编程导学》清华大学出版社杨正华张秋生编著

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/15

系统需求分析

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利