工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 4859|回复: 17

出个题目:C语言源代码行统计工具

[复制链接]
发表于 2008-7-12 23:27 | 显示全部楼层 |阅读模式
统计单个c文件的源代码

1. /* */ 和//的都认为是注释行
2. 统计空行
3. 非空非注释行,基本上可以认为是有效的代码行 如果同一行中有注释和代码的认为是代码行
4, 统计总代码行数

#include之类的认为是非空非注释行

#if 0注掉的也认为是非空非注释行, 因为可能是用宏来表示if的判断条件, 所以如果这个也解析判断是否为0的话会比较麻烦.

不清楚的要求可以问.
虽然题目简单但是应该考虑更多的功能的独立,以及扩展性,可以考虑设计
发表于 2008-7-13 01:04 | 显示全部楼层
数据结构课程设计有类似的题目可选
回复

使用道具 举报

 楼主| 发表于 2008-7-13 13:22 | 显示全部楼层
then,说一下你的思路?
回复

使用道具 举报

发表于 2008-7-13 15:12 | 显示全部楼层
数据结构做过。。。
不过要求和LZ有些不同
考虑更多的功能的独立,以及扩展性

当时只是做了函数统计和行数统计(包括注释行,空行等)
回复

使用道具 举报

发表于 2008-7-13 15:13 | 显示全部楼层
有点好奇蝎子师兄要这个的目的
回复

使用道具 举报

发表于 2008-7-14 11:55 | 显示全部楼层
决定去试一下, 没学过数据结构.... 悲哀
回复

使用道具 举报

 楼主| 发表于 2008-7-15 01:17 | 显示全部楼层
几个原因

这是我之前的CMM培训的时候的题目,很简单是吧,我们还是一组人做的,5个6个人,当然要分块呀,每个人都有一部分做,所以这样就要分析,
问题一: 怎么样去分开模块,让每个人有事情做
问题二: 据说后面会有需求的增加,所以系统的设计还得考虑可扩展性...
问题三: 解析注释行的,晕死我了.很多的判断,让我自己都觉得晕了,可能是自己束缚太多了,想听听大家的想法


我虽然不是组长,但是还是我的想法最多,所以设计分模块什么的都是我做的,但是分模块大家做任务之后跟踪做得不好,而且也不是正式的组织的人,所以控制不了,最后很郁闷地自己一个人完成了所以的代码以及设计文档.

当然能力表现出来了,可是从团队来说,这样的结果绝对是失败的.不知道大家有没有想法可以组两个来做一下,看能否做好?
回复

使用道具 举报

发表于 2008-7-15 11:22 | 显示全部楼层
觉得这个比较小,5,6个人的小组显得太多了
回复

使用道具 举报

 楼主| 发表于 2008-7-17 00:00 | 显示全部楼层
你自己一个人也可以完成呀,但是实际的项目不是这样做的...

真正的项目中不只是写设计文档,写代码而已
还有很多的项目资料要维护的....
你还要懂得如何去跟踪,如何去计划,如何去安排人工作.这包括很多方面的工作
回复

使用道具 举报

发表于 2008-7-24 02:28 | 显示全部楼层
。。。。
如果是要求这么简单的话。。。
用bashshell很快搞定。。
代码不超过100行。。
过几天如果有空写写。。

[ 本帖最后由 自然疯 于 2008-7-24 02:54 编辑 ]
回复

使用道具 举报

发表于 2008-7-24 02:51 | 显示全部楼层
#if 0注掉的也认为是非空非注释行, 因为可能是用宏来表示if的判断条件, 所以如果这个也解析判断是否为0的话会比较麻烦.

一边玩星际一边想了下。。具体思路有了。。
可是这行搞不懂
你这个要判断什么?
也就是把无谓的代码注释掉??然后算非空非注释行?

ps 有点不敢写。。写出来的代码太丑了。。

[ 本帖最后由 自然疯 于 2008-7-24 02:58 编辑 ]
回复

使用道具 举报

发表于 2008-7-24 12:31 | 显示全部楼层

现在才认真看了下面的回复。。。
原来是一个项目来的阿。。
不好意思。。没看清楚
出这个题目的人还真是。。。。
统计源代码这东西本来就是文本处理类型的。。
不用文本工具去实现反而。。
搞这么复杂
回复

使用道具 举报

发表于 2008-7-24 12:58 | 显示全部楼层
我也觉得不难

用perl脚本逐行扫描,字符匹配
一个下午能把代码写出来,调试完
回复

使用道具 举报

发表于 2008-7-24 16:01 | 显示全部楼层

回复 12楼 自然疯 的帖子

出题目的目的不一定是要真的做个什么产品出来用。
我们课程设计里做的东西有哪样不是有现成的了....


用脚本,用正则表达式的话,就不是题目要求的初衷了。
回复

使用道具 举报

发表于 2008-7-24 16:52 | 显示全部楼层
原帖由 iptton 于 2008-7-24 16:01 发表
出题目的目的不一定是要真的做个什么产品出来用。
我们课程设计里做的东西有哪样不是有现成的了....


用脚本,用正则表达式的话,就不是题目要求的初衷了。


查了下发现cmm原来是一种用于评价软件承包能力并帮助其改善软件质量的方法,也就是评估软件能力与成熟度的一套标准,它侧重于软件开发过程的管理及工程能力的提高与评估。

不过还是不懂这个题目是要怎么做出来。。整个流程是啥?


[ 本帖最后由 自然疯 于 2008-7-24 16:59 编辑 ]
回复

使用道具 举报

发表于 2008-7-24 17:00 | 显示全部楼层
http://www.google.cn/search?q=CM ... mp;client=firefox-a

就像我们编译原理的课程设计,目标肯定不是真的创建一门新的语言一样。


你自己一个人也可以完成呀,但是实际的项目不是这样做的...

真正的项目中不只是写设计文档,写代码而已
还有很多的项目资料要维护的....
你还要懂得如何去跟踪,如何去计划,如何去安排人工作.这包括很多方面的工作
回复

使用道具 举报

发表于 2008-7-24 17:21 | 显示全部楼层
这东西。。。感觉lz如果全部一个人包办的话。。
只能弄个不及格。。。

这些一开始不讨论好的话感觉只能越搞越乱阿。。。。
回复

使用道具 举报

 楼主| 发表于 2008-7-27 03:13 | 显示全部楼层
1. 分析你现在的这个题目的需求,总共有几个方面,功能,界面,性能等的要求
2. 做一个系统设计分析,现在这个系统大概可以分成几个模块,每个模块大概需要多长时间,要做一个大概的估计,然后根据这个估计的时间做项目的计划,建立项目的计划时间

3. 详细分析描述每一项的需求,包括输入输出,处理功能等,并为需求建立跟踪表格,保证在后面的验证中这些的需求都被有效地实现,同时输出系统测试用例,加入到需求跟踪表格,保证能够每条需求被验证
4. 重新估计项目时间,并根据估计的时间调整项目的计划
5. 后面的设计阶段的文档,并输出集成测试用例和单元测试用例,并更新需求跟踪表格
6. coding
7. 单元,集成,系统测试
8. 中间的每个文档的正式归档都需要检视,修改

可能太简单了一些,还有一些的度量数据,缺陷统计等
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-6-4 13:02

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表