生成ID和获取时间
生成各类ID和获取时间的内容封装成一个info模块。
当前进度
生成ID
在我们的项目中有三个主体需要生成唯一的ID——用户、商品、订单。
我们约定这三种ID分别以U(User), G(Good), O(Order)开头加上五位数字,从类型上讲是一个字符串。
接口设计
请先思考一下自己将会怎么实现,再来看我的实现。
实现
这里为了让程序结束后再次打开时也能够接着之前的ID生成唯一的新ID,用了一个文件src/data/id.txt
来储存当前ID的最大值。
这里的ID仅仅和产生时间有关,哪怕之前有某个用户或者商品被删除了,其他的用户或者商品、订单的ID并不会因此而变化,新生成的ID也不会填补之前的ID。
因为其实商品的删除仅仅是商品的状态从销售中变成已下架,而不是将这个商品的信息彻底从系统中删除。
这里用到了文件读写的知识点,如果对这部分知识点有所模糊可以寻找相关教程复习一下。
参考教程: https://www.runoob.com/cprogramming/c-file-io.html
在之后的内容中,笔者会默认读者掌握了基本的C文件读写的内容。
除此之外,还用到了格式化输出到字符串sprintf
函数,这个函数声明在头文件string.h
中,string.h
中的字符串处理函数会在本项目中经常用到,希望读者寻找相关教程学习一下。
参考教材: https://www.runoob.com/cprogramming/c-standard-library-string-h.html
在之后的教程中,笔者会默认读者掌握了string.h
头文件中的基本用法。
获取时间
在商品的信息中,我们要求提供商品的上架日期,格式比如2022-1-14
,本质上是一个字符串,所以我们需要提供一个可以获取字符串格式的日期的函数。
接口设计
请先思考一下自己将会怎么实现,再来看我的实现。
实现
生成日期的函数用到了time.h
头文件,可以先寻找相关教程学习一下。
参考教程:https://www.runoob.com/cprogramming/c-standard-library-time-h.html
在之后的内容中,笔者将会默认读者了解time.h
的基本内容。
至此,我们已经基本写完了tools文件夹下需要的所有模块。
如果你阅读info.h,你应该还会发现两个宏定义,这两个宏是帮助精简打印信息函数实现所定义的宏,在之后的教程中会提及。
最后更新于
这有帮助吗?