软件体系结构实验报告Word文档格式.docx

上传人:b****6 文档编号:8422593 上传时间:2023-05-11 格式:DOCX 页数:28 大小:356.08KB
下载 相关 举报
软件体系结构实验报告Word文档格式.docx_第1页
第1页 / 共28页
软件体系结构实验报告Word文档格式.docx_第2页
第2页 / 共28页
软件体系结构实验报告Word文档格式.docx_第3页
第3页 / 共28页
软件体系结构实验报告Word文档格式.docx_第4页
第4页 / 共28页
软件体系结构实验报告Word文档格式.docx_第5页
第5页 / 共28页
软件体系结构实验报告Word文档格式.docx_第6页
第6页 / 共28页
软件体系结构实验报告Word文档格式.docx_第7页
第7页 / 共28页
软件体系结构实验报告Word文档格式.docx_第8页
第8页 / 共28页
软件体系结构实验报告Word文档格式.docx_第9页
第9页 / 共28页
软件体系结构实验报告Word文档格式.docx_第10页
第10页 / 共28页
软件体系结构实验报告Word文档格式.docx_第11页
第11页 / 共28页
软件体系结构实验报告Word文档格式.docx_第12页
第12页 / 共28页
软件体系结构实验报告Word文档格式.docx_第13页
第13页 / 共28页
软件体系结构实验报告Word文档格式.docx_第14页
第14页 / 共28页
软件体系结构实验报告Word文档格式.docx_第15页
第15页 / 共28页
软件体系结构实验报告Word文档格式.docx_第16页
第16页 / 共28页
软件体系结构实验报告Word文档格式.docx_第17页
第17页 / 共28页
软件体系结构实验报告Word文档格式.docx_第18页
第18页 / 共28页
软件体系结构实验报告Word文档格式.docx_第19页
第19页 / 共28页
软件体系结构实验报告Word文档格式.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件体系结构实验报告Word文档格式.docx

《软件体系结构实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件体系结构实验报告Word文档格式.docx(28页珍藏版)》请在冰点文库上搜索。

软件体系结构实验报告Word文档格式.docx

 

(4)外文、符号、公式要准确,应使用统一规定的名词和符号。

(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明

实验报告的批改要及时、认真、仔细,一律用红色笔批改。

实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。

实验报告装订要求

实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:

经典软件体系结构风格实验学时:

4学时

同组学生姓名:

实验地点:

1216

实验日期:

2015.10.27-2015.11.3实验成绩:

批改教师:

批改时间:

一、实验目的和要求

(1)理解管道-过滤器软件体系结构、面向对象软件体系结构的原理

(2)掌握管道-过滤器软件体系结构、面向对象软件体系结构特点

(3)面向对象软件体系结构的编程实现

二、实验仪器和设备

奔腾以上计算机,Windows10、VisualStudio2013、MySQL

三、实验过程

(1)在dos下体会管道过滤器的体系结构。

使用dir|more命令了解管道-过滤器风格的程序。

(2)数据抽象和面向对象软件体系结构设计实现。

设计一个应用程序,在该程序定义平面图形的抽象类和其派生类圆、矩形、三角形,椭圆。

该程序的功能包括:

输入相应的图形参数,如矩形的长和宽,单击相应按钮,能根据输入参数创建图形类并输出该对象的面积。

使用c#、c++或Java或语言进行面向对象的程序设计:

(1)首先考虑数据封装性,

(2)考虑继承性,(3)考虑抽象类。

应用程序代码:

Graphic.cs:

namespaceWindowsFormsApplication1

{

publicabstractclassGraphic

{

publicabstractdoubleArea();

}

}

Rectangle.cs:

publicclassRectangle:

Graphic

doublelen;

doublewid;

publicRectangle(doublelength,doublewidth)

len=length;

wid=width;

publicoverridedoubleArea()

returnlen*wid;

Triangle.cs:

publicclassTriangle:

doublebtm;

doublehgt;

publicTriangle(doublebottom,doubleheight)

btm=bottom;

hgt=height;

returnbtm*hgt/2;

Circle.cs:

publicclassCircle:

Graphic

doubleradius;

publicCircle(doubler)

radius=r;

returnradius*radius*3.14;

}

Ellipse.cs:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

publicclassEllipse:

doublela;

doublelb;

publicEllipse(doublea,doubleb)

la=a;

lb=b;

returnla*lb*3.14;

From1.cs:

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Windows.Forms;

publicpartialclassForm1:

Form

publicForm1()

InitializeComponent();

privatevoidbutton1_Click(objectsender,EventArgse)

if(comboBox1.SelectedItem=="

圆"

doubler=Convert.ToDouble(textBox1.Text);

Circlecircle=newCircle(r);

textBox4.Text=Convert.ToString(circle.Area());

elseif(comboBox1.SelectedItem=="

矩形"

doublelen=Convert.ToDouble(textBox1.Text);

doublewid=Convert.ToDouble(textBox2.Text);

Rectanglerec=newRectangle(len,wid);

textBox4.Text=Convert.ToString(rec.Area());

三角形"

doublebtm=Convert.ToDouble(textBox1.Text);

doublehgt=Convert.ToDouble(textBox3.Text);

Triangletri=newTriangle(btm,hgt);

textBox4.Text=Convert.ToString(tri.Area());

椭圆"

doublea=Convert.ToDouble(textBox1.Text);

doubleb=Convert.ToDouble(textBox2.Text);

Ellipseelp=newEllipse(a,b);

textBox4.Text=Convert.ToString(elp.Area());

privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse)

label1.Text="

半径"

;

label2.Visible=false;

label3.Visible=false;

textBox2.Visible=false;

textBox3.Visible=false;

长"

label2.Visible=true;

textBox2.Visible=true;

底"

label3.Visible=true;

textBox3.Visible=true;

半长轴"

label2.Text="

半短轴"

四、实验结果与分析

程序初始界面:

如选择椭圆,输入半长轴和半短轴,点击计算,输出结果:

如选择三角形,输入底和高,点击计算,输出结果:

五、思考题

(1)管道-过滤器软件体系结构与批处理软件体系结构的区别和联系是什么?

答:

管道/过滤器结构通常导致进程成为批处理的结构,因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每一个过滤器看成一个完整的从输入到输出的转换。

.限定过滤器的数据存储容量,就可以得到有界管道/过滤器。

过滤器将所有输入数据作为单个实体进行处理,这就是批处理系统

(2)面向对象软件体系结构与主程序-子程序软件体系结构的区别和联系是什么?

主程序-子程序体系结构在设计上使用层次化的划分方法,通常采用自顶向下的功能化设计方法,面向对象体系结构在设计上使用面向对象的设计方法,可以隐藏对象的内部状态并且要求所有对象间的交互都通过该方法,即进行了数据封装,这也是面向对象编程的基本原则

六、实验心得与体会

在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。

这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。

因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。

通过实验,我对这种软件体系结构有了进一步了解。

多层C/S结构应用设计实验学时:

实验地点:

2015.11.10-2015.11.24实验成绩:

设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。

学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。

分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。

该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。

联系人信息包括姓名、住址、电话。

整个系统的功能图如下图所示:

usingMySql.Data.MySqlClient;

namespaceWindowsFormsApplication2

publicintaction=0;

//0:

添加;

1:

修改

privatevoidgroupBox3_Enter(objectsender,EventArgse)

privatevoidbutton3_Click(objectsender,EventArgse)

frm1.Enabled=true;

frm2.Enabled=false;

action=0;

privatevoidadd()

longid=0;

intcount=list1.Items.Count;

if(count==0)

id=1001;

else

id=long.Parse(list1.Items[count-1].Text)+1;

Dbconconnector=newDbcon();

MySqlConnectioncon=connector.dbcon();

con.Open();

MySqlCommandcmd=newMySqlCommand("

insertintoperson(id,name,phoneno,location)values(@id,@name,@phoneno,@location)"

con);

cmd.Parameters.AddWithValue("

@name"

name.Text);

@phoneno"

phoneno.Text);

@location"

location.Text);

@id"

Convert.ToString(id));

cmd.ExecuteNonQuery();

con.Close();

build();

privatevoidmodify()

foreach(ListViewItemiteminlist1.SelectedItems)

MySqlCommandcmd=con.CreateCommand();

cmd.CommandText="

updatepersonsetname=@name,phoneno=@phoneno,location=@locationwhereid=@id"

item.Text);

if(action==0)

add();

elseif(action==1)

modify();

name.Clear();

phoneno.Clear();

location.Clear();

frm2.Enabled=true;

frm1.Enabled=false;

privatevoidbutton4_Click(objectsender,EventArgse)

name.Text=item.SubItems[1].Text;

phoneno.Text=item.SubItems[2].Text;

location.Text=item.SubItems[3].Text;

action=1;

privatevoidForm1_Load(objectsender,EventArgse)

publicvoidbuild()

list1.BeginUpdate();

list1.Items.Clear();

select*fromperson"

MySqlDataReaderdr=cmd.ExecuteReader();

while(dr.Read())

ListViewItemitem=newListViewItem();

item.Text=Convert.ToString(dr["

id"

]);

item.SubItems.Add(Convert.ToString(dr["

name"

]));

phoneno"

location"

list1.Items.Add(item);

dr.Close();

list1.EndUpdate();

privatevoidbutton5_Click(objectsender,EventArgse)

deletefrompersonwhereid="

+item.Text,con);

privatevoidbutton2_Click(objectsender,EventArgse)

privatevoidtextBox2_TextChanged(objectsender,EventArgse)

privatevoidlist1_SelectedIndexChanged(objectsender,EventArgse)

//MessageBox.Show();

privatevoidbutton6_Click(objectsender,EventArgse)

MessageBox.Show("

developedbyaltair"

);

publicclassDbcon

publicMySqlConnectiondbcon()

Stringconstr="

server=localhost;

UserId=root;

password=root;

Database=contact"

MySqlConnectioncon=newMySqlConnection(constr);

returncon;

程序主界面:

点击“添加联系人信息”:

点击“确定”:

选中列表上的某项内容,点击“修改联系人信息”:

修改信息并点击“确定”:

与二层C/S体系结构比较,三层(多层)体系结构有什么优点?

采用三层体系结构在系统设计时应该注意哪些问题?

三层体系结构的优点:

①允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性 

②允许更灵活有效地选用相应的平台和硬件系统 

③三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最合适的开发语言。

④允许充分利用功能层有效地隔离层表示层与数据层。

⑤三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。

在设计三层结构时,首先要考虑的问题在于数据层和业务层的连接是否畅通,数据的吞吐量是否过大。

在用户对于程序相应速度要求一般或者数据吞吐量较小的情况下,可以采用三层结构进行设计

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2