出个题目:C语言源代码行统计工具
统计单个c文件的源代码1. /* */ 和//的都认为是注释行
2. 统计空行
3. 非空非注释行,基本上可以认为是有效的代码行 如果同一行中有注释和代码的认为是代码行
4, 统计总代码行数
#include之类的认为是非空非注释行
#if 0注掉的也认为是非空非注释行, 因为可能是用宏来表示if的判断条件, 所以如果这个也解析判断是否为0的话会比较麻烦.
不清楚的要求可以问.
虽然题目简单但是应该考虑更多的功能的独立,以及扩展性,可以考虑设计 数据结构课程设计有类似的题目可选 then,说一下你的思路? 数据结构做过。。。
不过要求和LZ有些不同
考虑更多的功能的独立,以及扩展性
当时只是做了函数统计和行数统计(包括注释行,空行等) 有点好奇蝎子师兄要这个的目的 决定去试一下, 没学过数据结构.... 悲哀 几个原因
这是我之前的CMM培训的时候的题目,很简单是吧,我们还是一组人做的,5个6个人,当然要分块呀,每个人都有一部分做,所以这样就要分析,
问题一: 怎么样去分开模块,让每个人有事情做
问题二: 据说后面会有需求的增加,所以系统的设计还得考虑可扩展性...
问题三: 解析注释行的,晕死我了.很多的判断,让我自己都觉得晕了,可能是自己束缚太多了,想听听大家的想法
我虽然不是组长,但是还是我的想法最多,所以设计分模块什么的都是我做的,但是分模块大家做任务之后跟踪做得不好,而且也不是正式的组织的人,所以控制不了,最后很郁闷地自己一个人完成了所以的代码以及设计文档.
当然能力表现出来了,可是从团队来说,这样的结果绝对是失败的.不知道大家有没有想法可以组两个来做一下,看能否做好? 觉得这个比较小,5,6个人的小组显得太多了 你自己一个人也可以完成呀,但是实际的项目不是这样做的...
真正的项目中不只是写设计文档,写代码而已
还有很多的项目资料要维护的....
你还要懂得如何去跟踪,如何去计划,如何去安排人工作.这包括很多方面的工作 。。。。
如果是要求这么简单的话。。。
用bashshell很快搞定。。
代码不超过100行。。
过几天如果有空写写。。
[ 本帖最后由 自然疯 于 2008-7-24 02:54 编辑 ] #if 0注掉的也认为是非空非注释行, 因为可能是用宏来表示if的判断条件, 所以如果这个也解析判断是否为0的话会比较麻烦.
一边玩星际一边想了下。。具体思路有了。。
可是这行搞不懂
你这个要判断什么?
也就是把无谓的代码注释掉??然后算非空非注释行?
ps 有点不敢写。。写出来的代码太丑了。。
[ 本帖最后由 自然疯 于 2008-7-24 02:58 编辑 ]
现在才认真看了下面的回复。。。
原来是一个项目来的阿。。
不好意思。。没看清楚
出这个题目的人还真是。。。。
统计源代码这东西本来就是文本处理类型的。。
不用文本工具去实现反而。。
搞这么复杂 我也觉得不难
用perl脚本逐行扫描,字符匹配
一个下午能把代码写出来,调试完
回复 12楼 自然疯 的帖子
出题目的目的不一定是要真的做个什么产品出来用。我们课程设计里做的东西有哪样不是有现成的了....
用脚本,用正则表达式的话,就不是题目要求的初衷了。 原帖由 iptton 于 2008-7-24 16:01 发表 https://www.gdutbbs.com/images/common/back.gif
出题目的目的不一定是要真的做个什么产品出来用。
我们课程设计里做的东西有哪样不是有现成的了....
用脚本,用正则表达式的话,就不是题目要求的初衷了。
查了下发现cmm原来是一种用于评价软件承包能力并帮助其改善软件质量的方法,也就是评估软件能力与成熟度的一套标准,它侧重于软件开发过程的管理及工程能力的提高与评估。
不过还是不懂这个题目是要怎么做出来。。整个流程是啥?
[ 本帖最后由 自然疯 于 2008-7-24 16:59 编辑 ] http://www.google.cn/search?q=CMM&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:zh-CN:unofficial&client=firefox-a
就像我们编译原理的课程设计,目标肯定不是真的创建一门新的语言一样。
你自己一个人也可以完成呀,但是实际的项目不是这样做的...
真正的项目中不只是写设计文档,写代码而已
还有很多的项目资料要维护的....
你还要懂得如何去跟踪,如何去计划,如何去安排人工作.这包括很多方面的工作 这东西。。。感觉lz如果全部一个人包办的话。。
只能弄个不及格。。。
这些一开始不讨论好的话感觉只能越搞越乱阿。。。。 1. 分析你现在的这个题目的需求,总共有几个方面,功能,界面,性能等的要求
2. 做一个系统设计分析,现在这个系统大概可以分成几个模块,每个模块大概需要多长时间,要做一个大概的估计,然后根据这个估计的时间做项目的计划,建立项目的计划时间
3. 详细分析描述每一项的需求,包括输入输出,处理功能等,并为需求建立跟踪表格,保证在后面的验证中这些的需求都被有效地实现,同时输出系统测试用例,加入到需求跟踪表格,保证能够每条需求被验证
4. 重新估计项目时间,并根据估计的时间调整项目的计划
5. 后面的设计阶段的文档,并输出集成测试用例和单元测试用例,并更新需求跟踪表格
6. coding
7. 单元,集成,系统测试
8. 中间的每个文档的正式归档都需要检视,修改
可能太简单了一些,还有一些的度量数据,缺陷统计等
页:
[1]