可重用模块化设计运用到menu小程序
来源:互联网 发布:python logger 编辑:程序博客网 时间:2024/05/17 23:57
网易云课堂昵称:stuyang
上次的menu程序模块化具有较差的可移植性,这次试验,作者编写了一个具有可靠移植性的链表数据结构,并运用到了menu里面。
下面是menu.c的main函数:
int main()
{
InitMenuData(&head);
while (1)
{
char cmd[CMD_MAX_LEN];
printf("Welcome to my command menu!\n");
scanf("%s", cmd);
tDataNode *p = FindCmd(head, cmd);
if (p == NULL)
{
printf("this is a wrong cmd!You can input \"help\" for help\n");
continue;
}
//printf("%s %s\n",p->cmd,p->desc);
if (p->handler != NULL)
{
p->handler();
}
}
}。
下面是链表结构的一些API:
typedef struct LinkTableNode
{
struct LinkTableNode * pNext;
}tLinkTableNode;
/*
* LinkTable Type
*/
typedef struct LinkTable
{
tLinkTableNode *pHead;
tLinkTableNode *pTail;
int SumOfNode;
//pthread_mutex_t mutex;
}tLinkTable;
/*
* Create a LinkTable
*/
tLinkTable * CreateLinkTable();
/*
* Delete a LinkTable
*/
int DeleteLinkTable(tLinkTable *pLinkTable);
/*
* Add a LinkTableNode to LinkTable
*/
int AddLinkTableNode(tLinkTable *pLinkTable, tLinkTableNode * pNode);
/*
* Delete a LinkTableNode from LinkTable
*/
int DeleteLinkTable(tLinkTable *pLinkTable, tLinkTableNode * pNode);
/*
* get LinkTableHead
*/
tLinkTableNode * GetLinkTableHead(tLinkTable *pLinkTable);
/*
* get next LinkTableNode
*/
tLinkTableNode * GetNextLinkTableNode(tLinkTable *pLinkTable, tLinkTableNode * pNode);
#endif /* _LINK_TABLE_H_ */pragma once。
运行结果如下图:
完整的代码已上传至GitHub,https://github.com/stuyang/helloworld中的lab4.
阅读全文
0 0
- 可重用模块化设计运用到menu小程序
- 模块化基带设计实现低成本可重用无线架构
- 将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 将menu设计为可重用的子系统
- 将menu设计为可重用的子系统
- 实验7 将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- 实验七:将menu设计为可重用的子系统
- MENU可重用的子系统
- 实验报告七:将menu设计为可重用的子系统
- struts2实现文件下载
- java 集合类对比
- WebAssembly,Web的新时代
- Spring的MapPropertySource刷新系统属性值(key-value配置在外部系统中如redis,数据库等)
- 让你飞快构建Android开发框架----Android Studio Template
- 可重用模块化设计运用到menu小程序
- Pyhton3+openCV3初体验
- python+requests接口自动化测试框架实例详解教程
- [Android学习笔记] Service 学习
- Vue.js框架
- 浅谈nginx内存池(三)
- 1.2 Web 资源
- 通过 实例带你学习RPC框架gRPC
- TensorFlow中的那些高级API