實驗報告七 將menu設計為可重用的子系統

2021-08-09 23:35:11 字數 2015 閱讀 9484

將menu設計為可重用的子系統

學號:sa17225091

姓名:龔雨濛

github:

1. 實驗要求

為menu子系統設計介面,並寫使用者範例**來實現原來的功能;

使用make和make clean來編譯程式和清理自動生成的檔案;

使menu子系統支援帶引數的複雜命令,並在使用者範例**中自定義乙個帶引數的複雜命令;

可以使用getopt函式獲取命令列引數;

2. 實驗過程

#ifndef _menu

#define _menu

int menuconfig(char* cmd, char* desc, int (*handler)());

int executemenu();

#endif

cc_pthread_flags   = -lpthread

cc_flags = -c

cc_output_flags = -o

cc = gcc

rm = rm

rm_flags = -f

target = test

objs = linktable.o menu.o test.o

all: $(objs)

$(cc) $(cc_output_flags) $(target) $(objs)

.c.o:

$(cc) $(cc_flags) $<

clean:

$(rm) $(rm_flags) $(objs) $(target) *.bak

用excutemenu取代main函式並作相應修改

int executemenu()

pcmd = strtok(pcmd, " ");

while(pcmd != null && argc < cmd_max_argc_len)

if(argc == 1)

tdatanode *p = findcmd(head, argv[0]);

if( p == null)

printf("%s - %s\n", p->cmd, p->desc);

if(p->handler != null)

}}

int menuconfig(char *cmd, char *desc, int (*handler)(int argc, char *argv))

pnode = (tdatanode *)malloc(sizeof(tdatanode));

pnode->cmd = cmd;

pnode->desc = desc;

pnode->handler = handler;

addlinktablenode(head, (tlinktablenode *)pnode);

}

#include 

#include

#include

#include "linktable.h"

#include "menu.h"

/*int getopt(int argc, char * const argv, const char *optstring);

extern char *optarg;

extern int optind, opterr, optopt;

*/int quit(int argc, char* argv);

int main(int argc, char* argv)

int quit(int argc, char* argv)

}exit(0);

}

3.實驗心得與總結

實驗報告 綜合設計

一 實驗目的 自行設計乙個應用需求 不能和下面的例子相同 並用matlab實現,其中要用到2 6的功能 二 實驗內容 本程式用matlab語言編寫.程式執行完成可以顯示白雜訊圖形和白雜訊訊號資料,資料儲存在 白雜訊序列.txt 檔案中。clear clcglobaln n 31 a 10 12 11...

C語言程式設計實驗報告 實驗七

1.掌握函式的概念,分類,定義和呼叫。2.熟練編寫函式實現特定的通用功能。硬體要求 計算機一台。軟體要求 windows作業系統,dev c 或vc 6.0編譯環境 寫乙個函式,用 選擇法 對輸入的5個字元按照由小到大順序排列。要求使用陣列作為函式引數。博主覺得,這道題目的演算法不是重點,重點是函式...

第七周實驗報告2

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 體會成員函式 有元函式 一般函式的區別 作 者 王智凱 完成日期 2012 年 04 月 02 日 版 本 號 凱子 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 程式頭部的注釋結束 include include using name...