《电子系统程序设计》实验指导书-New.doc_第1页
《电子系统程序设计》实验指导书-New.doc_第2页
《电子系统程序设计》实验指导书-New.doc_第3页
《电子系统程序设计》实验指导书-New.doc_第4页
《电子系统程序设计》实验指导书-New.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子系统程序设计实验指导书淮海工学院电子工程学院实验中心2011年9月10日实验一 Delphi集成开发环境操作一、实验目的熟悉Delphi集成开发环境,掌握编辑、编译、运行程序的操作。二、实验内容读入一个整数n,读出所有0n之间的偶数。三、实验要求创建应用程序,输入程序源程序,编译、运行程序、发现并改正错误。四、实验学时:2学时五、实验步骤1. 进入Delphi开发环境展开windows的“开始”菜单,选择“程序”“Borland Delphi7”,进入Delphi开发环境。2. 创建项目缺省时Delphi创建了一个项目和一个窗体单元文件,我们这里直接在项目文件中编写代码,所以不需要窗体单元文件,在代码编辑器窗口中右击Unit1标签。3. 编写代码在工具栏中选择“View Unit”按钮,在打开的对话框中选择“Project1”,在代码编辑器中打开“Project1”,编写相应的代码。4保存程序单击“File”菜单中的 “Save All”选项,在保存对话框中选择文件夹并输入文件名,单击“保存”按钮,保存程序。5编译程序单击“project”菜单选择“compile”命令项,进行编译,如果程序有语法错误,系统会将光标停在错误处。修改后,重新运行,知道编译通过。6运行程序通过“Run”菜单的“Run”命令,运行程序。实验二 Delphi编程语言练习一、实验目的Object Pascal语言程序设计基础训练。理解对象Pascal程序格式,掌握基本数据类型,熟练运用分支、循环等控制流程,掌握过程及函数的编写和调用,并进一步熟悉Delphi集成开发环境。二、实验内容1求一元二次方程的根。2、实现加、减、乘、除四则运算(如图2-1所示),其中功能要求如下:用户可以通过单选按钮选择运算类型(加减乘除),然后在两个输入框中输入操作数和被操作数,按“运算”键,答案显示在输出框。 图2-1 四则运算三、实验要求编写应用程序,实现指定功能。四、实验课时:2 课时五、实验步骤:1进入Delphi开发环境展开windows的“开始”菜单,选择“程序”“Borland Delphi7”,进入Delphi开发环境。2创建项目缺省时Delphi创建了一个项目和一个窗体单元文件,我们这里直接在项目文件中编写代码,所以不需要窗体单元文件,在代码编辑器窗口中右击Unit1标签。3编写代码在工具栏中选择“View Unit”按钮,在打开的对话框中选择“Project1”,在代码编辑器中打开“Project1”,编写程序代码。4保存程序单击“File”菜单中的 “Save All”选项,在保存对话框中选择文件夹并输入文件名,单击“保存”按钮,保存程序。5编译程序单击“project”菜单选择“compile”命令项,进行编译,如果程序有语法错误,系统会将光标停在错误处,一一修改后,重新运行,知道编译通过。6运行程序通过“Run”菜单的“Run”命令,运行程序。实验三 Delphi窗体、对话框设计3、1 Delphi窗体设计一、实验目的熟练掌握常用的窗体属性,能设计美观实用的窗体,较熟练的在窗体中添加组件,设置组件属性,对齐组件,以及动态创建组件和设置属性;二、实验内容设计教师基本信息输入程序(如图3-1所示);开发用户界面如下图所示的应用程序:图 3-1 功能说明:该界面是一个教师信息录入界面。用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组合框(ComboBox1)选择或直接输入所在系,利用列表框(ListBox1)指定职称。当输入完上述信息后,单击“确定”按钮,教师信息将显示在右边的Memo1编辑窗口中。提示:在组合框和列表框中可以预置少量测试数据。三、实验要求设计窗体程序,实现窗体指定的功能;四、实验课时:2 课时五、实验步骤:1进入Delphi开发环境展开windows的“开始”菜单,选择“程序”“Borland Delphi7”,进入Delphi开发环境。2创建项目缺省时Delphi创建了一个项目和一个窗体单元文件,我们直接对窗体设置大小和字体等属性,开始进行主菜单设计。3界面设计实验四 数据库编程一、实验目的掌握数据表结构设计方法,了解不同数据库管理系统的设计技术。掌握数据表维护窗体的设计,了解不同数据库格式的数据库应用程序的设计技术,灵活应用数据库控制组件。二、实验要求给出一数据表,根据该数据表,用ADO组件设计该数据表维护窗体。三、实验内容使用Table组件实现查询、插入、删除、更新的功能。四 实验学时:4学时五、实验原理1、Delphi中数据库引擎BDE介绍Delphi对数据库的支持十分丰富,Delphi的数据库接口是数据库引擎BDE(Borland Database Engineer),它是应用程序存取数据的中介层(Middleware Layer)。在Delphi下开发的所有数据库应用程序,都是通过Delphi的数据库引擎BDE来对数据进行操作的。BDE中包含了内建的驱动程序来处理Paradox及dBase的表格与文本文件。也可以通过外部的驱动程序(add-on driver)来处理Oracle、SyBase、IntrBase、Informix、MSSQL格式的数据。BDE也包含了允许应用程序使用ODBC驱动程序来存取数据的ODBC socket。BDE具有以下突出的优点:(1)不同的BDE间的数据可以共享而不必担心有任何的冲突发生,因为所有的数据存取都由数据库引擎来处理。(2)使用者可以通过BDE对数据库的记录进行双向的查询而不必考虑服务器是否具有这样的功能。(3)允许使用者在不同的平台上对不同数据库的数据做联集(join)。 (4)增加了数据在不同平台上的可移植性。数据库引擎BDE的设置是通过对数据库配置文件IDAPI.CFG来完成的,在Delphi安装完成以后,可以通过其主菜单下的DataBase选项的Explore子选项完成。BDE配置的基本项目是如下几项:Drivers:主要设定一些有关数据库驱动程序相关信息的内容,包含ODBC驱动程序、MSSQL驱动程序、ORACLE驱动程序、SYSBASE驱动程序等数据库驱动程序。Aliases:这是IDAPI.CFG中最重要的设置内容,它负责记录数据库文件别名的关系,如此做法可以保证数据库系统相关文件改变时,可以不去变动程序代码,只需要更改Aliases的设定;使得程序更具有可移植性和扩充性,数据的独立性也由此得到保证。System:显示BDE系统的版本数据;局部的文件共享信息;最大、最小缓冲区;语言驱动程序;系统标志,最低内存使用限制,ODBC的Alias;处理SQL的查询等一系列设定。Date:日期的相关信息,如日期的格式、与字符的转换等。Time:系统时间的格式、与字符串的转换关系。Number:负责数字和字符串的转换。ALIASES是Delphi中应用程序与数据库接口的连接点。在设置数据库别名时,还有许多选项的设置,因不同的数据库驱动文件而有不同的设置内容。当数据库采用标准的数据库驱动程序(即数据库文件是XBASE格式,*.DBF)时,只需要指定文件存放的路径。而为其他的数据库驱动程序时,要根据不同的驱动来设置用户名、服务器名、日期格式等内容。2、Delphi中数据库控制组件数据库控制组件是数据库程序的核心。共有两类:数据库存取控制组件、数据库显示控制组件。在Delphi中,引入了一个“数据来源”的概念。其作用是在数据库的具体数据与程序中显示的数据之间做中介,即在数据库存取控制组件和数据库显示控制组件间做媒介。借助数据来源可以在应用程序执行时将数据存取组件与数据显示组件独立分开,动态操作、切换这两种组件。下面以实例分别对这两种组件中的常用组件进行介绍。(1)数据库存取控制组件:负责连接数据库本身,不包含数据的显示与输入。TDatabase组件: Database1.AliasName:=MYDATABASE; 指定数据库Database1的别名是MYDATABASE Database1.DatabaseName:=my_database;在程序中数据库Database1的名称是my_database Database1.connected :=True; Database1连接别名是MYDATABASE 的数据库,并在程序中区名是my_database TTable组件: Table1.DatabaseName:=my_database; Table1表所在的数据库是my_database ,即对应别名是MYDATABASE 的数据库 Table1.TableName:=my_table.dbf; Table1表对应数据库my_database 中的表my_table.dbf Table1.Active:=True; 激活Table1TQuery组件: Query1.DatabaseName:=my_database; 查询Querye1所在的数据库是my_database ,即对应别名是MYDATABASE 的数据库 Query1.SQL.Add(select * from my_table); 查询对应的SQL语句是select * from my_table Query1.Active:=True; 激活查询Query1TBatchMove组件: BatchMove1.Mode:=batAppend; 批量记录移动的方式是追加记录 BatchMove1.RecordCount:=0移动符合条件的所有记录,如果为不等于0的数值,则移动的记录数量为指定的数值 BatchMove1.Source:=Query1; 指定移动数据来源是Query1 BatchMove1.Destination:=Table1; 指定目标数据的位置是表Table1 BatchMove1.Execute; 执行批量记录移动TStoredProc组件: StoredProc1.DatabaseName:=my_database; 存储过程StoredProc1所在的数据库是my_database StoredProc1.StoredProcName:=my_proc; 数据库my_database 中存储过程的名称是my_proc StoredProc1.Params.Clear; 清除原有存储过程的参数 StoredProc1.Params.CreateParam(ftInteger, no,ptInput); 增加存储过程参数no StoredProc1.Prepare; 绑定存储过程的参数 StoredProc1.ExecProc; 执行数据库my_database中的存储过程my_proc(2)数据库显示控制组件:提供建立用户界面的基本窗口类型控制组件,让使用者可以输入编辑、显示数据。TDataSource组件: DataSource1.DataSet:=Query1; 数据来源DataSource1对应查询Query1的结果TDBGrid组件: DBGrid1.DataSource:= DataSource1; 数据库内容显示构件DBGrid1的数据来源是DataSource1TDBText组件: DBText1.DataSource:= DataSource1; 数据库内存字段显示构件DBText1的数据来源是DataSource1 DBText1.DataField:= main_key; 数据库内存字段显示构件DBText1 对应的表的字段名称是main_key 3、在Delphi中动态地使用SQL查询语句在一般的数据库管理系统中,通常都需要应用SQL查询语句来提高程序的动态特性。下面介绍如何在Delphi中实现这种功能。在Delphi中,使用SQL查询语句的途径是:在窗体中置入TQuery构件,设置其SQL属性的内容值,此内容为一个字符串数组,数组的每个值对应一行SQL查询语句。可以在程序设计过程中事先指定,也可以在程序运行中重新赋值,即可以实现动态地改变程序中的查询语句。假定程序的窗体中有一个名为Query1的TQuery构件,在程序运行过程中需要改变它的SQL查询语句内容,则可以引用以下程序行。 Query1.close; 先关闭以前查询的连接 Query1.SQL.Clear; 清除以前的查询语句 Query1.SQL.Add(select * from mytable); 增加新的查询语句内容为select * from mytable Query1.Prepare; 发送查询到Borland Database Engine (BDE) Query1.open; 建立新的查询语句的数据库连接在Delphi中,要灵活地使用SQL查询语句,还需要使用TQuery构件的Params特性,即在查询语句中使用参数。Delphi中的SQL语句如需参数,则在参数名称前使用一个冒号:来作为标识。例如:select * from mytable where id_no=:p一句,其中p为参数,可以在程序运行过程进行在赋值。在程序运行期动态地创建带参数的SQL查询语句较为复杂,其过程如下: Query1.close; 先关闭以前查询的连接 Query1.SQL.Clear; 清除以前的查询语句 Query1.Params.Clear; 清除以前查询语句的参数 Query1.Params.CreateParam(ftString, p,ptInput);创建新的查询语句的参数p Query1.SQL.Add(select * from title1 where NO_GLOBE=:p); 增加新的查询语句内容为select * from title1 where NO_GLOBE=:p 其中p为新建的参数 Query1.ParamByName(p).asstring:= 1; 给新的参数赋值为1 Query1.Prepare; 发送查询到Borland Database Engine (BDE) Query1.open; 建立新的查询语句的数据库连接 以上两个示例中,SQL查询语句都是SELECT语句,而当SQL语句是UPDATE或INSERT、DELETE时,其中的Query1.Open需要改为Query1.ExecSQL。4、动态SQL应用实例介绍下面给出一个完成动态SQL查询、批记录移动的数据库程序。程序从数据库my_database的表TITLE_L.DBF中选取符合要求日期的记录,并批量移动到同一个数据库的表my_table.dbf中。指定所要连接的数据库别名 Database1.AliasName:=MYDATABASE; Database1.DatabaseName:=my_database; Database1.connected :=True;指定目标表是Table1 Table1.DatabaseName:= my_database; Table1.TableName:= my_table.dbf; Table1.Active:=True;指定源数据的内容对应查询Query1 Query1.DatabaseName:= my_database; Query1.close;程序运行时动态添加SQL查询语句 Query1.SQL.Clear; Query1.Params.Clear; Query1.Params.CreateParam(ftInteger, update,ptInput); Query1.Params.CreateParam(ftInteger, dndate,ptInput); Query1.SQL.Add(SELECT * FROM TITLE_L); Query1.SQL.Add(where LET_DATE:dndate); Query1.SQL.Add(ORDER BY NO_LOCAL); Query1.Prepare; Query1.Params0.asInteger:=Up_Date; Query1.Params1.asInteger:=Down_Date; Query1.open; Query1.Active:=True;用DBGrid1来显示将要移动的记录 DataSource1.DataSet:= Query1; DBGrid1.DataSource:= DataSource1;进行批量记录移动 BatchMove1.Mode:=batAppend; BatchMove1.RecordCount:=0 BatchMove1.Source:=Query1; BatchMove1.Destination:=Table1; BatchMove1.Execute;六、实验步骤(1)进入Delphi开发环境展开windows的“开始”菜单,选择“程序”“Borland Delphi7”,进入Delphi开发环境。(2)创建项目缺省时Delphi创建了一个项目和一个窗体单元文件,我们直接对窗体设置大小和字体等属性,开始进行主菜单设计。(3)设计数据表该实验设计到两个数据表:Department表和Employees表。两个表的表结构如下所示:表8.1 Employees表结构字段名数据类型长度职工号A6 姓名A8性别A2出生日期D8婚否L1职称A10职务A10基本工资$6部门号A3简历M100表8.2 Department表中的记录信息部门号部门名称负责人电话号码001技术处丁一56221356002生产处杨帆45225542(4)代码编写查询代码编写单击设计界面中的“查询”按钮,查询employees.db数据库表中的记录。Delphi提供了多种实现查询功能的方法: 调用Locate方法在“查询”按钮的Onclick事件的处理程序中加入如下代码:procedure TForm1.Button1Click(Sender: TObject);beginTable1.Locate(姓名,丁一,); /查询姓名为“丁一”的记录end; 调用GotoKey方法在查询之前,要确保查询的字段是关键字段或辅助索引字段,如果要查询的字段不是关键字段或辅助索引字段,则查询过程失败,系统会报错。例如,在“查询”按钮的Onclick事件的处理程序中加入如下代码:Procedure TForm1.Button1Click (Sender: TObject);beginTable1.IndexFieldNames:=职工号; /指定查询字段 Table1.SetKey; /将Table1置为查询状态 Table1.Fields0.AsString:=111001; /指定查询字段值 Table1.GotoKey; /进行查询end; 插入功能实现 用 Insert 方法实现插入功能在“插入”按钮的Onclick事件的处理程序中加入如下代码:procedure TForm1.Button2Click(Sender: TObject);beginTable1.Insert; /设置为插入状态 Table1.Fields0.AsString:=111002; /设置要插入的值 Table1.Post; /将插入的记录写回数据库End; 用 Append 方法实现插入功能在“插入”按钮的Onclick事件的处理程序中加入如下代码:(* 实现在尾部插入一条职工号为“111003”的记录*)proc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论