今天是二十几天来首次尝试自主完成一个项目,其实代码和昨天的差别不大,但是需要自己去思考
做什么?
为什么做?
怎么做?
具体如何实现?
所以一天下来还是比较有收获的!
(若有不正确的地方还望见谅并向我指出错误,欢迎前来交流,学海无涯!)
电商直播平台管理系统
定义一个直播平台的结构体,定义如下几种属性:
1.定义每个直播间的唯一房间号为主Key ID;
2.定义直播间中的主播姓名为关键字 Name;
3.定义直播间所售卖的商品种类为关键字 Items;
4.定义直播间所卖出的销售额为关键字 Sales;
一.功能
1.创建:创建一个用来描述直播平台的哈希表。
2.增加:在直播平台中增加新的直播房间以及直播间中的主播、商品种类、 销售额
3.删除:在直播平台中删除一个直播间以及直播间里的主播、商品及销售额信息
4.修改:在直播平台中修改直播间中主播的信息或者商品的信息,修改最多的是销售额的 信息,但是直播间房间号不能修改
//此项功能今日尽量去实现,若时间不够,暂且不做
5.查找:在直播平台中根据主Key ID房间号来查找直播间信息
6.排序:在该系统中因为是电商平台直播,那么销售额就是直播平台最在意的,排序功能就是通过销售额来排序出从高到底
//此项功能今日尽量去实现,若时间不够,暂且不做
7.显示:用来显示直播平台中的信息,包括直播间、主播姓名、销售的商品种类、以及所创造的销售额
8.销毁:用来销毁这个直播平台,删除每个直播间中具体信息,然后释放掉整个哈希表
二.技术
1.Ubuntu
2.C语言
3.哈希表
4.文件IO
三.实现步骤
1.定义结构体
2.封装功能函数
3.测试功能实现
哈希函数:
主Key是直播间房间号
给房间号定义格式为 888*** 六位数
从888001为首个房间
运用叠加法计算 ,前三位与后三位相加
888+001=889
此后每个房间号都运用叠加法计算后来减889
四.具体实现
1.创建工程项目
因为我是用的Ubuntu,所以就建了一个文件夹 ZBGL
之后再这个大文件夹下分别创建
src
obj
include
bin
四个文件夹

2.代码实现
1>.zbgl.h----------------------------------------- 如下(此文件放在include文件夹下)
#ifndef _ZBGL_H_
#define _ZBGL_H_
#define SIZE 2000
typedef struct Zb
{
char id[10];//直播间的唯一房间号
char name[10];//直播间中主播的姓名
char items[15];//直播间中所销售的商品种类
float sales;//直播间所创造的销售额
}Zb;
typedef Zb data_t;
//节点
typedef struct HashNode
{
data_t data;
struct HashNode *pNext;
}HashNode;
//哈希表
typedef struct Hash
{
HashNode *hash[SIZE];
}Hash;
enum HASH_OP
{
HASH_ERR = -1,
HASH_OK,
NOT_FOUND
};
//创建
Hash *createHash();
//插入
int insertZb(Hash *pHash,data_t tData);
//删除
int deleteZb(Hash *pHash,data_t *pData);
//查找
int searchZb(Hash *pHash,data_t *pData);
//显示
void showHash(Hash *pHash);
//销毁
void destroyHash(Hash **ppHash);
#endif
2>.zbgl.c----------------------------------------- 如下(此文件放在src文件夹下)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../include/zbgl.h"
//创建一个电商直播管理平台系统的哈希表
Hash *createHash()
{
Hash *pHash = (Hash *)malloc(sizeof(Hash));
if(NULL == pHash)
{
return NULL;
}
memset(pHash,0,sizeof(Hash));
return pHash;
}
//在电商平台管理系统的哈希表中来插入节点
//节点中包括直播间的唯一房间号、主播姓名、所销售的商品种类、以及所创造的销售额
int insertZb(Hash *pHash,data_t tData)
{
if(NULL == pHash)
{
return HASH_ERR;
}
//创建节点
HashNode *pNode = (HashNode*)malloc(sizeof(HashNode));

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



