嵌入式学习DAY24 --- 自主完成一个项目《电商直播平台管理系统》,运用C语言、数据结构等知识

今天是二十几天来首次尝试自主完成一个项目,其实代码和昨天的差别不大,但是需要自己去思考
做什么?
为什么做?
怎么做?
具体如何实现?
所以一天下来还是比较有收获的!

(若有不正确的地方还望见谅并向我指出错误,欢迎前来交流,学海无涯!)


电商直播平台管理系统

定义一个直播平台的结构体,定义如下几种属性:
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));
	
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值