❶ 编程达人来看一下,好么
学C++,学Directx,还有很多具体看《windows游戏编程大师技巧》,至于用软件导出原来的游戏内容的话,导出人物和场景模型的话还可以,程序就不可能了,导出来是汇编语言,你看也看不懂,要对底层,对硬件有足够的了解才能改一个用汇编写的游戏(恕我才疏学浅,我没听说过世界上有谁那么找虐,用汇编写游戏),大学4年学汇编不可能到那个程度。
汇编很难,说实话大部分程序员都不愿意用汇编,太难。
我也即将上大学,学的数字媒体技术专业,就是做游戏的。
学C++吧,不过不能保证你4年后能改这个游戏。
❷ 编程达人请进~~前途问题啊~~
怎样学编程
1.明确学习目的
学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能 锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。
2.打好基础
学编程要具备一定的基础,总结之有以下几方面:
(1)数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
(2)逻辑思维能力的培养 学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
(3)选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发 应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台开发 开发工具如 Java 等。 3)网络开发 对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。
3. 注意理解一些重要概念
一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。
4.掌握编程思想
学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程......;学习 COM 就要知道 VTALBE 、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。
5.多实践、多交流
掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
6.养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
7.上网学编程
在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。例如网站“编程课堂”(http://best.yeah.net/)主要以 VB 和 Delph;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”(http://pshool.yeah.net/)是专门介绍C、VC、VB、Delphi 等的综合编程网站;网站“ VB 编程乐园 ”(http://www.vbeden.com/)提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。
8.加强计算机理论知识的再学习
学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。
❸ 请英语达人或者编程达人帮忙翻译一段注释
有问题再hi我
/*
How add your application to startup!
把你的程序添加到开机启动项的方法
Author: K1u
作者:K1u
Site: k0h.org & k1u.org
网站:k0h.org & k1u.org
Disclaimer: I am not responsible for how you use this.
声明:我对你怎么使用这个程序不负责
This is purely for ecational purposes.
这单纯的只是教育目的
BTW: If you wish to use this in your application give me a shout.
另:如果要用在你的程序里,跟我打声招呼
*/
#include <windows.h>
int main(void)
{
/* Grab filename of process/exe using GetMoleFileName() function.
获取exe或进程文件名用GetMoleFileName()函数*/
TCHAR szPath[MAX_PATH];
GetMoleFileName(NULL,
szPath,
MAX_PATH);
/* Create a New HKEY.
创建一个键值*/
HKEY newValue;
/* Open Registry key.
打开注册表中的键*/
RegOpenKey(HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\Windows\\CurrentVersion\\Run",
&newValue);
/* Note use HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run to add for the
注意:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run仅对当前用户有效
current user only.
Now give a new value.
给键值赋新值
Syntax for RegSetValueEx() function is
RegSetValueEx()函数的调用方法为:
LONG WINAPI RegSetValueEx(
__in HKEY hKey,
__in_opt LPCTSTR lpValueName,
__reserved DWORD Reserved,
__in DWORD dwType,
__in_opt const BYTE* lpData,
__in DWORD cbData
);
More info at http://msdn2.microsoft.com/en-us/library/ms724923.aspx
要获取该函数更多信息到:http://msdn2.microsoft.com/en-us/library/ms724923.aspx */
RegSetValueEx(newValue,
"Name_Me_Please",
0,
REG_SZ,
(LPBYTE)szPath,
sizeof(szPath));
/* Close the key.
关闭该键*/
RegCloseKey(newValue);
return 0;
}
❹ 编程达人在线教育怎么样
编程达人很不错的。老师都是有3年以上开发经验的程序员,真正知道该教什么知识。学费还便宜,相比其他机构要低很多很多。
❺ 小弟想学编程.很茫然..各语言编程达人请进来指点下!
不用考虑太多,学delphi ,vb,都不重要,重要的是你想得到什么,如果想比较快速的开发一些东西,建议delphi ,vb都可以,语言是相通的,精通一门语言相信你学习其他语言也会很快了,多看别人写的源码,自己多写习题,自然就通了同时计算机的龙书建议看看
❻ C语言编程达人请进
看这一句:
fwrite(&arr,sizeof(int),1,fp);
sizeof(int)表示你写入的一块的大小,你用的是一个int大小。
1表示你要写入的块的数目。
显然在你机器上一个int是4个字节,而arr的类型是char *,一个char是1个字节,所以你写入4个字节大小的数据时就会写入四个字符。
如果你要写入全部字符,改成
fwrite(&arr,sizeof(char),10,fp);
❼ 求编程达人帮我编个小程序~
代码如下所示,vc6.0上运行通过
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"Wsock32.lib")
int main()
{
unsigned long ulBeginIP;
unsigned long ulEndIP;
char szBeginIP[20] = "110.110.255.0";
char szEndIP[20] = "110.110.255.255";
unsigned long ulCurIP;
unsigned short ausPort[10] = {80,8080};
int PortNum = 2;
int i;
in_addr inaddr;
FILE *pFile = NULL;
pFile = fopen("ip.txt", "at");
if (NULL == pFile)
{
printf("open ip.txt fail.\r\n");
return 0;
}
ulBeginIP = ntohl(inet_addr(szBeginIP));
ulEndIP = ntohl(inet_addr(szEndIP));
for (ulCurIP = ulBeginIP; ulCurIP <= ulEndIP; ulCurIP++)
{
for (i = 0; i < PortNum; i++)
{
inaddr.S_un.S_addr = htonl(ulCurIP);
fprintf(pFile, "%s:%d\r\n", inet_ntoa(inaddr), ausPort[i]);
}
}
fclose(pFile);
return 1;
}
❽ 向编程达人们求救:以下for循环,为什么会执行语句块walls.count是17,i也是17。.说出原因就可以了。谢
首先,没有任何情况for循环内的语句无视循环条件.
再来,毕竟可以看到的代码太少,以下的推论只是简单的猜测.
我猜测你遇到的问题是在i = 17, walls.count = 17的情况下, removeElement()这部分语句仍然在被执行.
这种情况是有可能的,因为你的循环有两层,内层的循环不结束的情况下,永远不会返回外循环进行判定.
举例
for (int i = 0; i < 5; i++) {
while (true) {
System.out.println(i++);
}
}
就是典型的死循环. 外层for的i<5和i++是dead code.
如果是因为这个情况引起的问题,在removeElement()之后,判断一下是否 i >= walls.count, 是的话用break;退出内循环,自然也就进入外循环判定,从而退出循环了.
如果不是以上的这个问题的话,就暂时猜不出来了,请补充说明一下详细的问题和大概状况.
❾ 请C语言编程达人帮忙编写一段程序
我没用用文件啊 用的就是结构体typedef struct employee 这个就是结构体
#include<stdio.h>
#include<stdlib.h>
typedef struct employee
{
int id;
char name[20];
char department[20];
int money;
char position[20];
struct employee *next;
}Employee,*ept;
typedef struct
{
ept head;//头指针
ept tail;//尾指针
ept current;
ept p,q;
int tot;
}Linkemployee;
int isfound(Linkemployee &l,int id)//判断是否有重复的职工号
{
int count=0,flag;
l.p=l.head;
while(count++<l.tot)
{
flag=0;
if(l.p->id==id)
flag=1;
else
l.p=l.p->next;
}
if(flag==1)
return 1;
else
return 0;
}
void CreatLink(Linkemployee &l)//构造空链表
{
l.head=l.tail=(Employee*)malloc(sizeof(Employee));
l.head=l.tail=NULL;
l.tot=0;
}
void AddInformation(Linkemployee &l)
{
l.current=(Employee*)malloc(sizeof(Employee));
printf("请输入职工姓名:");
scanf("%s",l.current->name);
printf("请输入职工号:");
scanf("%d",&l.current->id );
printf("请输入职工部门:");
scanf("%s",l.current->department);
printf("请输入职工职位:");
scanf("%s",l.current->position );
printf("请输入职工工资:");
scanf("%d",&l.current->money );
if(l.head==NULL)
{
l.head=l.tail=l.current;
l.head->next=l.tail;
l.tail->next=NULL;
l.tot++;
printf("职工添加成功!!!\n");
}
else
{
if(!isfound(l,l.current->id))
{
l.tail->next=l.current;
l.current->next=NULL;
l.tail=l.current;
l.tot++;
printf("职工添加成功!!!\n");
}
else
printf("职工号已经存在\n");
}
}
void SearchInformation(Linkemployee &l)
{
if(l.tot>0)
{
int findnumber,count=0;
l.p=l.head;
printf("输入要要查找的职工号:");
scanf("%d",&findnumber);
while(count++<l.tot)
{
if(findnumber==l.p->id)
{
printf("职工信息找到!\n");
printf("姓名 职工号 职工部门 职工工资 职工职位\n");
printf("%s%6d%8s%8d%8s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
}
else
printf("无输入职工号的信息\n");
l.p=l.p->next;
}
}
else
printf("没有任何信息\n");
}
void DisplayInformation(Linkemployee &l)
{
if(l.tot>0)
{
int count=0;
l.p=l.head;
printf("姓名 职工号 职工部门 职工工资 职工职位\n");
while(count++<l.tot)
{
printf("%s%8d%8s%8d%8s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
l.p=l.p->next;
}
}
else
printf("没有任何信息\n");
}
void DeleteInformation(Linkemployee &l)
{
int findid, count=0;
int flag;
int selection;
l.p=l.head;
l.q=l.p;//记录删除节点的前一个节点
if(l.tot>0)
{
printf("输入要删除的职工号:");
scanf("%d",&findid);
while(count++<l.tot)
{
flag=0;
if(findid==l.p->id)
{
flag=1;
}
else
{
l.q=l.p;//记录删除节点的前一个节点
l.p=l.p->next;
}
}
if(flag==1)
{
printf("职工信息找到!\n");
printf("姓名 职工号 职工部门 职工工资 职工职位\n");
printf("%s%6d%6s%6d%6s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
printf("确认删除吗?1删除,2退出\n");
scanf("%d",&selection);
if(selection==1)
{
if(l.p==l.tail )
{
l.q->next=NULL;
l.tail=l.q;
free(l.p);
}
else if(l.p==l.head)
{
l.q=l.p;
l.p=l.p->next;
l.head=l.p;
free(l.q);
}
else
{
l.q->next=l.p->next;
free(l.p);
}
l.tot--;
}
else
printf("自动退出\n");
}
else
printf("无输入职工号信息\n");
}
else
printf("没有任何信息\n");
}
void main()
{
int selection;
Linkemployee l;
CreatLink(l);
printf("----------------------------------------------\n欢迎进入公司职工信息管理程序");
printf("\n----------------------------------------------\n");
printf("请选择您的操作:\n1. 增加职工信息\n2. 查找职工信息\n3. 显示所有职工信息\n4. 删除职工信息\n5. 退出\n");
while(scanf("%d",&selection)&&selection!=5)
{
switch(selection)
{
case 1:AddInformation(l);break;
case 2:SearchInformation(l);break;
case 3:DisplayInformation(l);break;
case 4:DeleteInformation(l);break;
}
printf("----------------------------------------------\n欢迎进入公司职工信息管理程序");
printf("\n----------------------------------------------\n");
printf("请选择您的操作:\n1. 增加职工信息\n2. 查找职工信息\n3. 显示所有职工信息\n4. 删除职工信息\n5. 退出\n");
}
}
❿ VB编程达人请速进,今晚必需,在线等【穷举法】
你自己打开看看!
代码在下面:
Option Explicit
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Y As Integer
Dim n69 As Integer
Dim n39 As Integer
Dim n29 As Integer
Y = 600
For i = 1 To 8 '设截取69CM的有i根,600/69 最多为8
For j = 1 To 15 '设截取39CM的有J根,600/39 最多为15
For k = 1 To 20 '设截取29CM的有K根,600/29 最多为20
If i * 69 + j * 39 + k * 29 <= 600 Then '如果满足不超过600CM的,就是一组答案
If 600 - (i * 69 + j * 39 + k * 29) < Y Then '如果余数比变量Y里的小,就保存i,j,k以及余数
n69 = i
n39 = j
n29 = k
Y = 600 - (i * 69 + j * 39 + k * 29)
End If
End If
Next k
Next j
Next i
Print "69CM:"; n69; "根"
Print "39CM:"; n39; "根"
Print "29CM:"; n29; "根"
Print "余:"; Y; "CM"
End Sub
Private Sub Command2_Click()
Dim i As Integer
For i = 0 To 99 '把这两位看作一个两位数字,范围是0-99
'注意要乘以10,充当5位数字的十位和百位,mod 等于0,表示能整除
If (67008 + 10 * i) Mod 78 = 0 And (67008 + 10 * i) Mod 67 = 0 Then
Print 67008 + 10 * i
End If
Next i
End Sub