实验七:将menu设计为可重用的子系统

【shawn520 + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
【代码仓库】https://github.com/shawn520/SE.git

实验要求

1、为menu子系统设计接口,并写用户范例代码来实现原来的功能;

2、使用make和make clean来编译程序和清理自动生成的文件;

3、使menu子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令;

4、可以使用getopt函数获取命令行参数。

实验报告要求

简述自己的实验的思路和具体过程;

引用实验中自己添加或修改的部分关键代码;

至少有一张实验关键代码截图,至少有一张实验运行结果截图;

将自己在实验中遇到疑惑和困难,以及自己的处理方法,实验心得等写入实验报告;

实验报告的最后做一个简要的实验总结;

重现实验的具体操作指南(参见下面的小节)*[特别重要,评阅实验报告时要根据您的操作指南进行实验验证]

将实验报告的URL提交到网易云课堂MOOC平台,编辑成一个链接可以直接点击打开。

测试自己的实验代码,复审自己的实验报告

请务必确认您提交的实验报告中的实验代码可以直接进行如下操作,并将如下操作放入实验报告的显著位置便于报告评审

实验的思路和具体过程

1、创建lab7
2、编写linktable.h,linktable.c,menu.h,menu.c,test.c,Makefile
代码见关键代码部分
3、实验结果
这里写图片描述

4、上传代码到版本库
这里写图片描述

关键代码

1、linktable.h的代码

/********************************************************************/
/* Copyright (C) SSE-USTC, 2012-2013                                */
/*                                                                  */
/*  FILE NAME             :  linktabe.h                             */
/*  PRINCIPAL AUTHOR      :  shawn520                              */
/*  SUBSYSTEM NAME        :  LinkTable                              */
/*  MODULE NAME           :  LinkTable                              */
/*  LANGUAGE              :  C                                      */
/*  TARGET ENVIRONMENT    :  ANY                                    */
/*  DATE OF FIRST RELEASE :  2017/11/04                             */
/*  DESCRIPTION           :  interface of Link Table                */
/********************************************************************/

/*
 * Revision log:
 *
 * Created by shawn520,2017/11/3
 * 
 */

#ifndef _LINK_TABLE_H_
#define _LINK_TABLE_H_

#include <pthread.h>

#define SUCCESS 0
#define FAILURE (-1)

/*
 * LinkTable Node Type
 */
typedef struct LinkTableNode tLinkTableNode;

/*
 * LinkTable Type
 */
typedef struct LinkTable 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 DelLinkTableNode(tLinkTable *pLinkTable,tLinkTableNode * pNode);
/*
 * Search a LinkTableNode from LinkTable
 * int Conditon(tLinkTableNode * pNode,void *args);
 */
tLinkTableNode * SearchLinkTableNode(tLinkTable *pLinkTable, int Conditon(tLinkTableNode * pNode,void *args),void *args);
/*
 * get LinkTableHead
 */
tLinkTableNode * GetLinkTableHead(tLinkTable *pLinkTable);
/*
 * get next LinkTableNode
 */
tLinkTableNode * GetNextLinkTableNode(tLinkTable *pLinkTable,tLinkTableNode * pNode);

#endif /* _LINK_TABLE_H_ */

2、linktable.c的代码

/********************************************************************/
/* Copyright (C) SSE-USTC, 2017-2018                                */
/*                                                                  */
/*  FILE NAME             :  linktabe.c                             */
/*  PRINCIPAL AUTHOR      :  shawn520                               */
/*  SUBSYSTEM NAME        :  LinkTable                              */
/*  MODULE NAME           :  LinkTable                              */
/*  LANGUAGE              :  C                                      */
/*  TARGET ENVIRONMENT    :  ANY                                    */
/*  DATE OF FIRST RELEASE :  2017/10/19                             */<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值