实验五、六部分参考答案

实验五、六部分参考答案
实验五、六部分参考答案

实验五

3. 在项目中设计如下查询,单号题用select命令(写到程序中),双号题用查询设计器:

注意:查询前先打开“学生-课程”数据库,并且设为当前库

(1)创建程序文件Q1,用select命令查询“计算机”系的学生的学号、姓名、和出生日期,结果按学号升序排。运行程序查看运行结果。

使用设计器设计:

添加表:学生表

“字段”选项卡:学号、姓名、出生日期

“筛选”选项卡:所在系=’计算机’

“排序”选项卡:学号升序

使用命令:

SELECT 学号,姓名,出生日期;

FROM学生;

WHERE所在系= "计算机";

ORDER BY学号

查询结果如下:

(2)创建查询文件Q2,查询“计算机”系的学生的姓名、性别、年龄,结果按年龄升序排。运行查询文件查看运行结果。

使用设计器设计:

添加表:学生表

“字段”选项卡:姓名、性别、YEAR(DATE())-YEAR(学生.出生日期) AS 年龄

“筛选”选项卡:所在系=’计算机’

“排序依据”选项卡:YEAR(DATE())-YEAR(学生.出生日期) AS 年龄

使用命令:

SELECT姓名,性别, YEAR(DATE())-YEAR(学生.出生日期) AS 年龄;

FROM学生;

ORDER BY 3

查询结果如下:

(3)创建程序文件Q3,用select命令查询都有哪些系,要求系不能重复。运行程序查看运行结果。

使用设计器设计:

添加表:学生表

“字段”选项卡:所在系

“杂项”选项卡:选中“无重复记录”复选框

使用命令:

SELECT DISTINCT 所在系FROM学生

查询结果如下:

(4)创建查询文件Q4,查询选了“001”号课的学生的姓名和成绩,结果按成绩降序排,结果放到表“成绩001号课”表中。运行查询文件,将存放查询结果的文件添加到项目的自由表中,浏览该自由表从而查看查询结果。

使用设计器设计:

添加表:学生表、选课表

“字段”选项卡:姓名、成绩

“联接”选项卡:inner join 学生.学号=选课.学号

“筛选”选项卡:课程号=’001’

“排序依据”选项卡:成绩降序

“查询去向”:表“成绩001号课”

使用命令:

SELECT姓名,成绩;

FROM学生INNER JOIN选课ON 学生.学号= 选课.学号;

WHERE课程号= "001";

ORDER BY成绩DESC

INTO TABLE 成绩001号课

查询结果如下:

(5)创建程序文件Q5,用select命令查询“计算机”系学生选了“001”号课学生的姓名、成绩,结果按成绩降序排。运行程序查看运行结果。

使用设计器设计:

添加表:学生表、选课表

“字段”选项卡:姓名、成绩

“联接”选项卡:inner join 学生.学号=选课.学号

“筛选”选项卡:所在系=’计算机’ and课程号=’001’

“排序依据”选项卡:成绩降序

使用命令:

SELECT姓名,成绩;

FROM 学生INNER JOIN选课ON 学生.学号= 选课.学号;

WHERE所在系= "计算机" AND课程号= "001";

ORDER BY成绩DESC

查询结果如下:

(6)创建查询文件Q6,查询成绩在80及80分以上的学生的姓名、课程名和成绩,输出时先按课程名升序排,课程名一样的再按成绩降序排。运行查询文件查看运行结果。

使用设计器设计:

添加表:学生表、选课表、课程表

“字段”选项卡:姓名、课程名、成绩

“联接”选项卡:inner join 学生.学号=选课.学号

inner join 课程.课程号=选课.课程号

“筛选”选项卡:成绩>=80

“排序依据”选项卡:课程名升序、成绩降序

使用命令:

SELECT姓名,课程名,成绩;

FROM学生INNER JOIN选课INNER JOIN课程;

ON 课程.课程号=选课.课程号ON 学生.学号=选课.学号;

WHERE成绩>= 80;

ORDER BY课程名,成绩DESC

查询结果如下:

(7)创建程序文件Q7,用select命令查询平均成绩大于等于80的学生的学号、姓名平均成绩。运行程序查看运行结果。

使用设计器设计:

添加表:学生表、选课表

“字段”选项卡:学号、姓名、AVG(选课.成绩) AS 平均成绩

“联接”选项卡:inner join 学生.学号=选课.学号

“分组依据”选项卡:学号

“满足条件”(筛选组):平均成绩>=80

“排序依据”选项卡:学号升序

使用命令:

SELECT 学生.学号, 姓名, AVG(选课.成绩) AS 平均成绩;

FROM 学生INNER JOIN选课ON 学生.学号= 选课.学号;

GROUP BY 学生.学号;

HAVING 平均成绩=>80

查询结果如下:

(8)创建查询文件Q8,查询各科成绩的最高分。结果包括课程名和最高分两列。运行查询文件查看运行结果。

使用设计器设计:

添加表:课程表、选课表

“字段”选项卡:课程名、MAX(选课.成绩) AS 最高分

“联接”选项卡:inner join 课程.课程号=选课.课程号

“分组依据”选项卡:课程名

使用命令:

SELECT课程名, MAX(选课.成绩) AS 最高分;

FROM课程INNER JOIN选课ON课程.课程号= 选课.课程号;

GROUP BY 课程.课程名

查询结果如下:

(9)创建程序文件Q9,用select命令查询选课人数多于10人的课程名和选课人数。运行程序查看运行结果。

使用设计器设计:

添加表:课程表、选课表

“字段”选项卡:课程名、COUNT(选课.学号) AS 选课人数

“联接”选项卡:inner join 课程.课程号=选课.课程号

“分组依据”选项卡:课程名

“满足条件”(筛选组):选课人数>=10

使用命令:

SELECT 选课.课程名, COUNT(选课.学号) AS 选课人数;

FROM 课程INNER JOIN选课ON 课程.课程号= 选课.课程号;

GROUP BY 选课.课程名;

HAVING 选课人数=>10

查询结果如下:

(10)创建查询文件Q10,查询数学成绩前5名的学生的姓名和数学成绩。运行查询文件查看运行结果。

使用设计器设计:

添加表:学生表、选课表、课程表

“字段”选项卡:姓名、成绩

“联接”选项卡:inner join 学生.学号=选课.学号

inner join 课程.课程号=选课.课程号

“筛选”选项卡:课程名=’数学’

“排序依据”选项卡:成绩降序

“杂项”:不选“全部”复选框,“记录个数”改成5

使用命令:

SELECT TOP 5 姓名,成绩;

FROM学生INNER JOIN选课INNER JOIN课程;

ON 课程.课程号= 选课.课程号ON 学生.学号= 选课.学号;

WHERE 课程名= "数学";

ORDER BY 成绩DESC

查询结果如下:

4. 打开“客户管理”项目,打开“订货管理”数据库,在该项目中使用查询设计器设计如下查询:

习题13(271页)第三题的1、2、3、4、5题。

注意:查询前先打开“订货管理”数据库并设为当前库。

(1)查询客户名为“三益贸易公司”的订购单明细,结果先按“订单号”升序排,同一订单的再按“单价”降序排。结果存到results14_1中。

使用设计器:

添加表:customer、order_list、order_detail

“字段”选项卡:order_detail表中的所有字段

“联接”选项卡:inner join customer.khh=order_list.khh

Inner join order_list.ddh= order_detail.ddh

“筛选”选项卡:customer.khm=’益贸易公司’

“排序依据”选项卡:ddh升序、dj降序

“分组依据”选项卡:

“杂项”选项卡:

“查询去向”:表“results14_1”

使用命令:

SELECT Order_detail.*;

FROM customer INNER JOIN order_list INNER JOIN order_detail ;

ON Order_list.ddh = Order_detail.ddh ON Customer.khh = Order_list.khh;

WHERE Customer.khm = "三益贸易公司";

ORDER BY Order_detail.ddh, Order_detail.dj DESC;

INTO TABLE results14_1.dbf

查询结果:

(2)查询目前有订购单的客户信息,即有对应的order_list记录的customer表中的记录,同时要求按khh升序排,将结果存到results14_2中。

使用设计器:

添加表:customer、order_list

“字段”选项卡:customer表中的所有字段

“联接”选项卡:inner join customer.khh=order_list.khh

“排序依据”选项卡:customer.khh

“杂项”选项卡:选中复选框“无重复记录”

“查询去向”:表“results14_2”

使用命令

SELECT DISTINCT Customer.*;

FROM customer INNER JOIN order_list ;

ON Customer.khh = Order_list.khh;

ORDER BY Customer.khh;

INTO TABLE results14_2.dbf

查询运行结果:

(3)查询所有订购单的订单号、订购日期、和总金额,按订单号升序排,将查询结果存储到表results14_3中。

使用设计器:

添加表:order_list、order_detail

“字段”选项卡:ddh、dgrq、qjh、qjm、SUM(dj*sl) as 总金额

“联接”选项卡:Inner join order_list.ddh= order_detail.ddh

“排序依据”选项卡:ddh

“分组依据”选项卡:ddh

“查询去向”:表“results14_3”

使用命令:

SELECT Order_list.ddh, dgrq, SUM(dj* sl) as 总金额;

FROM order_list INNER JOIN order_detail ON Order_list.ddh = Order_detail.ddh;

GROUP BY Order_list.ddh;

ORDER BY Order_list.ddh;

INTO TABLE results14_3.dbf

查询运行结果:

(4)按总金额降序排列出所有客户的客户号、客户名及其订单号和总金额,将查询结果存到表results14_4中。

使用设计器:

添加表:customer、order_list、order_detail

“字段”选项卡:khh、khm、ddh、SUM(dj*sl) as 总金额

“联接”选项卡:inner join customer.khh=order_list.khh

Inner join order_list.ddh= order_detail.ddh

“排序依据”选项卡:SUM(dj*sl) as 总金额降序

“分组依据”选项卡:ddh

“查询去向”:表“results14_4”

使用命令

SELECT Customer.khh, khm, Order_list.ddh, SUM(dj*sl) as 总金额;

FROM customer INNER JOIN order_list INNER JOIN order_detail ;

ON Order_list.ddh = Order_detail.ddh ;

ON Customer.khh = Order_list.khh;

GROUP BY Order_list.ddh;

ORDER BY 4 DESC;

INTO TABLE results14_4.dbf

查询运行结果:

(5)对表order_detail建立查询,把“订单号”的尾部字母相同且订货相同(即“器件号”相同)的订单合并成一张订单,新的“订单号”取原来的尾部字母,“单价”取最低价,“数量”取合计,查询结果先按新的“订单号”升序排,再按“器件号”升序排,将查询结果存到表results14_5中。

使用设计器:

添加表:order_detail

“字段”选项卡:RIGHTC(ddh,1) as 订单号、qjh、qjm、MIN(dj) as 最低单价、

SUM(sl) as 总数量

“排序依据”选项卡:RIGHTC(ddh,1) as 订单号升序、qjh升序

“分组依据”选项卡:RIGHTC(ddh,1) as 订单号、qjh

“查询去向”:表“results14_5”

使用命令

SELECT RIGHTC(ddh,1) as 订单号, Order_detail.qjh, Order_detail.qjm,;

MIN(dj) as 最低单价, SUM(sl) as 总数量;

FROM order_detail;

GROUP BY 1, qjh;

ORDER BY 1, qjh;

INTO TABLE results14_5.dbf

查询运行结果:

实验六

4. 使用项目中的“代码”选项卡创建一个程序文件“实验六查询”,在该程序中使用SELECT命令编写如下查询:

(注意: 运行时,可选中要运行的命令,右单击,在快捷菜单中选“运行所选区域”来运行所选中的命令。)

(1)从学生表中查询姓"王"的学生的学号和姓名。

SELECT 学号,姓名FROM 学生WHERE like( "王*",姓名)

(2)查询选了课但没参加考试的学生学号和所选的课程号(即成绩为空的)。

SELECT * FROM 选课WHERE 成绩IS NULL

(3)查询选课表中选了课且参加考试的学生学号和姓名及成绩(即成绩不为空的)。

SELECT 学生.学号,姓名,成绩;

FROM 学生,选课;

WHERE 学生.学号=选课.学号and 成绩IS NOT NULL

(4)查询选课表中课程号为"001"而且分数在70~80分之间的记录。

SELECT * FROM 选课WHERE 课程号="001" AND 成绩BETWEEN 70 AND 80

*或

SELECT * FROM 选课WHERE 课程号="001" AND 成绩>=70 and 成绩<=80

(5)查询和王红红在同一系的学生的信息。

select * from 学生where 所在系=(select 所在系from 学生where 姓名='王红红')

(6)查询没人选的课的课程号和课程名。(先在课程表中添一门课)

select 课程号,课程名from 课程where 课程号not in (select distinct 课程号from 选课)

(7)查询还没有选任何课的学生的学号和姓名。(先在学生表中添一名学生)

select 学号,姓名from 学生where 学号not in(select 学号from 选课)

(8)查询课程号为"001"的课程的选课人数、最高分、最低分和平均分。

SELECT 课程号,COUNT(*) AS 选课人数,MAX(成绩) AS 最高分, MIN(成绩) AS 最低分, AVG(成绩) AS 平均分;

FROM 选课;

WHERE 课程号="001"

(9)查询平均成绩超过80分(含80)的课的课程号、课程名及平均分。

select 选课.课程号,课程名,avg(成绩) as 平均成绩;

from 课程,选课;

where 课程.课程号=选课.课程号;

group by 选课.课程号;

having 平均成绩>=80

(10)将各门课程的被选情况按课程号、课程名、学号的顺序列出来,没有学生选的课学号为空。(提示:使用左联接,联接条件中课程表在左选课表在右)

SELECT 课程.课程号,课程名,学号;

FROM 课程LEFT JOIN 选课ON 课程.课程号= 选课.课程号

MATLAB课后实验答案

%实验一MATLAB运算基础 %第一题%(1) z1=2*sin(85*pi/180)/(1+exp(2)) %(2) x=[2,1+2i;-0.45,5]; z2=0.5*log(x+sqrt(1+x.^2)) %(3) a=-3.0:0.1:3.0; z3=(exp(0.3*a)-exp(-0.3*a))/2.* sin(a+0.3)+log((0.3+a)/2) %(4) t=0:0.5:2.5; z4=t.^2.*(t>=0&t<1)+(t.^2-1).*( t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t <3)%第二题 A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; A+6*B A-B+eye(size(A)) A*B A.*B A^3 A.^3 A/B B\A [A,B] [A([1,3],:);B^2]%第三题 A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] C=A*B F=size(C) D=C(F(1)-2:F(1),F(2)-1:F(2)) whos%第四题 %(1): A=100:999; B=rem(A,21); C=length(find(B==0)) %(2): A='lsdhKSDLKklsdkl'; k=find(A>='A'&A<='Z'); A(k)=[] %实验二MATLAB矩阵分析与处理 %第一题 E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([2,3]);%判断AB是否相等 A=[E,R;O,S];A^2 B=[E,(R+R*S);O,S^2] %第二题 H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) %第三题: A=fix(10*rand(5)) H=det(A)Trace=trace(A) Rank=rank(A)Norm=norm(A) %第四题: A=[-29,6,18;20,5,12;-8,8,5] [V,D]=eig(A)%数学意义略 %第五题方法一: %(1): A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4, 1/5,1/6]; b=[0.95,0.67,0.52]'; x=inv(A)*b %(2): B=[0.95,0.67,0.53]'; x=inv(A)*B %(3): cond(A) %第五题方法二: A=hilb(4) A(:,1)=[] A(4,:)=[] B=[0.95,0.67,0.52]'; X=inv(A)*B B1=[0.95,0.67,0.53]'; X1=inv(A)*B1 N=cond(B) N1=cond(B1) Na=cond(A) %矩阵A为病态矩阵 %第六题 A=[1,4,9;16,25,36;49,64,81] B=sqrtm(A) C=sqrt(A) %sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算 %实验三选择程序结构设计 %第一题程序一 x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5. 0]; y=[]; %建立存放所有y值的矩阵

实验报告6答案

实验报告 课程名称:高级语言程序设计 实验六:一维数组和二维数组班级:学生姓名: 学号: 专业: 指导教师: 学期:2009-2010 学年上学期 云南大学信息学院 一、实验目的 1掌握一、二维数组的定义及初始化 2、掌握数组元素的输入、输出及引用方法 3、掌握使用循环对数组元素进行访问 4、掌握一、二维数组的简单应用

二、知识要点 1 一、二维数组的定义与赋值(初始化、循环键盘输入) 2、访问数组元素(下标的正确使用) 3、数组的典型应用(复制、求和、统计某种元素个数、求数组中的最大/最小值、 元素的查找与排序) 三、实验预习(要求做实验前完成) 1定义一个有四个元素的float型数组: 2、定义一个具有五个元素的整型数组并将其初始化为{1,2,3,4,5} 3、要用循环从键盘输入整型数组s的元素值(共6个),应该使用语句: 4、交换数组元素d[2]和d[4],使用语句: 5、语句for(k=0;k<3;k++)x[2][k] = 0;将把哪些元素变为0? 四、实验内容(要求提供:① 算法描述或流程图② 源程序) 1已知一个数组有10个元素,值分别是3, 6, 8, 4, 5, 66, 80, 72, 69, 70。 编程,将数组元素逆置后输出。(提示:第一个与最后一个交换位置,第二个与倒数第二个交换位置,...... ) 2、编程序求Fibo nacci数列的前30项,Fib on acci数列的定义为: 1 5=1) fn = * 1 (n =2) Jnj + fnd (n >2) 要求将数列存放在数组中,并按每行5个数的格式输出该数列。 3、输入一个4行4列的二维数组,统计偶数的个数,并输出所有小于5的数。 4、已知一个二维数组:{{14,26,18,17},{24,37,21,8},{19,31,22,16},{7,19,14,26}}, 编 程,输出该二维数组的最小元素的行下标与列下标。 五、实验结果(要求写出运行界面及输出的运行结果) 六、实验小结 1.#define N 10 #include main() {int i, t,a[N]; for(i=0;i

实验5(答案)

实验五 连续系统分析 一、实验目的 1.深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。 2.掌握利用MATLAB 分析连续系统的时域响应、频响特性和零极点的基本方法。 二、实验原理及内容 MATLAB 提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。 1. 连续系统的时域响应 连续时间LTI 系统可用如下的线性常系数微分方程来描述: ) ()( )()(01)1(1)(t y a t y a t y a t y a n n n n ++++-- )()( )()(01)1(1)(t x b t x b t x b t x b m m m m ++++=-- 已知输入信号x (t )以及系统初始状态)0(,),0('),0()1(----n y y y ,就可以求出系统的响应。 MATLAB 提供了微分方程的数值计算的函数,可以计算上述n 阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。 在调用MATLAB 函数时,需要利用连续系统对应的系数函数。对微分方程进行Laplace 变换即可得系统函数: 1110111)()()(a s a s a s a b s b s b s b s X s Y s H n n n n m m m m ++++++++==---- 在MATLAB 中可使用向量和向量分别保存分母多项式和分子多项式的系数: ],,,,[011a a a a a n n -= ],,,,[011b b b b b m m -= 这些系数均按s 的降幂直至s 0排列。 ● 连续系统的单位冲激响应h (t )的计算 impulse(sys)计算并画出系统的冲激响应。 参数:sys 可由函数tf(b,a)获得。其中: ],,,,[011a a a a a n n -= ],,,,[011b b b b b m m -= h=impulse(sys, t) 计算出系统在向量t 定义的区间上的冲激响应, 向 量h 保存对应区间的系统冲激响应的输出值。 ● 连续系统的单位阶跃响应g (t )的计算 step(sys)计算并画出系统的阶跃响应。

实验五 队列的应用(参考答案)

实验五、队列的应用 一、实验原理: 一种“先进先出”(FIFO---First In First Out)的数据结构:即插入在队尾一端进行,而删除在队头进行。 键盘缓冲区问题: 设计算法实现模拟键盘缓冲区问题。假设有两个进程同时存在于一个应用程序之中,第一个进程连续在屏幕上显示字符“X”,第二个进程不断检查键盘上是否有输入,若有则读入用户键入的字符,将其保存到键盘缓冲区之中。程序约定当用户键入一个逗号“,”,则表示第一进程结束,系统开始显示那些在键盘缓冲区中的字符;接着继续执行第一个进程,即,在屏幕上显示字符“X”;当用户输入“;”的时候,刚结束整个程序。 算法提示:为了充分利用缓冲区的空间往往将缓冲区设计成循环队列的结构,并为循环队列结构的缓冲区设置一个队首指针和一个队尾指针。每输入法一个字符到缓冲区中,就将尾指针后移,链入缓冲区的循环队列之中;每输出一个字符号,就将队头指针前移,将它从缓冲队列中删除。 参考代码: /*键盘缓冲区问题*/ #define MAXSIZE 20 #define TRUE 1 #define FALSE 0 #include "stdio.h" #include "conio.h" #include "dos.h" typedef char elemtype; typedef struct { elemtype elem[MAXSIZE]; int front, rear; }queuetype; int enque(queuetype *s, elemtype x) /*数据入队列*/ { if (( s->rear+1)%MAXSIZE==s->front ) /*队列已满*/ return (FALSE);

实验六答案

实验六答案 1、创建一个表示雇员信息的employee类,其中包含数据成员name、empNo和salary,分 别表示雇员的姓名、编号和月薪。再从employee类派生出3个类worker、technician 和salesman,分别代表普通工人、科研人员、销售人员。三个类中分别包含数据成员productNum、workHours和monthlysales,分别代表工人每月生产产品的数量、科研人员每月工作的时数和销售人员每月的销售额。要求在employee类中声明虚成员函数pay,并在各个派生类中覆盖pay函数,用来计算雇员的月薪,并假定: 普通工人的月薪=每月生产的产品数×每件产品的赢利×20% 科研人员的月薪=每月的工作时数×每小时工作的酬金 销售人员的月薪=月销售额×销售额提成。 创建一个通用函数CalculateSalary,用来计算并返回各种不同类型雇员的月薪。函数CalculateSalary的原型如下: float CalculateSalary(employee *emptr) ; 在main函数中分别声明worker类、technician类和salesman类的对象代表各种类型的雇员,并调用函数CalculateSalary计算他们的月薪。 解:程序代码如下: #include using namespace std; class employee { protected: char name[20]; int empNo; float salary; public: employee(char *cp="",int no=1001); employee(employee&); void setname(char *cp); void setempNo(int no); void setsalary(float sa); char*getname(); int getempNo(); float getsalary(); virtual float pay(){ return 0;} }; employee::employee(char *cp,int no) { int i=0; while(*cp) { name[i]=*cp; i++; cp++;

数据库实验五题目答案

实验五 实验5.1 数据查询 1)要求 以School数据库为例,在该数据库中存在四表格,分别为: ●表STUDENTS(sid, sname, email, grade); ●表TEACHERS(tid, tname, email, salary); ●表COURSES(cid, cname, hour); ●表CHOICES(no, sid, tid, cid, score) 在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。 按以下要求对数据库进行查询操作: (1)查询年级为2001的所有学生的名称并按编号升序排列。 程序:Select sname from students where grade='2001' order by sid asc; (2)查询学生的选课成绩合格的课程成绩。 程序:Select score from choices where score>'59';

(3)查询课时是48或60的课程的名称。 程序:select cname from courses where hour='48'or hour='60'; (4)查询所有课程名称中含有data的课程编号。 程序:select cid from courses where cname like'%data%';

(5)查询所有选课记录的课程号(不重复显示)。 程序:select distinct cid from choices; (6)统计所有教师的平均工资。 程序:select avg(salary) from teachers;

大学物理实验第二版课后作业参考答案 清华大学出版社

《误差理论》作业参考答案 1、(1)74.63±0.05cm 或 746.3±0.5mm (2) 7.25±0.01cm 或 72.5±0.1mm (3)42.6 ±0.2s (4)27.6 ±0.2℃(5)2.734±0.001v 2、(1)2位 (2)7位(3)5位(4)6位(5)5位(6)2位 3、(1) 299300=2.99300510?;983±4=()21004.083.9?±;0.00400=4.00310-? 0.004521±0.000001=()310001.0521.4-?±;32476510?=3.2476910?; (2) 15.48g =1.548mg 410?=1.548Kg 210-? (3) m =312.670±0.002Kg =(3.1267±0.00002)510?g =(3.12670±0.00002)mg 810? (4) =t 17.9±0.1S =0.298±0.002min =(2.98±0.02)×10-1 min 4、(1)N=10.8±0.2cm (2)首位数码“0”不是有效数字,未位数码“0”是有效数字,正确答案是四位有效数字。 (3)28cm =2.8mm 210? 280mm =28.0cm (4)L=(3.8±0.2)mm 410? (5)0.0221?0.0221=“0.00048841”≈0.000488 (6) 31010.460 .1160.121500 400?≈?? 5、(1)X =81(4.113+4.198+4.152+4.147+4.166+4.154+4.132+4.170)=8 1 ?33.232 =4.154cm X ?= {() 1881-? [(4.154-4.113) 2 + (4.154-4.198)2+ (4.154-4.152)2 +(4.154-4.147)2+ (4.154-4.166)2+ (4.154-4.154)2 +(4.154-4.132)2+ (4.154-4.170)2] } 2 1 ≈0.00904~0.009cm X =X ±x ?=4.154±0.009cm 或 X =X ±x ?=4.15±0.01cm E = 154 .4009.0?100%=0.22% 或 E =15.401 .0?100% =0.23% 注:使用计算器时计算过程中有效数字的位数可以不考虑,最后结果应按照教材P6的“不确定度 取位规则”和“测量有效数字取位规则”。 (2)、X = 61(2.904+2.902+2.900+2.903+2.900+2.904)=6 413 .17=2.902167cm

实验五数值积分参考答案

一 实验目的: 1 加深理解积分理论中分割、近似、求和、取极限的思想方法; 2 了解定积分近似计算的矩形法、梯形法与抛物线法; 3 会用MATLAB 语言编写求定积分近似值的程序,会用MALAB 中的命令求定积分。 二 实验准备素材 见附件。 三 实验内容 1.(不定积分)用int 计算下列不定积分,并用diff 验证 ?dx x x 2 sin ,?+x dx cos 1,?+1x e dx ,?xdx arcsin ,?xdx 3sec 2.(定积分)用trapz,int 计算下列定积分 ?10sin dx x x ,?10dx x x ,?π20)2sin(dx x e x ,?-102dx e x 3.(椭圆的周长) 用定积分的方法计算椭圆1492 2=+y x 的周长 4.(二重积分)计算积分??≤+++y y x dxdy y x 222)1( 5. (广义积分)计算广义积分 ?∞∞-+-dx x x 421)exp(,?10)tan(dx x x ,?-1021sin dx x x 7.1 syms x; g1=int(x.*sin(x).*sin(x)) g1 = x*(-1/2*cos(x)*sin(x)+1/2*x)+1/4*sin(x)^2-1/4*x^2

clear;syms x; d1=diff(x*(-1/2*cos(x)*sin(x)+1/2*x)+1/4*sin(x)^2-1/4*x^2) syms x; g2=int(1/(1+cos(x))) g2 = tan(1/2*x) clear;syms x; d2=diff(tan(1/2*x)) syms x; g3=int(1/(exp(x)+1)) g3 = log(exp(x))-log(exp(x)+1) clear;syms x; d3=diff(exp(x))-log(exp(x)+1)) syms x; g4=int(finverse(sin(x))) g4 = x*asin(x)+(1-x^2)^(1/2) clear;syms x; d4=diff(x*asin(x)+(1-x^2)^(1/2)) syms x; g5=int(sec(x).^3) g5 = 1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x)) clear;syms x; d5=diff(1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x))) 7.2 x=10e-100:0.001:1; y=sin(x)./x; trapz(x,y) clear all;syms x;

实验六答案

实验六函数与编译预处理答案 一、断点的设置和取消、单步执行跟踪进入函数和跳出函数方法 练习 2、调试练习: 要求:模仿示例调试以下程序,直到输出正确结果,源程序名为error6_2.c 程序功能:利用函数调用求“1!+2!+3!+4!+...+10!”的值(参见实验教材72页程序填空题第(1)小题) 源程序(有错误的程序——不是语法错误,而是算法错误或逻辑错误): 改正错误后的源程序: void main() { long s=0,i; long mm(int k); for(i=1;i<=10;i++) s=s+mm(i); printf("1!+2!+3!+...+10!=%ld\n",s); } long mm(int k) { long t=1, j; for(j=1;j<=k;j++) t=t*j; return (t); } 3、综合调试、改错练习: 以下程序有多处错误,请综合运用前面所学过的所有知识和VC++的调试手段,改正程序的各种错误,使其运行出正确的结果。程序的功能是:利用函数调用求任意两个整数的和。 改正错误后的源程序:

main() { int sum(int a,int b); int x,y; scanf("%d,%d",&x,&y); printf("x=%d,y=%d\n",x,y); printf("%d+%d=%d\n",x,y,sum(x,y)); } int sum(int a,int b) { return (a+b); } 二、编程练习 利用VC++编写程序,并调试、运行,直到输出正确结果。编程练习1: 注意: 这里提供了以填空的形式出现源程序参考清单,目的是给同学们一个思路。最好不要将此源程序清单复制到VC++中,否则会出现多处语法错误。同学们可以据此思路来填写有关语句,从而完成程序。在调试程序时,一定要运用前面学过的方法。 下面函数是实现求[1,3000]能被17或23整除的整数的个数。请将程序补充完整,并调试运行,直到输出正确结果。(源文件名为blank6_1.c) 完成填空后的源程序: #include int f(int m, int n) { int i, count=0; for(i=m; i<=n; i++) if(i%17==0||i%23==0) count++; return count; } main() {int m,n; scanf("%d%d",&m,&n); printf("count=%d\n", f(m,n)); }

matlab实验五答案1

实验五 1、编写程序,该程序在同一窗口中绘制函数在 []0,2π之间的正弦曲线和余弦曲线,步长 为200/π,线宽为2个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记并标注sin(x)=cos(x);通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。%x=linspace(0,2*pi,1000);x=[0:pi/200:2*pi]sinx =sin(x);cosx =cos(x); k=find(abs(sinx-cosx)<1e-2);x1=x(k); plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x1,sin(x1),'r*')xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)'); title('正弦-余弦曲线'); text(x1+0.1,sin(x1),'sin(x)=cos(x)');legend('sin(x)','cos(x)'); 1 2 34 5 6 7 x:(0-2π) y :s i n (x )/c o s (x ) 正弦-余弦曲线 2、绘制图像:双曲抛物面:22 x y z =- ,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。 [X,Y]=meshgrid(-16:0.4:16,-4:0.1:4);Z =X.^2/16-Y.^2/4; subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth =0,elevation =180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth =

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

实验五 连接查询参考答案

--创建学生视图 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_stu]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[v_stu] go create view v_stu as select sid, sname, ssexy, sbdate, Datediff(year, sbdate, getdate()) as sage, stele, ugrade.gid, gname, gyear, udept.did, dname, daddr, dtele, demail, uteacher.tid, tname, tsexy, tbdate, tfield, tprof, tele, qq, email, msn from ustudent, ugrade, udept, uteacher where ustudent.gid=ugrade.gid and ugrade.did=udept.did and ugrade.tid=uteacher.tid --创建选修课程视图 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_sc]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[v_sc] go create view v_sc as select ustudent.sname, usc.*, cname, credit, pcid, chour, cattr, cnum from ustudent, usc, ucourse where ustudent.sid=usc.sid and usc.cid=ucourse.cid --1、显示所有学生的详细信息,包括学号、姓名、性别、年龄、班级名称,入学年份select sid, sname, ssexy, sage, gname, gyear from v_stu --2、显示信息科学与技术系同学的名单,包括学号、姓名、性别、年龄、班级名称、入学年份 select sid, sname, ssexy, sage, gname, gyear from v_stu where dname='信息科学与技术系' --3、显示选修了“数据库”的所有同学的学号、姓名 select sid, sname from v_sc where cname='数据库' --4、显示白云同学的班主任老师的姓名、联系电话 select tname, tele from v_stu

JAVA实验6答案

广东海洋大学学生实验报告书(学生用表) 实验名称实验六. Java的接口与实现课程名称Java程序设计与开发 技术 课程号16232204 学院(系) 信息学院专业计算机科学与技术班级计科 学生姓名学号实验地点钟海楼 04019 实验日期 2015年 10月26日 一、实验目的 (1)学习掌握Java中类怎样实现接口、接口回调技术; (2)学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE开发工具的PC机。 四、实验内容和步骤 实验1 代码如下: Estimator.java interface CompurerAverage{ public double average(double x[]); } class Gymnastics implements CompurerAverage{ public double average(double x[]){ int count=x.length; double aver=0,temp=0; for(int i=0;i

for(int i=1;i2) aver=aver/(count-2); else aver=0; return aver; } } class School implements CompurerAverage{ public double average(double[] x){ int count=x.length; double sum=0; for(int i=0;i

实验5(2) 参考答案

实验5(2) 类的继承与派生 参考答案 一、实验目的与实验要求 (1)掌握单继承和多重继承下派生类的定义方法,理解基类成员在不同的继承方式下不同的访问属性。 (2)正确定义派生类的构造函数与析构函数,理解定义一个派生类对象时构造函数、析构函数的调用次序。 (3)理解同名冲突的产生原因,会使用虚基类来解决第三类同名冲突问题,并理解引入虚基类后构造函数、析构函数的调用顺序。 (4)理解赋值兼容的相关使用方法。 二、实验内容 题目1:定义一个车基类,派生出自行车类和汽车类,并以自行车类和汽车类为基类共同派生出摩托车类,每个类都要定义带有参数的构造函数。自行车类分别使用private、protected、public三种方式来继承车基类,观察基类成员在派生类中的访问属性;观察自行车类、汽车类和摩托车类对象定义时构造、析构函数的调用顺序。最后将车基类定义为虚基类再观察程序运行结果。题目的具体要求如下。 ①定义基类V ehicle,它具有两个保护成员变量:MaxSpeed、Weight,有3个公有的成员函数:Run( )、Stop( )、Show( ),以及带参数的构造函数、析构函数;再定义一个从Vehicle 公有继承的Bicycle类,增加保护属性的成员变量Height,定义Bicycle类的构造函数、析构函数,改造Show函数,用于输出本类中的完整信息。main( )函数中定义Bicycle类对象,观察构造函数和析构函数的执行顺序,以及各成员函数的调用。使用跟踪的方法观察程序运行的每一步究竟调用的是哪一个函数。 ②在上一步基础上,将继承方式分别修改为protected和private,再重新编译,观察这时的报错信息并进行分析。 ③将Bicycle类的继承方式恢复为public,代码回到①的状态,再在Bicycle类下面增加一个第二层汽车类Car的定义,Car也是公有继承基类Vehicle,其中增加了一个保护成员变量SeatNum,表示汽车有几个座位,其定义方式与类Bicycle类似。主函数中定义该类对象,观察运行结果。 ④在上一步的基础上,再定义一个第三层类MotorCycle,该类以公有方式继承了第二层的Bicycle和Car类。定义其构造函数,要调用两个直接基类的构造函数,再改造函数Show( ),输出所有四个成员变量的信息。主函数中只定义类MotorCycle的对象并调用相应的函数,代码请参考实验指导1的④。程序进行编译,会产生4个错误、8个警告,因为存在二义性问题,在同名成员前增加“基类名::”以消除二义性直到程序正确,观察运行结果。 ⑤再将代码恢复至上一步未修改前,即存在4个错误、8个警告的状态,再作一定的修改,将Vehicle声明为虚基类以消除二义性,同时修改第三层类的构造函数,其余代码不变,具体请参考实验指导1的⑤。观察运行结果,理解此时构造函数、析构函数的调用顺序及用虚基类消除二义性的原理。 参考程序如下:

实验5-数组答案

VB程序设计实验五 实验目的 ●掌握一维数组和二维数组的操作 ●学习跟数组相关的控件:列表框和组合框 复习 1.列表框 列表框(ListBox)控件允许用户查看和选择列表中的多个元素。 表5-11 列表框的常用属性和事件 2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox) 右边加上一个向下箭头的样式显示。有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。 表5-13 组合列表框的常用属性和事件

(1) Items.Count属性:列表框或组合框中项目数量。最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。 (2) Text属性:被选定的选项的文本内容。该属性只能在程序中设置或引用。 注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。 (3) Items.Add方法 把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add("周海涛") (4) Insert方法 在指定位置插入一个项目。格式:对象.Items.Insert(序号, 添加项内容) (5)Items.Remove方法 从列表框中删除指定的项。格式:对象. Items.Remove (选项)。 例如:ListBox1.Items.Remove ("华成") (6)Items.RemoveAt方法 格式:对象.RemoveAt(Index) 从列表框中删除指定的项。Index表示被删除项目在列表框中的位置,从0开始。 例如:ListBox1.Items.RemoveAT(4) (7) Items.Clear方法 格式:对象.Items.Clear 用于清除列表框所有项目,例如:ListBox1.Items.Clear 4.单选按钮、复选框和框架 1)单选按钮(RadioButton) 单选按钮以组的形式出现,允许选择其中一项。 ?Text属性:按钮上显示的文本 ?TextAlign属性:文本对齐方式 ?Checked属性:表示单选按钮的状态,True ——被选定,False ——未被选定?Click事件:单击后,使Checked属性为True ?CheckedChanged事件:当某个单选按钮的状态被发生变化,该事件随之被触发。2)复选框(CheckBox) 与RadioButton具有相同属性和事件,之外还有: ?CheckState属性:表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色 3)框架(GroupBox分组框) ?Text属性:标题文本 ?Enabled属性:框架和其中的控件

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

JAVA实验6答案

GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 实验六.Java 的接口与实现 课程名称JaVa 程序设计与开发 课程号16232204 技术 实验地点钟海楼实验日期 2015年 04019 10 月 26 日 、实验目的 (1) 学习掌握Java 中类怎样实现接口、接口回调技术; (2) 学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE 开发工具的PC 机。 四、实验内容和步骤 实验1 代码如下: Estimator.java in terface Compu rerAverage{ p ublic double average(double x[]); } class Gymn astics imp leme nts Compu rerAverage{ p ublic double average(double x[]){ int coun t=x.le ngth; double aver=0,te mp=0; for(i nt i=0;i

aver=aver+x[i]; } if(cou nt>2) aver=aver/(co un t-2); else aver=0; retur n aver; } } class School impi eme nts Compu rerAverage{ p ublic double average(double[] x){ int coun t=x.le ngth; double sum=0; for(i nt i=0;i

相关文档
最新文档