实验1 经典软件体系结构风格(一)
学号: 姓名: 班级:
时间: 地点: 指导老师:
一、实验目的
(1)理解主程序-子程序软件体系结构、面向对象软件体系结构、管道-过滤器软件体系结构的原理
(2)掌握主程序-子程序软件体系结构、面向对象软件体系结构、管道-过滤器软件体系结构的实例
(3)主程序-子程序软件体系结构、面向对象软件体系结构、管道-过滤器软件体系结构的编程实现
二、实验内容1
1. 问题描述
#include <stdio.h>
int max(int x,int y) {
int z;
z = x > y ? x : y;
return( z );
}
void main(){
int a,b,c ;
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“The max is %d”, c);
}
2. 软件设计
3. 测试及运行结果
4. 代码分析
主程序-子程序结构。max是子程序,负责接收两个整数并返回较大者。main是主程序,它读取用户输入的两个整数,并调用max来找出较大值,然后打印结果。当输入1, 2时,程序正确输出2作为较大值。
三、实验内容2
1. 问题描述
运行下面的程序,理解数据抽象和面向对象软件体系结构
class Spot{
private int x,y;
Spot(int u, int v){
setX(u);
setY(v);
}
void setX(int x1){
x=x1;
}
void setY(int y1){
y=y1;
}
int getX(){
return x;
}
int getY(){
return y;
}
}
class Trans{
void move(Spot p, int h, int k){
p.setX(p.getX()+h);
p.setY(p.getY()+k);
}
}
class Test{
public static void main(String args[]){
Spot s = new Spot(2,3);
System.out.println("s点的坐标:" + s.getX() + "," + s.getY());
Trans ts = new Trans();
ts.move(s,4,5);
System.out.println("s点的坐标:" + s.getX() + "," + s.getY());
}
}
2. 软件设计
3. 测试及运行结果
4.代码分析
Spot类封装了点的位置信息(x,y坐标),并通过私有变量x和y隐藏了数据的具体实现细节。外部只能通过类提供的公共方法(如getX(), getY(), setX(), setY())来访问或修改这些数据成员,从而实现了数据的隐藏和保护。类Spot定义了一个对象,该对象具有状态(x和y坐标)和行为(设置和获取坐标的方法)。类Trans定义了另一个对象的行为,即移动一个Spot对象到新的位置。这里move方法接收一个Spot对象和两个整数(水平偏移量h和垂直偏移量k),然后更新Spot对象的位置。