子级分类:
系统程序
网络工具
媒体工具
管理软件
游戏娱乐
BBS联赛作品
可重用类
 |
自动生成一个XML解析类
|
|
| |
| 一篇有关自动代码生成和XML的文章,推荐转载
http://www.codeproject.com/tips/XMLParserGen.asp
Introduction
I think your first thought about this article would be that :"oh, another tool to parse XML like MSXML". In fact, this article is based on MSXML. What I will present for you is not a general XML parser ,but a generator to create specific XML parser . The purpose of my article is not to teach you some knowledge about a grammar parsing technique ,but to provide you some idea of auto code generation through an XML parser generator. XML parser may not be of any use in your programming area ,but that does not m ...
|
|
| 作者:不祥 rone张贴于2004-06-03 11:40:40.0,共阅读3835次,回复1次 |
|
|
 |
Boss Coming
|
|
| |
| 1.感谢您使用本软件.Boss Coming 是帮朋友做的一个toy似的东西,作用是当大家在办公室玩的时候,老板忽然出现,只要有一个人看到,按下热键后即可通知大家,并且在接到同伴的通知后,本程序可以马上为你做一些事情,比如把MSN藏起来,激活 office word , 酱紫不会被老板发现.代码有注释
|
|
| 作者:不祥 Bccv张贴于2004-05-25 11:49:40.0,共阅读2605次,回复2次 |
|
|
 |
snoopy每日一译-全自动组合CheckBox类CGroupCheckBox
|
|
| |
| snoopy每日一译-全自动组合CheckBox类CGroupCheckBox
by:Geno Carman 2004.5.14
翻译:snoopy
环境: VC++ 6.0, WinXP
我决定我需要一个组合框和CheckBox框的集合的控件。于是我开始写一个。当我遇到困难,我去搜索看是否别人已经实现。当看了Ming Liu的文章"CGroupCheck - Checkbox associated with a groupbox",我解决了这个困难。我感谢他为我铺设的道路,虽然我实现的方法不一样。
以下是一个使用我的CGroupCheckBox控件的例子:
当点击checkbox会enables/disables所有的在groupbox里的控件。父窗口把控件看作一个checkbox。
风格:
注意到上面的对话框包含CGroupCheckBox的两种风格。一种指出包含所有控件;另一种忽略Static ID,只有那些ID不是IDC_STATIC的控件才被enables/disables。可以使用SetStyle()设定风格。
SetStyle()是你唯一需要调用的函数,而且是改变默认风格才需要调用。下面是一个例子:
BOOL CGroupCheckBoxDemoDlg::OnInitDialog()
{
CDialog::OnIn ...
|
|
| 作者:不祥 ycr40张贴于2004-05-17 14:43:30.0,共阅读2821次,回复0次 |
|
|
 |
snoopy每日一译-科学计数法EDIT控件
|
|
| |
![工程快照[4,012字节]](/upload/2004/05/1047343491021.gif)
|
| |
| snoopy每日一译-科学记数法EDIT控件
by:Mike Sanclon 2004.5.12
from:codeGuru
翻译:snoopy
NumEdit是一个简单的控件,它使用户只能输入一个双精度类型的科学记数格式的数:例如1.23, 12e4, -12E4, 等等。成员函数GetValue()和SetValue() 使处理双精度数值简单一些。
使用方法很简单,只需声明一个CNumEdit类型的变量。
译者注:在vs.net中编译会发生错误,将下面的代码
if ((text [caret.x-1] == 'e') || (text [caret.x-1] == 'E'))
改成:
if(text.GetAt(caret.x-1)=='e'||text.GetAt(caret.x-1)=='E')
即可。
|
|
| 作者:不祥 ycr40张贴于2004-05-13 08:55:20.0,共阅读2396次,回复0次 |
|
|
 |
snoopy每日一译-迅速伸缩对话框类CSnapDlg
|
|
| |
| 我建立一个比较复杂的可以调整size的对话框应用程序,当我调整对话框大小的时候,大量的控件一闪一闪的把我烦死了。我想要的是只在我停止调整对话框大小时,控件的位置大小一步到位。snoopy每日一译-迅速伸缩对话框类CSnapDlg
by: Mike Scanlon 2004.5.11
from:codeGuru
翻译:snoopy
我建立一个比较复杂的可以调整size的对话框应用程序,当我调整对话框大小的时候,大量的控件一闪一闪的把我烦死了。我想要的是只在我停止调整对话框大小时,控件的位置大小一步到位。
使用方法:
1、在StdAfx.h中加入SnapDlg.h。
2、从修改你的对话框使它从CSnapDlg继承。
3、修改你的对话框的构造器,使它调用CSnapDlg的构造器:
CYourDlg::CYourDlg(CWnd* pParent /*=NULL*)
: CSnapDlg(CSnapDialogDlg::IDD, pParent)
4、修改消息影射,使它通过CSnapDlg影射消息:
BEGIN_MESSAGE_MAP(CSnapDialogDlg, CSnapDlg)
5、重载SizeDialog()函数调整对话框中控件的位置和大小。
6、确保你的对话框的OnSize, OnSizing, OnInitDialog ...
|
|
| 作者:不祥 ycr40张贴于2004-05-12 13:03:23.0,共阅读2579次,回复0次 |
|
|
 |
BBS联赛作品A5003
|
|
| |
| 部分代码,只展示作者的编码风格:
A4.
// TicketTest.cpp: implementation of the TicketTest class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "AlgorithmTest.h"
#include "TicketTest.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
TicketTest::TicketTest()
: m_dwMaxM(0)
, m_biAllData(NULL)
{
}
TicketTest::~Ti ...
|
|
| 作者:不祥 imcc张贴于2004-05-07 02:29:48.0,共阅读2743次,回复5次 |
|
|
 |
BBS联赛作品A2003
|
|
| |
| #include<stdlib.h>
#include<stdio.h>
#include<iostream.h>
#define MAXN 222
int a[MAXN][MAXN],b[MAXN];
int N;
int c;
void init()
{
FILE *input;
int i,j;
if((input=fopen("schedule.in","r"))==NULL)
{
cout<<"Error in open input file!"<<endl;
exit(0);
}
fscanf(input,"%d",&N);
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
a[i][j]=0;
while(!feof(input))
{
fscanf(input,"%d%d",&i,&j);
a[i][j]=1;
}
fclose(input);
}
void work()
{
int i,j;
int l[MAXN];
bool bo=true;
for(i=1;i<=N;i++)
b[i]=0;
while(bo)
{
}
}
void outanswer()
{
int i ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-08 21:06:52.0,共阅读2297次,回复0次 |
|
|
 |
BBS联赛作品A5000
|
|
| |
| A1.
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int *policeman(int *in,int maxline);
int *readdata(int *maxline);
void writedata(int *out);
void main()
{
int *xx,*yy,maxline;
xx=readdata(&maxline); //读入数据(第一个数为总人数,依次后推)
yy=policeman(xx,maxline); //处理数据
writedata(yy); //写入数据(第一个数为总人数,依次后推)
getch();
}
int *policeman(int *in,int maxline)
{
int min,*man,i,j,k=0;
int *out,flag,man1,man2;
out=(int*)malloc((in[0]+2)/2*sizeof(int));
man=(int*)malloc((in[0]+1)*sizeof(int));
memset((void*)out,0,(in[0]+2)/2*sizeof(int));
while( ...
|
|
| 作者:不祥 imcc张贴于2004-05-07 03:29:02.0,共阅读2114次,回复0次 |
|
|
 |
BBS联赛作品A5010
|
|
| |
| A1.
算法说明:
1、定义一个结构类型team,代表一组警卫;结构成员为两个整形数i和j,由警卫的编号组成。
2、定义一个结构类型为team的数组men[]来记录可搭档的每组警卫的编号。
3、以字符格式输入,有字符型数组num[]接收,首先接收第一个警卫的编号字符,遇到空格符后,接收第二个警卫的编号字符;遇到回车后,接收下一组警卫的编号。(由标志flag来确定)
4、由函数change()和chartonum()将num[]中的字符转换为数字,存入men[]中的各个成员变量中;
5、由函数line()使用“字典序法”对各组的“检查计算的顺序”进行排序。
6、当排好一次序时,就进行一次计算分析,有函数plan()完成,返回这次能够成功安排值班工作的最大组数;循环计算各次的结果。
7、比较记录下最大组数maxnum和相关的各组q_max[];然后输出。
#include "stdio.h"
#include "string.h"
struct team // 一组警卫的结构
{
int i;
int j;
};
void line(struct team *men, int m, int n); // 组合排序
int rank(int m); // 求m!
int plan(struct team *men, int queue[] ...
|
|
| 作者:不祥 imcc张贴于2004-05-07 03:13:21.0,共阅读2198次,回复0次 |
|
|
 |
BBS联赛作品A5009
|
|
| |
| A2.
/*
========================
A2.跳房子游戏
------------------------
背景:
小时候有玩过跳房子的游戏吗?就是那种在街道上用粉笔画出一些格子,然后在格子间跳
来跳去(有时单脚,有时双脚)或是从格子中检起小石块。现在长大了,来点不一样的跳
房子游戏吧!有一个n*n的格子矩阵,每个格子中放有0到100元不等的钱。参赛者一开始站
在(0,0)的位置(也就是左上角的位置),他每次最多可以跳k格(当然,不能跳出格子
矩阵外),横的方向或直的方向都可以。他每到一个格子,就把那格子中的钱收起来,但
是有一个条件,就是他要跳的下一个格子中的钱一定要比现在所在的格子中的钱来的多。
问题:
给你n, k以及各格子中的钱的大小,请你算出参赛者最多可以收集到多少钱。
输入:
输入的第一列有一个正整数,代表以下有多少组测试资料。每组测试资料的第一列有2个整
数n,k(均介于1到100之间)。接下来的n列,每列有n个整数(均介于0到100之间),代表
这n*n格子矩阵中每个格子里的钱。
输入的第一列与第一组测试资料之间,以及各组测试资料之间均有一空白列。
输出:
对于每一组测试资料输出一列,输出 ...
|
|
| 作者:不祥 imcc张贴于2004-05-07 03:07:13.0,共阅读2102次,回复0次 |
|
|
 |
BBS联赛作品A5008
|
|
| |
| A3.
/******************************************************************************
A3.imcc---糟糕的向导
Solved by pladene@bbs.whnet.edu.cn
问题:给定一个简单图(不一定连通),找出其所有割点(articulation points)
算法: 二分查找 + 搜索
if (ans[i] == true),第二个地点就是割点
*******************************************************************************/
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#define MAX 100
char name[MAX][35], src[35], des[35];
bool w[MAX][MAX], ans[MAX];
int nv, ne, sum, cnt;
int dfn[MAX], father[MAX], low[MAX];
int ...
|
|
| 作者:不祥 imcc张贴于2004-05-07 03:01:18.0,共阅读1984次,回复0次 |
|
|
 |
BBS联赛作品A5005
|
|
| |
| A2.
Problem A2:
问题描述:(略)
问题分析:这是一个动态规划问题。可以先搜索网格中钱数最大值,按降序依次搜索相应钱数的网格可以收集到
的最大钱数,直到(0,0)格。采用一个辅助网格记录搜索时每一网格能收集到的最大钱数。对每一搜索网格,将自身钱数与
横竖可以跳跃范围内网格收集钱数最大值相加为当前网格可以收集的最大钱数。
算法分析:算法扫描所有网格,时间O(A*4k*n2),A为网格最大值与(0,0)值之差。除网格占用空间,需要辅助空
间O(n2)。
/********************************************************************
Problem A2
Filename: Hopscotch.cpp
Author: Adn@BYHH
SN: A5005
*********************************************************************/
#include <iostream>
#include <fstream>
using namespace std;
#define MAX_N 100
int grid[MAX_N][MAX_N];
int afli_grid[MAX_N][MA ...
|
|
| 作者:不祥 imcc张贴于2004-05-07 02:33:36.0,共阅读1945次,回复0次 |
|
|
 |
BBS联赛作品A5002
|
|
| |
| A2.
/************************************************************************/
/* created: 24/3/2004 10:11 */
/* platform: Microsoft Visual C++ v6.0 */
/* filename: Algorithm_A2 */
/* author: SunDrop */
/************************************************************************/
#pragma warning(disable:4786) // VC 版 STL 的一个 bug 。
#include <iostream>
#include <iterator>
#include <utility>
#include <vector>
#include <map>
#pragma hdrstop
using namespace std ;
// 漫游规则的定义和初始化。
// 采用map定义在保证效率的同时使之更清晰。
typedef enum D ...
|
|
| 作者:不祥 imcc张贴于2004-05-07 02:15:51.0,共阅读2172次,回复0次 |
|
|
 |
BBS联赛作品A4008
|
|
| |
| A2.
/*
* 可以把源问题转化成一个在PERT图上求关键路径的问题。
* 首先,每个格子在图上对应一个点,总共有n*n个点。从每个点向
* 它可以到达的点引一条有向边,边权为有向边的起始点对应的格子的
* 钱数。总的边数规模为O(k*n*n)。另外新建
* 一个汇点,所有出度为0的点向这个汇点引一条边。如此可以
* 构造出一个多源单汇的有向图。首先,把多余的源去掉。为此做一个
* 从(0,0)点开始的可达性检测。把不可达的节点删掉。这时我们得到一个
* PERT图。求从源到汇的最长路径,也就是关键路径。求关键路径首先做一次
* 拓扑排序,然后按照排序的结果分别计算源到每个点的关键路径。
* 建立图的复杂度为O(k*n*n),可达性检测的复杂度为O(n*n*k)。求关键路径
* 的复杂度也是O(k*n*n)。所以总的时间复杂度为O(k*n*n).
*/
#include "pertgraph.h"
typedef graph<Node, Edge> Graph;
void main(int argc, char** argv)
{
if (argc != 2) return;
ifstream fin(argv[1]);
int test_count, n, k;
fin >> ...
|
|
| 作者:不祥 imcc张贴于2004-05-06 22:24:16.0,共阅读2104次,回复0次 |
|
|
 |
BBS联赛作品A4007
|
|
| |
| A2.
#include "A2.h"
FILE *in, *out;
int n, k, data_num, maximum, minimum;
int **data;
int init()
{
in = fopen("hopscotch.in", "rt");
if(in == NULL)
{
return 0;
}
out = fopen("hopscotch.out", "wt");
if(out == NULL)
{
return 0;
}
fscanf(in, "%d", &data_num);
data = new int*[MAXNUM];
for(int i = 0;i<100;i++)
data[i] = new int[MAXNUM];
return 1;
}
int getInput()
{
fscanf(in, "%d %d", &n, &k);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
fscanf(in, "%d", &data[i][j]);
}
}
return 1;
}
int uninit()
{
fclose(in);
fc ...
|
|
| 作者:不祥 imcc张贴于2004-05-06 22:02:16.0,共阅读1916次,回复0次 |
|
|
 |
BBS联赛作品A4004
|
|
| |
| A1.
#include <stdio.h>
void main()
{
// read possible guard couples from file
FILE * fp=fopen("schedule.in","r");
if(fp==NULL)
{ printf("schedule.in doesn't exist\n");
return;
}
int guard_num;
// first scan in order to know how many possible couples
fscanf(fp,"%d\n",&guard_num);
int length=0;
int temp1,temp2;
while(fscanf(fp,"%d %d\n",&temp1,&temp2)!=EOF) length++;
int * a=new int [length];
int * b=new int [length];
rewind(fp);
// second scan in order to read and save data
fscanf(fp,"%d\n",&guard_num);
int i=0;
while(fscanf(fp,"%d %d\n",a+i,b+i)!=EOF ...
|
|
| 作者:不祥 imcc张贴于2004-05-06 21:52:28.0,共阅读1929次,回复0次 |
|
|
 |
BBS联赛作品B4003
|
|
| |
| BLUE BBS HELP开发文档
NOTE:本程序只在win2k和winxp上使用Sterm2.052测试过
1 引言
目前smth和ytht以及FireBird都有了Windows NT的版本。它们的程序结构都是过程驱动和面向函数的。不考虑在用户访问量上的优势,分析其源码后会发现存在如下不足:
1)可读性较差。
在纷繁复杂的全局变量以及goto面前,需要很有经验的开发者,以及花费大量的时间才能够对系统架构有所了解,无疑加大了系统升级的难度。
2)独占进程。
例如FB,每一个用户请求都会为其创建一个进程,这样会增大系统资源的开销。为了进一步压缩系统资源的消耗,可采用多线程、共享服务或者线程池的方法。
3)未接入数据库系统
BBS Server每天都要存储和修改大量的数据,FB目前都是使用文件的形式进行存档的,无疑会失去很多使用数据库的好处。
4)封装性和可重用性差
在系统各个板块的设计中会有很多重复的页面元素,例如列表等。由于面向过程的设计缺乏继承、重载之类的机制,在制作页面元素以及处理其响应时,即使只有一点小小的变化,都需要调派各类函数,进行很多重复工作。
5)…
Blue BBS系统针对以上这些问题作了一些改进尝试,由于时间和工作量的问题,不可能完善所有的功能,但是它实现了以下的部分。
1)采用面向对象的表达方式
BBS中需要用到的各种元素,例 ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-06 21:03:25.0,共阅读2333次,回复0次 |
|
|
 |
BBS联赛作品B4001
|
|
| |
![工程快照[7,626字节]](/upload/2004/05/1047343490929.gif)
|
| |
| Thanks For Using :
Now I Can Do Something for you when u press the numpad keys .
How To Use ? Follow the following steps :)
1. Start me by double click me .
2. Now U can see me ?
3.Click each Number u can see :
Here Title Value is the String U see when U hover On a number key
Message Value is the String U want me to type instead of U here “\n” means <Enter> (Key Mode)
PreDef Function List is the PreDefined function U can choose it They Are
VOL UP
Set System Volume Up
VOL DOWN
Set System Volume Down
Mute
Set System quiet
Media Player
Media Player
N ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-06 20:34:34.0,共阅读2092次,回复0次 |
|
|
 |
BBS联赛作品B2001
|
|
| |
![工程快照[15,121字节]](/upload/2004/05/1047343490922.gif)
|
| |
| AppleChess说明:
这是一个只能双人对战的黑白棋程序(原形取自文曲星上的黑白棋游戏,名字取自某年vc试题?D?D苹果棋)。布局如下:
(操作基本按序号进行,即先填ip,再选色,再。。。。。。)
有些按钮在特定场合下为保证合理性被禁用。
通信采用UDP协议,因时间匆忙未详细注释源码。
源码开放供大家交流,祝各位好心情:)
szs , from bmy-bbs
04,04,18
|
|
| 作者:不祥 bluejoe张贴于2004-05-05 22:55:35.0,共阅读2086次,回复0次 |
|
|
 |
BBS联赛作品A3003
|
|
| |
| 所附程序皆为dsw文件,大家可以下载下来,在VC里面打开。
|
|
| 作者:不祥 bluejoe张贴于2004-05-05 13:30:19.0,共阅读1679次,回复0次 |
|
|
|