radius = r; }
public override double Area() {
return radius * radius * 3.14; } } }
Ellipse.cs:
using System;
using System.Collections.Generic; using System.Linq; using System.Text;
namespace WindowsFormsApplication1 {
public class Ellipse : Graphic {
double la; double lb;
public Ellipse(double a, double b) {
la = a; lb = b; }
public override double Area() {
return la * lb*3.14; } } }
From1.cs:
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
if (comboBox1.SelectedItem == \圆\ {
double r=Convert.ToDouble(textBox1.Text); Circle circle=new Circle(r);
textBox4.Text = Convert.ToString(circle.Area()); }
else if (comboBox1.SelectedItem == \矩形\ {
double len = Convert.ToDouble(textBox1.Text); double wid = Convert.ToDouble(textBox2.Text); Rectangle rec = new Rectangle(len, wid); textBox4.Text = Convert.ToString(rec.Area()); }
else if (comboBox1.SelectedItem == \三角形\ {
double btm = Convert.ToDouble(textBox1.Text); double hgt = Convert.ToDouble(textBox3.Text); Triangle tri = new Triangle(btm, hgt); textBox4.Text = Convert.ToString(tri.Area()); }
else if (comboBox1.SelectedItem == \椭圆\ {
double a = Convert.ToDouble(textBox1.Text); double b = Convert.ToDouble(textBox2.Text); Ellipse elp = new Ellipse(a, b);
textBox4.Text = Convert.ToString(elp.Area()); } }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {
if (comboBox1.SelectedItem == \圆\ {
label1.Text = \半径\ label2.Visible = false; label3.Visible = false; textBox2.Visible = false; textBox3.Visible = false; }
else if (comboBox1.SelectedItem == \ {
label1.Text = \ label2.Visible = true; textBox2.Visible = true; label3.Visible = false; textBox3.Visible = false; }
else if (comboBox1.SelectedItem == \ {
label1.Text = \ label3.Visible = true; textBox3.Visible = true; label2.Visible = false; textBox2.Visible = false; }
else if (comboBox1.SelectedItem == \ {
label1.Text = \ label2.Text = \ label2.Visible = true; textBox2.Visible = true; label3.Visible = false; textBox3.Visible = false; } } } }
矩形\长\三角形\底\椭圆\半长轴\半短轴\
四、 实验结果与分析 程序初始界面:
如选择椭圆,输入半长轴和半短轴,点击计算,输出结果:
如选择三角形,输入底和高,点击计算,输出结果:
五、 思考题
(1) 管道-过滤器软件体系结构与批处理软件体系结构的区别和联系是什么?
答:管道/过滤器结构通常导致进程成为批处理的结构,因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每一个过滤器看成一个完整的从输入到输出的转换。.限定过滤器的数据存储容量,就可以得到有界管道/过滤器。过滤器将所有输入数据作为单个实体进行处理,这就是批处理系统 (2) 面向对象软件体系结构与主程序-子程序软件体系结构的区别和联系是什么?
答:主程序-子程序体系结构在设计上使用层次化的划分方法,通常采用自顶向下的功能化设计方法,面向对象体系结构在设计上使用面向对象的设计方法,可以隐藏对象的内部状态并且要求所有对象间的交互都通过该方法,即进行了数据封装,这也是面向对象编程的基本原则
六、实验心得与体会
在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。通过实验,我对这种软件体系结构有了进一步了解。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库软件体系结构实验报告(2)在线全文阅读。
相关推荐: