【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 */<