白菜粉条汤
make life remembered
  • 首页
  • 分类
    • 随语
    • 杂志
    • 外贸
    • 技术
    • 图片
    • 电影
    • 音乐
    • 饮食
    • 大学
  • 关于
杂志

数据库下载漏洞攻击技术

by 曾经沧海 2006年3月22日

作为脚本漏洞的头号杀手锏——数据库下载漏洞,现在已经被越来越多的人所熟知。在这个信息化技术更新飞快的时代,漏洞产生后随之而来的就是各种应对的招数,比如改数据库的后缀、修改数据库的名字等等。很多人以为只要这么做就可以解决问题了,但事实往往不如你我所愿,即使你这么做了也难逃被高手攻击的命运。为此我们有必要去了解一些攻击的手法,来增强自己的安全技能。 

1.强制下载后缀名为ASP、ASA的数据库文件

大多数的网管为了节省时间,网站上的文章系统、论坛等程序都是直接下载别人的源程序再经过部分修改后使用的。而现在很多人做的ASP源程序都已经将数据库的后缀由原先的MDB改为了ASP或ASA。本来这是好事,但在这个信息极度膨胀的社会,老的方法所能维持的时间毕竟有限。对于ASP或ASA后缀的数据库文件,黑客只要知道它们的存放位置,就能轻易地用迅雷这样的下载软件下载得到。

2.致命符号——#

很多网管以为在数据库前面加个#号就可以防止数据库被下载。是啊,我当时也认为IE是无法下载带有#号的文件的(IE会自动忽略#号后面的内容)。但是“成也萧何,败也萧何”,我们忘记了网页不仅能通过普通的方法访问,而且用IE的编码技术也能访问到。

在IE中,每个字符都对应着一个编码,编码符%23就可以替代#号。这样对于一个只是修改了后缀并加上了#号的数据库文件我们依然可以下载。比如#data.mdb为我们要下载的文件,我们只要在浏览器中输入%23data.mdb就可以利用IE下载该数据库文件,这样一来,#号防御手段就形同虚设一般。

3.破解Access加密数据库易如反掌

有些网管喜欢对Access数据库进行加密,以为这样一来就算黑客得到了数据库也需要密码才能打开。但事实正好相反,由于Access的加密算法太脆弱,所以黑客只要随便到网上找一个破解Access数据库密码的软件,不用几秒钟就能得到密码。这样的软件网上有很多,比如Accesskey。

4.瞬杀——数据暴库技术

本身数据库暴库技术应该是属于脚本漏洞的行列,之所以拿到这里来说是因为它在数据库下载漏洞中起到了举足轻重的作用,如果仔细一点,读者会发现上面的技巧都是假定知道数据库名的情况下才能实施的。但很多时候我们根本不可能知道数据库的名字,这时我们可能会感到很沮丧,觉得无法再进行下去,但数据库暴库技术的出现不仅可以一扫我们的沮丧情绪,也能让我们真正地将前面的技术综合起来利用。

很多人在用ASP写数据连接文件时,总会这么写(conn.asp):

……

db="data/rds_dbd32rfd213fg.mdb"

Set conn = Server.CreateObject("ADODB.Connection")

connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)

conn.Open connstr

function CloseDatabase

Conn.close

Set conn = Nothing

……

这段语句看上去觉得并没什么问题,而且数据库的名字取得很怪,如果没有数据库暴库技术我们能猜到这样的数据库名的几率几乎为零。但就是这么简短的语句却隐藏着无限的信息。可以说网上绝大部分的程序都存在这个漏洞。我们只要将地址栏上在数据连接文件conn.asp(一般为这个)前的/用%5c替代就可以暴到数据库的位置,接下来的事情应该不需要我说了吧?大家只要开动脑筋没有什么事情是做不成的。

2006年3月22日 0 评论 858 阅读
大学

C++实验

by 曾经沧海 2006年3月21日

C++实验三
点击下载
(1)/////////////////////////////////////////////
# include <iostream.h>
void main(){
    char ch;
    int nnum=0,nspace=0,nchar=0;
    cout<<"请输入一段文本:"<<endl;
    do{
        ch=cin.get();
        if(ch>=48 && ch<=57){
            nnum++;}
        else if(ch==32)        {
            nspace++;}
        else
        {nchar++;}
    }
    while (ch!=EOF);
    
    cout<<"数字个数"<<nnum<<endl;
    cout<<"空格个数"<<nspace<<endl;
    cout<<"其他字符个数"<<nchar-2<<endl;
}
(2)///////////////////////////////////////////
# include <iostream.h>
void main()
{
int day,month,year,sum,leap;
cout<<"please input year,month,day"<<endl;
cin>>year>>month>>day;

switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:cout<<"data error"<<endl;break;
}
sum=sum+day;

if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
    leap=1;
else
    leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
cout<<"It is the "<<sum<<"th day."<<endl;
}
———————————————————————————-
C++实验四
点击下载
# include <iostream.h>

int a,b,min,max;
char inn;

void input();
void process();
void output();

void main()
{
input();
} 

void input()
{
cout<<"请输入第一个数据:";
cin>>a;
cout<<"请输入第二个数据:";
cin>>b;
process();
output();
}

void process()
{
min=a<b?a:b;
max=a>b?a:b;
while(max%min!=0)
  {
  int temp=min;
    min=max%min;
    max=temp;
  }
}

void output()
{
cout<<"最大公约数:"<<min<<endl;
cout<<"继续<Y(yes)> OR <N(no)>?"<<endl;
cin>>inn;

while ( inn==89 || inn==121 || inn==78 || inn==110)
{
  if (inn==89 || inn==121)
    input();
  if (inn==78 || inn==110)
    break;
}  
  
}
////////////////////////////////////////////////////////////////
实验五(1)
#include<iostream.h>
double fun(double);
void main()
{
while(1){
int m=0,n=0; 
cout<<"请输入m的值:"<<endl;
cin>>m;
cout<<"请输入n的值:"<<endl;
cin>>n;
if(n>=m)
cout<<"结果为:"<<fun(n)/(fun(m)*fun(n-m))<<endl;
else
 cout<<"数据大小不合适!"<<endl;
cout<<"继续?<y/n>"<<endl;
char yn;
cin>>yn;
if (yn=='n')  break;
}
}
double fun(double x)
{
double y;
if (x==0||x==1) y=1;
    else
        y=x*fun(x-1);
return y;
}
//////////////////////////////////////////////////////////////////
实验六
//定义一个圆类(Circle),
//属性为半径和周长、面积,
//操作为输入半径并计算周长、面积,
//输出半径、周长和面积。
//要求定义构造函数和拷贝构造函数。
#include<iostream.h>
class Circle{
    private:
        float R;//半径
        const float PI;//pi
    public:
        void Circle::registCircle(float);
        float outr(void);
        float outc(void);
        float outs(void);
};
void Circle::registCircle(float r)
{
    R=r;
    PI=3.1415926;
}
float Circle::outr(void)
{
    return(R);
}

float Circle::outc(void)
{
    float c;
    c=2*PI*R;
    return(c);
}

float Circle::outs(void)
{
    float s;
    s=PI*R*R;
    return(s);
}

void main()
{
    Circle yuan;
    float rr;
    cout<<"请输入圆半径:"<<endl;
    yuan.registCircle(rr);
    cout<<"圆的半径为:"<<yuan.outr();
    cout<<"圆的周长为:"<<yuan.outc();
    cout<<"圆的面积为:"<<yuan.outs();
}

2006年3月21日 0 评论 901 阅读
杂志

STRASSEN算法 ^^^

by 曾经沧海 2006年3月20日

一、STRASSEN算法 
#include<iostream.h>
#include<math.h>
#include<memory.h>

//enum   error   {wrong,right,overflow};

void   mutrixMul(int   **a,int   **b,int   **c,int   n);
void   main(void)
{
int   n;

cout<<"please   intput   the   demi   of   matrix:"<<endl;
cin>>n;
int   *a=new   int[n*n];
int   *b=new   int[n*n];
int   *c=new   int[n*n];
//初始化
cout<<"Input   the   elements   of   the   first:"<<endl;
for(int   counter=0;counter<n*n;counter++)
{
cin>>a[counter];
}
//需要清空、!!!
cout<<"your   intput   is:"<<endl;
for(counter=0;counter<n*n;counter++)
{
if(counter%n<n/2)
cout<<endl;
cout<<a[counter]<<"   ";
}

cout<<endl<<"Input   the   elements   of   the   secong:"<<endl;
for(counter=0;counter<n*n;counter++)
{
cin>>b[counter];
}
cout<<"your   intput   is:"<<endl;
for(counter=0;counter<n*n;counter++)
{
if(counter%n<n/2)
cout<<endl;
cout<<b[counter]<<"   ";
}

mutrixMul(&a,&b,&c,n);

cout<<endl<<"the   answer   is:"<<endl;
for(counter=0;counter<n*n;counter++)
{
if(counter%n<n/2)
cout<<endl;
cout<<c[counter]<<"   ";
}
cout<<endl;
}
void   mutrixMul(int   **a,int   **b,int   **c,int   n)
{
if(n==1)
{
// **c=2;
(*c)[0]=(*a)[0]*(*a)[0];
}
else
{
int   *a1=new   int[n*n/4];
int   *a2=new   int[n*n/4];
int   *a3=new   int[n*n/4];
int   *a4=new   int[n*n/4];
//为a申请四部分动态空间。

int   *b1=new   int[n*n/4];
int   *b2=new   int[n*n/4];
int   *b3=new   int[n*n/4];
int   *b4=new   int[n*n/4];
//为b申请。

int   *c1=new   int[n*n/4];
int   *c2=new   int[n*n/4];
int   *c3=new   int[n*n/4];
int   *c4=new   int[n*n/4];
int   *c5=new   int[n*n/4];
int   *c6=new   int[n*n/4];
int   *c7=new   int[n*n/4];
int   *c8=new   int[n*n/4];

int   a1counter,a2counter,a3counter,a4counter;
a1counter=a2counter=a3counter=a4counter=0;
int   b1counter,b2counter,b3counter,b4counter;
b1counter=b2counter=b3counter=b4counter=0;
int   c1counter,c2counter,c3counter,c4counter;
c1counter=c2counter=c3counter=c4counter=0;
int   c5counter,c6counter,c7counter,c8counter;
c5counter=c6counter=c7counter=c8counter=0;

//把a细分到a1,a2,a3,a4四个矩阵;
for(int   i=0;i<n*n/2;i++)
{
if(i%n<n/2)
{
a1[a1counter]=(*a)[i];
a1counter++;
}
else
{
a2[a2counter]=(*a)[i];
a2counter++;
}
}
for(i=n*n/2;i<n*n;i++)
{
if(i%n<n/2)
{
a3[a3counter]=(*a)[i];
a3counter++;
}
else
{
a4[a4counter]=(*a)[i];
a4counter++;
}
}
//把b细分到b1,b2,b3,b4四个矩阵;
for(i=0;i<n*n/2;i++)
{
if(i%n<n/2)
{
b1[b1counter]=(*b)[i];
b1counter++;
}
else
{
b2[b2counter]=(*b)[i];
b2counter++;
}
}
for(i=n*n/2;i<n*n;i++)
{
if(i%n<n/2)
{
b3[b3counter]=(*b)[i];
b3counter++;
}
else
{
b4[b4counter]=(*b)[i];
b4counter++;
}
}
        mutrixMul(&a1,&b1,&c1,n/2);
        mutrixMul(&a2,&b3,&c2,n/2);

        mutrixMul(&a1,&b2,&c3,n/2);
        mutrixMul(&a2,&b4,&c4,n/2);

mutrixMul(&a3,&b1,&c5,n/2);
        mutrixMul(&a4,&b3,&c6,n/2);

        mutrixMul(&a3,&b2,&c7,n/2);
        mutrixMul(&a4,&b4,&c8,n/2);

//
for(i=0;i<n*n/2;i++)
{
if(i%n<n/2)
{
(*c)[i]=c1[c1counter]+c2[c2counter];
c1counter++;
c2counter++;

}
else
{
(*c)[i]=c3[c3counter]+c4[c4counter];
c3counter++;
c4counter++;
}
}
for(i=n*n/2;i<n*n;i++)
{
if(i%n<n/2)
{
(*c)[i]=c5[c5counter]+c6[c6counter];
c5counter++;
c6counter++;
}
else
{
(*c)[i]=c7[c7counter]+c8[c8counter];
c7counter++;
c8counter++;
}
}

delete   a1,a2,a3,a4,b1,b2,b3,b4;
delete   c1,c2,c3,c4,c5,c6,c7,c8;
}
} 
/////////////////////////////////////
二
*此程序为用改进Strassen分治法来解决矩阵乘法*/
/*新增功能:能禁止对阶数为非2的N次方的矩阵进行运算*/
#include<stdio.h>
#define   M   100
struct   matrix
{
int   m[32][32];
};

int   Judgment(int   n) /*判断是否为2的N次方的函数*/
{
int   flag,temp=n;
while(temp!=1   &&   temp%2==0)
{
if(temp%2==0)   temp/=2;
else   flag=1;
}
if(temp==1)   flag=0;
return   flag;
}

void   Divide(matrix   &d,matrix   &d11,matrix   &d12,matrix   &d21,matrix   &d22,int   n)
/*将一个大矩阵拆分成四个小矩阵的函数*/
{
int   i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
d11.m[i][j]=d.m[i][j];
d12.m[i][j]=d.m[i][j+n];
d21.m[i][j]=d.m[i+n][j];
d22.m[i][j]=d.m[i+n][j+n];
}
}

matrix   Merge(matrix   a11,matrix   a12,matrix   a21,matrix   a22,int   n)
/*将四个小矩阵合并成一个大矩阵的函数*/
{
int   i,j;
matrix   a;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
a.m[i][j]=a11.m[i][j];
a.m[i][j+n]=a12.m[i][j];
a.m[i+n][j]=a21.m[i][j];
a.m[i+n][j+n]=a22.m[i][j];
}
return   a;
}

matrix   AdhocMatrixMultiply(matrix   x,matrix   y) /*阶数为2的矩阵乘法函数*/
{
int   m1,m2,m3,m4,m5,m6,m7;
matrix   z;

m1=(x.m[1][1]+x.m[1][2])*y.m[1][1];
m2=x.m[1][2]*(y.m[2][1]-y.m[1][1]);
m3=(x.m[2][1]+x.m[2][2])*y.m[2][2];
m4=x.m[2][1]*(y.m[1][2]-y.m[2][2]);

m5=(x.m[1][2]+x.m[2][1])*(y.m[1][1]+y.m[2][2]);
m6=(x.m[2][1]-x.m[1][1])*(y.m[1][1]+y.m[1][2]);
m7=(x.m[1][2]-x.m[2][2])*(y.m[2][2]+y.m[2][1]);
z.m[1][1]=m1+m2;
z.m[1][2]=m5-m1+m4-m6;
z.m[2][1]=m5-m3+m2-m7;
z.m[2][2]=m3+m4;

return   z;
}

matrix   MatrixPlus(matrix   f,matrix   g,int   n) /*矩阵加法函数*/
{
int   i,j;
matrix   h;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
h.m[i][j]=f.m[i][j]+g.m[i][j];
return   h;
}

matrix   MatrixMinus(matrix   f,matrix   g,int   n) /*矩阵减法函数*/
{
int   i,j;
matrix   h;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
h.m[i][j]=f.m[i][j]-g.m[i][j];
return   h;
}

matrix   MatrixMultiply(matrix   a,matrix   b,int   n) /*矩阵乘法函数*/
{
int   k;
matrix   a11,a12,a21,a22;
matrix   b11,b12,b21,b22;
matrix   c11,c12,c21,c22,c;
matrix   m1,m2,m3,m4,m5,m6,m7;
k=n;
if(k==2)
{
c=AdhocMatrixMultiply(a,b);
return   c;
}
else
{ 
k=n/2;
Divide(a,a11,a12,a21,a22,k); //拆分A、B、C矩阵
Divide(b,b11,b12,b21,b22,k);
Divide(c,c11,c12,c21,c22,k);

m1=MatrixMultiply(MatrixPlus(a11,a12,n/2),b11,k);
m2=MatrixMultiply(a12,MatrixMinus(b21,b11,k),k);
m3=MatrixMultiply(MatrixPlus(a21,a22,k),b22,k);
m4=MatrixMultiply(a21,MatrixMinus(b12,b22,k),k);
m5=MatrixMultiply(MatrixPlus(a12,a21,k),MatrixPlus(b11,b22,k),k);
m6=MatrixMultiply(MatrixMinus(a21,a11,k),MatrixPlus(b11,b12,k),k);
m7=MatrixMultiply(MatrixMinus(a12,a22,k),MatrixPlus(b22,b21,k),k);
c11=MatrixPlus(m1,m2,k);
c12=MatrixPlus(MatrixMinus(m5,m1,k),MatrixMinus(m4,m6,k),k);
c21=MatrixPlus(MatrixMinus(m5,m3,k),MatrixMinus(m2,m7,k),k);
c22=MatrixPlus(m3,m4,k);

c=Merge(c11,c12,c21,c22,k); //合并C矩阵
return   c;
} 
}

void   main()
{
int   i,j,n;
matrix   A,B,C={0};
while(n!=0)
{
printf("请输入矩阵的阶数N:\n");
scanf("%d",&n);
if(n==0)   break;
else
if(Judgment(n)==0) //判断矩阵的阶是否为2的N次方
{
printf("请输入矩阵A:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&A.m[i][j]);
printf("请输入矩阵B:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&B.m[i][j]);
if(n==1)   C.m[1][1]=A.m[1][1]*B.m[1][1]; //矩阵阶数为1时的特殊处理 
else   C=MatrixMultiply(A,B,n);

printf("矩阵C为:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
printf("%8d%c",C.m[i][j],j==n?'\n':'   ');
}
else   printf("矩阵的阶数不是2的N次方!\n\n\n");
}
}
/*此程序用递归分治法解决矩阵乘法问题。
    当N=2时,矩阵可直接计算出来。
    当N>2时,可以继续将矩阵分块,直到子矩阵的阶降为2。*/

2006年3月20日 0 评论 1.1K 阅读
杂志

打针(1)

by 曾经沧海 2006年3月15日

昨天头疼,去校医院打针,又因为咳嗽,医生要我先打屁股,再打掉针。
拿了药,去注射室,医生开始打针。我就准备接受痛苦。
针刚刚插进去,医生就问:“今天早餐吃什么?”
“恩,河粉……”(奇怪,打针跟吃饭有关系吗)
“哦,那吃了多少啊?”
“不是很多……一碗吧……”(吃多了打针不好吗?说实话,边打针边还要边努力回答问题真的很难,屁股好疼!)
“哦……”(打完了)
“医生,边打针边说话很疼啊,……”
“怎么会啊,我是为了吸引你的注意力,这会减轻疼痛的!”
“?!!?!?”(确实很疼!!) [sweat]

2006年3月15日 0 评论 908 阅读
杂志

C++

by 曾经沧海 2006年3月14日

题目:输入某年某月某日,判断这一天是这一年的第几天?

    程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

程序源代码:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
 case 1:sum=0;break;
 case 2:sum=31;break;
 case 3:sum=59;break;
 case 4:sum=90;break;
 case 5:sum=120;break;
 case 6:sum=151;break;
 case 7:sum=181;break;
 case 8:sum=212;break;
 case 9:sum=243;break;
 case 10:sum=273;break;
 case 11:sum=304;break;
 case 12:sum=334;break;
 default:printf("data error");break;
}
sum=sum+day;  /*再加上某天的天数*/
 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);}

2006年3月14日 0 评论 644 阅读
大学

C++实验要求

by 曾经沧海 2006年3月14日

点击下载
第二部分     实 验 大 纲

实验一  熟悉Visual C++集成开发环境(IDE)
实验目的
1.    了解: VC6.0面向对象集成开发环境(IDE)
2.    掌握:这个具体的集成开发环境(IDE)的工作方式
实验内容
1.    熟悉VC6.0IDE程序设计环境
2.    利用VC6.0编制简单小程序并执行,尽可能测试该面向对象语言的各个方面

实验二  流程控制语句(一):条件和开关语句
实验目的
1.    掌握:条件语句的使用
2.    掌握:开关语句的使用
实验内容
1.    编程实现求解一元二次方程ax2+bx+c=0的根。
2.    输入一门课程的成绩,若高于90分,输出“A Grade”;若高于80而低于90,输出“B Grade”;高于70而低于80,输出“C Grade”;高于60而低于70,输出“D Grade”;否则输出“Not Passed”。用if-else 嵌套和switch语句两种方法实现。

实验三  流程控制语句(二):循环语句 枚举法 递推法 迭代法
实验目的
1.    掌握3种循环结构while、do-while和for的区别与联系,如何相互转换,并能正确使用;掌握与循环语句相关的break和continue语句的使用。
2.    掌握常用算法:枚举法 、递推法 、迭代法。
实验内容
1.    输入若干字符,统计其中数字字符、空白字符和其他字符的个数,输入EOF结束。
2.    设计一个程序,输入某天是几月几日,要求算出这一天是本年的第几天。

实验四  函数的参数传递、变量的存储类别与作用域
实验目的
1.    掌握函数的定义及调用。
2.    掌握函数的参数传递,形参、实参的关系,函数原型;
3.    掌握变量的存储类别及它们之间的差别;作用域概念,全局变量与局部变量的比较。
实验内容
1.    全局变量、局部变量和静态局部变量的应用。
2.    设计一个求两个数最大公约数的通用函数,算法不限,要求能反复输入数据并输出最大公约数。

实验五  函数的递归算法和函数的重载
实验目的
1.    掌握函数的嵌套调用、递归调用,掌握递归法编程;
2.    了解内联函数、重载函数、带默认参数函数的定义及使用;
3.    掌握程序的多文件组织。
实验内容
1.    求组合数,Cmn =n!(m!(n-m)!)
2.    用欧几里德算法计算两个数的最大公约数,分别用递推和递归两种方法实现。

实验六  类与对象的实践
实验目的
通过实验掌握面向对象的基本概念,类的定义方法,类成员的访问权限和访问类成员的方法;构造函数与构析函数
实验内容
定义一个圆类(Circle),属性为半径和周长、面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。要求定义构造函数和拷贝构造函数。

实验七  友元及运算符重载的应用
实验目的
1.    掌握友元函数和友元类的应用。
2.    掌握运算符重载为成员函数和友元函数的方法。
实验内容
改善复数类,增加重载的运载符:-、-=、*=和/=,实现完整的复数的加减乘除运算。要求分别重载为成员函数和友元函数。

实验八  继承与派生
实验目的
1.    初步掌握继承与派生的关系及方法;
2.    在派生类构造函数中初始化基类成员;
3.    多重继承的方法;
4.    了解MFC主要类的派生关系。
实验内容
定义一个点类,包含X,Y的坐标数据成员,显示函数和计算面积的函数成员;以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积的函数;定义一个直线类,以两个点类对象作数据成员,定义显示、求面积及长度函数。

实验九  虚函数与多态
实验目的
在掌握继承与派生的关系的基础上,进一步理解需函数与多态性的关系,实现运行时的多态性
实验内容
使用虚函数和抽象基类实现:定义一个点类,包含X,Y的坐标数据成员,显示函数和计算面积的函数成员;以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积的函数;定义一个直线类,以两个点类对象作数据成员,定义显示、求面积及长度函数。

实验十  流类库与标准设备输入输出
实验目的
1.    掌握输入/输出的格式控制。
2.    掌握流操作子。
3.    熟悉标准设备的输入/输出。
实验内容
编程实现以下数据输入/输出:
1.    分别以左和右对齐方式输出整数,域宽为12;
2.    以八进制、十进制、十六进制输入/输出整数;
3.    实现浮点数的指数格式和定点格式的输入/输出,并指定精度;
4.    把字符串读入字符型数组变量中,从键盘输入;
5.    以上要求用流成员函数和流操作子各做一遍。

实验十一  文件处理
实验目的
1.    文件流的打开、读写与关闭。
2.    文件的随机访问。
3.    用构造函数打开文件来创建对象,用析构函数撤消对象并存入文件。
实验内容
建立一个应用程序,包括数据输入、存盘、读盘、操作数据后存储。通过随机数函数rand( )产生20个整数,逐个将这些数以二进制方式写入文件file.dat中。然后读出这些数,在内存中对他们进行增序排序,再将排序后的数以文本方式逐个写入file.out文件中。

实验十二  小型系统的设计
实验目的
1.掌握采用面向对象的系统设计方法
2.掌握采用面向对象的数据库设计方法
3.了解:用面向对象的程序设计思想,在OO环境下设计一个小型系统。
实验内容
1.    利用面向对象进行系统设计,可选图书管理系统、音像制品管理系统、进销存管理系统、人事管理系统等进行设计。
2.    尽量利用现有的类库,降低开发强度。

2006年3月14日 0 评论 899 阅读
杂志

头痛!!

by 曾经沧海 2006年3月13日

头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!头痛!!

2006年3月13日 0 评论 727 阅读
杂志

我的广播电台

by 曾经沧海 2006年3月13日

我的电台:
http://221.baivi.com:6021 
今天玩了下Windows Media 编码器,自己建了个播放服务器,可以自己过下播音的瘾了,不过只能在校园网听,因为就是我的机当服务器,又建立了http://221.baivi.com:6021 域名指向172.18.0.146,我的 IP,感觉还不错,但是一定要用Windows Media 播放器打开,为什么用浏览器不行呢?要是 直接用浏览器可以打开然后自动调用播放器不是更方便?

  mms://221.baivi.com:6021 
直接在地址栏输入上面的就可以自动打开WINMEDIA了!

2006年3月13日 0 评论 744 阅读
杂志

又是周末

by 曾经沧海 2006年3月10日

好无聊的周末啊!!
本来打算趁星期天好好看部大片的,却有那么多的事情烦,天天作业好多,都没有时间做,自己都不知道在干什么,天天在改老哥的网站,也不知道什么时候可以改好,又想自己也做点什么出来,不过想的太多,却一样都没有做成!
看来我的"综合处理能力还不行啊!","平衡能力",TMD,真的不知道怎么办了.
数值分析没看过,离散数学不在的怎么样,物理学没有课本,软件工程没有上过……

2006年3月10日 0 评论 708 阅读
大学

筝完成

by 曾经沧海 2006年3月8日

[file=uploads/200603/08_204647_.ppt]点击下载[/file]

2006年3月8日 0 评论 698 阅读
加载更多

热门

  • 无线餐饮点菜系统–去年的毕业设计

    2008年9月21日 36 评论 7.6K 阅读
  • Magento设置Paypal支付步骤

    2011年5月29日 1 评论 3.8K 阅读
  • 垃圾

    2017年3月12日 0 评论 2.9K 阅读
  • 记录

    2007年10月6日 0 评论 2.7K 阅读
  • 办公室的两只猫

    2017年12月19日 0 评论 2.6K 阅读

最新

  • 清明回了襄樊了

    2026年4月7日 0 评论 135 阅读
  • 十一月初七

    2025年12月26日 0 评论 287 阅读
  • 无题

    2025年11月28日 0 评论 340 阅读
  • 喝酒

    2025年9月3日 0 评论 497 阅读
  • Zammad登录CSRF token verification failed错误

    2025年6月17日 0 评论 662 阅读

分类

  • 图片 (71)
  • 外贸 (6)
  • 大学 (103)
  • 技术 (76)
  • 杂志 (290)
  • 电影 (13)
  • 资源 (1)
  • 随语 (93)
  • 音乐 (96)
  • 饮食 (3)

归档

  • 2026 年 4 月 (1)
  • 2025 年 12 月 (1)
  • 2025 年 11 月 (1)
  • 2025 年 9 月 (1)
  • 2025 年 6 月 (3)
  • 2025 年 4 月 (1)
  • 2025 年 2 月 (2)
  • 2025 年 1 月 (1)
  • 2024 年 12 月 (2)
  • 2024 年 10 月 (1)
  • 2024 年 9 月 (1)
  • 2024 年 7 月 (1)
  • 2024 年 6 月 (2)
  • 2023 年 9 月 (1)
  • 2023 年 6 月 (1)
  • 2023 年 5 月 (3)
  • 2023 年 4 月 (4)
  • 2023 年 3 月 (3)
  • 2023 年 2 月 (3)
  • 2023 年 1 月 (27)
  • 2021 年 8 月 (2)
  • 2021 年 1 月 (1)
  • 2020 年 3 月 (1)
  • 2019 年 3 月 (1)
  • 2017 年 12 月 (2)
  • 2017 年 3 月 (2)
  • 2011 年 10 月 (3)
  • 2011 年 8 月 (1)
  • 2011 年 7 月 (1)
  • 2011 年 5 月 (1)
  • 2011 年 4 月 (1)
  • 2011 年 1 月 (2)
  • 2010 年 12 月 (1)
  • 2010 年 9 月 (2)
  • 2010 年 8 月 (5)
  • 2010 年 7 月 (1)
  • 2010 年 6 月 (1)
  • 2010 年 5 月 (2)
  • 2010 年 4 月 (3)
  • 2010 年 2 月 (4)
  • 2010 年 1 月 (9)
  • 2009 年 12 月 (3)
  • 2009 年 11 月 (3)
  • 2009 年 9 月 (11)
  • 2009 年 8 月 (6)
  • 2009 年 7 月 (1)
  • 2009 年 6 月 (2)
  • 2009 年 5 月 (7)
  • 2009 年 4 月 (13)
  • 2009 年 3 月 (14)
  • 2009 年 2 月 (2)
  • 2009 年 1 月 (12)
  • 2008 年 12 月 (19)
  • 2008 年 11 月 (1)
  • 2008 年 10 月 (9)
  • 2008 年 9 月 (12)
  • 2008 年 8 月 (5)
  • 2008 年 7 月 (7)
  • 2008 年 6 月 (13)
  • 2008 年 5 月 (4)
  • 2008 年 4 月 (10)
  • 2008 年 3 月 (7)
  • 2008 年 2 月 (7)
  • 2008 年 1 月 (11)
  • 2007 年 12 月 (4)
  • 2007 年 11 月 (8)
  • 2007 年 10 月 (30)
  • 2007 年 9 月 (25)
  • 2007 年 8 月 (29)
  • 2007 年 7 月 (32)
  • 2007 年 6 月 (2)
  • 2007 年 4 月 (1)
  • 2007 年 3 月 (2)
  • 2007 年 2 月 (5)
  • 2007 年 1 月 (7)
  • 2006 年 12 月 (11)
  • 2006 年 11 月 (24)
  • 2006 年 10 月 (13)
  • 2006 年 9 月 (16)
  • 2006 年 8 月 (21)
  • 2006 年 7 月 (18)
  • 2006 年 6 月 (9)
  • 2006 年 5 月 (27)
  • 2006 年 4 月 (44)
  • 2006 年 3 月 (21)
  • 2006 年 2 月 (9)
  • 2006 年 1 月 (6)
  • 2005 年 12 月 (12)
  • 2005 年 11 月 (17)
  • 2005 年 10 月 (44)
  • 2005 年 9 月 (12)

标签

Apple (1) disaster movie (1) engine friendly url (1) extension (1) fuck song (1) ja slide show (1) joomla (8) joomla extension (3) Linkin Park (1) Macbook (1) magento (2) python (3) sef (2) slideshow (1) transformer (1) virtuemart (3) What I've Done (1) 一生何求 (1) 专升本 (4) 刀马旦 (1) 变形金刚 (1) 周慧敏 (2) 学生处 (6) 广告歌 (1) 成龙 (1) 我的大学 (6) 我的大学编年史 (6) 无尽的爱 (1) 樊海军 (6) 物理学系 (6) 物理系 (4) 电子信息工程 (4) 痴心换情深 (1) 神话 (1) 红颜知己 (1) 肇庆 (4) 肇庆学院 (6) 蝴蝶效应 (1) 视频 (1) 计算机系 (4) 谭咏麟 (3) 软件测试 (4) 金喜善 (1) 陈百强 (1) 黎明 (2)
  • 首页
  • 分类
    • 随语
    • 杂志
    • 外贸
    • 技术
    • 图片
    • 电影
    • 音乐
    • 饮食
    • 大学
  • 关于

@2005-2023 - 白菜粉条汤

白菜粉条汤
  • 随语
  • 杂志
  • 资源
  • 外贸
  • 技术
  • 图片
  • 电影
  • 音乐
  • 饮食
  • 大学
登入

保持登录状态,直到我退出

忘记密码了吗?

找回密码

新密码将通过电子邮件发送给您。

收到新密码了吗? Login here