一、現(xiàn)有關(guān)于學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)的模式如下:
學(xué)生(學(xué)號(hào),姓名,性別,出生日期,系號(hào));
課程(課號(hào),課程名,學(xué)分);
選修(學(xué)號(hào),課號(hào),成績(jī))
學(xué)生與課程的聯(lián)系是M:N聯(lián)系。
1.按題目要求建立表結(jié)構(gòu),各表各個(gè)字段的名字、數(shù)據(jù)類型、長(zhǎng)度等根據(jù)語(yǔ)義和查詢的需要自行決定??筛鶕?jù)以下題目的需要建立索引。
有些題目則可能需要建立中間表或臨時(shí)表。 (15分)
2.利用你所熟悉的方法向各表錄入適量的、滿足題目需要的數(shù)據(jù)。各數(shù)據(jù)項(xiàng)的取值范圍應(yīng)該合理、有效,并與查詢要求相呼應(yīng)。 (10分)
3.編寫一個(gè)對(duì)選修表的數(shù)據(jù)修改程序。用學(xué)號(hào)和課號(hào)定位記錄,找到后,顯示該記錄,并提示用戶確認(rèn)“真的要修改嗎?”,
根據(jù)用戶回答決定程序流程。
要求只允許修改成績(jī)信息,不退出本程序能繼續(xù)進(jìn)行修改操作。 (20分)
4.用FoxPro語(yǔ)言或SQL語(yǔ)言編寫程序完成以下查詢。(以下四題依次為10分、10分、15分、20分)
(1)列出學(xué)生名單,要包含所有學(xué)生的所有屬性,且在最后一行顯示:
女生的平均年齡為 xx 歲。
(2)按照學(xué)分對(duì)課程進(jìn)行分類,列出每類學(xué)分的課程數(shù),且在最后一行顯示
課程總數(shù)為 xx 門。
(3)檢索選修課號(hào)為C2的學(xué)生的姓名、課程名和成績(jī),檢索結(jié)果按成績(jī)的降序排列。
(4)檢索與ZANG同學(xué)同齡的學(xué)生的學(xué)號(hào)、姓名、課程名和成績(jī),并列表顯示。
答案: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(fā)”
read
if answer
clear
gather from d
@ 1,1 say “修改后的數(shù)據(jù)已存入!”
endif
if .not.answer
clear
endif
endif
if .not.found()
clear
@ 1,1 say “查無(wú)此人”
endif
@ 4,1 say “繼續(xù)查嗎?” get action picture “l(fā)”
read
clear
enddo