分区
1259534964
lissome
java俄罗斯方块游戏切换面板后,方块不能上下左右移动
展开Biu

本帖最后由 lissome 于 2012-6-12 14:17 编辑

额,民那,由于代码比较长,以免你们的滚动条缩小了,所以设置了回复隐藏~请不要介意。

这个代码弄了我很久了。问题就是在于原本如果我不用remove()这个函数直接在NewMenu类里new一个游戏面板的时候方块是可以上下左右移动的【请不要吐槽俄罗斯方块不能向上!】

后来由于要有界面友好性所以才搞了个开始面板,然后通过按钮触发事件,跳转到游戏面板。问题是!明明我已经对方块注册了一个键盘监视器,但是就是木有反应,谁能告诉我为神马!?求解决!@125#

【代码神马的略略有点不整齐,希望不要介意~~~】

ps:话说我能不能设置回帖奖励~~?

本内容已隐藏,回复后刷新可见哦

[查看全文]
二哥不寂寞
c++ 求语句解释
展开Biu

#include"iostream.h"

int main()

{

int a=8,b=4,c=2,k=4,m=8,n=6;

cout<<a<<b<<c<<k<<m<<n<<endl;

if(a!=b||m!=a+b)

{

a=2*k!=!m;

a=a+a;

}

if(a+b>=0&&m/3>2)

{m=k+3*!c;

}

else

{

k=k*!m!=c;

}

cout<<a<<m <<k<<endl;

return 0;

}

表示不懂a=2*k!=!m这一句是怎么计算的 麻烦高手解释一下 感激不尽

[查看全文]
二哥不寂寞
新手,C++不知道哪里错了
展开Biu

数据如下,不知道哪里错了,望大神指点

#include "iostream.h"

int main()

{

int a=8;

cout<<a/3;

return 0;

}

[查看全文]
残冬Nightmare
请高手帮忙看看我用C语编的这个程序
展开Biu

本帖最后由 残冬Nightmare 于 2012-5-27 13:56 编辑

问题是这样子的...在WIN-TC下可以运行:77:...但是在平均分和最大值最小值那里有问题:82:..说什么不可移动的指针(地址常数)赋值在 *** 函数中..我们不学指针变量..怎么才能改过来呢?求高手帮忙啊:84:...我把所有源代码都贴上来..

[mw_shl_code=c,true]#include <stdio.h>

#include <stdlib.h>

#define NUM 10

typedef struct info{ /*学生学分信息的结构类型*/

char class_number[20]; /*班级*/

char number[20]; /*学号*/

char name[20]; /*姓名*/

char score[NUM]; /*分数*/

}INFO;

void displayMenu();

int input (INFO s[], int n);

void output_all (INFO s[], int n);

int add (INFO s[], int n);

void output_number (INFO s[], int n);

void output_class (INFO s[], int n);

void modify (INFO s[], int n);

int delete (INFO s[], int n);

void maxmin (INFO s[], int n);

void average (INFO s[], int n);

main() /*主函数*/

{

INFO s[NUM];

int choice ;

int n=0;

do{

displayMenu();

scanf("%d",&choice);

switch(choice)

{

case 1:n=input(s,n);break;

case 2:output_all(s,n);break;

case 3:n=add(s,n);break;

case 4:output_number(s,n);break;

case 5:output_class(s,n);break;

case 6: modify(s,n);break;

case 7:n=delete(s,n);break;

case 8:maxmin(s,n);break;

case 9:average(s,n);break;

}

clrscr();

} while(choice!=0);

printf("\n\n Thank you for using!!");

getch() ;

}

void displayMenu() /*显示菜单*/

{

printf("\n===============MENU===============\n");

printf("\n1.........Input all student's information.........\n");

printf("\n2.........Output all student's information.........\n");

printf("\n3.........Add a student's information.........\n");

printf("\n4.........Search by number.........\n");

printf("\n5.........Search by class.........\n");

printf("\n6.........Modify a student's information.........\n");

printf("\n7.........Delete a student's information.........\n");

printf("\n8.........Max and min score.........\n");

printf("\n9.........Average score.........\n");

printf("\n0.........Exit.........\n");

printf("\nEnter your choice(0~9):");

}

int input(INFO s[],int n) /*输入成绩信息*/

{

int i,j,a;

clrscr();

printf("Enter total number of students:");

scanf("%d",&a);

n=a;

for(i=0;i<a;i++)

{

printf("Please input the student's class_number(example:110551):");

scanf("%s",&s.class_number);

printf("Please input the student's number(example:11055101):");

scanf("%s",&s.number);

printf("Please input the student's name(not more than 15 letters):");

scanf("%s",&s.name);

for(j=0;j<10;j++)

{

printf("Please input the score(not more than 100):");

scanf("%s",&s[j].score);

}

printf("\n");

}

printf("\nAll the informations have been saved!\n");

getch();

return n;

}

void output_all(INFO s[],int n) /*浏览学生成绩信息*/

{

int i,j;

clrscr();

for (i=0;i<n;i++)

{

printf("\nclass\tnumber\tname\n");

printf("\n%s\t%s\t%s\n",s.class_number,s.number,s.name);

printf("Score:");

for(j=0;j<10;j++)

{

printf("\n%s\n",s[j].score);

}

}

getch();

}

int add(INFO s[],int n) /*添加某位学生的成绩信息*/

{

int i,j,a;

clrscr();

printf("How many students do you want to add?");

scanf("%d" ,&a);

for(i=n;i<a+n;i++)

{

printf("Please input the student's class_number(example:110551):");

scanf("%s",&s.class_number);

printf("Please input the student's number:");

scanf("%s",&s.number);

printf("Please input the student's name(not more than 15 letters):");

scanf("%s",&s.name);

for(j=0;j<10;j++)

{

printf("Please input the score(not more than 100):");

scanf("%s",&s[j].score);

}

printf("\n");

}

n=n+a;

printf("The information has been saved successfully!\n");

getch();

return n;

}

void output_number(INFO s[], int n) /*输出某位学生成绩信息*/

{

int i,j;

char a[10];

clrscr();

printf("Please input the student's number: ");

scanf("%s",&a);

for(i=0;i<n;i++)

{

if(strcmp(s.number,a)==0)

{

printf("\nclass\tnumber\tname\n");

printf("\n%s\t%s\t%s\n",s.class_number,s.number,s.name);

printf("Score:");

for(j=0;j<10;j++)

{

printf("\n%s\n",s[j].score);

}

}

}

getch();

}

void output_class(INFO s[], int n) /*输出某班所有学生成绩信息*/

{

int i,j;

char a[10];

clrscr();

printf("Please input the class number: ");

scanf("%s",&a);

for(i=0;i<n;i++)

{

if(strcmp(s.class_number,a)==0)

{

printf("\nclass\tnumber\tname\n");

printf("\n%s\t%s\t%s\n",s.class_number,s.number,s.name);

printf("Score:");

for(j=0;j<10;j++)

{

printf("\n%s\n",s[j].score);

}

}

}

getch();

}

void modify(INFO s[], int n) /*修改某学生成绩信息*/

{

int i,j;

char a[10];

char b;

clrscr();

printf("Please input the student's number you want to change:");

scanf("%s",&a);

printf("Are you sure?(Y/N) ");

b=getch();

printf("\n");

if(b=='y'||b=='Y')

{

for(i=0;i<n;i++)

{

if(strcmp(s.number,a)==0)

{

printf("Please input the student's class_number(example:110551):\n");

scanf("%s",&s.class_number);

printf("Please input the student's number(example:11055101):\n");

scanf("%s",&s.number);

printf("Please input the student's name(not more than 15 letters):\n");

scanf("%s",&s.name);

printf("Score:");

for(j=0;j<10;j++)

{

printf("Please input the score(not more than 100):");

scanf("%s",&s[j].score);

}

}

}

}

printf("Finish!Press any key to return.");

getch();

}

int delete(INFO s[], int n) /*删除某学生成绩信息*/

{

int i,j,k;

char a,delstudent[10];

clrscr();

printf("Enter the student number that you want to delete:\n");

scanf("%s",&delstudent);

for(i=0;i<n;i++)

{

if(strcmp(s.number,delstudent)==0)

{

printf("\nclass_number\tnumber\tname\n");

printf("\n%s\t%s\t%s\n",s.class_number,s.number,s.name);

printf("Score:");

for(k=0;k<10;k++)

{

printf("\n%s\n",s[k].score);

}

printf("Do your want to delete the student?(Y or N)\n");

scanf("%s",&a);

if(a == 'Y' || a=='y')

{

for (j=i+1;j<n;j++)

{

s[j-1]=s[j];

}

n=n-1;

printf("delete finish.");

}

}

}

getch();

return n;

}

void maxmin(INFO s[],int n) /*最高分和最低分*/

{

int i,j;

int a=0;

int b=100;

clrscr();

printf("The max score is:");

for(i=0;i<n;i++)

{

for(j=0;j<10;j++)

{

if(s[j].score>a)

{

a=s[j].score;

}

}

}

printf("%d",a);

getch();

printf("The min score is:");

for(i=0;i<n;i++)

{

for(j=0;j<10;j++)

{

if(s[j].score<b)

{

b=s[j].score;

}

}

}

printf("%d",b);

getch();

}

void average(INFO s[],int n) /*平均分*/

{

int sum=0;

float ave=0;

int i,j,a;

clrscr();

printf("The average socre is:\n");

for(i=0;i<n;i++)

{

for(j=0;j<10;j++)

{

sum=sum+s[j].score;

}

}

a=10*n;

ave=sum/a;

printf("%f",ave);

getch();

}[/mw_shl_code]

[查看全文]
爬出棺材看尘埃
C和指针
展开Biu

这书也算挺经典的了吧,不多说了,大家有需要的自取吧~

http://115.com/file/bej06uh0#

C和指针.pdf

[查看全文]
kesaan
谁来帮咱写出这个压缩程序?
展开Biu

如下面的:

int NLZSS_11h_uncompress(char *inFileName,char *outFileName)

{

FILE *ifp = fopen(inFileName,"rb");

unsigned char FileID = getc(ifp);

if(FileID != 0x11)

{

fclose(ifp);

return -1;

}

unsigned int outFileSize = 0;

fread(&outFileSize,3,1,ifp);

fseek(ifp,0,2);

unsigned int inFileSize = ftell(ifp)-4;

fseek(ifp,4,0);

unsigned char *inBuffer = new unsigned char[inFileSize];

fread(inBuffer,inFileSize,1,ifp);

fclose(ifp);

unsigned char *outBuffer = new unsigned char[outFileSize];

unsigned char *current_pos = outBuffer;

memset(outBuffer,0,outFileSize);

int backRefLength = 0,

outputLength = 0,

decomp_size = 0,

mask = 0,

count = 0;

int flags = 0,

i = 0;

int r0 = 0,//待解压文件读取指针

r1 = 0,//解压文件写入指针

r2 = 0,//解压大小

r3 = 0,//复制长度

r4 = 0,//LZSS的控制位计数器

r5 = 0,

r6 = 0,

r7 = 0,//作用未知,貌似总是1

r12 = 0,//回溯距离

r14 = 0;//LZSS的ID字节

for( ; ; )

{

if(r4 == 0)

{

flags = inBuffer[r0++];

r4 = 8;

}

if( (flags&0x80) )//解压数据

{

r5 = inBuffer[r0];

if( r5&0xE0 )//r5高三位不全为0

{

r6 = 1;

r3 = r6 + (r5>>4);//复制长度

r0++;

r5 &= 0x0F;

r12 = r5<<8;

r6 = inBuffer[r0++];

r5 = r6 | r12;

r12 = r5 + 1;//回溯距离

}

else//r5高三位全为0

{

r0++;

r6 = r5&0x0F;

r6 <<= 4;

if( r5&0x10 )//第5位不为0

{

r6 <<= 8;

r5 = inBuffer[r0++];

r6 += (r5<<4);

r6 += 0x100;

r6 += 0x11;

r5 = inBuffer[r0];

r3 = r6 + (r5>>4);//复制长度

r0++;

r5 &= 0x0F;

r12 = r5<<8;

r6 = inBuffer[r0++];

r5 = r6 | r12;

r12 = r5 + 1;//回溯距离

}

else

{

r6 += 0x11;

r5 = inBuffer[r0];

r3 = r6 + (r5>>4);//复制长度

r0++;

r5 &= 0x0F;

r12 = r5<<8;

r6 = inBuffer[r0++];

r5 = r6 | r12;

r12 = r5 + 1;//回溯距离

}

}

r1 += r3;

for( ;r3 > 0;r3--)

{

*current_pos++ = outBuffer[current_pos-outBuffer - r12];

}

}

else//直接输出

{

*current_pos++ = inBuffer[r0++];

r1++;

}

if(r1 == outFileSize)

goto END;

flags <<= 1;r4--;

}

END: FILE *ofp = fopen(outFileName,"wb");

fwrite(outBuffer,outFileSize,1,ofp);

_fcloseall();

delete [] inBuffer;

delete [] outBuffer;

return 0;

}

更据上面的东东=。=写出想应的压缩程序,白托咯~~~~~~~~~~~~~~=1012=

[查看全文]
失落的指环
用EXE4J打包swt项目时候报错,请大家帮帮我吧TAT
展开Biu

我用exe4j打包了一个jar文件,jar是用eclipse的export功能打包的,程序和jar包都能正常运行,但是我用exe4j打包成exe的时候就报错了

java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(Unknown Source)

at java.security.SecureClassLoader.defineClass(Unknown Source)

at java.net.URLClassLoader.defineClass(Unknown Source)

at java.net.URLClassLoader.access$100(Unknown Source)

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)

at com.exe4j.runtime.WinLauncher.main(Unknown Source)

这是为什么呢

[查看全文]