--------------------------------------------------
(10 2、 10 分,每空 2 分) (
数据库 mydb 中有关系表 student,其结构如下: student(sno ,sname ,sex 性别,birthday 生日) 现编写一个学生信息浏览程序,设计界面和运行界面如下图所示:
在下划线处填写相应数据库组件的属性值: Database1. DatabaseName : mydb Table1. DatabaseName : mydb Table1. TableName : student Table1. Active : ① true Datasource1.DataSet : ② table1 DBNavigator1. DataSource : ③ datasource1 DBEdit2. DataSource : ④ DataSource1 DBEdit2. DataField : ⑤ sname
(10 3、 10 分,每空 2 分) (
本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示:
该程序涉及到数据库中的两张表:books(图书信息)和 borrow(借书记录) 。表的结构 为: books(bno,书号,bname 书名,num 现有册数) borrow(rno 读者号,bno 书号,rdate 还书日期)
其中,rno 和 bno 都是字符型(3 位) 。 在用户界面,操作员选中一本书、输入借书证号后,按“借书”键完成借书功能,即在 borrow 表中插入一条借书记录,并将 books 表中该书现有册数减 1。 该界面要实现以下合法性检查: 当该读者已经借了此书,不能再借。 当所借的书现有册数为 0,不能再借。 在 Form1 上建立的数据库组件对象及连接关系如下: Database1-Table1(与 books 表相连)-DataSource1-DBGrid1(显示图书信息) Database1-Table2(与 borrow 表相连,用于插入借书记录) Database1-Query1 其中为 Table1 建立了 3 个永久字段: Table1bno (书号) Table1bname 、 (书名) Table1num 、 (现有册数
) 。 Query1 的 SQL 语句如下: select bno from borrow where rno = :rno and bno = :bno 下面是 Unit1 的代码实现部分,请完成程序填空: --------------------------------------------------------------------------------------------------------------------implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //“借书”键 begin query1.Close ; ; query1.ParamByName('rno').Value := ① ; query1.ParamByName('bno').Value := ② query1.Open ; if query1['bno'] <> null then begin showmessage('该读者正在借阅此书'); exit ; end ; if ③ then begin showmessage('该书已全部借出'); exit ; end; table2. ④ ( [edit1.Text , table1bno.Value , date+15] ); //插入借书记录 table1. ⑤ ; table1num.Value := table1num.Value - 1 ; // 现有册数减 1 table1.Post ; end; end. ---------------------------------------------------------------------------------------------------------------------
五、编程题(10 分) 编程题(
本程序设计界面及运行界面如下:
程序功能是:用户输入一个 3 位正整数后,按“确定”键,该数字的个位、十位、百位 数字分别显示在输出框中。如果输入的数据不在规定范围之内,程序要给出错误提示。 请编写单击“确定”按钮的事件处理程序。 procedure TForm1.Button1Click(Sender: TObject); var x : integer ; begin x := strtoint(edit1.Text); if (x<100) or (x>999) then showmessage('输入数据不在范围内'); edit2.Text := inttostr(x DIV 100) ; edit3.Text := inttostr( (x DIV 10 ) Mod 10 ) ; edit4.Text := inttostr(x Mod 10) ; end;
试题参考答案
一、填空题(20 分,每空 2 分) 填空题(20
1、方法 2、.dpr (或 dpr) 3、一个入口 4、属性 或 Properties 5、Items 6、OnTimer 7、Enabled 8、AutoSize 9、备份文件 10、 sqr(cos(a+b)) /(3*x)+5 或 cos(a+b) * cos(a+b) /(3*x)+5
二、单项选择题(30 分,每题 3 分) 单项选择题(
1、 D 6、 C 2、 A 7、 A 3、D 8、A 4、C 9、C 5、 B 10、 D
三、判断题(10 分,每题 2 分) 判断题(
1、√ 2、√ 3、× 4、× 5、 √
四、程序