文件服务器架构实验报告,体系结构实验报告

《体系结构实验报告》由会员分享,可在线阅读,更多相关《体系结构实验报告(28页珍藏版)》请在人人文库网上搜索。

1、课程实验报告软件系统结构专业软件工程学生姓名刘辉班级软件151学号1510701117指导老师孙莉实验一 C/S结构应用设计(1)一、 实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。本次实验目的:(1)熟悉并掌握二层C/S软件体系结构的相关知识;(2)掌握二层C/S结构应用系统的分析和设计;(3)掌握一种开发二层C。

2、/S结构应用系统的技术线路;(4)实际开发出一个简单的基于二层C/S结构的应用实例个人通讯录管理系统。要求:(1)需要预先掌握SQL server 2000数据库基本操作、VS.net(用C#语言)编程技术和多层C/S软件体系结构的概念;(2)进行二层C/S结构应用系统的分析和设计,在实验报告中写出个人通讯录管理系统的设计方案;(3)在SQL server 2000数据库系统中建立数据库并输入数据; (4)在VS.net中用C#语言编写表现层(UI)程序;(5)在VS.net中用C#语言编写业务逻辑层(BLL)程序;(6)完成系统调试,得出正确的实验结果;(7)做完实验后写出本实验的实验报告。。

3、二、实验环境奔腾以上计算机,装有SQL Server 2000数据库系统和Visual Studio 2000软件。三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:个人通讯录查看联系人信息添加联系人修改联系人信息删除联系人分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能四、实验操作过程在电脑上安装好Microsoft Visual Studio 2010 用于系统的开发需要实际设计开发出一个。

4、简单的基于两层C/S结构的应用系统个人通讯录管理系统,主要步骤和内容如下:1、在 SQL Server 2000中建立数据库Contact,建立表friend。(1)建立数据库Contact: Create database contact(2)建立数据库表friend/使用contact数据库USE contactGO/是否存在数据库表friend,如果存在则删除If exists(select*from dbo.sysobjects where id=object id(Ndbo.friend)and OBJECTPROPERTY (id,Nisusertable)=1)Drop tabl。

5、e dbo.friendGO/建立表friendCreate table dbo.friend(fid int identity(1,1) not null,fname varchar (8) collate Chinese prc ci as not null,fphone varchar (12) collate Chinese prc ci as null,faddress varchar (100) collate Chinese prc ci as null)on primary表1 friend的结构列名数据类型长度允许空是否标识说明FidInt4否是联系人编号,自动递增型Fnam。

6、eVarchar8否否联系人姓名FphoneVarchar12否否联系人电话FaddressVarchar100是否联系人地址新建完friend表之后向表中插入1条记录。以便程序调试时使用。2、在Visual Studio 2000中用C#语言建立用户界面层(UI)程序:Contact项目,主要呈现用户操作界面。用户的主要操作界面如下:各个控件的属性如下表:空间类型Name属性Text属性Enable属性LabellblName姓名:TrueLabellblPhone电话:TrueLabellblAdress地址:TrueTextBoxtxtNameFalseTextBoxtxtPhoneFa。

7、lseTextBoxtxtAdressFalseButtonbtnOK确定FalseButtonbtnRE取消FalseButtonbtnAdd添加联系人信息TrueButtonbtnEdit修改选中联系人信息TrueButtonbtnDel删除选中联系人信息TrueButtonbtnAbout关于本软件True其中txtAddress控件的Multilane属性为True.最后我们要设置listView属性,将其FullRowSelect属性设置为true,Gridlines属性设置为True,View属性设置为Details,并点开Columns属性,添加一列,设置其Name为fConta。

8、ctID,Text属性为编号,以此方式再为其添加姓名、电话、联系方式。到此,用户图形界面就设计完成了。3、编写应用程序层代码,用于实现数据访问、添加、删除和修改等控制,关键代码如下:(1)数据连接数据库连接的代码如下:string connstr = Data Source=(local);Initial Catalog=contact;user id=sa;password=;本代码的意思是以用户名为sa登录到本地数据库,密码为空。(2)数据添加、删除和修改等控制的主要代码显示联系人信息显示联系人信息由主界面的listview显示,其思路是读取数据库中所有的联系人信息,然后通过Lisview。

9、显示。private void getInfo()string sql = select Fid,Fname,Fphone,Faddress from friend;SqlConnection conn = new SqlConnection(connstr);conn.Open ();SqlCommand cmd = new SqlCommand(sql, conn);SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);trythis.listView.Items.Clear();while (r。

10、eader.Read()string subItems = new stringreader.GetInt32(0).ToString(),reader.GetString(1),reader.GetString(2),reader.GetString(3);this.listView.Items.Add(new ListViewItem(subItems);reader.Close();catch (Exception ex)MessageBox.Show(ex.ToString();添加联系人信息对联系人信息进行添加的操作并录入数据库public void addInfo(string n。

11、ame, string phone, string address) string sql=insert into friend(Fname,Fphone,Faddress)values(+name+,+phone+,+address+);SqlConnection conn=new SqlConnection(connstr);SqlCommand cmd=new SqlCommand(sql,conn);conn.Open();cmd.ExecuteNonQuery();conn.Close();修改联系人信息对联系人信息进行修改的操作并录入数据库private void btnEdit_。

12、Click(object sender, EventArgs e)if (this.listView.SelectedItems.Count = 0)MessageBox.Show(请单击选择需要修改的联系人!);return;this.enableInfo();ListViewItem lvi = this.listView.SelectedItemsthis.listView.SelectedItems.Count - 1;this.txtName.Text = lvi.SubItems1.Text;this.txtPhone.Text = lvi.SubItems2.Text;this.。

13、txtAddress.Text = lvi.SubItems3.Text;Fid = Convert.ToInt32(lvi.SubItems0.Text);this.isAdd = false;this.btnDel.Enabled = false;this.btnAdd.Enabled = false;删除联系人对联系人信息进行删除的操作并录入数据库private void button5_Click(object sender, EventArgs e)int infoID = this.getselectid();if (infoID = 0)MessageBox.Show(请选中信息。

14、先!);return;trystring sql = delete friend where fid= + infoID;SqlConnection conn = new SqlConnection(connstr);conn.Open();SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();conn.Close();this.getInfo();catch (Exception ex)MessageBox.Show(ex.Message);五、实验结果及结论。当我们运行程序时可以看到之前在数据库中插入的数据已经显示。

15、在了联系人列表中,我们点击添加联系人信息之后再次插入信息,点击确定后,我们可以看到,新插入的数据已经在联系人列表中了,如下图所示。添加联系人单击确定按钮之后显示通讯上去了:六、心得体会这次实验让我学会了两层C/S体系结构的设计实现方法,在实验中我也犯了很多低级错误,比如在进行程序编码时要注意C#区分大小写,编写程序时一定要注意;程序要注意保存,并记住保存的位置。本实验为综合性实验,需要多次才能完成,前面的阶段性实验成果后续需要使用。这次实验让我学会了个道理:做事要脚踏实地,一步一步地来,不能着急,遇到问题首先不能着急,静下心来慢慢地检查和解决问题,这才是最好的方法,不然永远不能解决问题,在以后。

16、的实验中也要慢慢地学会如何学习,掌握学习的方法最重要。实验二 C/S结构应用设计(2)一、实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。本次实验目的:(1)熟悉并掌握多层C/S软件体系结构的相关知识;(2)掌握多层C/S结构应用系统的分析和设计;(3)掌握一种开发多层C/S结构应用系统的技术线路;(4)实际开发出一。

17、个简单的基于多层C/S结构的应用实例个人通讯录管理系统。实验要求(1)需要预先掌握SQL server 2000数据库基本操作、VS.net(用C#语言)编程技术和多层C/S软件体系结构的概念;(2)进行多层C/S结构应用系统的分析和设计,在实验报告中写出个人通讯录管理系统的设计方案;(3)在SQL server 2000数据库系统中建立数据库并输入数据; (4)在VS.net中用C#语言编写表现层(UI)程序;(5)在VS.net中用C#语言编写业务逻辑层(BLL)程序;(6)完成系统调试,得出正确的实验结果;(7)做完实验后写出本实验的实验报告。二、实验环境奔腾以上计算机,装有SQL Se。

18、rver 2000数据库系统和Visual Studio 2000软件。三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:个人通讯录查看联系人信息添加联系人修改联系人信息删除联系人分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能四、 实验操作过程需要实际设计开发出一个简单的基于多层C/S结构的应用系统个人通讯录管理系统,主要步骤和内容如下:1、在 SQL Server 2000中建立数据库Co。

19、ntact,建立表friend。在创建二层C/S时,我们已经创建了contact数据库,并建立了friend表,这次我们可以直接引用。2、在Visual Studio 2000中用C#语言建立用户界面层(UI)程序:Contact项目,主要呈现用户操作界面。在创建二层C/S架构中,我们已经创建过此用户图形界面,三层架构的用户图形层(UI)与两层架构一致,所以在此就不再重复。3、在Contact中增加新类ContactDb.cs作为业务逻辑层(BLL)程序。在业务逻辑层中需要为其添加头文件using System;using System.Collections.Generic;using Sy。

20、stem.Text;using System.Data;并创建contactDB类using System.Data.SqlClient;namespace Contactclass ContactDB4、编写类文件ContactDb.cs代码,用于实现数据访问控制,关键代码如下:(1)数据连接数据库的访问是由contactDB类中的getReader方法实现的,在MainForm中,只需要如下代码:SqlDataReader reader = cdb.getReader();getReader方法定义了一个String类型的变量sql,用于保存访问数据库的SQL命令:string sql =。

21、 select Fid,Fname,Fphone,Faddress FROM friend;接着新建数据库连接对象conn并打开数据连接:SqlConnection conn = new SqlConnection(connStr);conn.Open();其中连接字符窜connStr是contactDB类的域: string connStr = Data source=(local);Initial Catalog=contact;user id=sa;password=;然后建立数据命令对象:SqlCommand cmd = new SqlCommand(sql, conn);数据命令对象。

22、cmd使用的数据库连接是conn,而参数sql表示数据命令的数据文本为sql,即数据命令的CommandText属性为sql。(2)数据获取SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);return reader;在MainForm的getInfo方法中,获取了由ContactDB类的getReader方法返回的数据阅读器后,接下来要执行的是循环读取阅读器中的信息,然后依次添加到listView中;trySqlDataReader reader = cdb.getReader();this.l。

23、istView.Items.Clear(); /清除listView中所有的itemwhile (reader.Read()string subItems = new stringreader.GetInt32(0).ToString(),reader.GetString(1),reader.GetString(2),reader.GetString(3);this.listView.Items.Add(new ListViewItem(subItems);reader.Close();catch (Exception ex)MessageBox.Show(ex.ToString();whil。

24、e (reader.Read()每次读取一条记录都将记录中的每个字段的信息封装到string类型的数组中:string subItems = new stringreader.GetInt32(0).ToString(),reader.GetString(1),reader.GetString(2),reader.GetString(3)接下来将subItems中的数据封装为listView的一个节点(listViewItem)并添加到listView中:this.listView.Items.Add(new ListViewItem(subItems);reader.Close();至此显示。

25、联系人的功能就完成了,其他模块的代码编写与此类似,就不再重复。五、 实验结果及结论。(1)数据库中原有两个数据,分别为彭振东与张三的信息,我们选择修改联系人,修改张三的名字为王麻子,电话为8890,,联系地址为中国,可以看到listView中张三的信息修改了,如下图所示:注册页面:修改信息:(2)思考题:与二层C/S体系结构比较,三层(多层)体系结构有什么特点?采用三层体系结构在设计时应该注意哪些问题?答:三层体系结构的优点:允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性允许更灵活有效地选用相应的平台和硬件系统三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最合适的开发语。

26、言。允许充分利用功能层有效地隔离层表示层与数据层。三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。六、心得体会这次实验主要是对于三层C/S体系结构的设计和实现,在实验进行中我还是会犯一些错误,但是相对于第一次已经好很多了,在实验过程中我深刻地体会到了三层体系结构的优点,它允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性;允许更灵活有效地选用相应的平台和硬件系统;三层C/S结构中,应用各层可以并行开发,各层也可以选择各自独立最适合的开发语言;允许充分利用功能层有效地隔离表示层与数据层。并且了解了三层与两层之间的区别。三层的结构很分明。

27、。这次实验让我学到很多,独立的思考问题并解决问题是锻炼我们独立思考的能力,而且比较学习才能发现其中的奥妙,知识的积累靠的是我们反复地推敲以及思考如何达到目标,很庆幸,我们做到了。实验三 B/S结构应用设计(1)一、实验目的设计并实现一个基于B/S结构的数据库应用,熟悉B/S体系结构及其基本处理流程,了解B/S结构系统各部分所完成的功能,掌握B/S结构的数据库应用设计方法。学生通过本实验的训练能够熟练掌握对小型数据库应用系统B/S结构设计及系统实现技术。二、实验环境MyEclips 10、Tomcat、SQL Server 2010三、实验内容1、采用B/S结构实现个人通讯录系统。该系统的设计目。

28、标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:个人通讯录查看联系人信息添加联系人修改联系人信息删除联系人分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用ASP.Net(使用C#语言)实现系统功能四、实验操作过程在MyEclips中新建项目:Structure_Contact。生成项目之后在src下新建包org.action,在org.action包中建立action类,包括:addAction、deleteAction、editAction、mainAction、modifyAction、register。

29、Action类主要步骤如下:(1) 建立addAction类继承ActionSupport类,主要是同于添加用户,主要代码如下:public String execute() throws ExceptionHttpServletRequest request = ServletActionContext.getRequest(); /markHttpSession session = request.getSession();userfriend = new UserFriend();userfriendid = new UserFriendId();userfrienddaoimp = n。

30、ew UserFriendDaoImp();name = request.getParameter(name);address = request.getParameter(address);phone = request.getParameter(phone);user = (User)session.getAttribute(user);/account and passworduserfriendid.setUser(user.getUsername();/account_nameuserfriend.setId(userfriendid);/id auto-increaseuserfr。

31、iend.setName(name);userfriend.setAddress(address);userfriend.setPhone(phone);if(userfrienddaoimp.insert(userfriend)ArrayList al = userfrienddaoimp.getAll(user.getUsername();session.setAttribute(al, al);return success;elsereturn error;(2)建立deleteAction类继承ActionSupport类用于删除用户,代码如下:public class deleteA。

32、ction extends ActionSupportprivate UserFriend userfriend;private String user;private int id;private UserFriendId userfriendid;private UserFriendDaoImp userfrienddaoimp;public String execute() throws Exceptionuserfriend = new UserFriend();userfriendid = new UserFriendId();userfrienddaoimp = new UserF。

33、riendDaoImp();HttpServletRequest request = ServletActionContext.getRequest(); /markHttpSession session = request.getSession();/markuser = request.getParameter(username);System.out.println(request.getParameter(id);id = Integer.parseInt(request.getParameter(id);userfriendid.setUser(user);userfriendid.。

34、setId(id);userfriend.setId(userfriendid);if(userfrienddaoimp.delete(userfriend)ArrayList al = userfrienddaoimp.getAll(user);session.setAttribute(al, al);return success;elsereturn error;(3)建立editAction类继承ActionSupport类,用于编辑用户,代码如下:public class editAction extends ActionSupportprivate String user ;priv。

35、ate int id;private String name;private String address;private String phone;private UserFriend userfriend;private UserFriendId userfriendid;private UserFriendDaoImp userfrienddaoimp;public String execute() throws ExceptionHttpServletRequest request = ServletActionContext.getRequest();HttpSession sess。

36、ion = request.getSession();userfriendid = new UserFriendId();userfriend = new UserFriend();userfrienddaoimp = new UserFriendDaoImp();System.out.println(request.getParameter(username); /nullSystem.out.println(request.getParameter(id);/nulluser = request.getParameter(username);id = Integer.parseInt(re。

37、quest.getParameter(id);name = request.getParameter(name);address = request.getParameter(address);phone = request.getParameter(phone);userfriendid.setId(id);userfriendid.setUser(user);userfriend.setId(userfriendid);userfriend.setName(name);userfriend.setAddress(address);userfriend.setPhone(phone);if(。

38、userfrienddaoimp.update(userfriend)ArrayList al = userfrienddaoimp.getAll(user);session.setAttribute(al, al);return success;elsereturn error;(4)建立org.model包,在包中创建User、UserFriend和UserFriendId类,创建User.hbm.xml和UserFriend.hbm.xml文档。public class User implements java.io.Serializable private String usernam。

39、e;private String password;public User() public User(String username) this.username = username;public User(String username, String password) this.username = username;this.password = password;public String getUsername() return this.username;public void setUsername(String username) this.username = user。

40、name;public String getPassword() return this.password;public void setPassword(String password) this.password = password;public class UserFriend implements java.io.Serializable private UserFriendId id;private String name;private String address;private String phone;public UserFriend() public UserFrien。

41、d(UserFriendId id) this.id = id;public UserFriend(UserFriendId id, String name, String address, String phone) this.id = id;this.name = name;this.address = address;this.phone = phone;public UserFriendId getId() return this.id;public void setId(UserFriendId id) this.id = id;public String getName() ret。

42、urn this.name;public void setName(String name) this.name = name;public String getAddress() return this.address;public void setAddress(String address) this.address = address;public String getPhone() return this.phone;public void setPhone(String phone) this.phone = phone;public class UserFriendId impl。

43、ements java.io.Serializable private Integer id;private String user;public UserFriendId() public UserFriendId(Integer id, String user) this.id = id;this.user = user;public Integer getId() return this.id;public void setId(Integer id) this.id = id;public String getUser() return this.user;public void se。

44、tUser(String user) this.user = user;public boolean equals(Object other) if (this = other)return true;if (other = null)return false;if (!(other instanceof UserFriendId)return false;UserFriendId castOther = (UserFriendId) other;return (this.getId() = castOther.getId() | (this.getId() != null& castOthe。

45、r.getId() != null & this.getId().equals(castOther.getId()& (this.getUser() = castOther.getUser() | (this.getUser() != null& castOther.getUser() != null & this.getUser().equals(castOther.getUser();public int hashCode() int result = 17;result = 37 * result + (getId() = null ? 0 : this.getId().hashCode。

46、();result = 37 * result+ (getUser() = null ? 0 : this.getUser().hashCode();return result;(5)User.hbm.xml,用于数据库中的表User和定义的属性相对应,代码如下:(6)UserFriend.hbm.xml用于数据库中的表UserFriend和定义的属性相对应,代码如下:五、实验结果及结论(1)用户登录界面显示:(2)用户主界面:(3)编辑界面:(4)思考题:与C/S体系结构比较,B/S体系结构有什么优点?采用B/S与C/S混合体系结构在设计时应该注意哪些问题?答:基于B/S体系结构的软件,系统。

47、安装、修改和维护全在服务器端解决。用户在使用系统时,仅需要一个浏览器就可以运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开发性基础。六、心得体会在这次实验过程中,我首先对B/S体系结构设计进行了分析,初步了解了将要如何实现系统的功能,由于第一次实验采用的C/S体系结构做的也是这个系统,即:个人通讯录系统。由于实验的目的是让我们体验体系结构之间的不同以及各自的优缺点,所以要实现的功能还是查看联系人信息、添加联系人、修改联系人信息、删除联系人。先将用户界面设计好,包括按钮等之类的设计和布局,然。

48、后对每个控件进行代码填写,刚开始就先有个总体的框架,后续再进行详细地设计。实验四 B/S结构应用设计(2)一、实验目的设计并实现一个基于B/S结构的数据库应用,熟悉B/S体系结构及其基本处理流程,了解B/S结构系统各部分所完成的功能,掌握B/S结构的数据库应用设计方法。学生通过本实验的训练能够熟练掌握对小型数据库应用系统B/S结构设计及系统实现技术。二、实验环境MyEclips 10、Tomcat、SQL Server 2010三、实验内容1、采用B/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:个人通讯录查看联系人信息添加联系人修改联系人信息删除联系人分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用ASP.Net(使用C#语言)实现系统功能四、实验操作过程接着上次的项目中建立的Structure_Contact项目,生成项目之后在src下新建包org.action,在org.action包中建立action类,包括:addAction、deleteActio。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值