將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...