社区
C++ 语言
帖子详情
请教大家~~如何迅速看懂一个大型的C++项目程序?
千阳
2012-08-16 10:16:02
我是一名C++初学者,老师给了我一个视频监控系统源代码,让我根据这个写出来一份概要设计,我看了两天也没什么头绪,求解大家教教我思路,万分感谢!
...全文
11890
35
打赏
收藏
请教大家~~如何迅速看懂一个大型的C++项目程序?
我是一名C++初学者,老师给了我一个视频监控系统源代码,让我根据这个写出来一份概要设计,我看了两天也没什么头绪,求解大家教教我思路,万分感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
35 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liujinyong1986
2014-12-13
打赏
举报
回复
多问问老师,毕竟不是每个学生都有机会接触到大型项目的,多看看,多练练,对你以后从事这方面的工作很有帮助的,这其实是好事,看你自己怎么说了,你想天天混日子,到处玩当然觉得很难,你是研究生吧,要靠自学的,多问问老板,逮着他就问
猪翼天翔
2012-08-18
打赏
举报
回复
vim在linux上用得比较多,对于新手来说不如widows下的IDE好用。
1. 建议先尽量找人/文档了解下业务流程,不了解业务流程的情况下去看代码会痛苦死;
2. 了解程序模块级的设计结构,主要的数据流程。可以用工具如EA之类的将代码反向导出UML图,便于理解;
3. 对新手来说单步调试不太现实,大型的项目、加上多线程之类的、你还不了解业务。。。;
总之就是先了解业务流程,然后自顶向下。
[Quote=引用 4 楼 的回复:]
引用 1 楼 的回复:
看多了就有经验了。
首先得有一个好的源码浏览工具,
比如vim
能够进行跳转查找等。
浏览代码首先得有一个框架上的概念, 看代码不要一味地跟进去,否则很可能会迷失在代码中。
由于要写概要设计,我只会wps,我就在win7平台上用2010看代码,vim我不会用。。。
请问还能提供一点比较实用的办法吗?
[/Quote]
ayw215
2012-08-18
打赏
举报
回复
看代码用sourceinsight
先吧程序跑起来,用熟,再调试,跟踪
羽飞
2012-08-18
打赏
举报
回复
我也是菜鸟,大家分享一下经验:
第一步:画出类图,把每个类的功能大概搞清楚;
第二步:流程图或者序列图,这个也是数据流向的
jiangshi061
2012-08-17
打赏
举报
回复
1
我也经历过类似的事情, 我在某大型企业实习的时候, 有一套OA软件, 直接把源代码扔给我让我改BUG,
怎么办?
1,首先搭建好调试环境,把代码装进IDE,然后编译通过。
2,在入口函数(main)的开头处打个断点,然后开始单步调试,你可以熟悉程序的功能结构。
3,对着程序界面,在使用程序的同时,在各个功能的方法中打断点,一个一个单步调试,你可以熟悉功能的分支流程,
4,每次调试的时候,都动手画一下流程图。
5,最后你会发现,整个工程的流程图,你已经画好了!
qicheng1111
2012-08-17
打赏
举报
回复
1
先了解程序的结构,各个模块是怎样分配的。再从程序的入口,即main函数之类的着手,用调式的方式走一走。
shen_wei
2012-08-17
打赏
举报
回复
可以自己按照流程走一走!!看看各个函数的功能。。
zhaoZero41
2012-08-17
打赏
举报
回复
我觉得先要搞清楚各个模块的功能,单步调试一下吧,弄清楚每个模块的功能,画出流程图。把大的框架搭起来后面的就好办了。如果只是写个概要设计,应该不用太纠结于细节问题。不过如果项目工程比较大的话,没有设计文档或者是比较详细的注释的话。。。比较麻烦 楼主加油吧
m筱米
2012-08-17
打赏
举报
回复
1
[Quote=引用 21 楼 的回复:]
新手遇上大型项目,有难度!
理出项目的骨架,不用拘泥于C++语法细节。
[/Quote]
++
而且大型项目的功能模块都分的很清楚,根据不同的功能模块,根据功能使用流程,跟断点,找到代码实现的地方。 不要拘泥于语法细节。
cbzjzsb123
2012-08-17
打赏
举报
回复
新手遇上大型项目,有难度!
理出项目的骨架,不用拘泥于C++语法细节。
chjj23
2012-08-17
打赏
举报
回复
[Quote=引用 29 楼 icechenbing 的回复:]
通常是先有概要设计,再有代码的。
你的老师逆转过来。不符合软件工程。
建议你拒出概要设计。
[/Quote]
这样做可能学到一些意外的东西。。。
恨天低
2012-08-17
打赏
举报
回复
1
通常是先有概要设计,再有代码的。
你的老师逆转过来。不符合软件工程。
建议你拒出概要设计。
whucv
2012-08-17
打赏
举报
回复
U使用nderstand 2.0代码分析工具
Understand是一款非常好用的代码分析工具,有很多实用功能。
可以新建一个项目,将你的代码工程添加进去,支持C++,C#,等N多种语言,可以更方便的对整个项目框架进行分析。
可以绘制很多的图:
Control Flow Graphics(流程图)
Calls(调用图)
Called By(补调用图)
Butterfly(蝴蝶图)
Depends On(依赖图)
Depended On By(补依赖图)
特别是流程图,非常有特色的说~~
xiakeliangjian
2012-08-17
打赏
举报
回复
先理清整个程序的框架,之后在找环境运行一遍,逐步分析,由模块到函数,多跟几次程序,建议不要在wps上看了,那样既痛苦又没效果。
翅膀又硬了
2012-08-16
打赏
举报
回复
单步调试一下吧。
mujiok2003
2012-08-16
打赏
举报
回复
新手遇上大型项目,有难度!
理出项目的骨架,不用拘泥于C++语法细节。
jinjianxinxh
2012-08-16
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
如果只有源码没有文档的话,那你只能导入数据跟踪数据流了,弄清楚数据流的走向,各个模块的作用以及各个模块之间的交互,再画出系统框架,熟悉各个模块;
[/Quote]
++ 跟踪数据,理清模块
gongxujun
2012-08-16
打赏
举报
回复
首先要有个框架,不过这个没有经验很难搞
千阳
2012-08-16
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
写概要设计,先把流程写出来。你不懂视频监控的流程。你再看代码都只是代码。你不了解到最表面的东西,框架是死的,只有根据业务的不同,你了解才更清楚,写相应的UML吧,你就知道大概走向了。
[/Quote]
UML怎么写,自己硬写吗?
千阳
2012-08-16
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
如果只有源码没有文档的话,那你只能导入数据跟踪数据流了,弄清楚数据流的走向,各个模块的作用以及各个模块之间的交互,再画出系统框架,熟悉各个模块;
[/Quote]
我连调试都得折腾半天,这个数据跟踪流是不是难度有点大啊?
加载更多回复(12)
征服
C++
11视频精讲
【为什么还需要学习
C++
?】 你是否接触很多语言,但从来没有了解过编程语言的本质?你是否想成为一名资深开发人员,想开发别人做不了的高性能
程序
?你是否经常想要窥探
大型
企业级开发工程的思路,但苦于没有基础只能望洋兴叹? 那么
C++
就是你个人能力提升,职业之路进阶的不二之选。【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。2.带你从知识与思想的层面从0构建
C++
知识框架,分析
大型
项目
实践思路,为你打下坚实的基础。3.李宁老师结合4大国外顶级
C++
著作的精华为大家推出的《征服
C++
11》课程。【学完后我将达到什么水平?】 1.对
C++
的各个知识能够熟练配置、开发、部署;2.吊打一切关于
C++
的笔试面试题;3.面向物联网的“嵌入式”和面向
大型
化的“分布式”开发,掌握职业钥匙,把握行业先机。【面向人群】 1.希望一站式快速入门的
C++
初学者; 2.希望快速学习
C++
、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发
项目
,成为资深开发的工程师。 【课程设计】 本课程包含3大模块基础篇本篇主要讲解
c++
的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。进阶篇本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。提升篇:本篇可以帮助学员更加高效的进行
c++
开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
C++
程序
设计之四书五经
C++
是一门广泛用于工业软件研发的
大型
语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,
C++
已经在许多重要的领域大获成功。 然而,
一个
不可否认的现实是,在低阶
程序
设计领域,
C++
挤压着C同时也在承受着C的强烈反弹,而在高阶
程序
设计领域,Java和C#正在不断蚕食着
C++
的地盘。也许
C++
与C合为一体永远都是
一个
梦想,也许Java和C#的狂潮终将迫使C...
C++
程序
设计之四书五经
C++
程序
设计之四书五经
C++
程序
设计之四书五经(上篇)
C++
是一门广泛用于工业软件研发的
大型
语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,
C++
已经在许多重要的领域大获成功。 然而,
一个
不可否认的现实是,在低阶
程序
设计领域,
C++
挤压着C同时也在承受着C的强烈反弹,而在高阶
程序
设计领域,Java和C#正在不断蚕食着
C++
的地盘。也许
C++
与C合为一体永远都是
一个
梦想,
C++
程序
设计之四书五经—
C++
书籍推荐
C++
是一门广泛用于工业软件研发的
大型
语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,
C++
已经在许多重要的领域大获成功。 然而,
一个
不可否认的现实是,在低阶
程序
设计领域,
C++
挤压着C同时也在承受着C的强烈反弹,而在高阶
程序
设计领域,Java和C#正在不断蚕食着
C++
的地盘。也许
C++
与C合为一体永远都是
一个
梦想,也许Java和C#的狂潮终将迫使
C++
回归
C++
程序
设计语言四书五经
C++
是一门广泛用于工业软件研发的
大型
语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,
C++
已经在许多重要的领域大获成功。 然而,
一个
不可否认的现实是,在低阶
程序
设计领域,
C++
挤压着C同时也在承受着C的强烈反弹,而在高阶
程序
设计领域,Java和C#正在不断蚕食着
C++
的地盘。也许
C++
与C合为一体永远都是
一个
梦想,也许Java和C#的狂潮终将迫使
C++
回归
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章