Welcome![Sign In][Sign Up]
Location:
Search - static

Search list

[Otherjtsz_1_debug

Description: 静态链表.这是刚刚学习数据结构的时候编写的第1个小小程序,用构造类型编写的静态链表,实现了基本的赋值,插入,删除等功能。-static List. This is just learning the structure of the data, prepared by the time a small program that will prepare the structure type static chain and achieve the basic assignment, insert, delete capabilities.
Platform: | Size: 212287 | Author: 梁志宏 | Hits:

[Otherjtsz_2_Debug

Description: 静态链表.与上一个基本相似,所不同的是用的静态数组编写的静态链表,实现了基本的赋值,插入,删除等功能。-static List. And on a basic similarity, difference is the use of static arrays prepared by the static chain and the realization of basic assignment, insert, delete capabilities.
Platform: | Size: 248566 | Author: 梁志宏 | Hits:

[Multimedia programmusicyea11

Description: PHP+Mysql组合,可跨平台、移植性高,安全可靠,快速高效; ◇ 使用通用ADODB数据库类,可轻松移植至各种其它主流数据库,如MSSQL、Oracle、Sybase等; ◇ 使用强大的通用Smarty模板引擎,彻底分离程序和页面,并有缓存机制,大大提高维护性和扩展性,可实现多种页面风格; ◇ 全部生成静态html网页,减轻服务器负载,提高访问速度,加强了安全性,更容易被搜索引擎收录; ◇ 各种系统参数轻松定制,如静态html存放目录等,因此能够满足大中型网站的需求; ◇ 可随时选择性的备份数据库、表,防止数据灾难性丢失,保证数据安全; ◇ 音乐播放器自动识别音乐格式,调用不同的插件进行播放; ◇ 默认可直接选择多种样式风格显示,令整个网站立即焕然一新; ◇ 支持批量或单个新增专辑、音乐; ◇ 支持从其它数据库导入数据至本系统; ◇ 支持二级分类,任意设置; ◇ 支持点歌和点歌管理; ◇ 支持公告发布和管理; ◇ 支持友情链接在线管理; ◇ 支持广告在线管理(升级中); ◇ 支持站内搜索; ◇ 支持评论和评论管理; ◇ 支持网上调查管理; ◇ 升级支持,有更高版本则自动提示升级。-PHP Mysql portfolio, cross-platform, portable, safe, reliable, rapid and efficient; With the use of a common database category ADODB be easily ported to a variety of other mainstream databases, such as MSSQL, Oracle, Sybase, etc.; With the use of the powerful General Smarty template engine, complete separation procedures and pages, and cache mechanisms, greatly improving maintenance and expansion, could achieve multiple page styles; Over all generated static html website, reduce server load, increase the speed and security, more easily search engine included; With the various system parameters easily Custom, such as static html storage directory, and so on to meet the needs of large and medium-sized websites; at any time, no selective backup database, the tables, to prevent catastrophic da
Platform: | Size: 443104 | Author: 杨晓波 | Hits:

[Multimedia program6429872

Description: 一个很好的FLASH播放器,拥有暂停、上一帧,下一帧等静止功能。-FLASH a good player, has suspended, on one, the next frame as static functions.
Platform: | Size: 74229 | Author: 韩波 | Hits:

[Com PortPCommDLLCSharp调用包

Description: C#程序静态调用Pcomm.dll的文件和Pcomm.dll 2.0 namespace NewPort { public class OperPComm { [DllImport("PComm.dll", EntryPoint = "sio_open")] public static extern int sio_open(int port); [DllImport("PComm.dll", EntryPoint = "sio_ioctl")] public static extern int sio_ioctl(int port,int baud , int mode); [DllImport("PComm.dll", EntryPoint = "sio_DTR")] public static extern int sio_DTR (int port, int mode);
Platform: | Size: 28304 | Author: wzwgeorge | Hits:

[Network DevelopWimax Handbook

Description: This book describes the Institute of Electrical and Electronic Engineers (IEEE) standard 802.16, more popularly known as Worldwide Interoperability for Micro Wave Access, or WiMAX. The standard, which was years in the making, was finalized in June 2004. This book will attempt to give a brief technical overview of the standard per the specification, followed by a series of discussions of how the technology can deliver the triple play of data, voice, and video. WiMAX will change telecommunications, as it is known throughout the world today. It eradicates the resource scarcity that has sustained incumbent service providers for the last century. As this technology enables a lower barrier to entry, it will allow true marketbased competition in all of the major telecommunication services: voice (mobile and static), video, and data.
Platform: | Size: 1611294 | Author: spwedasd | Hits:

[Internet-Network用D3D模拟地月系

Description:

 

 

 

  一、建立空窗体

  新建一个工程,添加引用,并导入名称空间。

  加入一个设备对象变量:

private Microsoft.DirectX.Direct3D.Device device = null;

  添加初始化图形函数,并在这里面对设备对象进行实例化:

public void InitializeGraphics()
{
 PresentParameters presentParams = new PresentParameters();
 presentParams.Windowed = true;
 presentParams.SwapEffect = SwapEffect.Flip;
 presentParams.AutoDepthStencilFormat = DepthFormat.D16;
 presentParams.EnableAutoDepthStencil = true;
 device = new Microsoft.DirectX.Direct3D.Device(0, Microsoft.DirectX.Direct3D.DeviceType.Hardware, this,  CreateFlags.HardwareVertexProcessing, presentParams);
}

  当程序执行时,需要绘制场景,代码在这个函数里:

public void Render()

{
 // 清空设备,并准备显示下一帧。
 device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black , 1.0f, 0);
 // 设置照相机的位置
 SetupCamera();
 //开始场景
 device.BeginScene();
 if(meshLoaded)
 {
  mesh.Render(meshLoc);
 }
 device.EndScene();
 //显示设备内容。
 device.Present();
}

  设置照相机的位置:

private void SetupCamera()
{
 device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1.0f, 1000.00f);
 device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f ,0.0f, 20.0f), new Vector3(0.0f,0.0f, 0.0f), new Vector3(0,1,0));
}

  现在改变主函数,调用我们写的初始化函数,并显示场景:

[STAThread]

static void Main()
{
 using (Form1 EarthForm = new Form1())
 {
  EarthForm.InitializeGraphics();
  EarthForm.Show();

  while(EarthForm.Created)
  {
   EarthForm.Render();
   Application.DoEvents();
  }
  EarthForm.Dispose();
}

  运行程序,会显示一个空的窗体。

  二、加入地球:

  在这一步里需创建一个3D网格对象,来作为要显示的地球,为此,在工程中新加入一个类Earth,此类可以包含所创建的网格对象的信息。

  加入一些相关变量,含义见注释:

public class Earth : BaseEarth
{
 private Material[] mMaterials; //保存材质
 private Texture[] mTextures; //保存纹理
 private Matrix locationOffset; //用来保存网格对象的相对位置
 private Mesh mMesh = null; //三角形网格对象
 private Device meshDevice; //需要显示在哪个设备上。
}

  在构造函数中,把Device设备拷贝到私有成员变量,这样就可以在这个类的其它方法内使用它,另外就是把位置变量进行赋值:

public Earth(ref Device device, Matrix location): base(ref device)
{
 meshDevice = device;
 locationOffset = location;
}

  下面这个函数是装入.X文件。

public bool LoadMesh(string meshfile)
{
 ExtendedMaterial[] mtrl;
 try
 {
  // 装载文件
  mMesh = Mesh.FromFile(meshfile, MeshFlags.Managed, meshDevice, out mtrl);
  // 如果有材质的话,装入它们
  if ((mtrl != null) && (mtrl.Length > 0))
  {
   mMaterials = new Material[mtrl.Length];
   mTextures = new Texture[mtrl.Length];

   // 得到材质和纹理

   for (int i = 0; i < mtrl.Length; i++)
   {
    mMaterials[i] = mtrl[i].Material3D;
    if ((mtrl[i].TextureFilename != null) && (mtrl[i].TextureFilename != string.Empty))

 

    {
     //前面得到的纹理的路径是相对路径,需要保存的是绝对路径,通过应用程序路径可以获得
     mTextures[i] = TextureLoader.FromFile(meshDevice, @"..\..\" + mtrl[i].TextureFilename);
    }
   }
  }
  return true;
 }
 catch
 {
  return false;
 }
}

  在这个方法内,使用Mesh.FromFile()这个方法,从给定的文件名中找到.X文件,并装入相关数据,一旦数据格式设置完成,可以从此文件中找到材质和贴图信息,并把它存放在数组中,并通过文件路径,得到纹理文件文件的路径,最后返回真值,如果整个过程出现错误,返回假值。

  下面这个Render()方法,是把此对象,即地球显示在设备对象上,此方法较简单,通过变形操作来得到网格对象的X,Y,Z坐标,接着设置网格对象的材质和纹理,最后,将每个材质和纹理应用到每个网格。

public void Render(Matrix worldTransform)
{
 /把位置变为世界坐标
 meshDevice.Transform.World = Matrix.Multiply(locationOffset, worldTransform);
 //绘制网格
 for (int i = 0; i < mMaterials.Length; i++)
 {
  meshDevice.Material = mMaterials[i];
  meshDevice.SetTexture(0, mTextures[i]);
  mMesh.DrawSubset(i);
 }
}

  现在回到窗体代码中,添加引用网格对象的相关变量:

private Earth mesh = null;
private Matrix meshLoc;
private bool meshLoaded = false;

  在图形初始化函数中,需要对网格对象进行初始化。加入下面的代码:

meshLoc = Matrix.Identity;
meshLoc.M41 = 2.0f;
mesh = new Earth(ref device, meshLoc);
if (mesh.LoadMesh(@"..\..\earth.x"))
{
 meshLoaded = true;
}

  代码第一句把网格对象的位置定为原点,接着偏移X轴2个单位,接下来从文件中得到此.X文件。如果成功设置,meshLoaded置为真。注意,这里有一个.X文件,在源代码中有此文件。

 


  在设置相机的函数中,加入一盏灯光:

device.Lights[0].Type = LightType.Directional;
device.Lights[0].Diffuse = Color.White;
device.Lights[0].Direction = new Vector3(0, -1, -1);
device.Lights[0].Update();
device.Lights[0].Enabled = true;


  此灯光较简单,仅为一个直射型白光灯。

最后,在Render()方法中,调用网格对象的Render()方法,以显示地球。

 

  三、使地球旋转

  前面用一个网格对象来建立地球,但此类没有平移,旋转及缩放等方法,下面就加入这些方法,因为这些方法具有通用性,因此可以新建一个类,把这些方法写在这些类中,使地球对象成为它的派生类。

  在工程中新添加一个类:BaseEarth;

  加入进行平移、旋转、缩放的变量:

 

private float xloc = 0.0f;
private float yloc = 0.0f;
private float zloc = 0.0f;
private float xrot = 0.0f;
private float yrot = 0.0f;
private float zrot = 0.0f;
private float xscale = 1.0f;
private float yscale = 1.0f;
private float zscale = 1.0f;


  加入相应的属性代码:

 

public float XLoc
{
 get
 {
  return xloc;
 }
 set
 {
  xloc = value;
 }
}
…………

 

  在Render()虚函数中,应用平移、旋转及缩放。
 

public virtual void Render()
{
 objdevice.MultiplyTransform(TransformType.World,Matrix.Translation(xloc, yloc, zloc));
 objdevice.MultiplyTransform(TransformType.World,Matrix.RotationAxis(new Vector3(1.0f, 0.0f, 0.0f), xrot));
 objdevice.MultiplyTransform(TransformType.World,Matrix.RotationAxis(new Vector3(0.0f, 1.0f, 0.0f), yrot));
 objdevice.MultiplyTransform(TransformType.World,Matrix.RotationAxis(new Vector3(0.0f, 0.0f, 1.0f), zrot));
 objdevice.MultiplyTransform(TransformType.World,Matrix.Scaling(xscale, yscale, zscale));
 return;
}

 

  现在回到地球类,需要将其改为新类的派生类,同时更改构造函数,另外,在Render()方法中,应先调用基类的Render()方法:


public override void Render()
{
 base.Render();
 //把位置变为世界坐标
 // meshDevice.Transform.World = Matrix.Multiply(locationOffset, worldTransform);
 //绘制网格
 。。。。。。
}

 


  现在,由于在基类中可以设置对象位置,因此,可以把与locationOffset相关,即与设置位置的变量及语句注释掉。

  四、加入月球

  在这一步加入月球,实际上是再创建一个网格对象新实例,只是把纹理进行更改即可,为了代码模块性更好,把两个对象放在一个新类CModel中,在工程中新添加一个类CModel,并声明对象实例。


public class cModel
{
 private cMeshObject mesh1 = null;
 private cMeshObject mesh2 = null;
 private bool modelloaded;
}


  把窗口代码中的Load()事件,放在CModel中,这次不仅生成了地球,而且生成了月球。

 


public void Load(ref Device device)
{
 mesh1 = new Earth(ref device);
 mesh2 = new Earth(ref device);
 if (mesh1.LoadMesh(@"..\..\earth2.x"))
 {
  modelloaded = true;
 }
 else
 {
  modelloaded = false;
 }
 if (mesh2.LoadMesh(@"..\..\moon.x"))
 {
  mesh2.XLoc += 20.0f;
  modelloaded = true;
 }
 else
 {
  modelloaded = false;
 }
}

 

  下面的Update()方法中,参数dir 用来判断是顺时针旋转还是逆时针旋转,另外,地球和月球绕Y轴增加的角度大小不同,也就决定了二者旋转的速度不同。


public void Update(int dir)
{
 if(dir > 0)
 {
  mesh1.YRot += 0.02f;
  mesh2.YRot += 0.05f;
 }
 else if(dir < 0)
 {
  mesh1.YRot -= 0.02f;
  mesh2.YRot -= 0.05f;
 }
}


  在下面的render()方法中,生成显示月球和地球:

 


public void Render(ref Device device)
{
 device.Transform.World = Matrix.Identity;
 if(modelloaded)
 {
  mesh1.Render();
  mesh2.Render();
 }
}


  把窗口代码中的加入灯光的方法,也放在此类中:


public void LoadLights(ref Device device)
{
 device.Lights[0].Type = LightType.Directional;
 device.Lights[0].Diffuse = Color.White;
 device.Lights[0].Position = new Vector3(0.0f, 0.0f, 25.0f);
 device.Lights[0].Direction = new Vector3(0, 0, -1);
}
public void Light(ref Device device)
{
 device.Lights[0].Update();
 device.Lights[0].Enabled = true;
}


  五、与鼠标交互操作

  为了实现与键盘、鼠标交互,新添加一个类:CMouse,添加引用Microsoft.DirectX.DirectInput,并添加命名空间。加入相关变量:


private Microsoft.DirectX.DirectInput.Device mouse = null;
public System.Threading.AutoResetEvent MouseUpdated;
private float x, y, z = 0.0f;
private byte[] buttons;

 

  在下面的构造函数代码中,首先创建鼠标设备,并初始化回调事件:


public CMouse(System.Windows.Forms.Control control)
{
 mouse = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Mouse);
 mouse.SetCooperativeLevel(control, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
 mouse.Properties.AxisModeAbsolute = false;
 MouseUpdated = new System.Threading.AutoResetEvent(false);
 mouse.SetEventNotification(MouseUpdated);
 mouse.Acquire();
 Update();

 


  下面的Update()方法中获得鼠标的坐标值,并赋给私有成员变量:

public void Update()
{
 MouseState state = mouse.CurrentMouseState;
 x = state.X;
 y = state.Y;
 z = state.Z;
 buttons = state.GetMouseButtons();
}


  还需要有一个函数来检测鼠标左键是否按下:

 


public bool LeftButtonDown
{
 get
 {
  bool a;
  return a = (buttons[0] != 0);
 }
}


  六、大结局

  现在已经做完了准备工作,返回到窗口代码中,需要对这里的代码重新进行一些调整:

  在图形初始化函数中创建一个CModel类及CMouse类:

 

private CModel model = null;
private CMouse mouse = null;
private bool leftbuttondown = false;
private float mousexloc;

 

  添加对鼠标初始化的方法:

 

网管联盟bitsCN@com


public void InitializeInput()
{
 mouse = new CMouse(this);
}


  添加UpdateInputState()方法,当按下鼠标左键时,将leftbuttondown值设置为真,当鼠标抬起时,将mousexloc置0:


private void UpdateInputState()
{
 mouse.Update();
 if (mouse.LeftButtonDown)
 {
  if(leftbuttondown == false)
  {
   mousexloc = 0.0f;
   leftbuttondown = true;
  }
  else
  {
   mousexloc = -mouse.X;
  }
 }
 else
 {
  leftbuttondown = false;
  mousexloc = 0.0f;
 }
}


  在此程序中,只对X值进行了操作,即只能左右转。

  Render()方法更新如下:

public void Render()
{
 UpdateInputState();
 device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.DarkGray, 1.0f, 0);
 SetupCamera();
 device.BeginScene();
 model.Update((int)mousexloc);
 model.Light(ref device);
 model.Render(ref device);
 device.EndScene();
 device.Present();
}

 

  最后更改Main()主函数:


static void Main()
{
 using (Form1 EarthForm = new Form1())
 {
  EarthForm.InitializeGraphics();
  EarthForm.InitializeInput();
  EarthForm.Show();
  while(EarthForm.Created)
  {
   EarthForm.Render();
   Application.DoEvents();
  }
  EarthForm.Dispose();
 }
 


Platform: | Size: 11817 | Author: mantoutou | Hits:

[J2MESMS扩展配置.rar

Description:

1、将jre文件夹复制到你本机所在的JDK下覆盖掉全部jre文件夹

2、将lib文件夹复制到你项目所在的lib,添加对应lib


import org.smslib.IOutboundMessageNotification;
import org.smslib.Library;
import org.smslib.MessageEncodings;
import org.smslib.MessageProtocols;
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.modem.SerialModemGateway;
import java.util.List;


public class SendSms {
    public SendSms() {
    }


    public void sendSMS(String[] phoneNumber) throws Exception {
        Service srv;
        OutboundMessage msg;

        OutboundNotification outboundNotification = new OutboundNotification();

        srv = new Service();
        SerialModemGateway gateway = new SerialModemGateway("modem.com1",
                "COM1", 9600, null, null);
        gateway.setInbound(true);
        gateway.setOutbound(true);
        gateway.setSimPin("0000");
        gateway.setOutboundNotification(outboundNotification);
        gateway.setProtocol(MessageProtocols.PDU);
        srv.addGateway(gateway);

        try {
            srv.startService();

            for (int i = 0; i < phoneNumber.length; i++) {
                msg = new OutboundMessage(phoneNumber[i], "您有会议待处理,请登陆查看!");
                msg.setEncoding(MessageEncodings.ENCUCS2);
                srv.sendMessage(msg);

            }

        } finally {
            srv.stopService();
        }
    }

    public class OutboundNotification implements IOutboundMessageNotification {
        public void process(String gatewayId, OutboundMessage msg) {
            System.out.println("Outbound handler called from Gateway: " +
                               gatewayId);
            System.out.println(msg);
        }
    }


    public static void main(String args[]) {
        SendSms app = new SendSms();
        try {
            app.doIt();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
 


Platform: | Size: 1040178 | Author: idhuanghao | Hits:

[Windows Developisag测试代码

Description:

ublic class TestSendSms
{
  
   public static void main(String args[])
   {
    System.out.println(sendSms());
   }
  
   public static String sendSms()

 


Platform: | Size: 363209 | Author: dunk77 | Hits:

[Books你必须知道的495个C语言问题

Description: 学习c 的绝对好书! 第1章 声明和初始化. 1 基本类型 1 1.1 我该如何决定使用哪种整数类型? 1 1.2 为什么不精确定义标准类型的大小? 2 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 2 1.4 新的64位机上的64位类型是什么样的? 3 指针声明 3 1.5 这样的声明有什么问题? char *p1, p2; 我在使用p2的时候报错了。 3 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样的代码有什么问题?char *p; *p = malloc (10); 4 声明风格 4 1.7 怎样声明和定义全局变量和函数最好? 4 1.8 如何在C中实现不透明(抽象)数据类型? 5 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static 存储类型吗? 6 1.11 extern在函数声明中是什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,typedef和#define有什么区别? 7 1.14 我似乎不能成功定义一个链表。我试过typedef struct {char *item; NODEPTR next;}* NODEPTR;但是编译器报了错误信息。难道在C语言中结构不能包含指向自己的指针吗? 7 1.15 如何定义一对相互引用的结构? 9 1.16 Struct {...} x1;和typedef struct{...} x2;这两个声明有什么区别? 10 1.17 “typedef int (*funcptr)();”是什么意思? 10 const限定词 10 1.18 我有这样一组声明:typedef char *charp; const charp p;为什么是p而不是它指向的字符为const? 10 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n = 5; int a[n];……
Platform: | Size: 925772 | Author: superhyi@gmail.com | Hits:

[Internet-Network一个判断远程主机存活程序代码

Description: 一个判断远程主机存活程序代码(ping) #include #include #include #include #include "winsock.h" #pragma comment(lib,"Ws2_32"); #define SEND_SIZE 32 #define PACKET_SIZE 4096 #define ICMP_ECHO 8 #define ICMP_ECHOREPLY 0 struct icmp { unsigned char icmp_type; unsigned char icmp_code; unsigned short icmp_cksum; unsigned short icmp_id; unsigned short icmp_seq; unsigned long icmp_data; }; struct ip { unsigned char ip_hl:4; unsigned char ip_v:4; unsigned char ip_tos; unsigned short ip_len; unsigned short ip_id; unsigned short ip_off; unsigned char ip_ttl; unsigned char ip_p; unsigned short ip_sum; unsigned long ip_src; unsigned long ip_dst; }; unsigned char sendpacket[PACKET_SIZE]; unsigned char recvpacket[PACKET_SIZE]; struct sockaddr_in dest_addr; struct sockaddr_in from_addr; int sockfd; int pid; unsigned short cal_chksum(unsigned short *addr,int len); int pack(int pack_no); int unpack(unsigned char *buf,int len); void send_packet(void); void recv_packet(void); void main(int argc,char *argv[]) { struct hostent *host; struct protoent *protocol; WSADATA wsaData; int timeout=1000; int SEND_COUNT=4; int i; char *par_host; par_host=argv[argc-1]; //IP赋值 switch(argc) { case 2: break; case 3: if(strcmp(argv[1],"-t")==0) { SEND_COUNT=10000; break; } //fall through default: printf("usage: %s [-t] Host name or IP address\n",argv[0]); exit(1); } if(WSAStartup(0x1010,&wsaData)!=0) { printf("wsastartup error\n"); exit(1); } if( (protocol=getprotobyname("icmp") )==NULL) { printf("getprotobyname error\n"); exit(1); } /* printf("%s\n",protocol->p_name); printf("%s\n",protocol->p_aliases); printf("%d\n",protocol->p_proto); system("pause"); */ if( (sockfd=socket(AF_INET,SOCK_RAW,protocol->p_proto) )<0) { printf("socket error\n"); exit(1); } if(setsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,sizeof(timeout))h_length); //resolve address to hostname if(host=gethostbyaddr(host->h_addr,4,PF_INET)) par_host=host->h_name; // //printf("%s\n",par_host); // } else if( dest_addr.sin_addr.s_addr=inet_addr(par_host)==INADDR_NONE) { printf("Unkown host %s\n",par_host); exit(1); } pid=getpid(); /* printf("%d\n",pid); system("pause"); */ printf("Pinging %s [%s]: with %d bytes of data:\n\n",par_host,inet_ntoa(dest_addr.sin_addr),SEND_SIZE); for(i=0;i1) { sum+=*w++; nleft-=2; } if( nleft==1) { *(unsigned char *)(&answer)=*(unsigned char *)w; sum+=answer; } sum=(sum>>16)+(sum&0xffff); sum+=(sum>>16); answer=~sum; return answer; } //打包 int pack(int pack_no) { int packsize; struct icmp *icmp; packsize=8+SEND_SIZE; icmp=(struct icmp*)sendpacket; icmp->icmp_type=ICMP_ECHO; icmp->icmp_code=0; icmp->icmp_cksum=0; icmp->icmp_seq=pack_no; icmp->icmp_id=pid; icmp->icmp_data=GetTickCount(); icmp->icmp_cksum=cal_chksum( (unsigned short *)icmp,packsize); /*校验算法*/ return packsize; } //解包 int unpack(unsigned char *buf,int len) { struct ip *ip; struct icmp *icmp; double rtt; int iphdrlen; ip=(struct ip *)buf; iphdrlen=ip->ip_hl*4; icmp=(struct icmp *)(buf+iphdrlen); if( (icmp->icmp_type==ICMP_ECHOREPLY) && (icmp->icmp_id==pid) ) { len=len-iphdrlen-8; rtt=GetTickCount()-icmp->icmp_data; printf("Reply from %s: bytes=%d time=%.0fms TTL=%d icmp_seq=%u\n", inet_ntoa(from_addr.sin_addr), len, rtt, ip->ip_ttl, icmp->icmp_seq); return 1; } return 0; } //发送 void send_packet() { int packetsize; static int pack_no=0; packetsize=pack(pack_no++); if( sendto(sockfd,(char *)sendpacket,packetsize,0,(struct sockaddr *)&dest_addr,sizeof(dest_addr) )=0) success=unpack(recvpacket,n); else if (WSAGetLastError() == WSAETIMEDOUT) { printf("Request timed out.\n"); return; } }while(!success); } UID5380 帖子239 精华0 积分1289 阅读权限40 来自软件学院 在线时间81 小时 注册时间2006-5-22 最后登录2007-2-24 查看详细资料 TOP
Platform: | Size: 5881 | Author: shuiyuan313 | Hits:

[DocumentsjavaNIO

Description: 一系列缓冲区类支撑起了 Java 2 平台标准版的新 I/O(NIO)包。这些类的数据容器形成了其它 NIO 操作(如套接字通道上的非阻塞读取)的基础。在本月的 Merlin 的魔力中,常驻 Java 编程专家 John Zukowski 展示了如何操作那些数据缓冲区来执行如读/写原语这样的任务以及如何使用内存映射文件。在以后的文章里,他将把这里所提到的概念扩展到套接字通道的使用。 Java 2 平台标准版(Java 2 Platform Standard Edition,J2SE)1.4 对 Java 平台的 I/O 处理能力做了大量更改。它不仅用流到流的链接方式继续支持以前 J2SE 发行版的基于流的 I/O 操作,而且 Merlin 还添加了新的功能 — 称之为新 I/O 类(NIO),现在这些类位于 java.nio 包中。 I/O 执行输入和输出操作,将数据从文件或系统控制台等传送至或传送出应用程序。(有关 Java I/O 的其它信息,请参阅 参考资料)。 缓冲区基础 抽象的 Buffer 类是 java.nio 包支持缓冲区的基础。 Buffer的工作方式就象内存中用于读写基本数据类型的 RandomAccessFile 。象 RandomAccessFile一样,使用 Buffer ,所执行的下一个操作(读/写)在当前某个位置发生。执行这两个操作中的任一个都会改变那个位置,所以在写操作之后进行读操作不会读到刚才所写的内容,而会读到刚才所写内容之后的数据。 Buffer 提供了四个指示方法,用于访问线性结构(从最高值到最低值): "capacity() :表明缓冲区的大小 "limit() :告诉您到目前为止已经往缓冲区填了多少字节,或者让您用 :limit(int newLimit) 来改变这个限制 "position() :告诉您当前的位置,以执行下一个读/写操作 "mark() :为了稍后用 reset() 进行重新设置而记住某个位置 缓冲区的基本操作是 get() 和 put() ;然而,这些方法在子类中都是针对每种数据类型的特定方法。为了说明这一情况,让我们研究一个简单示例,该示例演示了从同一个缓冲区读和写一个字符。在清单 1 中, flip() 方法交换限制和位置,然后将位置置为 0,并废弃标记,让您读刚才所写的数据: 清单 1. 读/写示例 import java.nio.*; ... CharBuffer buff = ...; buff.put('A'); buff.flip(); char c = buff.get(); System.out.println("An A: " + c); 现在让我们研究一些具体的 Buffer 子类。 回页首 缓冲区类型 Merlin 具有 7 种特定的 Buffer 类型,每种类型对应着一个基本数据类型(不包括 boolean): "ByteBuffer "CharBuffer "DoubleBuffer "FloatBuffer "IntBuffer "LongBuffer "ShortBuffer 在本文后面,我将讨论第 8 种类型 MappedByteBuffer ,它用于内存映射文件。如果您必须使用的类型不是这些基本类型,则可以先从 ByteBuffer 获得字节类型,然后将其转换成 Object 或其它任何类型。 正如前面所提到的,每个缓冲区包含 get() 和 put() 方法,它们可以提供类型安全的版本。通常,需要重载这些 get() 和 put() 方法。例如,有了 CharBuffer ,可以用 get() 获得下一个字符,用 get(int index) 获得某个特定位置的字符,或者用 get(char[] destination) 获得一串字符。静态方法也可以创建缓冲区,因为不存在构造函数。那么,仍以 CharBuffer为例,用 CharBuffer.wrap(aString) 可以将 String对象转换成 CharBuffer 。为了演示,清单 2 接受第一个命令行参数,将它转换成 CharBuffer ,并显示参数中的每个字符: 清单 2. CharBuffer 演示 import java.nio.*; public class ReadBuff { public static void main(String args[]) { if (args.length != 0) { CharBuffer buff = CharBuffer.wrap(args[0]); for (int i=0, n=buff.length(); i<n; i++) { System.out.println(i + " : " + buff.get()); } } } } 请注意,这里我使用了 get() ,而没有使用 get(index) 。我这样做的原因是,在每次执行 get() 操作之后,位置都会移动,所以不需要手工来声明要检索的位置。 回页首 直接 vs. 间接 既然已经了解了典型的缓冲区,那么让我们研究直接缓冲区与间接缓冲区之间的差别。在创建缓冲区时,可以要求创建直接缓冲区,创建直接缓冲区的成本要比创建间接缓冲区高,但这可以使运行时环境直接在该缓冲区上进行较快的本机 I/O 操作。因为创建直接缓冲区所增加的成本,所以直接缓冲区只用于长生存期的缓冲区,而不用于短生存期、一次性且用完就丢弃的缓冲区。而且,只能在 ByteBuffer 这个级别上创建直接缓冲区,如果希望使用其它类型,则必须将 Buffer 转换成更具体的类型。为了演示,清单 3 中代码的行为与清单 2 的行为一样,但清单 3 使用直接缓冲区: 清单 3. 列出网络接口 import java.nio.*; public class ReadDirectBuff { public static void main(String args[]) { if (args.length != 0) { String arg = args[0]; int size = arg.length(); ByteBuffer byteBuffer = ByteBuffer.allocateDirect(size*2); CharBuffer buff = byteBuffer.asCharBuffer(); buff.put(arg); buff.rewind(); for (int i=0, n=buff.length(); i<n; i++) { System.out.println(i + " : " + buff.get()); } } } } 在上面的代码中,请注意,不能只是将 String 包装在直接 ByteBuffer中。必须首先创建一个缓冲区,先填充它,然后将位置倒回起始点,这样才能从头读。还要记住,字符长度是字节长度的两倍,因此示例中会有 size*2 。 回页首 内存映射文件 第 8 种 Buffer 类型 MappedByteBuffer 只是一种特殊的 ByteBuffer 。 MappedByteBuffer 将文件所在区域直接映射到内存。通常,该区域包含整个文件,但也可以只映射部分文件。所以,必须指定要映射文件的哪部分。而且,与其它 Buffer 对象一样,这里没有构造函数;必须让 java.nio.channels.FileChannel的 map() 方法来获取 MappedByteBuffer 。此外,无需过多涉及通道就可以用 getChannel() 方法从 FileInputStream 或 FileOutputStream获取 FileChannel 。通过从命令行传入文件名来读取文本文件的内容,清单 4 显示了 MappedByteBuffer : 清单 4. 读取内存映射文本文件 import java.io.*; import java.nio.*; import java.nio.channels.*; import java.nio.charset.*; public class ReadFileBuff { public static void main(String args[]) throws IOException { if (args.length != 0) { String filename = args[0]; FileInputStream fis = new FileInputStream(filename); FileChannel channel = fis.getChannel(); int length = (int)channel.size(); MappedByteBuffer byteBuffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, length); Charset charset = Charset.forName("ISO-8859-1"); CharsetDecoder decoder = charset.newDecoder(); CharBuffer charBuffer = decoder.decode(byteBuffer); for (int i=0, n=charBuffer.length(); i<n; i++) { System.out.print(charBuffer.get()); } } } }
Platform: | Size: 5876 | Author: 635868631@qq.com | Hits:

[JSP/JavaJava聊天室程序

Description: 这个是服务器 import java.awt.*; import java.awt.event.*; import java.net.*; import javax.swing.*; public class UDPServerDemo extends JFrame{ int port=2345; //端口号 public UDPServerDemo(){ try{ byte[] buffer=new byte[256]; //缓冲区数组 DatagramSocket socket=new DatagramSocket(port); //实例化数据报Socket DatagramPacket packet; System.out.println("Server start..."); //输出运行信息 while (true){ packet=new DatagramPacket(buffer,buffer.length); //实例化数据报 socket.receive(packet); //接受请求 InetAddress target=packet.getAddress(); System.out.println("Received from"+target); //输出请求地址 int port=packet.getPort(); //得到接收端口 byte[] message="This is server,Who are you?".getBytes(); //服务器返回信息 packet=new DatagramPacket(message,message.length,target,port); //实例化数据报 socket.send(packet); //发送数据报 } } catch (Exception ex){ ex.printStackTrace(); //输出出错信息 } } public static void main(String[] args){ new UDPServerDemo(); } }
Platform: | Size: 1095119 | Author: 594353482@qq.com | Hits:

[OtherThe C Programming Language-C语言详解英文版

Description: 这是一本讲解C语言的书,是英文编写,十分经典,是大部分公司的新职员入职之前必须要看的书籍之一,很多公司都以它作为培训教材,帮助你更快了解C语言的奥妙。 Contents l Preface l Preface to the first edition l Introduction 1. Chapter 1: A Tutorial Introduction 1. Getting Started 2. Variables and Arithmetic Expressions 3. The for statement 4. Symbolic Constants 5. Character Input and Output 1. File Copying 2. Character Counting 3. Line Counting 4. Word Counting 6. Arrays 7. Functions 8. Arguments - Call by Value 9. Character Arrays 10. External Variables and Scope 2. Chapter 2: Types, Operators and Expressions 1. Variable Names 2. Data Types and Sizes 3. Constants 4. Declarations 5. Arithmetic Operators 6. Relational and Logical Operators 7. Type Conversions 8. Increment and Decrement Operators 9. Bitwise Operators 10. Assignment Operators and Expressions 11. Conditional Expressions 12. Precedence and Order of Evaluation 3. Chapter 3: Control Flow 1. Statements and Blocks 2. If-Else 3. Else-If 4. Switch 5. Loops - While and For 6. Loops - Do-While 7. Break and Continue 8. Goto and labels 4. Chapter 4: Functions and Program Structure 1. Basics of Functions 2. Functions Returning Non-integers 3. External Variables 4. Scope Rules 5. Header Files 6. Static Variables 7. Register Variables 8. Block Structure 9. Initialization 10. Recursion 11. The C Preprocessor 1. File Inclusion 2. Macro Substitution 3. Conditional Inclusion 5. Chapter 5: Pointers and Arrays 1. Pointers and Addresses 2. Pointers and Function Arguments 3. Pointers and Arrays 4. Address Arithmetic 5. Character Pointers and Functions 6. Pointer Arrays; Pointers to Pointers 7. Multi-dimensional Arrays 8. Initialization of Pointer Arrays 9. Pointers vs. Multi-dimensional Arrays 10. Command-line Arguments 11. Pointers to Functions 12. Complicated Declarations 6. Chapter 6: Structures 1. Basics of Structures 2. Structures and Functions 3. Arrays of Structures 4. Pointers to Structures 5. Self-referential Structures 6. Table Lookup 7. Typedef 8. Unions 9. Bit-fields 7. Chapter 7: Input and Output 1. Standard Input and Output 2. Formatted Output - printf 3. Variable-length Argument Lists 4. Formatted Input - Scanf 5. File Access 6. Error Handling - Stderr and Exit 7. Line Input and Output 8. Miscellaneous Functions 1. String Operations 2. Character Class Testing and Conversion 3. Ungetc 4. Command Execution 5. Storage Management 6. Mathematical Functions 7. Random Number generation 8. Chapter 8: The UNIX System Interface 1. File Descriptors 2. Low Level I/O - Read and Write 3. Open, Creat, Close, Unlink 4. Random Access - Lseek 5. Example - An implementation of Fopen and Getc 6. Example - Listing Directories 7. Example - A Storage Allocator l Appendix A: Reference Manual 1. Introduction 2. Lexical Conventions 3. Syntax Notation 4. Meaning of Identifiers 5. Objects and Lvalues 6. Conversions 7. Expressions 8. Declarations 9. Statements 10. External Declarations 11. Scope and Linkage 12. Preprocessor 13. Grammar l Appendix B: Standard Library 1. Input and Output: 1. File Operations 2. Formatted Output 3. Formatted Input 4. Character Input and Output Functions 5. Direct Input and Output Functions 6. File Positioning Functions 7. Error Functions 2. Character Class Tests: 3. String Functions: 4. Mathematical Functions: 5. Utility Functions: 6. Diagnostics: 7. Variable Argument Lists: 8. Non-local Jumps: 9. Signals: 10. Date and Time Functions: 11. Implementation-defined Limits: and l Appendix C: Summary of Changes
Platform: | Size: 570630 | Author: wukoo0901@qq.com | Hits:

[Delphi/CppBuilderDelphi_程序设计基础教程

Description: 目 录 第 1 章 Delphi 集成开发环境 ..................... 1 2.2.4 指针类型................................... 30 2.2.5 过程与函数类型....................... 31 1.1 Delphi 主窗口 ........................................ 2 1.1.1 标题栏 ........................................ 2 1.1.2 菜单栏 ........................................ 2 1.1.3 工具栏 ........................................ 3 1.1.4 组件板 ........................................ 3 1.2 Delphi 窗体窗口..................................... 3 1.2.1 窗体窗口 .................................... 3 1.2.2 窗体文件 .................................... 4 1.3 代码编辑窗口 ........................................ 4 1.4 对象查看器窗口 .................................... 4 1.4.1 对象查看器窗口的组成............. 5 1.4.2 设置属性 .................................... 5 1.4.3 添加事件 .................................... 6 1.5 项目管理器 ............................................ 6 1.5.1 项目组成 .................................... 7 1.5.2 项目管理器 ................................ 9 1.5.3 项目管理 .................................. 10 1.5.4 项目编译和运行....................... 12 1.6 Delphi 程序设计过程........................... 14 1.7 实验 ...................................................... 17 习题 ............................................................... 19 2.2.6 可变类型................................... 31 2.3 常量和变量的定义............................... 32 2.3.1 常量........................................... 32 2.3.2 变量........................................... 32 2.4 运算符和表达式................................... 33 2.4.1 算术运算符............................... 34 2.4.2 逻辑运算符............................... 34 2.4.3 关系运算符............................... 34 2.4.4 位运算符................................... 35 2.4.5 指针运算符............................... 35 2.4.6 集合运算符............................... 35 2.5 语句 ...................................................... 36 2.5.1 简单语句................................... 36 2.5.2 条件语句................................... 36 2.5.3 循环语句................................... 38 2.6 过程与函数........................................... 40 2.6.1 过程和函数的声明................... 40 2.6.2 过程和函数的参数................... 40 2.6.3 过程和函数的调用................... 42 2.7 实验 ...................................................... 43 2.7.1 编写对象 Pascal 应用程序....... 43 第 2 章 Delphi 的编程语言........................ 21 2.7.2 函数和过程的编写和调用 ....... 44 2.1 保留字和标识符 .................................. 21 习题 ............................................................... 46 2.1.1 保留字和标准指令符............... 21 第 3 章 Delphi 窗体与组件........................ 47 2.1.2 标识符 ...................................... 22 2.1.3 注释 .......................................... 22 2.1.4 控制台程序中的屏幕输入 3.1 Delphi 窗体........................................... 47 3.1.1 窗体与窗口............................... 47 和输出 ...................................... 22 3.1.2 窗体属性................................... 47 3.1.3 窗体事件................................... 48 2.2 Object Pascal 的数据类型.................... 23 2.2.1 简单数据类型........................... 24 2.2.2 字符串类型 .............................. 28 2.2.3 结构类型 .................................. 29 3.2 设计窗体 .............................................. 48 3.2.1 新建窗体................................... 48 3.2.2 设置窗体属性........................... 49 3.2.3 添加组件 .................................. 49 3.2.4 编辑组件 .................................. 49 3.2.5 设置组件属性........................... 49 3.2.6 保存文件 .................................. 49 3.3 文本型组件 .......................................... 50 3.3.1 Label 组件 ................................ 50 3.3.2 Static Text 组件 ........................ 51 3.3.3 Tab 组件 ................................... 52 3.4 按钮型组件 .......................................... 52 3.4.1 Button 组件............................... 52 3.4.2 BitBtn 组件............................... 53 3.4.3 RadioButton 组件 ..................... 54 3.4.4 CheckBox 组件......................... 54 3.5 编辑型组件 .......................................... 54 3.5.1 Edit 组件................................... 54 3.5.2 MaskEdit 组件.......................... 56 3.5.3 Memo 组件 ............................... 57 3.5.4 RichEdit 组件 ........................... 58 3.6 列表框型组件 ...................................... 60 3.6.1 ListBox 组件............................. 60 3.6.2 CheckBox 组件......................... 62 3.6.3 ComboBox 组件 ....................... 62 3.7 滑块型组件 .......................................... 63 3.7.1 Scrollbar 组件........................... 63 3.7.2 TrackBar 组件 .......................... 64 3.8 容器型组件 .......................................... 64 3.8.1 GroupBox 组件......................... 64 3.8.2 Panel 组件................................. 65 3.8.3 ScrollBox 组件 ......................... 66 3.9 MDI 程序 ............................................. 66 3.9.1 MDI 窗体及其属性.................. 66 3.9.2 利用模板创建 MDI 应用 程序 .......................................... 67 3.10 实验 .................................................... 68 3.10.1 设计由按钮类组件实现 的功能窗体............................. 68 3.10.2 设计由列表类组件实现的 功能窗体 ................................ 70 3.10.3 按需求将各种组件灵活组合, 实现功能窗体......................... 73 习题 ............................................................... 74 第 4 章 菜单设计............................................ 76 4.1 菜单设计简介....................................... 76 4.1.1 菜单结构................................... 76 4.1.2 菜单命令项的作用................... 76 4.1.3 菜单设计器............................... 77 4.2 主菜单设计........................................... 77 4.2.1 打开主菜单设计器................... 78 4.2.2 添加菜单命令项....................... 78 4.2.3 菜单命令项分组....................... 79 4.2.4 菜单命令项热键....................... 79 4.2.5 调整菜单命令项....................... 79 4.2.6 创建级联菜单........................... 80 4.3 菜单命令响应....................................... 80 4.4 运行时设置菜单................................... 82 4.4.1 菜单命令灰显........................... 83 4.4.2 隐藏菜单命令........................... 83 4.4.3 改变菜单命令文本................... 84 4.4.4 菜单命令单选标记................... 84 4.4.5 菜单命令复选标记................... 84 4.5 创建动态菜单....................................... 85 4.6 图形菜单 .............................................. 88 4.7 快捷菜单设计....................................... 89 4.7.1 快捷菜单的设计....................... 89 4.7.2 快捷菜单的响应....................... 90 4.8 实验 ...................................................... 91 习题 ............................................................... 93 第 5 章 对话框、工具栏和状态栏设计 .... 95 5.1 对话框设计........................................... 95 5.1.1 文件对话框组件....................... 95 5.1.2 字体对话框组件....................... 97 5.1.3 颜色对话框组件....................... 98 5.1.4 打印、打印设置和页面设置 对话框组件............................... 98 5.1.5 查找和替换对话框组件........... 99 5.1.6 消息框和输入框..................... 100 5.1.7 对话框综合应用实例..............102 7.3.1 异常响应与 try…except 5.2 工具栏设计 .........................................107 语句......................................... 155 5.2.1 用面板构成工具栏..................107 7.3.2 异常保护与 try…finally 5.2.2 使用工具栏组件......................112 语句......................................... 157 5.2.3 使用 TCoolBar 组件................113 7.3.3 异常的重引发和处理嵌套 ..... 159 5.2.4 使用 TControlBar 组件 ...........115 7.3.4 定义自己的异常..................... 159 5.3 状态栏设计 .........................................115 7.3.5 利用异常响应编程................. 163 5.4 实验 .....................................................118 7.4 Delphi 调试器..................................... 165 习题 ..............................................................121 7.4.1 准备调试................................. 165 第 6 章 Delphi 多媒体应用.......................123 7.4.2 设置调试器的选项................. 165 7.5 控制程序的运行................................. 166 6.1 绘图组件 .............................................123 7.5.1 单步执行................................. 166 6.1.1 TShape 组件 ............................123 7.5.2 跟踪执行................................. 167 6.1.2 画布对象 .................................124 7.5.3 跳过一段代码......................... 168 6.1.3 TPaintBox 组件 .......................124 7.5.4 全速执行剩余的代码............. 168 6.1.4 TImage 组件 ............................124 7.5.5 返回到执行点......................... 168 6.2 图形列表组件 .....................................130 7.5.6 暂停运行................................. 168 6.2.1 TTreeView 组件 ......................130 7.5.7 重新开始运行......................... 168 6.2.2 TListView 组件 .......................131 7.5.8 命令行参数............................. 169 6.3 图形栅格组件 .....................................132 7.6 断点 .................................................... 169 6.3.1 TStringGrid 组件 .....................133 7.6.1 源代码断点............................. 169 6.3.2 TDrawGrid 组件......................134 7.6.2 机器指令断点......................... 170 6.3.3 TColorGrid 组件......................136 7.6.3 数据断点................................. 171 6.4 图形日历组件 .....................................136 7.6.4 模块断点................................. 171 6.4.1 TDateTimePicker 组件 ............137 7.6.5 指定遇到断点时的行为......... 171 6.4.2 TCalendar 组件........................137 7.6.6 断点列表窗口......................... 172 6.5 多媒体组件 .........................................137 7.6.7 删除断点................................. 173 6.5.1 TMediaPlayer 组件..................137 7.6.8 设置断点的属性..................... 173 6.5.2 多媒体播放器..........................138 7.6.9 禁止和允许断点..................... 173 6.5.3 Flash 播放器............................141 7.7 监视表达式的值................................. 174 6.6 实验 .....................................................144 7.7.1 观察窗口................................. 174 习题 ..............................................................148 7.7.2 计算和修改表达式的值......... 175 第 7 章 Delphi 异常处理与调试..............150 7.1 Delphi 异常处理..................................150 7.1.1 异常处理的意义......................150 7.1.2 错误类型 .................................151 7.2 Delphi 异常类 .....................................153 7.3 Delphi 异常处理机制..........................155 7.7.3 计算提示................................. 176 7.7.4 Inspector 窗口......................... 176 7.7.5 查看局部变量的值................. 177 7.8 实验 .................................................... 177 7.8.1 Delphi 异常处理机制 ............. 177 7.8.2 Delphi 调试............................. 178 习题 ............................................................. 180 第 8 章 数据库编程......................................183 8.1 数据库系统概述 .................................183 8.1.1 数据库管理系统......................183 8.1.2 关系数据库 .............................184 8.1.3 数据库应用程序......................184 8.1.4 Delphi 数据库的体系结构......184 8.2 BDE 组件 ............................................188 8.2.1 TTable 组件介绍 .....................189 8.2.2 TQuery 组件介绍 ....................199 8.3 ADO 组件............................................206 8.3.1 TADOConnection 组件 ...........208 8.3.2 TADOCommand 组件.............210 8.3.3 TADODataSet 组件.................212 8.3.4 TADOTable 组件 ....................213 8.4 数据控制组件简介 .............................214 8.4.1 TDBGrid 组件介绍 .................215 8.4.2 TDBNavigator 组件介绍.........217 8.4.3 TDBText 组件介绍 .................219 8.4.4 TDBEdit 组件介绍..................219 9.1.1 QuickReport 概述 .................. 244 9.1.2 TQuickRep 组件 .................... 245 9.1.3 TQRSubDetail 组件................ 247 9.1.4 TQRBand 组件 ....................... 248 9.1.5 TQRChildBand 组件............... 249 9.1.6 TQRGroup 组件...................... 250 9.1.7 TQRLabel 组件....................... 250 9.1.8 TQRDBText 组件................... 250 9.1.9 TQRExpr 组件........................ 250 9.1.10 TQRsysData 组件 ................. 251 9.1.11 TQRMemo 组件 ................... 252 9.1.12 TQRRichText 组件............... 252 9.1.13 TQRDBRichText 组件.......... 252 9.1.14 TQRShape 组件 .................... 252 9.1.15 TQRImage 组件.................... 252 9.1.16 TQRDBImage 组件 .............. 252 9.1.17 TQRComposite 组件............. 252 9.1.18 TQRPreview 组件................. 253 9.2 QuickReport 报表实例 ....................... 253 8.4.5 TDBMemo 组件介绍 ..............220 9.2.1 打印单数据库报表................. 253 8.4.6 TDBImage 组件介绍...............221 9.2.2 打印标签、信封..................... 256 8.4.7 TDBListBox 组件介绍............221 9.2.3 打印主/明细表........................ 258 8.4.8 TDBComboBox 组件介绍 ......221 9.2.4 打印分组与统计报表............. 260 8.4.9 TDBCheckBox 组件介绍........222 9.3 Rave 报表设计器的组件.................... 262 8.4.10 TDBRadioGroup 组件介绍 ...222 9.3.1 Rave 5 的报表设计界面......... 262 8.4.11 TDBLookupListBox 组件 介绍 .......................................223 8.4.12 TDBLookupComboBox 组件 介绍 .......................................223 9.3.2 Drawing(绘图)组件页 ............ 263 9.3.3 Bar Code(条形码)组件页 ....... 263 9.3.4 Standard(标准)组件页 ............ 263 9.3.5 Report(报表)组件页 ............... 263 8.4.13 TDBCtrlGrid 组件介绍 .........223 9.3.6 其他组件页............................. 264 8.4.14 TDBRichEdit 组件介绍.........224 8.4.15 TDBChart 组件介绍..............224 8.5 实验 .....................................................231 8.5.1 设计数据表结构......................231 8.5.2 设计数据表编辑窗体..............232 8.5.3 设计数据表查询窗体..............238 习题 ..............................................................242 9.4 Delphi 中的 Rave 组件....................... 265 9.4.1 RvProject 组件........................ 265 9.4.2 RvSystem 组件 ....................... 266 9.4.3 其他组件................................. 267 9.5 Rave 报表例程 ................................... 267 9.5.1 设计 Rave 报表....................... 267 9.5.2 调用 Rave 报表....................... 271 第 9 章 报表与图表......................................244 9.6 图表 .................................................... 271 9.1 QuickReport 组件................................244 9.6.1 DBChart 组件 ......................... 271 9.6.2 设计图表 .................................273 11.1.2 现有的组件........................... 309 9.7 实验 .....................................................274 11.1.3 组件模板............................... 310 习题 ..............................................................279 11.1.4 选择祖先类的建议............... 311 第 10 章 面向对象程序设计......................281 11.2 建立组件框架................................... 312 11.3 加入属性........................................... 314 10.1 面向对象程序设计概念....................281 11.3.1 加入简单型的属性............... 314 10.1.1 结构化程序设计方法............281 11.3.2 加入枚举型的属性............... 314 10.1.2 面向对象的设计方法............282 11.3.3 加入集合型的属性............... 315 10.2 类 .......................................................284 11.3.4 加入对象型的属性............... 315 10.2.1 类的定义 ...............................284 11.3.5 加入数组型的属性............... 316 10.2.2 保护方式 ...............................285 11.3.6 公开继承的属性................... 316 10.2.3 类的实例化............................286 11.3.7 给出属性的默认值............... 317 10.2.4 类操作符 ...............................286 11.4 加入方法........................................... 317 10.3 方法 ...................................................287 11.4.1 方法的可见性....................... 317 10.3.1 一般方法 ...............................287 11.4.2 避免内部相关性................... 318 10.3.2 构造方法 ...............................289 11.4.3 给方法命名........................... 318 10.3.3 析构方法 ...............................290 11.4.4 加入静态方法....................... 318 10.3.4 类方法 ...................................290 11.4.5 加入虚拟方法....................... 319 10.3.5 隐含参数 Self ........................291 11.4.6 加入动态方法....................... 319 10.4 继承和多态 .......................................292 11.4.7 加入消息处理方法............... 320 10.4.1 继承 .......................................292 11.5 加入事件........................................... 320 10.4.2 覆盖 .......................................293 11.6 安装组件........................................... 323 10.4.3 抽象类 ...................................294 11.7 实验 .................................................. 324 10.4.4 多态 .......................................295 习题 ............................................................. 327 10.4.5 共同祖先 TObject..................296 10.5 属性 ...................................................297 第 12 章 动态链接库(DLLs)编程............ 329 10.5.1 属性定义 ...............................297 12.1 动态链接库概述............................... 329 10.5.2 属性的访问方法....................298 12.1.1 Windows 系统的动态 10.6 消息 ...................................................299 链接库................................... 329 10.6.1 消息机制 ...............................299 12.1.2 为什么使用 DLL .................. 330 10.6.2 发送消息 ...............................300 12.1.3 DLL 与 EXE 文件之间 10.6.3 处理消息 ...............................301 的区别................................... 331 10.6.4 用户自定义消息....................303 12.1.4 DLL 编写规则 ...................... 331 10.7 实验 ...................................................305 12.2 在 Delphi 中编写 DLLs.................... 331 习题 ..............................................................307 12.2.1 编写一般 DLLs 的步骤........ 332 第 11 章 Delphi 自定义组件的开发.......308 12.2.2 动态链接库中的标准指示 ... 334 12.2.3 库初始化代码的编写........... 335 11.1 选择祖先类 .......................................308 12.2.4 从 DLL 中输出字符串 ......... 337 11.1.1 公共祖先类............................308 12.3 在 Delphi 中 DLLs 的调用............... 340 12.3.1 调用 DLL 方式......................340 12.3.2 静态调用 ...............................340 12.3.3 动态调用 ...............................342 12.4 利用 DLLs 实现窗体重用 ................345 12.4.1 利用 DLLs 实现窗体重用 的一般步骤............................346 12.4.2 使用 DLL 模态窗体..............346 12.4.3 DLL 中的非模态窗体...........346 12.5 DLL 与 Delphi 组件包......................351 12.6 实验 ...................................................352 习题 ..............................................................356 第 13章 多线程.............................................358 13.1 多线程概述 .......................................358 13.1.1 什么是多线程........................358 13.1.2 使用多线程的优缺点............358 13.1.3 编写多线程应用程序步骤....359 13.2 多线程编程 .......................................359 13.2.1 创建线程对象........................359 13.2.2 线程的同步............................361 13.2.3 设置线程的优先级................362 13.2.4 挂起和唤醒............................363 13.2.5 缓存线程对象........................363 13.2.6 线程终止 ...............................365 13.2.7 一个多线程排序程序............370 13.3 实验 ...................................................375 习题 ............................................................. 379 第 14 章 文件操作 ....................................... 381 14.1 文件操作命令................................... 381 14.1.1 文件的类型........................... 381 14.1.2 文件的定义........................... 381 14.1.3 文件管理命令....................... 382 14.1.4 文本文件命令....................... 382 14.1.5 输入输出命令....................... 383 14.2 文本文件........................................... 383 14.2.1 打开文本文件....................... 383 14.2.2 关闭文本文件....................... 384 14.2.3 写入文本文件....................... 384 14.2.4 读取文本文件....................... 385 14.3 非文本文件....................................... 386 14.3.1 类型文件............................... 386 14.3.2 无类型文件........................... 389 14.4 文件系统........................................... 390 14.4.1 文件系统组件....................... 390 14.4.2 文件控制单元....................... 393 14.5 实验 .................................................. 396 14.5.1 文件名操作........................... 396 14.5.2 文件读写操作....................... 399 习题 ............................................................. 401 参考文献................................................... 403
Platform: | Size: 3534536 | Author: chaoyan_ma@126.com | Hits:

[Develop Toolsctags-5.8.1

Description: ctags 用来在vim里全局定位函数,变量等。 该ctags已经打完了php.c的一个补丁,修复php tag不认识static等的bug
Platform: | Size: 12557412 | Author: songlj.com@gmail.com | Hits:

[Windows DevelopASocket示例

Description: ASocket示例 #include "stdafx.h" #include "s.h" #include "MainFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code ! ON_WM_CREATE() //}}AFX_MSG_MAP END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction CMainFrame::CMainFrame() { // TODO: add member initialization code here } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
Platform: | Size: 64331 | Author: yanghaijun2008 | Hits:

[Graph programJPG图像文件转换成YUV原始数据格式

Description: 这是一个把JPG图像文件转换成YUV原始数据格式的程序,就三个函数,输出为YUV420的。-this is a static library for decompressing the jpg file and converting its colorspace from yuv422 to yuv420, but RGB24. enjoy your self!
Platform: | Size: 58572 | Author: Simonz | Hits:

[OtherC++程序设计语言实验四

Description: 实验七:C++编程入门 一、实验内容 1. 理解继承与组合。 2. 学会使用多态特性。 3. 使用文件。 4. 异常处理。 二、实验题目 1. 创建一个class Counted,包含一个int类型的成员变量id和一个static int类型的成员变量count。默认构造函数的开头为“Counted() : id(count ++) {”。要求: a) 构造函数输出id值并且输出“it’s being created”; b) 析构函数也输出id值并且输出“it is being destroyed”; c) 使用new创建一个class Counted的对象,并且用delete销毁它; d) 使用new创建一个class Counted的对象数组,并且用delete[]销毁它; 2. 使用继承的方法,编写一个点类Point和线段类Line。要求:点以(x, y)的形式打印坐标的值;线段以上述形式打印两端点的坐标(x1, y1)、(x2,y2),并设计计算线段长度的内联函数。 3. 创建一个简单的Shape层次:基类称为Shape,派生类分别为Circle、Square和Triangle。在基类中定义一个虚函数draw(),然后再在这些派生类中定义这个函数。在堆中创建Shape对象,并建立一个指向这些Shape对象的指针数组(这样就形成了指针向上类型转换),通过基类指针调用draw(),检验虚函数的行为。 4. 利用c++继承、多态虚函数、构造函数完成以下程序:设计人、老师、学生、大学生、研究生、大四学生等类、其主要属性自己定义,要求包括以下方法: 1) 构造函数,创建对象的主要信息 2) Display,显示每种类对象的主要信息 此外,要求每个类包含一个生日对象,其类型为Birthday类,学生类应该包含一个班主任对象,其类型为老师类。 利用研究生类创建一个数组,来存储一个班级的学生信息,将其写入硬盘文件,再读出来进行显示。读写文件失败时要进行异常处理。 三、实验要求  将程序源代码压缩后提交至学院FTP上对应实验和班级的目录中。  作业命名方式为:“学号姓名.rar”。  作业提交时间:下次实验课前提交。
Platform: | Size: 9677 | Author: zhuchao0731@163.com | Hits:
« 1 2 ... 42 43 44 45 46 4748 49 50 »

CodeBus www.codebus.net