Page cover image

😄欢迎来到 WinterCode

WinterCode Project for C-Beginners.

Author: CJC from NJU

Email: jiacaicui@smail.nju.edu.cn

概况与环境

大部分的应用型程序其实从大框架上来讲就是一个信息管理系统,比如淘宝,微信,B站,微博等等。信息管理系统也是大部分开发者学习阶段上手的第一个项目。Whale Market是一个基于命令行的简易交易平台。

参考版本:https://github.com/201220014/WhaleMarket

视频介绍:https://www.bilibili.com/video/BV1HS4y1o7tT/

设计参考南京大学程设基础实验课程项目一所提出的需求。

本教程会手把手详细叙述开发的全过程,并且会尽量在代码中覆盖程序设计基础课程的大部分内容,特别是老师轻描淡写带过的一些细节内容,以保证本项目的教学性。

代码是开源的,您可以搭建自己的本地开发环境,需要的环境很简单:editor + linux + gcc + make。其中,编辑器以及Linux发行版可以根据自己的喜好选择。

对于刚接触Linux的同学,Ubuntu桌面版Linux和VSCode编辑器会比较友好一些。

Ubuntu: https://ubuntu.com/

VSCode: https://code.visualstudio.com/

Linux文件管理基本命令: https://www.runoob.com/linux/linux-file-content-manage.html

需求汇总

再这个项目中,我们需要实现如下的基本需求:

  • 用户功能:

    • 登陆、注册、注销

  • 买家功能

    • 查看、搜索商品

    • 购买商品

  • 卖家功能

    • 商品的发布、下架

    • 查看已发布商品

    • 修改商品信息

  • 查看历史订单

  • 个人信息查看、修改

  • 管理员功能

    • 登陆、注销

    • 查看、搜索、下架商品

    • 查看所有订单

    • 查看、删除用户

  • 系统功能

    • 程序结束后再次打开程序,原本的数据不能丢失

更加具体的需求以及示例详见:https://github.com/201220014/WhaleMarket

github无法正常显示图片的可以看教程中“详细需求补充”这一页。

也可以下载参考版的源码在环境中构建项目并运行进行预览。

注意:不同的主体增删查改的权限是不一样的。

设计思路

针对涉及到的各种主体设计不同的数据类型,然后选择一种合适的数据结构在内存中存储数据,使用文件读写的方式来与外存交互,以保证程序结束后再次运行数据不丢失。

用户通过特定的接口或者界面与程序交互,接口/界面负责调用程序中已经设计好的算法来操作数据结构,同时获取结果,接口/界面再将算法的结果以某种形式反馈给用户。

具体可以用下图表示:

设计思路示意图

模块划分

主要分成如下模块:

名称
作用

tools

一些辅助工具(样式设计、日期、ID生成等内容)

menu

菜单模块,接口模块的辅助模块

good

商品模块,包括涉及商品的算法和数据结构

user

用户模块,包括涉及用户的算法和数据结构

order

订单模块,包括涉及订单的算法和数据结构

interface

接口/界面模块,实现用户和数据结构的交互

main.c

程序入口

最后更新于

这有帮助吗?