1
luoyou1014 2013-12-24 14:15:23 +08:00
如果不打算依靠C++谋生而仅为了过考试的话, 貌似没有必要重学, 如果打算依靠C++谋生的话, 有一篇文章叫2012年不宜进入的三个技术点
|
2
mimiwu 2013-12-24 14:27:34 +08:00
@luoyou1014 感谢
|
3
66beta 2013-12-24 14:37:57 +08:00 2
楼主不必惊慌,这是定律,每三个月回头看一次自己写的代码,都是不堪入目的
|
4
mingzhi 2013-12-24 14:46:59 +08:00
给楼主一个建议 先把代码放到github 上
放在百度云 先看还要下下来 好麻烦呀 |
5
Golevka 2013-12-24 14:49:54 +08:00
为什么不问问神奇海螺呢
|
6
felix021 2013-12-24 14:52:08 +08:00 1
|
7
66450146 2013-12-24 15:07:02 +08:00
每次我看昨天写的代码,都有一种删掉重来的冲动
唔,还真这么干过。。 |
8
Narcissu5 2013-12-24 15:46:01 +08:00
@luoyou1014 搜了下这文章,吓死我的。ActionScript和C++程序员工作两三年我没见过月薪在五位数以下的。中间那个线程更是让人不知所云。
|
9
tox 2013-12-24 16:38:39 +08:00
语言只是工具而已,你这情况和c++没关系,以后多写写代码,慢慢的思维逻辑就会清晰起来。
|
10
vvniu OP |
13
slixurd 2013-12-24 19:46:17 +08:00
简单看了一下代码,给几条建议先
1.main里面,cout<<"..."<endl<<".."<<endl;其实完全可以写成cout<<"..\n.."<<endl; endl是用来清空缓冲区顺带换行的= =,只是换行\n就行了.. 2.可以用构造函数处理的就用构造函数处理,没必要创建了实例然后一个一个set,这样你和面向过程编程有什么区别,只是全在一个作用域里而已 3.不实现的函数就别写了,析构函数你写来干嘛?又不用 4.打包代码请打包代码, .o,.exe,还有makefile.win都放进来一点用都没有 5.这么小型的项目复用意义不大,只要能提取出公共函数的提出来做私有成员函数,然后引用就好了... |
14
vvniu OP @slixurd 感谢您的建议,然后就想问问像这种比较细的点只能在coding时一点点积累吗?有没有什么系统的学习方法或资料?
|
15
mozutaba 2013-12-24 20:22:30 +08:00
这种东西写一个文件就好了嘛,放几个文件里怎么交报告给老师看哦。
|
16
ferson 2013-12-24 20:28:58 +08:00
如果用了std::list就好点吧……我猜
|
17
wb14123 2013-12-24 20:29:04 +08:00
放github上吧
|
19
tonitech 2013-12-24 21:57:44 +08:00
放开源中国代码托管吧!这样国内访问速度快一点。
|
20
wb14123 2013-12-24 22:31:00 +08:00
主要是放百度网盘上大家看起来不方便
|
21
cassyfar 2013-12-24 22:40:34 +08:00
|
22
Golevka 2013-12-24 23:55:35 +08:00
刚刚看了下代码,感觉最大的问题是UI和处理逻辑被混杂在一起,并且UI相关的部分散落在main和class telBook的各个角落。似乎作者没有考虑清楚类里面应该做什么/不应该做什么。
|
23
vvniu OP |
24
ferson 2013-12-25 00:53:25 +08:00
我就说嘛,为什么不用std::list或写一个List<>,还用C那样手动写链表,原来楼主用C的方法写C++
|
25
cassyfar 2013-12-25 03:09:39 +08:00 via iPhone
@vvniu 你应该指的是之前用的面向过程吧 这两种都只是个编程思路 要看实际问题才能确定到底用哪个 不能说为了面向对象而面向对象 你这个程序就是没有必要用到 要keep it simple stupid
建议LZ找本书熟读下吧 另外我觉得cpp很多语法糖 初学用C 练练数据结构什么也挺好的 |
26
qiukun 2013-12-25 08:17:53 +08:00
还没人说读代码呢。。
|
28
Hyperion 2013-12-25 08:59:06 +08:00
挺好的... 大多数学校教C++程序设计的方法, 基本都是惨不忍睹的... 管你用C还是用C++, 跑的起来+够炫, 就是高分... 起码思想都在了. 买本C++ Primer最新版的看看, 然后找点开源看看应该怎么写, 基本就差不多了.
如果不打算靠这玩意吃饭, 还是不要踏进这个门槛了. C能搞定就非常赞了... 自爆黑历史, 请勿吐槽, 我自己都看不下去. 各种风格混杂的写法, 这才是真的惨不忍睹.(其实看起来更像原始向的javascript) 主题是几个里面选其一, 原本还想补个GUI, 但想想太浪费... http://share.weiyun.com/d517050cbd46cc677d796de745fe6ca2 |
30
suckli 2013-12-25 09:08:33 +08:00
建议楼主把代码放到github上
同时也很敬佩楼主,敢于把自己的代码发出来让大家挑毛病 这需要很大的勇气 |
32
suckli 2013-12-25 09:17:12 +08:00
提几点风格上的建议
1、代码里混用了空格和tab,这样十分不好 2、不需要的代码就删掉,不要注释了就放在那里不删 3、if后面即使只有一行,最好也带括号括起来 4、return后面竟然还有语句...... 5、new 失败了是会抛异常的,判断非空是没用的;另外,即使失败了也不应该直接调用exit~ |
33
luoyou1014 2013-12-25 09:38:06 +08:00
|
34
Golevka 2013-12-25 10:36:51 +08:00 1
@vvniu 举个简单的例子, 比如说add时的prompt是在main里面做的, 而delete的prompt却又做在telBook里面了. 一般地, 像prompt, 控制台输出之类的东西最好放在telBook外面, 否则你若是想在别的地方用telBook, 却发现自己被里面捆绑的UI逻辑给绑架了那就不好了.
大方向就是这样, 细节上的问题就更多了(还有一个非常严重的非风格问题: new和free配对的问题居然没人吐槽...). 另外楼主似乎不知道如何写链表, 其实在一开始就分配一个头结点以后能省去好多事情. |
35
slixurd 2013-12-25 11:15:44 +08:00 2
其实= =,这是大一的C++大作业啊,和我们的大作业题目也一模一样
那些说用STL的为什么不想想这种入门级作业怎么能用STL写,这就是为了练手,熟悉语言,熟悉基本数据结构才开的大作业,否则这种东西为什么不用数据库?数据库写这个难道不是天经地义的东西么 而且感觉略多人都站在了很高的角度上,这种程序真不需要MVC分离,也不太需要一个优秀的设计模式,总不会这样一个小程序还用FACADE指派任务或者拿个简单工厂来转移任务降低耦合么? 这种代码就应该好好用基本的CLASS/STRUCT慢慢写,想要写的好的话可以考虑如何在这样一个简单的东西里做出一个不那么简单的东西,例如: 1.随机存储,你现在的顺序读取无法随机存储,那么当你有一百万条记录的时候你还这样一条一条读?不怕内存爆掉? 2.通讯录分组,为什么不加字段做通讯录分组?即使不考虑那么大规模,你一样可以顺序读取,然后建立一颗根据分组来做分支的树加快查找速度(速度是可以用数据看到的 3.通讯录更多的信息,你这个通讯录就那么几个字段,可以考虑更多的字段,更复杂的逻辑 4.导出符合规格的VCR文件,或者参考VCR格式来修正 想写的好就多写多看,买本C++ Primer,看看别人的源代码...千万不要有人说产出比低就不看了,能做的多好就做的多好,不然以后你会后悔的... |
36
Narcissu5 2013-12-25 12:37:56 +08:00
@luoyou1014 这说法放C++身上成立,放AS身上就不成立!实际上由于我大天朝奇葩的页游产业和居高不下的低版本IE使用率,flash很可能在很长一段时间内压制html5。现在的AS基本上是供方市场,产出投入比极高。
|
37
ferson 2013-12-25 12:44:17 +08:00
当年我也做电话本这种入门作业,一开始我也跟楼主一样写得比较杂乱,不管是用STL还是自己实现所有的东西,或是用更高级的数据库什么的,以及怎么把class设计得好,再到用什么什么模式,我个人是一步一步地全都尝试过,就当是学习。
所以这种入门级的作业,如果说为了完成作业的话那功能完善没有bug就ok了,而如果你想要做得更好的话,一个小小的电话本就可以越写越有意思——然后程序就会越来越臃肿,然后就考虑到重构,然后就学会了如何精简程序,这样一步一步走来。 可能每个人的步骤不一样,关注的细节也不一样,但相同的是,要有探索和尝试的想法,然后总结经验。 当然,几本大部头的书还是要看的 |
38
Hyperion 2013-12-25 12:51:15 +08:00
@slixurd 用什么完全不是重点, 重点是思想. 基础的STL看看也就会用了, 使用上完全不是什么障碍, 应该用, 这玩意我觉得才是C++的基础啊. 和C重叠的部分, 重复折腾一点意思都没有.
|
39
luoyou1014 2013-12-25 14:46:07 +08:00
@Narcissu5
所以这两年as已经到顶峰了, 也无法发展, 剩下的就是衰落, 尤其是ie6已经降到了10%的情况下, 精通一门技术至少两年的时候, 两年的时候足够as衰落了 |
40
bombless 2013-12-25 15:15:16 +08:00
楼主,你现在就在提高啊……不用惊慌,多读多写就好
|
41
hourui 2013-12-25 19:22:37 +08:00
隔几天回看自己的代码发现是一坨屎,然后推翻重写;隔几天回看自己的代码发现是一坨屎,然后推翻重写;...循环往复,LZ你就可以成为高手了
|
42
vvniu OP |
43
dimpurr 2013-12-26 11:02:10 +08:00 via Android
|