网站建设费如何账务处理,合肥seo网站排名优化公司,做炒作的网站,郑州网络营销公司排名选择一种高级语言如C/C等#xff0c;编写一类似于DOS、UNIX中的命令行解释程序。 1)设计系统命名行提示符#xff1b; 2)自定义命令集#xff08;8-10个#xff09;#xff1b; 3)用户输入help命令以查找命令的帮助#xff1b; 4)列出命令的功能#xff0c;区分内部命令… 选择一种高级语言如C/C等编写一类似于DOS、UNIX中的命令行解释程序。 1)设计系统命名行提示符 2)自定义命令集8-10个 3)用户输入help命令以查找命令的帮助 4)列出命令的功能区分内部命令与外部命令 5)用户输入quit退出。 1设计思想 命令解释器流程图
2功能函数设计 void Init(struct Cmd cm[Max]);//命令初始化 void process(struct Cmd cm[Max]);//命令的实现 void display(struct Cmd cm[Max]);//显示所有命令 3具体实现 1、创建结构体cmd包含命令、命令解释、命令标识1内部命令2外部命令 1.struct Cmd{ 2. char cmd[30];//命令 3. char function[500];//命令作用 4. int post;//标志 5.};
2、命令初始化创建文件cmd.txt,在文件中输入命令、命令解释、命令标识将文件命令存入结构体中。 2.1调用fopen函数打开cmd.txt文件a:打开或新建一个文本文件可以读但只允许在文件末尾追写 。 2.2用循环对文件内容的读取并将读取的内容存入Cmd中。
while(!feof(fp)fgetc(fp)!EOF){ fseek(fp,-1l,SEEK_CUR); //对文件内容的读取并将读取的内容存入链表Cmd中 fscanf(fp,%s%s%d,cm[count].cmd,cm[count].function,cm[count].post); count; }
3、显示命令用for循环将结构体输出当标识为1时输出内部命令标识为2时输出外部命令。 4、命令的实现创建数组key和标识flag模拟操作系统。 4.1进行while循环直到key为quit时输出“程序结束”当key为help时调用命令显示函数将标志置为1表示输入的命令能够在结构体中找到。
if(strcmp(key,“help”)0){ printf(命令详情help\n); display(cm); flag1; }4.2否则当key和结构体中命令匹配时判断命令标识当命令标识为1时表示内部命令输入正确命令标识为0时表示外部命令输入正确。用系统调用cmd去处理命令将标志置为1。 1.for(i0;icount;i){ 2. if(strcmp(key,cm[i].cmd)0){ 3. if(cm[i].post1) 4. printf(“%s 内部命令输入正确\n “,strupr(cm[i].cmd)); 5. 6. else 7. printf(”%s 外部命令输入正确\n”,strupr(cm[i].cmd)); 8. } 9. system(key);//系统调用cmd去处理命令 10. flag1; 11. break; 12. }
4.3若标志为0即输出的字符串在结构体中找不到且key不为quit则报错。输出该命令不是内部或外部命令也不是可运行的程序。 4结果演示 1当输入命令“help”时程序如下
2当输入命令“dir”时程序如下
3当输入命令“cls”时程序如下
4当输入命令“cls”或者当输入命令“calc”时程序如下