 |
BBS联赛作品B5001
|
|
| |
![工程快照[164,616字节]](/upload/2004/05/1047343491017.gif)
|
| |
| 本软件除了正常的计算器功能外,最大的特点是可以更换皮肤,这里提供了风格完全不同的四种界面。各个界面除了背景图片和按钮图片可以自由更换外,按钮位置、按钮个数、按钮功能都可以随界面的不同而自定义。
界面一:默认界面,作为科学计算器使用,按钮中的”_”是最小化按钮,”C/S”按钮是菜单按钮,用来换界面和开关声音,其他的按钮与标准计算器相同。
计算器1.0演示版,功能不全,Bug多多,仅供演示,概不负责^_^
解压缩可直接使用!
这个程序只是一个系列工程中的小小实验,主要是为了验证自绘控件、换肤技术和界面设计的相关内容,同时也是为了参加这次的bbs程序设计大赛。由于一开始并没有明确的选题,因此计算器的算法核心部分没有认真编写和调试,短短三天写出来的程序完全没办法实现计算器的真正功能,而我现在要出差了,可能不能在规定时间内作任何修改了,我希望有哪有兴趣的同仁跟我组队参赛,帮助我完成算法核心内容。
有兴趣的可以给我发邮件:hadren@263.net,请不要再bbs里面发信,我出差了!我会把源程序附上,并且以组队的名义参赛,但是前提是有热情有恒心,能够真正为了给白云争光、为学校争光而作这件事情!(当然不能比我的算法还差,我的就够烂的了^_^)
如果在15号之前还没有人想和我组队的,我就只好这样子上传了,不过我还是希望有人能 ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-06 21:30:22.0,共阅读2901次,回复1次 |
|
|
 |
BBS联赛作品B1002
|
|
| |
![工程快照[55,958字节]](/upload/2004/05/1047343490977.gif)
|
| |
| 3DMin用户手册.chm3DMin简介
3DMin是一款模仿3DSMax的小型三维图形制作软件。
因为是模仿3DSMax, 3DMin拥有和3DSMax一样友好的用户界面与操作方式。
因为是一款小型软件,3DMin能完成的功能远不如3DSMax,它只提供了一些基本形体的建模,有限的子物体编辑和少量的材质种类。
不过,也正是因为它的小巧,使其有许多其它方面的优势:程序极小,无需安装,起动快,占用内存少。新的东东还没完成, 没时间啦, 只好把两年前的图形学作业搬过来, 凑合着用一下仿3dsmax界面及基本操作, 自我感觉界面和用户交互做得还可以, 呵呵
该作品目前尚无源代码。
|
|
| 作者:不祥 bluejoe张贴于2004-05-06 21:42:59.0,共阅读4318次,回复8次 |
|
|
 |
BBS联赛作品B1001
|
|
| |
![工程快照[35,789字节]](/upload/2004/05/1047343490921.gif)
|
| |
| 本计算器实现了如下两个功能:
1、windows自带计算器的键盘输入加减乘除,目前没有连续运算功能
操作:用户用键盘或者鼠标分别输入‘1’,‘+’,‘2’,按‘=’
文本框显示运算结果‘3’。
2、表达式运算功能,目前只支持整数运算。
操作:选择菜单Option->Expression,在文本框用键盘输入表达式
如‘12/2+(4*5/4)*6’,按计算器上‘=’,文本框显示运算结果
‘12/2+(4*5/4)*6=36’。
3、换肤功能
提供了4种skin,可以自由切换。
操作:菜单Skin->Load Skin,选择skin文件。
|
|
| 作者:不祥 bluejoe张贴于2004-05-05 22:46:44.0,共阅读7576次,回复16次 |
|
|
 |
BBS联赛作品B3006
|
|
| |
![工程快照[38,269字节]](/upload/2004/05/1047343490928.gif)
|
| |
| 关于TEC PRO通信机制的说明.doc
使用手册.ppt
虚拟机程序文档(含微程序扩充、动态波形图).doc
虚拟机逻辑框图(含微程序扩充、动态波形图).vsd
制作组.txt虚拟机程序说明(包含微程序扩充、动态波形图)
一、虚拟机功能:
功能:
1.支持A,G,R,D,E,U,T,P等命令;
2.可读入.ASM汇编文件或者.COD二进制文件执行;
3.可选择不同的运行方式(全速,单指令,单微指令,暂停);
4.支持中断实验(三级中断源),可以设定中断向量;
5.支持指令集与微指令集的动态扩充;
6.控件动态显示所有重要信号与数据状态(部分控件可点击);
二、使用说明:
使用说明:
1.首先点击“连接”按钮,选择“与TEC2000通信”或者“使用软件模拟”;
2.若使用软件模拟,则点击“全速运行”按钮,进入正常工作方式;
3.为详细了解虚拟机工作情况建议点击“暂停”然后单指令或单微指令运行;
4.若要读入文件,点击“打开文件”按钮,文件格式将自动转换,如要执行文
件,再点击“传送”按钮,则文件写入内 ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-05 23:32:15.0,共阅读5001次,回复9次 |
|
|
 |
BBS联赛作品A4010
|
|
| |
| A1.
/*
首届高校BBS程序设计大赛 算法项目赛题A
By rainarch@smth 2004.4.16
=======================
A1.工作安排
-----------------------
问题:
有一定数量的夜班警卫保卫当地的仓库以防止抢劫。这些警卫需要成对地进行安排,使每一
对安排在不同的夜晚。仓库主管要求你写一程序, 确定能够安排警卫的最大值。 注意:每
一个警卫人员只能安排一次,警卫人员不能单独工作。
输入:
第一行包含一个整数 N <= 222 ,这是警卫人员的总数。以下的每一行包含一对整数(i,j)意
味着警卫i和j能够在一起工作。输入以EOF结束。
输出:
输出最理想的安排方法。输出一整数,表示能够安排的警卫人员的总数C。然后的C/2行,每
一行2个整数,意味着 i 和 j 能够一起工作。
输入样例:
3
1 2
2 3
1 3
输出样例:
2
1 2
///////////////////////////////////////////////
主要思想
根据图中上点的度最小优先考虑的原则。
link: 表示每个guard可能的匹配对数目
1. Compute link for each guard
2. ...
|
|
| 作者:不祥 imcc张贴于2004-05-06 22:34:28.0,共阅读2121次,回复1次 |
|
|
 |
BBS联赛作品C4009
|
|
| |
![工程快照[9,903字节]](/upload/2004/05/1047343490990.gif)
|
| |
| 目前程序已经初步完成了, 其中功能如下
PAGE 2:
在表达式中可以支持的操作符有sin, cos, tan, ln, ex(e的x次方), asin, acos, atan, !(阶乘), +, -, *, /, %(取余), 和左右括号运算, (表达式中不能省略*号), 支持!=, >=, >, <, <=, 判断运算, 支持&&, ||, or, xor,逻辑运算
PAGE 3:
在矩阵计算中,矩阵合法表达为
[a,b;c,d;] 其中a,b,c,d可以为表达式, 头尾用方括号,元素间用逗号,每一行结束都要有一个分号
PAGE 4:
方程组求解要求输入系数矩阵和b矩阵, 其中都按照矩阵计算中的矩阵格式输入, 特别要把b矩阵输入成一个列矩阵, 其中矩阵内元素都可以使用表达式. 读取方程表达式时设x为变量, 指数只支持大于0地整数. 必须以=0为结尾应用类题目: 计算器
作者 weeny9,pxsnet,duckblue,wanghaowho
大赛sn c4009
|
|
| 作者:不祥 bluejoe张贴于2004-05-07 09:15:32.0,共阅读3033次,回复1次 |
|
|
 |
BBS联赛作品A4011
|
|
| |
| A1.
/*
* 题目分析:
* 本题是一个图的最大匹配问题
*/
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>
const int MAXN = 222+1; // 最大警卫数目
const int MAXINT = INT_MAX;
int graph[MAXN][MAXN]; // 图的邻接矩阵
int lvtype[MAXN][2]; // [i][0]与i顶点相连的盖点序号
// [i][1]与i顶点相连的未盖点序号
int vtype[MAXN]; // 0为未盖点,非0为盖点,<i,vtype[i]>为匹配边
int vnum; // 顶点数
// 图矩阵初始化,并从文件中读入邻接矩阵
int Initialize(const char *sFileName)
{
memset(graph, 0, sizeof(int) * MAXN * MAXN);
FILE *fp = fopen(sFileName, "r");
if (fp == NULL)
...
|
|
| 作者:不祥 imcc张贴于2004-05-06 22:43:33.0,共阅读2141次,回复1次 |
|
|
 |
BBS联赛作品A2011
|
|
| |
| A2.
/* 动态规划解法, 时间复杂度 n^4 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXSIZE 10000
typedef struct {
short price; /* 该格的价值 */
char r, c; /* 行号和列号 */
int result; /* 从左上角走到该格的最大价值 */
} GRID;
/* 用于qsort排序的回调函数,用于比较两个格子的价值 */
int grid_comp(const void* g1, const void* g2)
{
return *(short*)g1-*(short*)g2;
}
/* n*n个格子 */
GRID grid[MAXSIZE];
int n, k;
/* 读取数据 */
void getdata()
{
int i, j, m;
GRID *p = grid;
scanf ("%d%d", &n, &k);
for (i=0; i<n; ++i)
for (j=0; j<n; ++j) {
scanf("%d", &m);
p->price = m;
p->r = i; ...
|
|
| 作者:不祥 imcc张贴于2004-05-06 21:26:57.0,共阅读3039次,回复1次 |
|
|
 |
BBS联赛作品A3001
|
|
| |
| A1.
/*
* 算法阐述:
* 对与警卫A,有两种途径找到同伴:或者直接找到能与自己组对的单独警卫B组对;或者拆散一组警卫(C,D)与其中C组对,然后对余下警卫D重复上述步骤,直到某一步时直接找到能组对的单独警卫,这种情况认为是A组对成功,并按上述途径进行组对;否则A不能找到同伴,。
* 按上方法依次遍历所有警卫,若i能组对成功则按找到的途径组对,最后得到的结果为最优。(详细证明未给出)
* 在一次搜索过程某步骤中,若警卫i通过拆开某对警卫(m,n),并与其中m组对为(i,m)后,最终无法组对成功,则m是稳定的,在这次搜索的以后步骤中单个警卫i不能再与m组对。如此可以大大加快搜索速度。
* 程序复杂度不超过O(n^2)。
*/
#define cin infile
#define MAX_N 223
#include<iostream>
#include<fstream>
using namespace std;
struct PartnerList{
int p[MAX_N];
int pnum;
PartnerList(){for(pnum=MAX_N;pnum>0;)p[--pnum]=0;}//初始化,pnum与p[]都置零
void Add(int i){p[pnum++]=i;}//列表中添加能够组对 ...
|
|
| 作者:不祥 imcc张贴于2004-05-06 21:44:18.0,共阅读2799次,回复1次 |
|
|
 |
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次 |
|
|
|