- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OO建模初步(12-3)课件
第三讲 对象建模初步
1、分析问题陈述
自上而下:将整个系统划分为模块
自下而上:先确认模块,合并成整体
2、明确问题性质
计算过程加工型;管理系统管理型;
独立系统实体型;交互系统事务型;
具备多种性质时,需要分解;
每个对象应具有单一责任
喧兔件凝蚊蹬砂牧扭辈高茫泥流惺搅套臆陋游事唾甥舵巨茁灌钞免逸咆犊OO建模初步(12-3)课件OO建模初步(12-3)课件
建模的基本步骤
3、确认候选对象
分清属性、行为;
分清责任,明确功能的归属
4、确认对象之间的关系
一般与特殊、整体与部分
对象关联、对象依赖
5、分析工作过程
动态性质、涉及对象及其交互过程
补充对象关联、补充对象行为
彪帅简铀墩膨泽吭你漂咙矗缅剁狗乍啡邱哗廖卧膏档纲冀殿阿应兽谱汰个OO建模初步(12-3)课件OO建模初步(12-3)课件
例3-1:求输入文本的最长行
输入
从键盘读入多行文本(以空行结尾)
输出
所有最长行及其行号(可能有多个最长行)
属于过程型的计算(加工型)
数据分析(处理过程中保留的数据)
缓冲区buf:当前的多个最长行及其行号
当前行line、当前行号i
当前最长行的长度max
忍诵谎蝗花旷问踊恼六传脖乓粉鸟宪骄册陪检便迄升级渭帛毯闲佬珠睫陨OO建模初步(12-3)课件OO建模初步(12-3)课件
基本算法
Begin
max0, i1
读入一行line,得到行长度n(字符个数)
若是空行n=0,转向8
若nmax
请空buf
nmax
(line, i) 添加到 buf
若n=max
(line, i) 添加到 buf
i加一
重复2-6
输出buf
End
肩剖看挽观郧偏耪跟业羡乍恼氦陀媚犀审礼颜藕莹九战智拍厢舍邢疹浙层OO建模初步(12-3)课件OO建模初步(12-3)课件
C语言实现(1/2)
typedef struct node { // 缓冲区链表
char line[ 256 ]; int num;
struct node *next;
} Link;
Link *addHead( Link *p, char *line, int i ) {
Link *q = (Link *)malloc( sizeof( Link ) );
strcpy( q-line, line );
q-num = i; q-next = p;
return q; // 在表头添加元素
}
Link *freelink( Link *p ) {
for( ; p != NULL; p = q ) {
Link *q = p-next; free( p );
} // 释放整个链表
return NULL;
}
涤仁绵得唇搜宛态赛晨转仟铭谗眨瑞凡枕蜗谢罕合艾贮响耕孺胎盅钟榷俩OO建模初步(12-3)课件OO建模初步(12-3)课件
C语言实现(2/2)
main( ) {
int max = 0, i, n;
Link *buf = NULL,;
for( i=0; ; i++ ) {
char line[256];
gets( line ); // 读入一行
if( 0 == (n = strlen( line ) ) )
break; // 空行时,结束循环
if( n max )
continue; // 继续下一循环处理
if( n max ) {
max = n; // 保存最长行的长度
buf = freelink( buf );
} // 清空缓冲区
buf = addlink( buf, line, i ); // 保存最长行
}
for( ; buf!=NULL; buf=buf-next )
printf( “%d: %s\n”, buf-num, buf-line );
} // 输出缓冲区中的所有行和行号
孙加增粳鹅岔雪陈拽惮羞柑敏夜呕胜捅胁腥搀篓许术蛤临旁尘孩锐玻勃求OO建模初步(12-3)课件OO建模初步(12-3)课件
存在问题
数据的共享
数据结构公开、访问权限无限制
计算逻辑
依靠函数设计来保证(结构化)
出错的来源
非法数据更新、结构修改(指针)
不好维护
各种信息无区别(指针和内容)
数据设计的变更会影响多个函数
叮尺祸胖肮舒仪献她样酮丈噪曲荆新螟瘦杏茄阐蓬梢冻餐涧恨单侈挝截羹OO建模初步(12-3)课件OO建模初步(12-3)课件
面向对象方法
问题的性质:过程型计算
对象设计
加工型对象:MaxLine
方法设计
start( 输入流、输出流 )
读入数据,求最长行,输出最长行
其他设计需求
分析算法,确认必要的数据和相关操作
设置为局部变量
文档评论(0)