首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

咯血啊前两天接到的一个程序

2013-01-01 
吐血啊,前两天接到的一个程序.其中有两个cpp文件,一个68000多行,一个57000多行.其中有一个函数,代码有3078

吐血啊,前两天接到的一个程序.
其中有两个cpp文件,一个68000多行,一个57000多行.其中有一个函数,代码有30785行....Cbuilder6.0打开后鼠标都不敢随便动,否则动一次卡住5~7秒.尼玛呦,这是哪位大神写的啊,小弟五体投地啊.

[解决办法]
天啊,还没看过这么大的cpp文件!
[解决办法]
你有没有见过一个form上面有N个panel
panel上有很多个控件
修改代码找个button都要找半天
还有40多个StringList 定义的名字叫 StringList *aa  bb cc dd ee .....
[解决办法]
这。。。也是一种风格  咯血啊前两天接到的一个程序
[解决办法]
咯血啊前两天接到的一个程序
[解决办法]
嗯,那就动手改改吧
[解决办法]
被震得不敢吭声,求楼主程序搞定后发个感想。
[解决办法]
这个可以啊,你在对象查看器里找到那个名字(都是按字母顺序排列的嘛),然后再看Form,那个组件就处于高亮状态,这样就好看了呀


[解决办法]
这简直就是极品中的战斗机轰炸机啊~
[解决办法]
功能被不斷地增加,需要被不停地更改,代碼需要不斷地完善。
在經歷修改代碼的痛苦后,才會明白“舉重若輕”的感覺是多麼美妙!
面向對象編程與小時候看的數學歸納法的解題思路挺象的:

1、總結:總結需求,將代碼需要實現的功能寫出來,這步很重要,因為缺少這步,后來的人不知道你這些代碼總共要實現哪些需求,不是大牛不下決心的話,不敢重新實現。只好選擇在上面修修改改,導致代碼越來越長。
2、歸納:將重複的代碼,重複的需求歸納為一個個函數或類
3、猜想:在頭腦中出現一個類體系(數學模型),通過這些類的組合與繼承,能解決需求中的問題。各個類間如何的組合,如何繼承,如何通訊,則能解決現實中的哪類問題。
4、證明:將能在這個類體系中,能解決的問題的集合列出,也將現實需要中需要解決的問題列出,兩者重合度很高的話,表示你設計的這個類體系是可以解決問題的。也對以后可能出現的問題做到心中有數。這是遇到問題可以做到“舉重若輕”的基礎。

寫代碼,數學多了一個最終實現,數學只要證明就完了,而寫代碼還要將這變成現實。
而這就是要考慮類的接口,是否好用。即功能可以實現了,接口又簡單易用,那麼你的這個類體系設計就是成功的了。有好的設計,才有好的代碼。叫學程序設計,就要有設計者的心胸,要不然學不好。

別為大神歡呼,踏踏實實站在地板上做好設計,我們的程序是為普通人而做,我們不是為成神而努力寫出只有神才看得懂的代碼。


[解决办法]
呵呵,我自己写的程序,最后的工作就是加代码说明和简化代码,通常比最初写时至少能减少三分之一行!
主要是为了以后自己维护和查看
[解决办法]
牛a与牛c之间。
个人对于超过1000行的单个源码文件看着都晕
[解决办法]
是不是日本外包的软件?
我们公司就有过很多3万行以上的函数,结果是因为狗日写的设计象写文章一样,一气呵成。
如果切割成不同的函数,反而变成了违反狗日的设计了,所以谁看到都是是无奈呀。

[解决办法]
引用:
引用:
是不是日本外包的软件?
我们公司就有过很多3万行以上的函数,结果是因为狗日写的设计象写文章一样,一气呵成。
如果切割成不同的函数,反而变成了违反狗日的设计了,所以谁看到都是是无奈呀。

不是外包,是测试无线通讯用的,这个函数是为了读取他们自己定义的txt文件,结果文件的格式一更新,读取的函数就跟着更新,前写的代码不敢去掉,就在下面else if继续写,02年……


那也不用一直else if 加上一堆代码啊。
else if 后面调用带版本号的函数就行了。


read();// 最开始的接口
read_V1_0_0(); // 适用1.0.0以前的软件
read_V2_5_0(); // 适用2.5.0以前的软件
read_V3_0_0(); // 适用3.0.0以前的软件

[解决办法]
自己编的软件里面也有你遇到的情况,上部分代码你看了,就明白如何搞了。

        // .h
void readParse(QXmlStreamReader *xml);

// 读取文本阅读器V3.0.0的书签
void readParseV3_0_0(QXmlStreamReader *xml);
// 读取文本阅读器V1.0.0 - V2.3.0的书签
void readParseV1_0_0(QXmlStreamReader *xml);

// .cpp
void TBookmarkConfig::readParse(QXmlStreamReader *xml)
{
xml->readNextStartElement(); // root node
m_item.clear();

// 读取文本阅读器V1.0.0 - V2.3.0的书签
if (xml->name() == "Root")
readParseV1_0_0(xml);
// 读取文本阅读器V3.0.0的书签
else if ((xml->name() == its::name) && (xml->attributes().value("version") == "1"))
readParseV3_0_0(xml);
}

[解决办法]
我也是搞产测软件开发的  公司给的软件代码的确是相当多 但是比你好点就是比较有条理  不会向你们那样一个cpp 几万行    呵呵 这兄弟够可怜的 
[解决办法]
最大一个CPP也只有111K的飘过。
[解决办法]
奇怪了,难道过程中都没有人把文件分割一下?
太神奇了。
[解决办法]
寫這文件的人是個人才!
[解决办法]
类似的代码,我最近遇到过,重构的建议提了一个多月,领导不同意。最后结果,一刀两断。公司辞退我,我也炒了老板。

热点排行