基于vc手写数字识别程序设计(编辑修改稿)内容摘要:
, amp。 dcMemory1, 0, 0, SRCCOPY)。 /*对amp。 dcMemory1中的像素进行位块转换,以传送到目标设备环境*/ (IDB_BITMAP_RECOGNIZE)。 (pDC)。 (amp。 bitmaprecognize)。 pDCBitBlt(220, 80, 50, 20, amp。 dcMemory2, 0, 0, SRCCOPY)。 (IDB_BITMAP_CLEAR)。 (pDC)。 (amp。 bitmapclear)。 pDCBitBlt(220, 140, 50, 20, amp。 dcMemory3, 0, 0, SRCCOPY)。 //画板 CBrush BrushBoard (RGB (255, 255 , 255) )。 // Select the brush into the device context . pOldBrush = pDCSelectObject (amp。 BrushBoard)。 //Paint the area. pDC PatBlt (8,8,176,240, PATCOPY )。 //Unselect brush out of device context pDCSelectObject (pOldBrush )。 pDCSetTextColor(RGB(255,255,255))。 //设置当前环境(HDC)的字体颜色pDCSetTextAlign(TA_CENTER|TA_TOP)。 //指定设备环境设置文字对齐标志pDCSetBkMode(TRANSPARENT)。 /*TRANSPARENT是使用透明的输出,也就是文字的背景是不改变的*/}学习程序void CPatternView::OnStudy(void){//输入数字值的对话框 InputDialog inputdlg。 ()。 //定位当前文件指针到文件开头 int nFileSize=()。 //获取文件长度 int i=nFileSize/sizeof(TEZHENG)。 TEZHENG *temp。 temp=(TEZHENG *)malloc(sizeof(TEZHENG))。 //计算当前画板中数字的特征值 GetTeZheng()。 //首先判断当前的数字类型是否已经在模板中 for(int j=0。 ji。 j++){ ((void *)temp,sizeof(TEZHENG))。 //从文件cf的当前位置读数据 for(int k=0。 k15。 k++){ if(tempVHDerection[k]!=mytezhengVHDerection[k]) //判断水平特征 break。 } if((k==15)amp。 amp。 (tempdecon==mytezhengdecon)amp。 amp。 (templenfirst==mytezhenglenfirst)amp。 amp。 (templenth1==mytezhenglenth1)amp。 amp。 (templenth==mytezhenglenth)amp。 amp。 (templenend==mytezhenglenend)){ char s[20]。 sprintf(s,您输入的是:%d,数据已有,tempvalue)。 AfxMessageBox(s)。 break。 } } //说明该数字类型不在模板中 if(j==i){ if(()==IDOK){ //判断数字输入对话框中的两个数字是否相同 if(!=){ AfxMessageBox(您的输入有误,\n请重新输入)。 } //相同,则将新的数字类型写入模板文件中 else{ GetTeZheng()。 try{mytezhengvalue=。 ()。 //定位当前文件指针到文件尾(amp。 mytezhengvalue,sizeof(signed char))。 //将文件数据写入当前文件位置(mytezhengVHDerection,sizeof(signed char)*15)。 (amp。 mytezhenglenth1,sizeof(signed char))。 (amp。 mytezhenglenth,sizeof(signed char))。 (amp。 mytezhengdecon,sizeof(signed char))。 (amp。 mytezhenglenfirst,sizeof(signed char))。 (amp。 mytezhenglenend,sizeof(signed char))。 } catch(CFileException *e){ //Alert user to error eDelete()。 }//end trycatch }//end ifelse }//end if }//end ifreturn。 }识别程序void CPatternView::OnRecognize(void){ ()。 int nFileSize=()。 int i=nFileSize/sizeof(TEZHENG)。 TEZHENG *temp。 temp=(TEZHENG *)malloc(sizeof(TEZHENG))。 //计算特征值 GetTeZheng()。 //在模板文件中寻找,是否有与当前特征值相同的 for(int j=0。 ji。 j++){ ((void *)temp,sizeof(TEZHENG))。 for(int k=0。 k15。 k++){ if(tempVHDerection[k]!=mytezhengVHDerection[k]) break。 } //找到识别结果if((k==15)amp。 amp。 (tempdecon==mytezhengdecon)amp。 amp。 (templenfirst==mytezhenglenfirst)amp。 amp。 (templenth1==mytezhenglenth1)amp。 amp。 (templenth==mytezhenglenth)amp。 amp。 (templenend==mytezhenglenend)){ char s[20]。 sprintf(s,您输入的是:%d,tempvalue)。 Afx。基于vc手写数字识别程序设计(编辑修改稿)
相关推荐
页 静态随机存取存储器 SRAM(Static Random Access Memory)是一种非常重要的易失性存储器,它的速度非常快,并且能在快速读取和刷新时保持数据完整性。 SRAM 器件采用Hynix 公司的 HY64UD16322A。 HY64UD16322A 是高速、超低功耗 32 Mbit SRAM,内部具有 2 097 152 个 16 bit 字容量。 采用了 CMOS 制造工艺
amp。 (num2 = EPSINON) ){ num_buffer = 除数不能为零。 error = true。 } else{ thism_num = num1 / num2。 }break。 default:thism_num = thisnum2。 break。 } 结果如下图所示 ③科学性运算按钮的处理: 只需根据数值分析等为按钮进行算法的合理设计,正确赋值即可,具体代码如下:
或称典范 ( paradigm)。 C++提供了 class、 namespace 和访问控制 ,使设计决策的各异化( locality) 成为可能。 第四章 系统结构功能分析 班级信息管理系统的功能结构 班级信息管理系统的功能结构如图 6 图 学生管理系统功能结构图 学生管理系统的业务流程图 学生管理系统 基本信息管理 学生管理 查询管理 科室信息管理 科目信息管理 教师信息管理 班级科目管理
图 311 系统局部 ER 图卫生评比实体 逻辑结构设计 根据系统的功能描述,设计要用的数据表。 因为这些表之间相互关联,存储着系统的相关数据,所以在设计数据表的过程中,要求设计一个表只存储一个实体或对象的相关信息,不同实体存 12 储在不同的表中。 对于不同的对象或者实体,如果还可 以细分,则可以根据当前系统的需求和未来扩展的需要,对实体或对象进行表结构的建立
、所加脚本和对象信息等等。 菜单栏:菜单栏位于界面最上方,拥有 7 个菜单选项,分别为: File(文件)、 Edit (编辑)、 Assets(资源)、 GameObject(游 戏对象)、 Component(组件)、 Window(窗口)、 Help(帮助)。 文件( File)选项主要用于场景的关闭开启,项目工程的存储。 场景调整工具:场景调整工具位于菜单栏下方,如图 22 所示: 图
5 结构化程序设计; 事件驱动的程序设计: 在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行 代码。 从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程。 在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段。 事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发