📄 readme
字号:
题目:运动会分数统计系统
班级:05级6班 姓名:杨硕 学号:1051000262 完成日期:2006.10.20
博客:cjhacker.bokee.com
一.需求分析
功能:功能菜单,成绩录入(手动/文件),成绩输出(成绩单/总成绩单)
二.概要设计
1.本程序采用线形表的顺序存储结构,因此,定义一个线形表的ADT:SqList.
2.本程序包含五个模块:
1)主程序模块:
void main()
{
初始化;
while ( 接受命令; )
{
处理命令;
}
}
2)运动会统计功能模块--实现运动会统计系统的基本功能
3)线形表数据结构模块--实现线形表的数据结构表示
4)结点结构模块--定义线形表的结点结构
5)通用声明模块--定义通用宏声明
三.详细设计
见后面代码.
四.开发感触
(1)模块化&&对象化
c语言虽然面向过程(模块化思想),但这在较大的程序并不适用,所以我们尽量用c
来模仿c++的对象化,定义出顺序表结构类型Sqlist和顺序表数据元素类ElemType,虽然形
不似但还是有一点神似的:)
(2)功能分层细化
其实在没有看到老师的代码前,我是想把所有代码写到一个文件里的,但大程序中一
般不会把所有代码写到一个文件中,因为这样可读性差也不好管理。本程序中五个文件分
别为:Gdefine.h(通用宏声明),ElemType.h(节点结构类型),Sqlist.h(线形表数据
结构),Sport.h(运动会统计系统基本操作),main.cpp(主程序)分别代表五个层次,
就橡网络中的TCP/IP的模型一样,每一层提供不同的功能,在本程序中,ElemType.h,
Sqlist.h和Gdefine.h提供相对底层的服务(功能),上层(sport.h和main.cpp)可以使用
底层的服务,这样程序的可读性,可重用性,包括强壮性(容错性)(因为可以把错误处
理分布到不同的层面)都可以有所提高,方便以后对代码的管理和维护。
(3)函数原形声明
一般我都把自定义的函数放在main前边,这样就可以不写函数原形少打点字了,但是
这样我们就不能清晰地看到关于对象的所有操作了,所以为了可读性,函数原形的声明是
必不可少的。
(4)ListInsert_Sq函数
原来函数里有这么一句:exit(OVERFLOW);
但是个人认为在底层函数中使用exit()函数实在不妥,故改为return OVERFLOW
(5)可恶的后缀名:(
因为用到了C++的新特性(引用),所以就要用C++的编译器来编译,但在TC下默认是
用C编译器进行编译,只有当文件后缀名为cpp时TC才会调用C++编译器进行编译(害得我郁
闷了好几天:( ...)。
(6)为什么用Dev-C++而不用TC
做较大的程序一个比较麻烦的事情就是管理,用可视化的开发环境可以更好的进行工
程管理。
PS:VC++太大了,懒的下了。
(7)编程规范
按照编程规范改进了代码(缩进,空格,注释......)。
(8)凡原来函数中有return的,都在其成功运行时加入return OK(源于scanf()函数的启示)
(9)函数,常量,变量命名规则
函数名中的单词头字母大写,其余小写,以区别于标准库函数(不知道这样做对不对?)
常量为全大写
一般局部变量为全小写
顺序表结构类型Sqlist和节点结构类型ElemType为单词头字母大写,其余小写
(10)未来的工作
继续优化并扩充Sqlist的基本操作,并且打算随着学习的继续和深入,建立一个数据结
构函数库.
五.附录
Gdefine.h //通用宏声明
ElemType.h //节点结构类型
Sqlist.h //线形表数据结构
Sport.h //运动会统计系统基本操作
main.cpp //主程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -