子级分类:
系统程序
网络工具
媒体工具
管理软件
游戏娱乐
BBS联赛作品
可重用类
 |
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,共阅读2470次,回复5次 |
|
|
 |
snoopy每日一译-向窗口发送击键消息的类CKeystrokeEngine
|
|
| |
![工程快照[96,765字节]](/upload/2004/05/1047343491008.gif)
|
| |
| CKeystrokeEngine最初是为了我的作品Macro Angel(http://www.macroangel.com/)的用户能够发送击键消息到活动或选定的窗口而写。它的功能类似于VB中的SendKey,但它能够进行更复杂的操作。在CWindowEngine的帮助下,除了能够发送击键消息到活动窗口,它还能发送击键消息到指定的窗口。snoopy每日一译-向窗口发送击键消息的类CKeystrokeEngine
by:Mustafa Demirhan 2003.7.3
from:codeGuru
翻译:snoopy
简介:
CKeystrokeEngine最初是为了我的作品Macro Angel(http://www.macroangel.com/)的用户能够发送击键消息到活动或选定的窗口而写。它的功能类似于VB中的SendKey,但它能够进行更复杂的操作。在CWindowEngine的帮助下,除了能够发送击键消息到活动窗口,它还能发送击键消息到指定的窗口。
一个简单的CKeystrokeEngine语句如:
Hello World!<ENTER><REPEAT 10>I love open source<ENTER><END_REPEAT>
Mustafa Demirhan
所有的特殊键都使用'<'和'>'包括。例如,仿真 ...
|
|
| 作者:不祥 ycr40张贴于2004-05-11 13:31:05.0,共阅读2300次,回复0次 |
|
|
 |
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,共阅读2048次,回复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,共阅读1901次,回复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,共阅读1965次,回复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,共阅读1861次,回复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,共阅读1757次,回复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,共阅读1726次,回复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,共阅读1942次,回复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,共阅读1850次,回复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,共阅读1707次,回复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,共阅读1697次,回复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,共阅读2077次,回复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,共阅读1828次,回复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,共阅读1780次,回复0次 |
|
|
 |
BBS联赛作品A3003
|
|
| |
| 所附程序皆为dsw文件,大家可以下载下来,在VC里面打开。
|
|
| 作者:不祥 bluejoe张贴于2004-05-05 13:30:19.0,共阅读1455次,回复0次 |
|
|
 |
BBS联赛作品A2008
|
|
| |
| T2
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define ABS(i) (i>0?i:-i)
void Errexit(int n);
/*
程序中间出现异常的情况
*/
int max(int*m,int *x,int u,int n,int k);
/* 参数说明:
xx表示待处理的矩阵
m 表示已经部分处理过的矩阵
u表示当前出发点
n表示矩阵维数
k表示能走的步数
*/
FILE *readDATE(int *x,int n,FILE *fp);
/*
读取一个矩阵大小的数据
*/
int main()
{
int *x;
int *m;
FILE *fp;
FILE *ofp;
if((fp=fopen("hopscotch.in","r"))==NULL)Errexit(1);
if((ofp=fopen("T2_result.txt","w"))==NULL)Errexit(3);
int i;
fscanf(fp,"%d",&i);
while(i--)
{
int n,k;
fscanf(fp,"%d%d",&n,&k);
...
|
|
| 作者:不祥 bluejoe张贴于2004-05-05 13:22:48.0,共阅读1566次,回复0次 |
|
|
 |
多文件选择文件对话框例子
|
|
| |
| 其实很简单了,自己直接用 CFileDialog 也是一样..很多不会用 CFindFile 的也看看这个吧.
|
|
| 作者:不祥 Bccv张贴于2004-04-16 09:43:35.0,共阅读2783次,回复1次 |
|
|
 |
映射网络驱动器源代码
|
|
| |
![工程快照[15,922字节]](/upload/2004/04/1047343490895.gif)
|
| |
| 映射网络驱动器源代码
映射网络驱动器
WNetConnectionDialog
|
|
| 作者:不祥 bluejoe张贴于2004-04-29 13:22:58.0,共阅读2092次,回复0次 |
|
|
 |
BBS联赛作品A1003
|
|
| |
| 首届全国高校BBS联合程序开发大赛
算法组
选手 A1003 bestivan.bbs@bbs.sjtu.edu.cn
来自 SJTUBBS 饮水思源站
提交题目
A.02
/*
* 首届全国高校BBS联合程序开发大赛
* 算法组 题号:A2.跳房子游戏
* 选手 A1003 bestivan.bbs@bbs.sjtu.edu.cn
* 来自 SJTUBBS 饮水思源站
*/
/*
* 算法说明:
* 本题的算法为动态规划
* 将(0,0)加入活动队列,设置step(0,0) = gold(0,0)
* 从活动队列中取出第一个格子,找到从这个格子开始所有可以跳到的格子
* 计算从这个格子跳过去所能拿到的钱数,与目标格子中的累计最大钱数step(x,y)比较
* 如果超过step(x,y)则更新step(x,y)的值,如果目标格子没有被加入活动区域则将这个
* 格子加入活动区域队列,并且按照格子中的钱币值升序排列
*
* 直到队列中已经没有任何格子为止,找到step[][]的最大值输出即可
*
* Tips:
* 由于数据量很大,需要开一个足够长的队列来存放临时变量
*/
#include <iostream.h>
//全 ...
|
|
| 作者:不祥 bluejoe张贴于2004-04-28 18:17:58.0,共阅读1382次,回复0次 |
|
|
|