本人是c++散修, 苦无专业的导师知道学习, 在偌大的互联网海洋中, 求书籍教程, 现有所成.
首先, 感学对散修给予支持的各位老师, 及论坛, 群的指导.
散修之苦, 苦于无系统化教程, 专业指导, 及有效的练习题.
书籍中虽然有安排一个教学的大纲, 但各种书籍中的大纲都很难满足学员的现状, 有些学员会有强大的理论基础, 有些学员则有强大的实践基础, 那么当手上有多本教程书籍的时候, 则会跳过自己不感兴趣的, 这一习惯造就的是学员某水平的单方面增强.
这是散修的一个很大的弊端.
先列举本人读过的书籍.
c++: <<c++primer>>
<<c++程序语言设计>>
<< vc++从入门到精通开发详解视频教程>>
<<数据结构于算法分析C++描述(第三版)>>
asm: <<汇编语言王爽著>>
<<IBM-PC汇编语言程序设计(第五版)>>
回到标题中.
1. 设想式教程偏重于原因, 其中会有丰富的理论. 学习的方式会有一种循序渐进的感觉. 学习效果比较缓慢, 强调先心法, 后功法..
2. 目的性教程偏重于结果, 其中会有丰富的源程序. 学习方式就像小时候父母教你学拿筷子. 学说话. 都有很强的目的性. 比如.筷子可以用来扒饭, 夹菜, 额...还可以...等等. 可以学会一个个强大的特殊技. 秘技. 额, 但有可能会不知道什么是保护继承后成员的访问权限是, 门口, 客厅, 还是上床.. 额. 又邪恶了....
从王爽老师的<<汇编语言>>中, 我很荣幸的获得了汇编语言的理论基础. 不过很可惜. 我读过之后. 我不知道如果在屏幕中间显示一段字串, 后来在王爽老师的一个论坛中, 我知道了这本书中有该方法的介绍,, 很遗憾. 我在第2次阅读的时候. 在论坛朋友的帮助下看到了.那一句话..
<<汇编语言>> 中还有一个遗憾就是对于中断指令的描述过于含糊, 以至于到最后只知道有中断这个功能, 存于内存的首部. 而中断的功能. 额...看不到..
总结一下, <<汇编语言>>可以看做事设想式的教程..
之后为了强化中断的理解. 就有了<<IBM-PC汇编语言程序设计(第五版)>>不用说, 该书目的性很强. 2本书可以看做是一种互补.
c++的书籍中以c++primer 和 数据结构于算法分析C++描述(第三版) 的代码量, 很好的解开了理论知识中的各种疑惑.
谭浩强老师的<<c++程序语言设计>>是我修入c++的第一本教程. . 虽然读完之后留下许多疑惑, 但确实是一本很好的教程书籍.
孙鑫老师的<< vc++从入门到精通开发详解视频教程>> 带我进入了windows编程的殿堂.
总结.
设想式的优点在于可以先给一口井开垦出一个井的模型, 挖多深, 井口多大, 井腹多宽, 可以存储多少水.
目的性的优点可以给这口井, 防干旱, 防滑, 美观, 及一个美好的用水环境.
最重要的一点, 是要知道先自己想要什么, 才能知道自己要怎么做.
谢谢!
[查看全文]
本帖最后由 Whisper1166 于 2012-12-28 21:21 编辑
APEE & Kreci.net 转载者根据原文稍有修改英文报告地址:
http://www.kreci.net/reports/developer-income-report-14/最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告。数据显示,上月是目前为止他收入最多的一个月。
Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者。他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富。他的收入主要来自下面几个方面:
1.亚马逊分销联盟(Amazon Affiliate Program)——他把互联网用户吸引到亚马逊的网站并购买了亚马逊商城提供的商品后,他提取佣金。
2.Google AdSense——他在网站上放置Google提供的广告,当互联网用户点击查看了广告后,Google会分给他一点广告费。
3.出售原创摄影图片——他懂摄影,他把拍摄的图片放置到 iStockphoto 网站上出售。在西方,知识产权保护的非常好,如果有人想用他的图片做为封面或网页插图,必须购买这个图片的使用权,大概一张100~200块钱。
4.卖电子书——他写了一本电子书,叫做“Make Money on Android”,里面介绍他如何通过Android应用来赚钱的经验。根据他的系列收入报告来看,他在Android交易市场上做的很成功。相信这种事实会给他的这本书增添不少吸引力。
5.Android交易市场收入——他的Android应用是免费的,也就是说他不是靠买Android应用赚钱。他是通过在他的免费Android应用程序上放置广告来创收的。
看起来,他的每一种收入途径都不是很难,大部分程序员都可以独立做到,但他却做的很出色。下面来看看他的上个月(8月份)的收入数据(括弧里的数字是跟上期的数字比较的差值):
$155.37 (+$124.02) 亚马逊分销联盟 – 卖出去了不少东西!这个月太好了,比过往月份好很多。有趣的事情是,我们并没有吸引很多的客户流量,但成绩确实很好。111.77 € (+9.17€) 谷歌广告 – 本月也有很好的收成。这个数每月都在增长。
$265.27 (-$1.28) iStockphoto图片销售 – 这是一个非常稳定的收入来源。我的图片卖的一直不错。上次报告中我曾说过会对这项业务更用心一点,因为忘了更新我的图片材料的日期!
$1,179.41 (+$699.65) 电子书 – 售出了59份我的《Make Money on Android》电子书!又是一个新纪录!59份呀!真是非常感谢你们——我的朋友!我更高兴你们能喜欢这本书!更多的个人感谢我会写在回复你们的邮件里!不管怎样,谢谢你们!
$1,985.89 (+$436.87) 我的Android应用广告——这是我的挣钱大户,你也看到了,它在不断增长!这个月有这样的增长幅度,是因为使用了一种Google提供的但往往被人们忽略的推广技术!我的电子书里新增了这部分内容。
从上面的数据我们可以得出,他这个月的总收入是 $3,585.94 + 111.77€ ~ $3,737.06 (+$1,262.61)! 按现在的汇率换算成人民币应该是2万3千8百7十2元。
不错的成绩!
因为上上月是距他开始这些创收活动正好一周年之际,所以他写了一份年度收入数据统计分析报告,有兴趣的童鞋可以到英文原帖地址查看这份报告。
我想,来到【程序设计语言】板块来看这篇帖子的童鞋应该都是程序员或爱好编程的人,不知你们看了这位国外同行的作为后有何感触?
[查看全文]
一直把这个网站自己留着,因为看盗版书也确实不是什么光彩的事。
既然末日审判都没说我这样子做很坏
那么就。。。。
目前编程入门主要是c++和java吧
推荐两本从入门《c++ primer》《think in java》
两本都是比较偏于入门的书,特别是c++ primer 0基础木问题
再者当然是看中文版的咯,想当年我就想等我英语水平好一点再看,结果大学四年英语在退步啊!!(不过你要真想做到一定层次的程序员,必须要会英语,能熟练用英语交流,纱布楼猪在努力中,欢迎旅居国外的。。。探讨一二)
这两本看完了,用360傻逼卫士的话您已经超越了全国百分之70的程序员了
[查看全文]
本帖最后由 Whisper1166 于 2012-12-22 19:31 编辑
这是一道面试题目:
计算出从1-19,任意数字相加等于20,并打印出。
可以先自己写下看看,回复后可见答案。
#7036!
[media=x,500,375]http://v.youku.com/v_show/id_XMjkyNzM1NjA4.html[/media]
偶然找到的 我也不怎么明白 放上来 大家研究研究
程序分两个部分 转化为字符 和打印字符
转化部分
/**************************************************************
** 程序名称:图片2字符图片
** 程序功能:图片根据灰度转换为ASCII字符图片
** 编译环境:VC++6.0 EGE 12.06
** 作者信息:Geodesic <Geodesicwl-cpro@yahoo.cn>
** 最后修改:2012-07-19
**************************************************************/
#include <graphics.h>
#include <stdio.h>
/*
* Ascii字符和灰度
* */
const struct AsciiPix
{
char ascii[32];
int gray[32];
}ascpix = {' ','`','.','^',',',':','~','"','<','!','c','t','+','{','i','7','?',
'u','3','0','p','w','4','A','8','D','X','%','#','H','W','M',
70,68,66,63,61,59,55,53,51,49,47,45,43,41,39,37,35,33,31,29,27,25,23,21,19,17,15,13,9,7,5,0};
/*
* 搜寻灰度gray的替代字符
* gray待替换的灰度
* ascpix用于替换字符和对应灰度结构体
* */
static SearchAsc(struct AsciiPix ascpix, int gray)
{
int loop;
loop = 0;
while(gray < ascpix.gray[loop] && loop < 32 - 1)
loop++;
return ascpix.ascii[loop];
}
/*
* 图片转为字符,并保存到AscPic.txt中
* start第一张图片的序号
* end最后一张图片的序号
* 默认图像尺寸160×120像素
* 默认扫描块为宽1高2的矩形(线段)
* */
void Pic2Asc(int start, int end)
{
int row, col;
int gray;
int loop;
char filename[64];
/*打开文件*/
FILE *fp;
if((fp = fopen("AscPic.txt", "w")) == NULL)
{
outtextxy(0, 0, "文件打开失败");
Sleep(3000);
return;
}
/*开始转换*/
PIMAGE img;
for(img = newimage(), loop = start; loop <= end; loop++)
{
sprintf(filename, "BAD_APPLE%08d.jpg", loop);
outtextxy(0, 0, filename);
getimage(img, filename, 0, 0);
for(row = 0; row < 120; row += 2)
{
for(col = 0; col < 160; col++)
{
gray = (GetRValue(getpixel(col, row, img)) + GetRValue(getpixel(col, row + 1, img))) * 9 / 51;
fputc(SearchAsc(ascpix, gray), fp);
}
fputc('\n', fp);
}
fputc('\n', fp);
}
/*善后处理*/
delimage(img);
fclose(fp);
}
/*
* 主函数
* */
int main(void)
{
initgraph(640, 480);
Pic2Asc(6529, 13009);
getch();
closegraph();
return 0;
}
打印部分
/**************************************************************
** 程序名称:BadApple动画演示
** 程序功能:图像模式下,ASCII字符动画
** 编译环境:VC++6.0 EGE 12.06
** 作者信息:Geodesic <Geodesicwl-cpro@yahoo.cn>
** 最后修改:2012-07-23
**************************************************************/
#include <graphics.h>
#include <ege/fps.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
char Line[162];
FILE *fp;
int loop;
/*初始化*/
initgraph(960, 720, ege::INIT_ANIMATION);
setbkcolor(EGERGB(0xF5, 0xF5, 0xDC));
/*打开文件*/
if((fp = fopen("AscPic.txt", "r")) == NULL)
{
outtextxy(0, 0, "文件打开失败");
Sleep(2000);
exit(EXIT_FAILURE);
}
/*添加音乐*/
mciSendString("open BadApple.mp3 alias BadApple", NULL, 0, NULL);
mciSendString("play BAdApple", NULL, 0, NULL);
/*动画演示*/
fps f;
setcolor(EGERGB(0xFF, 0x0, 0x0));
for ( ; !feof(fp) && is_run(); delay_fps(30))
{
for(loop = 0; loop < 61; loop++)
{
if(fgets(Line, 162, fp) == NULL)
break;
setcolor(EGERGB(0x0, 0xFF, 0x0));
outtextxy(0, loop * 12, Line);
}
}
/*善后处理*/
fclose(fp);
closegraph();
return 0;
}
[查看全文]
最平凡最简单的问题
通过不同的方式实现
有助于我们对复杂问题的处理
希望起到抛砖引玉的作用
大家如果还有其他
新奇 巧妙的算法 请共同分享 !!26~
一 if语句判断:
//貌似是最基本的方法
int main(){
int num1,num2,num3,max;
cout<<"请输入第一个数:"<<endl;
cin>>num1;
cout<<"请输入第二个数:"<<endl;
cin>>num2;
cout<<"请输入第三个数:"<<endl;
cin>>num3;
if(num1>num2) max=num1;
else max=num2;
if(num3>max) max=num3;
cout<<"最大数是:"<<max<<endl;
return 0;
}
二 三目运算符实现:
//三个数会更加复杂繁琐不推荐用
#include *本站禁止HTML标签噢*
using namespace std;
int main()
{
float num1,num2,num3,max;
cout<<"请输入第一个数:"<<endl;
cin>>num1;
cout<<"请输入第二个数:"<<endl;
cin>>num2;
cout<<"请输入第三个数:"<<endl;
cin>>num3;
max=(num1>num2 ? num1 : num2 )> num3 ? (num1>num2 ? num1 :num2) : num3;
cout<<"最大数是:"<<max;
return 0;
}
三 函数嵌套调用:
//非常灵活的金钥匙
#include *本站禁止HTML标签噢*
using namespace std;
int Max(int x,int y,int z);
int max(int x,int y);
int main()
{
int num1,num2,num3,m;
cout<<"请输入第一个数:"<<endl;
cin>>num1;
cout<<"请输入第二个数:"<<endl;
cin>>num2;
cout<<"请输入第三个数:"<<endl;
cin>>num3;
m=Max(num1,num2,num3);
cout<<"最大数是:"<<m;
return 0;
}
int Max(int x,int y,int z)
{
int m;
m=max(max(x,y),max(x,z));
return m;
}
int max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
[查看全文]
本帖最后由 橴陽花桾__ 于 2012-11-20 01:23 编辑
#include<stdio.h>
void dec2hex(int n);
int cnt=0;
void main()
{
int num;
printf("input decimal code>");
scanf("%d",&num);
printf("hex(%d)= ",num);
dec2hex(num);
printf("(%d)%n",cnt);
return(0);
}
void dec2hex(int n)
{
int i,h;
char *hex="0123456789ABCDEF";
cnt++;
i=n/16;
if(i!=0)
{
dec2hex(i);
}
h=n%16;
putchar(hex[h]);
}
这是我写的程序,
将一个整数变成十六进制形式、0.0
有没有更好的方法呢。
P.S win 7 跑起来会弹出一个系统调试窗口0.0 不知道怎么回事。
[查看全文]