位置:首页 > 自考专业

北大“数据库原理”上机实践题目总结(1)

  • 发布时间:2024-09-15 16:21:23
  • 来源:本站整理
  • 阅读:
导读:
  一、现有关于学生成绩管理数据库的模式如下:
  学生(学号,姓名,性别,出生日期,系号);
  课程(课号,课程名,学分);
  选修(学号,课号,成绩)
  学生与课程的联系是M:N联系。
  1.按题目要求建立表结构,各表各个字段的名字、数据类型、长度等根据语义和查询的需要自行决定。可根据以下题目的

一、现有关于学生成绩管理数据库的模式如下:

学生(学号,姓名,性别,出生日期,系号);

课程(课号,课程名,学分);

选修(学号,课号,成绩)

学生与课程的联系是M:N联系。

1.按题目要求建立表结构,各表各个字段的名字、数据类型、长度等根据语义和查询的需要自行决定。可根据以下题目的需要建立索引。

有些题目则可能需要建立中间表或临时表。 (15分)

2.利用你所熟悉的方法向各表录入适量的、满足题目需要的数据。各数据项的取值范围应该合理、有效,并与查询要求相呼应。 (10分)

3.编写一个对选修表的数据修改程序。用学号和课号定位记录,找到后,显示该记录,并提示用户确认“真的要修改吗?”,

根据用户回答决定程序流程。

要求只允许修改成绩信息,不退出本程序能继续进行修改操作。 (20分)

4.用FoxPro语言或SQL语言编写程序完成以下查询。(以下四题依次为10分、10分、15分、20分)

(1)列出学生名单,要包含所有学生的所有属性,且在最后一行显示:

女生的平均年龄为 xx 岁。

(2)按照学分对课程进行分类,列出每类学分的课程数,且在最后一行显示

课程总数为 xx 门。

(3)检索选修课号为C2的学生的姓名、课程名和成绩,检索结果按成绩的降序排列。

(4)检索与ZANG同学同龄的学生的学号、姓名、课程名和成绩,并列表显示。

答案:3

set talk off

clear

use sc

index on sno +cno to 11

dimension d(3)

action=.t.

answer=.t.

do while action

a=space(6)

b=space(4)

@ 1,1 say “sno:” get a picture “xxxxxx”

@ 2,1 say “cno” get b picture “xxxx”

read

c=a+b

seek c

if found()

scatter to d

@ 5,2 say “sno” get d(1) picture“xxxxxx”

@ 7,2 say “cno” get d(2) picture“xxxx”

clear gets

@ 9,2 say “grade” get d(3) picture“999.9”

read

@ 11,2 say “真的修改吗?” get answer picture “l”

read

if answer

clear

gather from d

@ 1,1 say “修改后的数据已存入!”

endif

if .not.answer

clear

endif

endif

if .not.found()

clear

@ 1,1 say “查无此人”

endif

@ 4,1 say “继续查吗?” get action picture “l”

read

clear

enddo

相关阅读