《计算思维实训(0830A032)》课程报告).doc_第1页
《计算思维实训(0830A032)》课程报告).doc_第2页
《计算思维实训(0830A032)》课程报告).doc_第3页
《计算思维实训(0830A032)》课程报告).doc_第4页
《计算思维实训(0830A032)》课程报告).doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算思维实训课程报告42014-2015学年冬季学期计算思维实训(2)(0830A032)课程报告学 号13121720学 院计算机工程与科学学院姓 名陈友超手工签名报告题目 程序的智能化成 绩平时工作课程报告成绩完成情况(25%)进步量(25%)格式(20%)内容(30%)百分制五级分制 教师评语教师签名批阅日期年 月 日 注五级分制成绩为:优秀(90-100),良好(80-89),中等(70-79),及格(60-69),不及格(0-59)。程序的智能化 陈友超13121720 计算机工程与科学学院1 实训过程简述1.1 初窥项目1.1.1 项目内容输入给定的module文档,对于选定的process,提示用户给出特定测试用例,输出预期结果(从,=,and,or开始),简单来说就是负责直接告诉用户其所需的结果,用户只需输入整个过程中需要的数据即可得到答案。1.1.2 项目知识了解XML的使用以及module,process,CDFD的结构,知道其包含的内容module结构module const / module中使用的常数,如a = 1type / module中使用的类型,如int,realvar / module中使用的变量,如b: intbehav / module对应的CDFD名process_1;process_2;process_n;end-module;process结构process A(x11:T11,x1n:T1n | | xm1:Tm1,xmp:Tmp ) y11:T11,y1q:T1q | | yr1:Tr1,yrs:Tr spre /前置条件,满足该条件A才能正确运行post /后置条件,描述输出与输入的关系decom ci /process A可分解为底层CDFD ciend_processCDFD(ConditionalData Flow Diagram)结构单层CDFD 由输入输出连接相关process以描述软件功能多层CDFD核心思想: 若高层CDFD的process过于复杂,可分解为底层CDFD1.1.3先与老师进行交流确定了选择以上内容为项目,并且花了一些课时学习了解了完成项目所必须掌握的知识,同时也在试验中确定了使用rapidxml作为我们读取xml的c+库,最后再通过特殊的列子渐渐的完善程序,在项目中,我们设想了较多的条件,但是由于时间原因最后只能实现较为简单的几种2 关键技术实现2.1 系统概要设计先创立共用的xml文档,文档内容包括了module,process的结构,我们在程序中通过引用rapidxml的库,实现读取已经建立好的xml文档,再通过分解,得到我们所需要的pre,post的内容,同时根据字符串的判断,建立不同的情况下,遇到特定字符串应该如何处理,用户输入的未知数的数据来代替我们读取的代表未知数的字符,通过pre的条件,带入判断pre是否成立,在读取post的内容,根据post中的条件再判断选取哪个条件,最后获得结果。2.2 关键技术详细设计2.2.1 读取xml的内容。利用rapidxml,直接调用其库来读取已经设计好的xml文档intReadAndChangeXml()rapidxml:filefdoc(Students.xml);std:coutfdoc.data()std:endl;rapidxml:xml_documentdoc;doc.parse(fdoc.data();std:()std:endl;/!获取根节点rapidxml:xml_node*root=doc.first_node();std:coutname()std:endl;/!获取根节点第一个节点rapidxml:xml_node*node1=root-first_node();std:coutname()std:endl;/获取根节点第一个节点的第一个节点rapidxml:xml_node*node11=node1-first_node();std:coutname()std:endl;std:coutvalue()std:endl;/获取根节点第一个节点的第二个节点rapidxml:xml_node*node12=node11-next_sibling();std:coutname()std:endl;std:coutvalue()std:endl;/获取根节点第二节点rapidxml:xml_node*node2=node1-next_sibling();std:coutname()std:endl;/获取根节点第二节点的第一节点rapidxml:xml_node*node21=node2-first_node();std:coutname()std:endl;/获取根节点第二节点的第一节点的第一节点rapidxml:xml_node*node211=node21-first_node();std:coutname()std:endl;std:coutvalue()std:endl;/获取根节点第二节点的第一节点的第二节点rapidxml:xml_node*node212=node211-next_sibling();std:coutname()std:endl;std:coutvalue(),; char *p; p = strtok(s,d); if(strlen(p)=2)std:coutp3std:endl;else if(char *d = ) char *p; p= strtok(s,d); if(strlen(p)=2)std:coutp3std:endl; else if(char *d = =) char *p; p = strtok(s,d); if(strlen(p)=2)std:coutp3std:endl;3 体会 在这次的学习中,重点不是我们成功的完成了程序,而是先是了解了在软件工程中最开始的一步所需要做的事情,并且通过老师的讲解知道了,在程序实现自动化的过程中我们需要做的一些事情,最大的收获还是知道了完成这项目的想法,比如项目的完善需要不断的补充思考,在建模的过程中虽然我们是从特例中找到灵感,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论