首页
社区
课程
招聘
[原创]静态存储下字符串管理系统
2021-8-5 12:00 3432

[原创]静态存储下字符串管理系统

2021-8-5 12:00
3432

项目简介

String_MIS是一个静态存储下的字符串管理系统,在线内存大小限定1MB,输入字符串大小限定127字节。

项目需求

1、支持包括空字符串在内的增删改查操作。
2、支持统计内存中的字符信息。
3、支持查看内存存储信息。
4、支持内存空间碎片管理。
5、支持模糊查询。

环境依赖

x86、x64平台。

项目设计

系统结构

  • 用户选择功能
  • 系统根据用户选择给出提示
  • 用户输入数据
  • 系统根据用户数据操作内存
  • 系统将结果输出到界面

目录结构

  • Global.h(声明全局变量,定义系统需要的常量宏)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
 
//空格符
#define SPACE 32
//换行符
#define LINEFEED 10
//空白字符保存为-1
#define CHARNULL -1
//空白字符显示为1
#define SHOWNULL 1
 
#ifndef GLOBAL_H
#define GLOBAL_H
extern char g_szBuffer[1024 * 1024];
extern int g_nBufferSize;
extern char* g_pointSelect;
extern char* g_pointPresent;
#endif
  • StringUI.h(定义主界面、功能选择对应结果界面相关函数)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once
 
int StringLength(char* string);
//功能选择界面
void StringUI();
//添加结果显示
void AddView(int result, char* string);
//查询结果显示
void SelectView(int result, char* string);
//删除结果显示
void DeleteView(int result, char* string);
//修改字符串结果显示
void UpdateView(int result, char* oldstring, char* newstring);
//模糊查询显示
void DimSelectView(int result, char* arrString[]);
//存储内容显示
void ShowStringView();
//存储情况显示
void ShowMemoryView(char* address);
//碎片管理显示
void MemoryFragmentView();
//统计单个字符结果显示
void CountCharView(char ch);
//统计每个字符结果显示
void CountEachCharView();
  • StringTool.h(定义辅助功能选择结果显示的函数)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
 
//显示内存存储内容
void ShowString();
//显示内存存储情况
void ShowMemory(char* address);
//清理内存碎片空间
void CleanMemoryFragment();
//查询单个字符出现的次数
int CountChar(char ch);
//查询所有字符出现的次数
int CountAllChar();
//查询每个字符出现的次数
int CountEachChar(int arrCountChar[]);
  • StringController.h(定义操作字符串的函数,操作空字符串和操作一般字符串分离,添加字符串的实现暂不支持在内存碎片处添加)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once
 
//添加空字符
bool AddNull();
//添加字符串
bool AddString(char* string);
//查询空字符
bool SelectNull();
//根据内容查询字符串
bool SelectString(char* string);
//根据地址查询字符串
bool SelectByAddress(char* address, char string[]);
//模糊查询
bool DimSelect(char* string, char* arrString[]);
//删除空字符
bool DeleteNull();
//根据内容删除字符串
bool DeleteString(char* string);
//根据地址删除字符串
bool DeleteByAddress(char* address, char string[]);
//修改空字符
bool UpdateNull(char* newString);
//修改字符串
bool UpdateString(char* oldString, char* newString);
  • StringMain.cpp(系统结构流程控制)

部署步骤

Windows平台下使用VS2019打开并编译项目,需要将源字符集和执行字符集都设置为utf-8。

使用说明

1、使用CMD运行String_MIS.exe,CMD字符编码需要设置为urf-8。
2、根据需求选择功能选项。
3、根据提示进行输入操作,ENTER键确定显示结果。

github:https://github.com/0I00II000I00I0I0

bilibili:https://space.bilibili.com/284022506


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2021-8-5 12:05 被流照君编辑 ,原因:
上传的附件:
收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回