课程实验报告软件系统结构专业软件工程学生姓名张韬班级B软件121学号1210701132指导老师孙莉实验一C/S结构应用设计(1)一、实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。二实验环境奔腾以上计算机,装有SQLServer2000数据库系统和VisualStudio2000软件。三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用VisualC#实现系统功能四、实验操作过程在电脑上安装好MicrosoftVisualStudio2010用于系统的开发需要实际设计开发出一个简单的基于两层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:1、在SQLServer2000中建立数据库Contact,建立表friend。个人通讯录查看联系人信息添加联系人修改联系人信息删除联系人(1)建立数据库Contact:Createdatabasecontact(2)建立数据库表friend//使用contact数据库USEcontactGO//是否存在数据库表friend,如果存在则删除Ifexists(select*fromdbo.sysobjectswhereid=objectid(N’[dbo].[friend]’)andOBJECTPROPERTY(id,N’isusertable’)=1)Droptable[dbo].[friend]GO//建立表friendCreatetable[dbo].[friend]([fid][int]identity(1,1)notnull,[fname][varchar](8)collateChineseprcciasnotnull,[fphone][varchar](12)collateChineseprcciasnull,[faddress][varchar](100)collateChineseprcciasnull)on[primary]表1friend的结构列名数据类型长度允许空是否标识说明FidInt4否是联系人编号,自动递增型FnameVarchar8否否联系人姓名FphoneVarchar12否否联系人电话FaddressVarchar100是否联系人地址新建完friend表之后向表中插入1条记录。以便程序调试时使用。2、在VisualStudio2000中用C#语言建立用户界面层(UI)程序:Contact项目,主要呈现用户操作界面。用户的主要操作界面如下:各个控件的属性如下表:空间类型Name属性Text属性Enable属性LabellblName姓名:TrueLabellblPhone电话:TrueLabellblAdress地址:TrueTextBoxtxtNameFalseTextBoxtxtPhoneFalseTextBoxtxtAdressFalseButtonbtnOK确定FalseButtonbtnRE取消FalseButtonbtnAdd添加联系人信息TrueButtonbtnEdit修改选中联系人信息TrueButtonbtnDel删除选中联系人信息TrueButtonbtnAbout关于本软件True其中txtAddress控件的Multilane属性为True.最后我们要设置listView属性,将其FullRowSelect属性设置为true,Gridlines属性设置为True,View属性设置为Details,并点开Columns属性,添加一列,设置其Name为fContactID,Text属性为编号,以此方式再为其添加姓名、电话、联系方式。到此,用户图形界面就设计完成了。3、编写应用程序层代码,用于实现数据访问、添加、删除和修改等控制,关键代码如下:(1)数据连接数据库连接的代码如下:stringconnstr=DataSource=(local);InitialCatalog=contact;userid=sa;password=;本代码的意思是以用户名为sa登录到本地数据库,密码为空。(2)数据添加、删除和修改等控制的主要代码①显示联系人信息显示联系人信息由主界面的listview显示,其思路是读取数据库中所有的联系人信息,然后通过Lisview显示。privatevoidgetInfo(){stringsql=selectFid,Fname,Fphone,Faddressfromfriend;SqlConnectionconn=newSqlConnection(connstr);conn.Open();SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderreader=cmd.ExecuteReader(CommandBehavior.CloseConnection);try{this.listView.Items.Clear();while(reader.Read()){string[]subItems=newstring[]{reader.GetInt32(0).ToString(),reader.GetString(1),reader.GetString(2),reader.GetString(3)};this.listView.Items.Add(newListViewItem(subItems));}reader.Close();}catch(Exceptionex){MessageBox.Show(ex.ToString());}}②添加联系人信息对联系人信息进行添加的操作并录入数据库publicvoidaddInfo(stringname,stringphone,stringaddress){stringsql=insertintofriend(Fname,Fphone,Faddress)values('+name+','+phone+','+address+');SqlConnectionconn=newSqlConnection(connstr);SqlCommandcmd=newSqlCommand(sql,conn);conn.Open();cmd.ExecuteNonQuery();conn.Close();}③修改联系人信息对联系人信息进行修改的操作并录入数据库privatevoidbtnEdit_Click(objectsender,EventArgse){if(this.listView.SelectedItems.Count==0){MessageBox.Show(请单击选择需要修改的联系人!);return;}this.enableInfo();ListViewItemlvi=this.listView.SelectedItems[this.listView.SelectedItems.Count-1];this.txtName.Text=lvi.SubItems[1].Text;this.txtPhone.Text=lvi.SubItems[2].Text;this.txtAddress.Text=lvi.SubItems[3].Text;Fid=Convert.ToInt32(lvi.SubItems[0].Text);this.isAdd=false;this.btnDel.Enabled=false;this.btnAdd.Enabled=false;}④删除联系人对联系人信息进行删除的操作并录入数据库privatevoidbutton5_Click(objectsender,EventArgse){intinfoID=this.getselectid();if(infoID==0){MessageBox.Show(请选中信息先!);return;}try{stringsql=deletefriendwherefid=+infoID;SqlConnectionconn=newSqlConnection(connstr);conn.Open();SqlCommandcmd=newSqlCommand(sql,conn);cmd.ExecuteNonQuery();conn.Close();this.getInfo();}catch(Exceptionex){MessageBox.Show(ex.Message);}}五、实验结果及结论。当我们运行程序时可以看到之前在数据库中插入的数据已经显示在了联系人列表中,我们点击添加联系人信息之后再次插入信息,点击确定后,我们可以看到,新插入的数据已经在联系人列表中了,如下图所示。单击确定按钮之后显示通讯上去了:六、心得体会本次实验完成了实验要求里的内容,遇到一些问题,都得到很好的解决。实验二C/S结构应用设计(2)一、实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。二、实验环境奔腾以上计算机,装有SQLServer2000数据库系统和VisualStudio2000软件。三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用VisualC#实现系统功能四、实验操作过程需要实际设计开发出一个简单的基于多层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:1、在SQLServer2000中建立数据库Contact,建立表friend。在创建二层C/S时,我们已经创建了contact数据库,并建立了friend表,这次我们可以直接引用。个人通讯录查看联系人信息添加联系人修改联系人信息删除联系人2、在VisualStudio2000中用C#语言建立用户界面层(UI)程序:Contact项目,主要呈现用户操作界面。在创建二层C/S架构中,我们已经创建过此用户图形界面,三层架构的用户图形层(UI)与两层架构一致,所以在此就不再重复。3、在Contact中增加新类ContactDb.cs作为业务逻辑层(BLL)程序。在业务逻辑层中需要为其添加头文件usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;并创建contactDB类usingSystem.Data.SqlClient;namespaceContact{classContactDB{}4、编写类文件ContactDb.cs代码,用于实现数据访问控制,关键代码如下:(1)数据连接数据库的访问是由contactDB类中的getReader方法实现的,在MainForm中,只需要如下代码:SqlDataReaderreader=cdb.getReader();getReader方法定义了一个String类型的变量sql,用于保存访问数据库的SQL命令:stringsql=selectFid,Fname,Fphone,FaddressFROMfrie