第一篇:數(shù)據(jù)庫(kù)系統(tǒng)上機(jī)實(shí)驗(yàn)題
數(shù)據(jù)庫(kù)系統(tǒng)上機(jī)實(shí)驗(yàn)題
一、學(xué)生學(xué)習(xí)系統(tǒng)的基本表
學(xué)生:s(sno,sname , sex , age , dept);表中屬性分別為:學(xué)號(hào),姓名,性別,年齡和
系名。
課程:c(cno , cname , tname);表中屬性分別為:課號(hào),課名,教師名。選課:sc(sno , cno , grade);表中屬性分別為:學(xué)號(hào),課號(hào)和成績(jī)。
要求:利用SQL語(yǔ)句創(chuàng)建上面三個(gè)基本表,包括:主鍵,外鍵定義。
有針對(duì)性地輸入一些實(shí)驗(yàn)數(shù)據(jù)。
二、利用SQL語(yǔ)句,在上面三個(gè)基本表中,完成如下的功能
1.查找學(xué)號(hào)2至10號(hào)學(xué)生的學(xué)號(hào)、姓名和系名。
2.查找女同學(xué)的人數(shù)。
3.查找學(xué)號(hào)2至10號(hào)學(xué)生中,女同學(xué)的人數(shù)。
4.查找男、女同學(xué)各有多少人(注:輸出性別和人數(shù))。
5.查找‘CS’系中,男、女同學(xué)各有多少人(注:輸出性別和人數(shù))
6.查找年齡在18至20歲之間的所有男同學(xué)的學(xué)號(hào)、姓名和系名。
7.查找所有學(xué)生選修課程的門(mén)數(shù)。
8.查找學(xué)號(hào)2至15號(hào)學(xué)生中,英語(yǔ)成績(jī)超過(guò)80分的學(xué)生學(xué)號(hào)和姓名。
9.查找沒(méi)有學(xué)習(xí)‘物理’課程的學(xué)生姓名和系名。
10.查找‘王明’同學(xué)所學(xué)課程的門(mén)數(shù)。
11.統(tǒng)計(jì)‘王明’同學(xué)所學(xué)各門(mén)課程的平均分?jǐn)?shù)。
12.統(tǒng)計(jì)英語(yǔ)成績(jī)高于該課程平均成績(jī)的人數(shù)。
13.查找查找至少選修了‘王一’和‘王二’老師所授課程的學(xué)生學(xué)號(hào)與姓名。
14.查找‘CS’系比‘MA’系的學(xué)生年齡都小的學(xué)生姓名和系名。
15.統(tǒng)計(jì)每個(gè)學(xué)生的總分,輸出學(xué)生的學(xué)號(hào)和總分,總分按降序排列。
16.查找學(xué)號(hào)比‘王一’同學(xué)大,而年齡比他小的學(xué)生學(xué)號(hào)、姓名和年齡。
17.查找年齡大于女同學(xué)的平均年齡的男同學(xué)的姓名與年齡。
18.查找只選修了一門(mén)課程的同學(xué)的學(xué)號(hào)和姓名。
19.查找‘CS’系學(xué)生中,沒(méi)有選修‘王一’老師課程的學(xué)號(hào)、姓名和系名。
20.查找至少選修了3門(mén)課程的學(xué)生學(xué)號(hào)和姓名。
21.查找每門(mén)課程的最高分和最低分。(注:輸出課號(hào)、最高分和最低分)
22.采用查詢視圖方式完成21題的功能:
利用視圖方式的步驟:
建立視圖,如:gdf(cno,max,min)屬性:課號(hào)、最高分和最低分。利用SELECT語(yǔ)句對(duì)視圖gdf查詢顯示。
在完成以上題目后,再利用SQL更新語(yǔ)句完成如下操作功能:
1.將所有學(xué)生的年齡增加1歲。
2.將‘物理’課程不及格的成績(jī)改為0分。
3.刪除‘王五’老師的任課信息。
4.將一門(mén)課的成績(jī)大于等于80分學(xué)生的學(xué)號(hào)、姓名和系名插入到一個(gè)已存在(要建
立)基本表stu(sno,sname,dept)中。
第二篇:計(jì)算方法上機(jī)實(shí)驗(yàn)
龍格-庫(kù)塔
#include
#include
float function(float x,float y)
{
return(0-(y*y));//f(x,y)μ?±í′?ê? }
int main()
{
float x0,x1,y0,y1,k1,k2,k3,k4,a,b,c,n,h;int i;
scanf(“%f %f %f %f”,&a,&b,&c,&n);x0=a;
y0=c;
h=(b-a)/n;
for(i=1;i<=n;i++)
{
k1=h*function(x0,y0);
k2=h*function(x0+h/2,y0+k1/2);k3=h*function(x0+h/2,y0+k2/2);k4=h*function(x0+h,y0+k3);x1=x0+h;
y1=y0+(k1+2*k2+2*k3+k4)/6;
printf(“x%d=%f,y%d=%fn”,i,x1,i,y1);x0=x1;
y0=y1;
}
return 0;
}
拉格朗日
#include
#include
#include
#define maxlength 500
#define pi 3.14***
floata[maxlength],f[maxlength];
float n;
floatlagrange(floata[],floatf[],float x,int n)
{
int k=0,j;
floaty=0.0,l;
while(k<=n)
{
l=1.0;
// printf(“%lfn”,y);
for(j=0;j<=n;j++)
{
if(j!=k)
{
l=l*(x-a[j])/(a[k]-a[j]);// printf(“%lfn”,l);
}
}
//printf(“%lfn”,f[k]);
// printf(“%lfn”,l);
y=y+l*f[k];
k++;
}
printf(“x=%f,y=%fn”,x,y);
return y;
}
float fx1(floatx)
{
return(1/(1+x*x));
}
floatfx2(floatx)
{
return exp(x);
}
floatfx3(float x)
{
return sqrt(x);
}
void math1(float c,float n)
{
int i=0;
float h;
h=2*c/n;
while(i<=n)
{
a[i]=i*h-5;
i++;
}
}
void math2()
{
int i=0;
while(i<=n)
{
a[i]=cos((2*i+1)*pi/2/(n+1));
i++;
}
}
int main()
{
n=20;
int i;
math1(5,n);
for(i=0;i<=n;i++)
{
f[i]=fx1(a[i])
}
lagrange(a,f,0.75,n);
return 0;
}
龍貝格
#include
#include
#include
double t[1000],r[1000];
double f(double x)
{
return(x*x*exp(x));
}
int main()
{
double h,a,b,e;
int i,N,m;
scanf(“%lf,%lf,%d,%lf”,&a,&b,&N,&e);
h=b-a;
m=0;
t[1]=0.5*h*(f(a)+f(b));
printf(“%lf”,t[1]);
r[0]=t[0];
while(1)
{
printf(“n”);
for(i=0;i<((m<4)?m:4);i++)
t[i]=r[i];
m++;
h=h/2;
r[0]=t[0]/2;
for(i=1;i<=pow(2,m);i++)
r[0]+=h*f(a+(i-0.5)*h)/2;
printf(“%lf”,r[0]);
r[1]=(4*r[0]-t[0])/3;
printf(“ %lf”,r[1]);
if(m==1)
continue;
r[2]=(16*r[1]-t[1])/15;
printf(“ %lf”,r[2]);
if(m==2)
continue;
r[3]=(64*r[2]-t[2])/63;
printf(“ %lf”,r[3]);
if(m==3)
continue;
if((fabs(r[3]-t[3])<=e)||(m==N))
break;
}
printf(“nthe current time is :%dn”,m);
return 0;
}
牛頓
#include
#include
#include
double function(double point)
{
return(point*point-2*point*exp(-point)+exp(-2*point));
}
double d_function(double point)
{
return(2*point+2*point*exp(-point)-2*exp(-point)-2*exp(-2*point));}
int main()
{
double beginner,error1,error2;
int max_times=0;
beginner=error1=error2=0;
scanf(“%lf %lf %lf %d”,&beginner,&error1,&error2,&max_times);int current_times=0;
while(current_times<=max_times)
{
if(fabs(function(beginner)) { printf(“%lfn”,beginner); return 0; } if(fabs(d_function(beginner)) { printf(“failuren”); return 0; } beginner=beginner-function(beginner)/d_function(beginner);if(fabs(function(beginner)/d_function(beginner)) printf(“%lfn”,beginner); return 0; } current_times++; } printf(“failuren”); return 0; } 實(shí)驗(yàn)八 折半查找 一、實(shí)驗(yàn)?zāi)康?、熟悉visual C++上機(jī)環(huán)境,進(jìn)一步掌握C語(yǔ)言的結(jié)構(gòu)特點(diǎn)。 2、進(jìn)一步掌握?qǐng)D的基本概念及其含義。 3、掌握查找的結(jié)構(gòu)特征,以及各種存儲(chǔ)結(jié)構(gòu)的特點(diǎn)及使用范圍。 4、掌握查找的基本運(yùn)算及其實(shí)現(xiàn)。 二、實(shí)驗(yàn)內(nèi)容(參照課本上的第220頁(yè)) 設(shè)計(jì)一個(gè)算法,實(shí)現(xiàn)折半查找算法。 三、實(shí)驗(yàn)要求 參照課本220頁(yè)算法9.2 四、實(shí)驗(yàn)報(bào)告要求(參照《數(shù)據(jù)結(jié)構(gòu)題集》第83頁(yè)實(shí)驗(yàn)報(bào)告模板) 實(shí)驗(yàn)報(bào)告必須有以下內(nèi)容:實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)要求、源程序、測(cè)試結(jié)果(打印界面的形式表示)。 實(shí)驗(yàn)四 串的基本操作實(shí)現(xiàn)-堆存儲(chǔ)結(jié)構(gòu)的實(shí)現(xiàn) 一、實(shí)驗(yàn)?zāi)康?、熟悉visual C++上機(jī)環(huán)境,進(jìn)一步掌握C語(yǔ)言的結(jié)構(gòu)特點(diǎn)。 2、掌握串的基本操作:初始化串、判串為空、求串長(zhǎng)等運(yùn)算及C語(yǔ)言實(shí)現(xiàn)。 二、實(shí)驗(yàn)內(nèi)容(參照課本上的第72-75頁(yè)) 編寫(xiě)一個(gè)程序,實(shí)現(xiàn)求串長(zhǎng)length_str、串連接、串比較、求子串、串插入、串刪除操作。 三、實(shí)驗(yàn)報(bào)告要求(參照《數(shù)據(jù)結(jié)構(gòu)題集》第83頁(yè)實(shí)驗(yàn)報(bào)告模板) 實(shí)驗(yàn)報(bào)告必須有以下內(nèi)容:實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)要求、源程序、測(cè)試結(jié)果(打印界面的形式表示)。 上機(jī)實(shí)驗(yàn)要求 一、實(shí)驗(yàn)前的準(zhǔn)備工作 在上機(jī)實(shí)驗(yàn)前應(yīng)事先做好準(zhǔn)備工作,以提高上機(jī)實(shí)驗(yàn)的效率: 1.了解所用的計(jì)算機(jī)系統(tǒng)(包括C編譯系統(tǒng))的性能和使用方法。 2.復(fù)習(xí)和掌握與本實(shí)驗(yàn)有關(guān)的教學(xué)內(nèi)容。 3.準(zhǔn)備好上機(jī)所需程序。要仔細(xì)弄清題意,選擇和設(shè)計(jì)合適的算法。在選擇算法時(shí),應(yīng)當(dāng)是在理解現(xiàn)有算法的基礎(chǔ)上,自己動(dòng)手畫(huà)出流程圖再設(shè)計(jì)源程序。手編寫(xiě)程序應(yīng)當(dāng)書(shū)寫(xiě)整齊,并經(jīng)人工檢查無(wú)誤后才能上機(jī),以提高上機(jī)效率。切忌不編寫(xiě)程序或抄襲他人程序,注意培養(yǎng)嚴(yán)謹(jǐn)踏實(shí)的學(xué)習(xí)作風(fēng)。 4.對(duì)運(yùn)行中可能出現(xiàn)的問(wèn)題應(yīng)率先作出估計(jì);對(duì)程序中自己有疑問(wèn)的地方,應(yīng)作上記號(hào),以便在上機(jī)時(shí)給予重視。 5.準(zhǔn)備好調(diào)試和運(yùn)行時(shí)所需的數(shù)據(jù)。 二、上機(jī)實(shí)驗(yàn)基本步驟 上機(jī)實(shí)驗(yàn)時(shí)應(yīng)該獨(dú)立上機(jī)。上機(jī)過(guò)程中出現(xiàn)的問(wèn)題,除了系統(tǒng)問(wèn)題外,一般應(yīng)自己獨(dú)立處理,不要輕易舉手問(wèn)教師。尤其對(duì)“出錯(cuò)信息”,應(yīng)善于自己分析判斷。這是學(xué)習(xí)調(diào)試程序的良好機(jī)會(huì),碰到困難時(shí)切忌輕易放棄。 上機(jī)實(shí)驗(yàn)一般應(yīng)包括以下步驟: 1.調(diào)出C編譯系統(tǒng),進(jìn)入C工作環(huán)境,如Turbo C2.0集成環(huán)境。 2.輸入自己編好的程序,注意正確的鍵盤(pán)輸入指法。 3.檢查一遍已經(jīng)輸入的程序是否有錯(cuò)(包括輸入錯(cuò)誤和編程中的錯(cuò)誤)。 4.進(jìn)行編譯。如果編譯和連接過(guò)程中發(fā)現(xiàn)錯(cuò)誤,屏幕上會(huì)出現(xiàn)“出錯(cuò)信息”,則根據(jù)提示找到出錯(cuò)位置和原因,加以改正,再進(jìn)行編譯??如此反復(fù),直到順利通過(guò)編譯和連接為止。 5.運(yùn)行程序,并分析運(yùn)行結(jié)果是否正確、合理。組織多組實(shí)驗(yàn)數(shù)據(jù),分別從不同情況下檢查程序的正確性。 6.輸出程序清單和運(yùn)行結(jié)果。特別要進(jìn)行上機(jī)調(diào)試記錄(尤其是出錯(cuò)情況和排錯(cuò)記錄),調(diào)試數(shù)據(jù)和運(yùn)行結(jié)果記錄、心得體會(huì)等。 三、撰寫(xiě)實(shí)驗(yàn)報(bào)告 做完實(shí)驗(yàn)后要寫(xiě)實(shí)驗(yàn)報(bào)告,對(duì)整個(gè)實(shí)驗(yàn)進(jìn)行總結(jié)和提高,這是整個(gè)實(shí)驗(yàn)過(guò)程的一個(gè)重要環(huán)節(jié),不要把它看成是一種不必要的負(fù)擔(dān),更不能敷衍了事。針對(duì)本課程的實(shí)驗(yàn)特點(diǎn),建議在書(shū)寫(xiě)實(shí)驗(yàn)報(bào)告時(shí)應(yīng)包括如下內(nèi)容。 1.實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)作為教學(xué)的一個(gè)重要環(huán)節(jié),其目的在于更深入地理解和掌握課程教學(xué)中的有關(guān)基本概念和基本技術(shù),從而進(jìn)一步提高分析問(wèn)題和解決問(wèn)題的能力。因此,當(dāng)著手做一個(gè)實(shí)驗(yàn)的時(shí)候,必須明確實(shí)驗(yàn)?zāi)康?,以保證達(dá)到課程所指定的基本要求。在寫(xiě)實(shí)驗(yàn)報(bào)告時(shí),要進(jìn)一步確認(rèn)是否達(dá)到了預(yù)期的目的。 2.實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)的目的是要通過(guò)解決一些具體問(wèn)題來(lái)達(dá)到的。根據(jù)教學(xué)安排、進(jìn)度、實(shí)驗(yàn)條件、可提供的上機(jī)時(shí)數(shù)、學(xué)生的基礎(chǔ)等因素,逐步完成。在實(shí)驗(yàn)報(bào)告中,實(shí)驗(yàn)內(nèi)容是指本次實(shí)驗(yàn)中實(shí)際完成的內(nèi)容,在每一個(gè)實(shí)驗(yàn)題目中,一般都提出了一些具體要求,其中有些具體要求是為了達(dá)到實(shí)驗(yàn)?zāi)康亩岢龅?。因此,在?shí)驗(yàn)內(nèi)容中,不僅要寫(xiě)清楚具體的實(shí)驗(yàn)題目,還應(yīng)包括具體要求。 3.算法和流程圖 算法設(shè)計(jì)是程序設(shè)計(jì)過(guò)程中一個(gè)重要步驟。本章的某些實(shí)驗(yàn)題目給出了方法說(shuō)明,有的還提供了流程圖,但有的沒(méi)有給出流程圖。如果在做實(shí)驗(yàn)的過(guò)程中,使用的算法或流程圖和本書(shū)中給出的不一樣,或者書(shū)中沒(méi)有給出算法和流程圖,則在實(shí)驗(yàn)報(bào)告中應(yīng)給出較詳細(xì)的算法說(shuō)明與流程圖,并對(duì)其中的主要符號(hào)與變量作相應(yīng)的說(shuō)明。 4.程序清單 程序設(shè)計(jì)的產(chǎn)品就是程序,它應(yīng)與算法或流程圖相一致。程序要具有易讀性,符合模塊化和結(jié)構(gòu)化原則。 5.運(yùn)行結(jié)果 程序運(yùn)行結(jié)果一般是輸出語(yǔ)句所輸出的結(jié)果,對(duì)于不同的輸入,其輸出結(jié)果是不同的。因此,在輸出結(jié)果之前一般還應(yīng)注明輸入的數(shù)據(jù),以便對(duì)輸出結(jié)果進(jìn)行分析和比較。 6.調(diào)試分析和體會(huì) 這是實(shí)驗(yàn)報(bào)告中最重要的一項(xiàng),也是最容易忽視的一項(xiàng)。實(shí)驗(yàn)過(guò)程中大量的工作是程序測(cè)試,在調(diào)試過(guò)程中會(huì)遇到各種各樣的問(wèn)題,每解決一個(gè)問(wèn)題就能積累一點(diǎn)經(jīng)驗(yàn),提高編程的能力。因此,對(duì)實(shí)驗(yàn)的總結(jié),最主要的是程序調(diào)試經(jīng)驗(yàn)的總結(jié)。調(diào)試分析也包括對(duì)結(jié)果的分析。體會(huì)主要是指通過(guò)本次實(shí)驗(yàn)是否達(dá)到了實(shí)驗(yàn)?zāi)康模心男┗靖拍畹玫搅松钊肜斫獾取?/p> 第三篇:上機(jī)實(shí)驗(yàn)八
第四篇:上機(jī)實(shí)驗(yàn)四
第五篇:上機(jī)實(shí)驗(yàn)要求