导航:首页 > 编程语言 > 怎样编程

怎样编程

发布时间:2022-02-04 11:11:11

❶ 如何编程游戏

当下互联网行业发展迅速,与之相关的产业大多发展都很好,游戏设计的前景自然也是相当不错的。一个游戏问世要经历很多环节,剧本设计,原画创作,场景建模,但核心部分还是编程语言开发。

主要学的内容如下:

1.游戏程序设计:C++程序设计入门;基本数据类型和输入输出;流程控制语句;数组、指针和引用、函数;程序结构和书写规;范结构体和联合体、类;继承与多态;异常处理与程序调试。

2.算法与数据结构:算法分析;数据结构;基本算法;STL的概念与使用;静态库与动态库;XML库的使用。

3.Win32程序设计:Windows程序入门;Windows消息;GDI绘图游戏工具与MFC;网络编程基础。

4.游戏数学和智能应用:游戏中的坐标系;矢量、矩阵;几何碰撞;物理模拟;人工智能与寻路算法。

5.2D游戏技术与应用:2D游戏技术概论;游戏地图系统;GUI系统;战斗系统设计;任务系统;优秀的声音引擎BASS;Cocos2D-X引擎;Box2D物理引擎。

互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。

想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。

祝你学有所成,望采纳。

❷ 如何编程

不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB。如果成为了VB的专家,应当很容易赚到钱的。VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们只懂得用控件,而没有什么编程的思想。而VB的初学都只会用控件和简单的API就说精通VB了,显然影响的整个VB在程序界的地位,这些人显然不能称为程序员的,只能相当于会使用VB了,就像会Word一样。如果VB程序员都懂的数据结构,UML等,就完全是另外一回事了。有认为VB功能弱,请注意:仙剑95版就是用VB4做的,还有DirectX SDK7中有个一很好玩的3D游戏,声音和动画都非常好,也是用VB写的。所以VB能做很多东西,只要你想去做。
(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。
(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。
(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。
(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。
(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。
(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。

❸ 是怎样编程的

因为我我是学习计算机软件专业的,故可以肯定的说,关于编程方面的问题,可不是几句话能够讲得清楚的。
因为编写各种应用程序,包括使用不同的程序设计语言、在实现程序的算法复杂性方面、以及在编写程序的过程中所采用的数据结构(例如:链表、堆栈、队列,等等)肯定都是不一样的。故没有一个固定的编程模式来实现所有的编程问题。
但是无论使用哪一种程序设计语言,其最最关键点都是一样的。那就是:在编写程序代码之前必须要有一个特别清晰的编程思路(即:软件专业中的《软件工程》课程涉及到的程序流程图,有的也叫做程序框图)。只有首先画出准确的程序流程图,才能够做到当编写的程序中出现各种错误时,比较容易排除程序中的各类BUG。

❹ 新手如何学习编程

熟悉以下关键东西,可以边学边做,定期训练,经常思考,长期积累:

1、语法。

2、基础理论(数学、数据结构、算法等)。

3、设计方法(编程原则、设计模式、框架设计等)。

4、库(核心、基础、UI、扩展、游戏引擎等)。

5、计算机相关(操作系统、网络、图形学等)。

6、领域知识(游戏设计、网站设计等)。

7、开发工具(编辑器、IDE、自动部署等)。

8、项目管理(进度管理、分工协作、Bug管理、版本控制等)。

最普遍也是最重要的能力:创造力。努力分析并理解好做什么以及怎么做。要知道上面那些东西一开始都是不存在的。

具体方法包括:

1、快速阅读入门教程和书籍,适合学习语言和基础库。比如我学Java读的《Java编程思想》,练习题做过一点,然后学ActionScript就没读过书,只读过Adobe官方文档《ActionScript 3.0编程》。

2、阅读库的文档、实例、源码。比如Flash、Flex开发,熟悉官方API很重要,很多细节要具体使用时才注意到,这时候最好做个笔记,虽然我从没看过我的笔记。

3、做一个自己感兴趣或熟悉的小项目,比如我就以黑白棋游戏作为多个语言的试水项目,一样的逻辑,便于把关注点放在语言特点上。

4、自己动手丰衣足食。厨师有菜谱,程序员可没菜谱。比如我做游戏,最关键的游戏编程知识全部是动手学出来的,很少有专门针对某个业务领域(如游戏)的编程书籍,要么是入门书,要么是模式书(如算法)、理论书(图形学),很少有书籍教你如何开发一个45度角地图系统加编辑器的,全靠自己思考,以及看前人的代码,需要时找些网络资料。关键是,可以培养最重要的创造力。

对于算法和设计模式,可以研读下,但是关键还是靠平时如何使用了。新手勉强不来的。

项目管理方面的,就得靠工作经验了,多思考多提意见不要只走流程。

❺ 怎样编程序

/*1、 编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。(20分)
a12 b8 c5
12 0 0
* * * ( "*"表示当前状态下每个容器的盛水量)
......
6 6 0

# include <stdio.h>
# include <stdlib.h>
void move(int *x,int *y,int aMax,int bMax)
{
if(aMax>bMax)
{
if(*x+*y>bMax)
{
*x = *x-(bMax-*y);
*y = *y+(bMax-*y);
}
else
{
*y = *y+*x;
*x = *x-*x;//如果颠倒两个的顺序就会造成无法输出
}
}
else
{
*y = *y + *x;
*x = *x - *x;
}

}
main()
{
int aMax=12,bMax=8,cMax=5;
int a=12,b=0,c=0;
int i=1;

printf(" a12 b8 c5:\n");
printf("%7d%7d%7d\n",a,b,c);

while(i)
{
move(&a,&b,aMax,bMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;

move(&b,&c,bMax,cMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;

move(&c,&a,cMax,aMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;

move(&b,&c,bMax,cMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;
}

step2:
printf("the water has been sorted!\n");

return 0;
}*/

/*2、 编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},
将数组a的每一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),
按行输出新数组。(20分)
# include <stdio.h>
main()
{
double a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}}; //可以在定义时初始化,在后来就不行了
int i,j;

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==j)
a[i][j]=a[i][j];
else
a[i][j]=a[i][j]/a[i][i];
}
a[i][i]=1;

}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%6.2f",a[i][j]);
printf("\n");
}

}*/
/*3、编程:设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)- cos(x)的最大值,
要求使用自定义函数实现f(x)功能。(20分)
#include <stdio.h>
#include <math.h>
double f(long double x);
main()
{
double a[50];
int i,index,j;
long double temp;

for(i=0;i<20;i++)
a[i] = f(i+1);

for(i=0;i<19;i++)
{
index = i;
for(j=i+1;j<20;j++)

if(a[j]>a[index])
index = j;
temp = a[index];
a[index] = a[i];
a[i] = temp;

}
printf("the max is %6.2f",a[0]);
printf("\n");

return 0;

}
double f(long double x)
{

x = x - sin(x) - cos(x); //他输入的是弧度数,而我用计算器算的是角度值,所以结果会不一样

return x;
}*/

//冒泡排序
/*# include <stdio.h>
# include <math.h>
void swap(int *x,int *y);
main()
{
int i,j;
int a[50];

printf("please input the num:");
printf("\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
for(j=0;j<10-i;j++)
if(a[j]>a[j+1])
swap(&a[j],&a[j+1]);
printf("after sorted the num is:");
printf("\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");]

return 0;
}
void swap(int *x,int *y)
{
int p;

p = *x;
*x = *y;
*y = p;

}
*/

//选择排序
/*# include <stdio.h>
# include <stdlib.h>
main()
{
int i,j,temp,index;
int a[50];

printf("input the num :");
printf("\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
index = i;
for(j=i+1;j<10;j++)
{
if(a[j]<a[index])
index = j;
temp = a[index];
a[index] = a[i];
a[i] = temp;
}
}
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");

return 0;
}*/

/*编写函反向。
要求主函数输入字符串,通过调用函数fun实数fun,通过指针实现将一个字符串现输入字符串反向。(20分)
# include<stdio.h>
# include<stdlib.h>
# include<string.h>
char *fun(char *q)
{
char temp;
int len=strlen(q);
int i;

for(i=0;len-i-1>i;i++)
{
temp = *(q+i);
*(q+i) = *(q+len-i-1);
*(q+len-i-1) = temp;
}

return q;
}
main()
{
char *q;

q=(char *)malloc(200*sizeof(char));
printf("please input the string:\n");
scanf("%s",q);
fun(q);
printf("after reverse the string is:\n");
printf("%s\n",q);

return 0;
}*/
/*5、已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,
列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(20分)

姓名 数学 英语 计算机

Mary 93 100 88

Jone 82 90 90

Peter 91 76 71

Rose 100 80 92
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student{
char name[20];
int math;
int english;
int computer;
double average;
};
main()
{
int i,j,index;

struct student a[4];
struct student temp;
strcpy(a[0].name,"mary"),a[0].math=93,a[0].english=100,a[0].computer = 88;
strcpy(a[1].name,"jone"),a[1].math=82,a[1].english=90,a[1].computer = 90;
strcpy(a[2].name,"peter"),a[2].math=91,a[2].english=76,a[2].computer = 71;
strcpy(a[3].name,"rose"),a[3].math=100,a[3].english=80,a[3].computer = 92;
for(i=0;i<4;i++)
a[i].average =(a[i].computer +a[i].english +a[i].math)/3 ;
for(i=0;i<3;i++)
{
index = i;
for(j=i;j<4;j++)
if(a[j].average <a[index].average )
index = j;
temp = a[i];
a[i] = a[index];
a[index] = temp;
}
printf("姓名 数学 英语 计算机 平均分\n");
for(i=0;i<4;i++)
{

printf("%6s%6d%6d%9d%9.1f",a[i].name ,a[i].math ,a[i].english ,a[i].computer ,a[i].average );
printf("\n");
}

}*/
/*6、附加题:编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),
以"000"作为字符串输入结束标志,例如:

Twinkle twinkle little star 000(回车)

twinkle little star

2 1 1 (50分)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
void main()
{

char string[400]; //装载输入的原始字符串
char temp[20][20]; //装载string中的各个子字符串
char str[20][20]; //装在string中的各个子字符串,不过不包括重复的字符串,只是把不同的字符串收录在str中
int num=0; //记录空格的个数
int order[20]; //记录各个空格的位置
int i,j,k;
int sum[20]; //记录子字符串出现的个数
int flag=0; //判断是否把子字符串输入到str中

for(i=0;i<20;i++)
memset(temp[i],'\0',20); //把那里面的元素清零,如果不清零会产生乱码

for(i=0;i<20;i++)
memset(str[i],'\0',20); //把那里面的元素清零,如果不清零会产生乱码

printf("please input the string:\n");
gets(string); //把字符串输入到字符数组string[400]中
for(i=0;string[i]!='0';i++)
string[i]=tolower(string[i]); //将字符串中的大写字母转化成小写字母

for(i=0;string[i]!='0';i++)
if(string[i]==' ')
{
order[num]=i; //记录空格的位置
num++; //空格的数目加1
}
for(i=0;i<order[0];i++)
temp[0][i]=string[i];//记录了第一个空格前的字符串,把它输入到temp[0][]中.
for(j=0;j<num;j++)
for(k=0,i=order[j]+1;i<order[j+1];i++)
temp[j+1][k++] = string[i]; //将string字符串分开后存在temp中,也就是把第一个空格之后的字符串分别存放在temp中。
//第一个字符串为temp[0],第二个字符串为temp[1],往后就一次类推了

for(k=0,i=0;i<num;i++)
{
flag=0;
for(j=0;j<k;j++)
if(!strcmp(temp[i],str[j]))
{
flag=1;
break;
}
if(flag==0)
strcpy(str[k++],temp[i]);//关于他的实现举例,第一遍时temp[0]=hello,str[0]=hello;但是当temp[1]=hello时,str[1]中不会
//在存储temp的值,而是把这个忽略掉,接着往下找。
}

for(i=0;i<k;i++) //k决定了输出的字符串的个数,从而避免了相同字符串的重复输入,通过flag的变化来实现
{
sum[i]=0;
for(j=0;j<num;j++)
if(!strcmp(str[i],temp[j]))
sum[i]++;
printf("%s %d\n",str[i],sum[i]);
}

}*/

❻ 怎样做编程

做编程可以参考以下几个方案
方案一 Basic语言 & Visual Basic
优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。

方案二 Pascal语言 & Delphi
优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。
缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。

方案三 C语言 & Visual C++
优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。
缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。
综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。

方案四 C++语言 & C++ Builder
优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
缺点
由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。

方案五 SQL语言 & Power Builder
对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。

阅读全文

与怎样编程相关的资料

热点内容
android开发一年经验 浏览:517
什么叫做解压到根目录下 浏览:501
prom文件夹 浏览:726
不规则土方的算法 浏览:209
tor加密货币网站 浏览:449
linux转ansi 浏览:736
网站源码怎么查 浏览:687
高cpu云服务器 浏览:365
androidwebrtcaecm 浏览:981
阿里云部署java 浏览:636
云是不是就是个大的服务器 浏览:581
如何建立linux日志管理服务器 浏览:772
悟空头图标是什么APP 浏览:555
linuxandroid虚拟机 浏览:281
ps李涛pdf 浏览:638
linuxfork线程 浏览:97
易语言编译改名 浏览:723
阿里服务器都提供什么 浏览:756
cf打开服务器接不上怎么办 浏览:901
linux下more命令 浏览:402