高级程序设计期末考试题Word下载.docx
《高级程序设计期末考试题Word下载.docx》由会员分享,可在线阅读,更多相关《高级程序设计期末考试题Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
math.h"
structKE{intK;
floatp;
};
intclassNum;
//ClassNum为课程总数
floatp;
//P为每节课老师点名的次数
intskipNum=5;
//skipNum为John逃课次数
doublegetPossibility(inta,intb,doublep);
//用于求a(skipNum)次逃课中被点b次的概率
doublegetRealPossble(inta2,intb2,doublep2);
//求skipNum次中分别被点0-4次的概率和
voidmain()
{
intC;
cout<
<
"
Input:
endl;
cin>
>
C;
KE*ke=newKE[C];
for(inti=0;
i<
i++)
{
ke[i].K>
ke[i].p;
}
cout<
Output:
for(i=0;
{classNum=ke[i].K;
p=ke[i].p;
while
(1)
if((getRealPossble(skipNum,4,p)>
0.9)&
&
(skipNum<
classNum))
skipNum++;
else
break;
}
skipNum<
doublegetRealPossble(inta2,intb2,doublep2)
doublesumP=0;
inttempCt=b2;
while(tempCt>
=0)
sumP=sumP+getPossibility(a2,tempCt,p2);
tempCt--;
returnsumP;
/*******GetPossibility*********/
doublegetPossibility(inta,intb,doublep1)
intcountUp=1;
intsumUp=1;
doublesumALL;
intsumDown=1;
inttemp=a;
while(countUp<
=b)
sumUp=sumUp*a;
a--;
countUp++;
for(inti=1;
=b;
sumDown=sumDown*i;
sumALL=sumUp/sumDown;
returnsumALL*pow(p1,b)*pow(1-p1,temp-b);
Input
4
41
40
200.5
200.2
Output
9
*******
2.赶公交
Alfred在大学新区上学,他每个星期都要到市区学琴,因此要在每个星期六的10点钟之前赶到琴行上课,从郑大坐68路车到琴行要花整整一个小时,而68路车是每半小时一趟,整点和30分的时候会发一趟车。
这一次,Alfred起床晚了,一看表已经8点多了,匆忙收拾了一下之后,Alfred马上冲向公交站,但是,由于路况不佳,在前面的一段路上满是泥泞。
路况如下:
如左图,A(xA,yA)是Alfred现在所处的位置,B(xB,yB)是公交站(Bus-stop)的位置,其中y>
0的区域是泥泞的地面,Alfred在泥泞的地面上的移动速度是v1(米/秒),而y<
0的区域是水泥地,Alfred在水泥地上的移动速度只有v2(米/秒),其中v1<
=v2,A在第二象限,B在第四象限。
Alfred是一个物工院的学生,他稍微估算了一下,剩下的时间已经不多了,他看看表,现在离9点整只剩下T秒了(T由题目给出),Alfred想知道,他如果用最优的策略赶往公交站,今天的课是否会迟到。
输入规格:
=10,紧接着C组数据,每组数据依次给出xA,yA,xB,yB,v1,v2和T,他们的意义如上文所述,x,y坐标的单位是米,所有坐标的绝对值<
109,T是一个整数。
输出规格:
对于每组数据,输出YES或NO,表示Alfred会不会迟到。
算法:
在x轴上取P(p,0),对每组数据,给出xA,yA,xB,yB,v1,v2.,xA=<
p<
=xB,直线PxA=a,PxB=b,t=a/v1+b/v2,按循环结构,每组数据的t-T,若t-T>
=0,Yes;
t-T<
0,No.
第二题。
。
不粉我你什么心态
#include<
iostream>
cstdlib>
ctime>
cmath>
usingnamespacestd;
classzuobiao//基坐标
{protected:
doublex,y;
public:
virtualvoidrun()=0;
virtualvoidprint()=0;
doublegetX();
doublegetY();
classA:
publiczuobiao//A坐标
{public:
A(){run();
voidrun();
voidprint();
classB:
publiczuobiao//B坐标
B(){run();
}voidrun();
classAlfred//人物
Alfred(){setSpeed();
voidsetSpeed();
voidcalc();
private:
Aa;
Bb;
doublev1,v2;
doublet;
doublezuobiao:
:
getX(){returnx;
getY(){returny;
voidA:
run(){x=0-rand()%109;
y=rand()%109;
voidB:
run(){x=rand()%109;
y=0-rand()%109;
print(){cout<
坐标A:
("
x<
"
y<
)"
;
坐标B:
voidAlfred:
setSpeed()
{doublea,b;
while
(1)
{a=rand()%6;
b=rand()%6;
if(b>
=a&
a>
0)
{v2=b;
v1=a;
}}
print()
{cout<
v1="
v1<
v2="
v2;
t=rand()%150;
T="
t<
calc()
{doublei;
doublek;
//横坐标距离
k=b.getX()-a.getX();
a.print();
b.print();
print();
for(i=0;
=k;
{if((sqrt(a.getY()*a.getY()+i*i)/v1+sqrt(b.getY()*b.getY()+(k-i)*(k-i))/v2)<
=t){cout<
YSE"
return;
NO"
intmain()
{intc,i;
srand((unsigned)time(NULL));
Alfreda[10];
请输入C:
cin>
c;
{a[i].calc();
}return0;
3.货物1000吨,3辆车同时起运,大车装5吨,来回一趟2小时,中车装3吨,来回一趟1.8小时(十进制),小车装2吨,来回一趟1.6小时(十进制),并规定:
若有多辆车同时到达,装车的优先次序是:
大车≥中车≥小车。
不记装车时间。
问:
(1)最后一趟车是那种车?
(2)大、中、小车各运多少趟?
设时间为t,然后起始t=0,剩余货物为m=1000-5-2-3,对t进行循环,在循环里,分开三种判断,1,t整除20等于0,就令m-5;
2,t整除18等于0;
就令m-3;
3,t整除16=0,就令m-2;
每循环一次t自加一次;
当m<
=0时,循环结束。
此时再进行判断:
若t整除20等于0,最后为大车;
若t整除18等于0,最后为中车;
若t整除16=0,最后为小车。
大车趟数:
t/20+1;
中车趟数:
(t-1)/18+1,小车趟数:
(t-1)/16+1
stdio.h>
voidmain()
inti=0,left=1000-5-3-2;
while
(1)
{
i++;
if(i%20==0)
left-=5;
if(left<
=0)break;
if(i%18==0)
left-=3;
if(i%16==0)
left-=2;
if(i%20==0)
printf("
最后一趟是大车\n"
);
最后一趟是中车\n"
else
printf("
最后一趟是小车\n"
大车运输了%d次\n中车运输了%d次\n小车运输了%d次\n"
i/20+1,
(i-1)/18+1,(i-1)/16+1);
{intx=0,y=0,z=0;
//次数
intt=0;
//时间
intsum=1000;
inta1=5,a2=3,a3=2;
while(sum>
{if(t%20==0)//大车
{if(sum<
大车是最后一趟!
else{sum=sum-a1;
x++;
if(t%18==0)
中车是最后一趟!
else{sum=sum-a2;
y++;
if(t%16==0){if(sum<
小车是最后一趟!
else{sum=sum-a3;
z++;
}t=t+2;
}cout<
三种车运送次数如下"
"
z<
return0;
0000*********////33*****************************
二、论述题(本大题共1小题,每小题20分,共20分)
以数字图书馆的应用,论述改进Web服务器性能的有关技术。
【提示】
由于在数字化图书馆信息系统中流通着的大多是数字化的索引、文摘、全文、图像或音频视频等多媒体信息,对Web服务器性能有着较高的要求,所以一个大中型的图书馆信息系统涉及到许多方面的技术与方案。
着重讨论与Web服务器性能有关的一些内容:
从硬件实现手段(缓存服务器、均衡负载设备、Web双机镜像、CPU和网卡的提升、网络带宽扩充)和软件实现手段(三层C/S软件结构设计、应用程序部署)等两个大方面论述如何提高Web服务器的性能,以便使用户能够更快捷、高效、安全地使用应用系统。
(1)缓存服务器和均衡负载设备使用可以缓解访问瓶颈,提高网络带宽、实现均衡负载。
缓存服务器也称为cache服务器,可以存储cache静态的内容如网页、多媒体点播资源和会议实况(已压缩的、有一定格式要求的)等。
cache服务器通常放到防火墙之外,外网Web服务器之前,因此Internet用户点击网页不再直接访问网站Web服务器,而是访问cache服务器。
由于cache服务器具有多个CPU和高速大容量I/O通道,独立的OS,因此能大大缓解Internet访问瓶颈,而且也具有一定的抗黑客攻击的能力。
********目前某图书馆采用这种方式,把大数据量的静态图片、点播资源、虚拟三维应用等都事先置放在cache服务器中,即使现今只有2MInternet的接入带宽,以上应用的播放速度和效果仍能让用户满意。
************
另外一种方式采用均衡负载设备或Web双机镜像。
这种方式通过负载均衡的方法达到Web访问性能最优。
Web双机镜像是较早以前流行的方式,虽能使系统可靠性提升,但由于双机总是在互相询问对方状态,将会影响一定的访问性能。
均衡负载设备是独立于Web服务器的硬件,它和Web服务器及网站中其他服务器接在同一交换机上,通过负载调度程序为各个服务器分配工作量,从而,能达到充分利用资源,提高访问性能的目的。
只是由于某图书馆目前对外发布资源相对仍较少,只采用了少量Web服务器,因此目前的均衡负载设备作用还不显著。
(2)从Web服务器的配置来看Web服务器自身CPU个数及速度、网卡数量、Web服务器与防火墙的位置关系等,都会影响到Web服务器的性能。
从Web服务器硬件本身来讲,CPU个数的增加、网卡个数的增加、I/O信道的扩展无疑可以直接地提高Web服务器性能。
此外,由于千兆口的防火墙目前较少且费用较高,如果把Web服务器放置防火墙之后,一定会大大影响Internet访问性能。
某图书馆采用IDS(入侵侦测)+Web服务器(服务器防火墙,较低端,不会影响流量)+应用服务器+数据库服务器(防火墙,高端),分层次的安全模式,既保证了系统的安全性,又提升了网络访问性能。
另外,某图书馆还采用了SAN网络区域存储来提高服务器访问速度。
(3)三层C/S软件结构设计和应用程序的适当部署也会提高Web服务器的性能。
将业务逻辑、通用访问接口与数据等相互分离、分别置放于Web服务器、应用服务器、数据库服务器上,通过程序功能和逻辑的合理部署,也能大大改进Web服务器性能。
一般的原则是,Web服务器只需接受Internethttp访问请求,使Web只有最少的任务,把实际处理交给各个应用服务器处理,然后返回结果给Browser。
某图书馆采用这种方式专门开发了搜索引擎应用服务器和混合检索应用服务器等,达到了良好的应用效果。
事实上,Web服务器的性能提升还存在很多手段和方法,比如CPU与存储之间关系,Web交换机等等.