ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:210.50KB ,
资源ID:8129811      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8129811.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统命令接口设计1.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统命令接口设计1.docx

1、操作系统命令接口设计1贵州工程应用技术学院操作系统课程设计题 目: 操作系统命令接口设计学 号: 姓 名: 学 院: 专业班级: 指导教师: 完成时间: 2016年 4月14日 信息工程学院计算机系制操作系统命令接口设计一、实验目的 通过设计一些简单的操作系统的命令接口,使学生掌握操作系统接口的设计方法。在熟悉操作系统的命令接口及程序接口的基础上,利用C语言设计简单的命令接口。命令接口基于DOS的命令行接口二、实验功能利用C语言、DOS中断中21H与屏幕显示相关的中断调用完成设计,如下: 命令解释器 列目录命令 显示时间命令 显示日期命令 回显字符串命令 创建目录命令 删除目录命令 更改路径命

2、令 显示当前工作目录命令 删除文件命令 打印文本命令 文件重新命名 显示文本命令 显示版本命令 显示目录结构命令 清除当前显示内容命令三、 实验流程图四、 函数功能模块:函数1:显示系统当前的时间函数:void _TIME(void)函数2:显示系统当前的日期函数:void _DATA(void)函数3:在当前目录下创建一个新的目录函数:void _CTREAT(void)函数4:删除当前目录中的一个目录函数:void _DELDIR(void)函数5:更改当前目录的路径函数:void _ROUTE_C(void)函数6:显示当前的目录函数:void _DIR(void)函数7:删除当前目录中

3、的文件函数:void _DELETE(void)函数8:打印目录中的文本函数:void _PRINT(void)函数9:给当前目录中的文件重新命名函数:void _RENAME(void)函数10:以窗口的形式显示文本函数:void _SHOW(void)函数11:显示当前系统的版本号函数:void _SNUM(void)函数12:以二叉树的形式显示系统的目录文件结构函数:void _TREE(void)函数13:清屏函数:void _CLS(void)函数14:输入判断函数 检查输入命令函数:Command_num(char Command_name)参数:char Command_name

4、 输入的命令功能:将其转换成相应的case 常量返回值 :numint Command_num(char Command_name)五、 核心算法1.主要是使用API相关函数,以及调用DOS命令2.使用strcmp()函数判断输入命令格式是否正确3.使用清空缓冲区,以免影响下一次命令的操作六、 源程序#include#include#include#include#include#include Shellapi.h/显示系统时间函数void _TIME(void) SYSTEMTIME st; GetLocalTime(&st);/获取当前系统时间,以本地时间格式 printf(Now: %

5、d:%d:%d,st.wHour ,st.wMinute ,st.wSecond); printf(n); SetLocalTime(&st);/设置当前系统时间/显示系统日期函数void _DATE(void) SYSTEMTIME st; GetLocalTime(&st); /获取当前系统时间,以本地时间格式 printf(Now: %d-%d-%d,st.wYear ,st.wMonth ,st.wDay); printf(n); SetLocalTime(&st); /设置当前系统时间/创建目录 creatvoid _CTREAT(void)/在同文件中创建一个文件夹 先创建 C,D

6、文件夹,C中创建文件夹123,格式C123 char dir_name256; gets(dir_name); if(CreateDirectory(dir_name, NULL) printf(OKn); else printf(NOn);/删除目录void _DELDIR(void) char cmd256,dirname256; puts( Input the file you delete: );/格式 23 文件3里的东向全部删除 gets(dirname); strcpy(cmd, rmdir /s /q ); strcat(cmd,dirname); / 连接两个字符串 syst

7、em(cmd); /调用DOS命令/更改路径名void _ROUTE_C(void) char oldname256, newname256; printf(Route to rename: ); gets(oldname); /要修改的路径名 printf(New Root name: ); gets(newname); /修改后的路径名 if (rename(oldname, newname) = 0) /修改成功 printf(Renamed %s to %s.n, oldname, newname); else /修改失败 perror(rename); /显示当前目录 dirvoid

8、 _DIR(void)system(dir);/删除文件 delete void _DELETE(void) char file80; printf(File to delete: ); gets(file); /输入删除的文件名 输入格式 D123123.txt if (remove(file) = 0) /删除成功 printf(Removed %s.n,file); else /删除失败 perror(remove); /打印文本 printvoid _PRINT(void) FILE *fp; char ch,file_name256; printf(please input like

9、 C1123.txtn); scanf(%s,file_name); if(fp=fopen(file_name,rt+)=NULL) printf(nCannot open file strike any key exit!); printf(or this is NULL!); ch=fgetc(fp); while(ch!=EOF) putchar(ch); ch=fgetc(fp); printf(n); fclose(fp); /重命名 renamevoid _RENAME(void) char oldname256, newname256; printf(File to renam

10、e: ); gets(oldname); /要重命名的 文件名 printf(New name: ); gets(newname); /新文件名 if (rename(oldname, newname) = 0) printf(Renamed %s to %s.n, oldname, newname); else perror(rename); / 以窗口的形式显示文本 showvoid _SHOW(void) char file_name256; scanf(%s,file_name); / 调用API ShellExecute()函数 ShellExecute(NULL, open, fi

11、le_name, NULL, NULL, SW_SHOWNORMAL);/版本号 snumvoid _SNUM(void)printf(版本号:DIY operat system 1.0n); /*自己命名*/显示目录结构 treevoid _TREE(void) char Command256=tree /f | more; /调用DOS 命令 system(Command);/清屏 clsvoid _CLS(void) system(cls); /输入判断函数 检查输入命令/函数:Command_num(char Command_name)/参数:char Command_name 输入的

12、命令/功能:将其转换成相应的case 常量int Command_num(char Command_name) int num; / case 常量 if(strcmp(Command_name,exit )=0 | strcmp(Command_name,EXIT)=0) num = 0; /退出else if(strcmp(Command_name,time)=0 | strcmp(Command_name,TIME)=0) num = 1;/时间else if(strcmp(Command_name,date)=0 | strcmp(Command_name ,DATE)=0) num

13、= 2;/日期else if(strcmp(Command_name,creat)=0 | strcmp(Command_name,CREAT)=0) num = 3;/创建文件else if(strcmp(Command_name,deldir)=0| strcmp(Command_name,DELDIR)=0) num = 4; /删除目录else if(strcmp(Command_name,croute)=0 | strcmp(Command_name,CROUTE)=0) num = 5; /修改路径else if(strcmp(Command_name,dir)=0 | strcm

14、p(Command_name,DIR)=0) num = 6;/显示当前目录else if(strcmp(Command_name,delete)=0| strcmp(Command_name,DELETE)=0) num = 7;/删除文件else if(strcmp(Command_name,print)=0 | strcmp(Command_name,PRINT)=0) num = 8;/打印文件else if(strcmp(Command_name,rename)=0| strcmp(Command_name,RENAME)=0) num = 9; /重命名文件else if(strc

15、mp(Command_name,show)=0 | strcmp(Command_name,SHOW)=0) num = 10;else if(strcmp(Command_name,snum)=0 | strcmp(Command_name,SNUM)=0) num = 11;/版本号else if(strcmp(Command_name,tree)=0 | strcmp(Command_name,TREE)=0) num = 12;/显示目录结构 else if(strcmp(Command_name,cls)=0 | strcmp(Command_name,CLS)=0) num = 1

16、3;/清除当前显示 else printf(input error!n); /*输入错误*/ return num;/主函数int main(void) char Command_name256;/命令名 int Com_num ; /命令转换成常量的中间变量 /程序主界面 printf( 操作系统接口设计 n); printf(系统时间 : time/TIME n); printf(系统日期 : date/DATE n); printf(创建目录 : creat/CREAT n); printf(删除目录 : deldir/DELDIR n); printf(更改路径名 : croute/C

17、ROUTE n); printf(显示当前目录 : dir/DIR n); printf(删除文件 : delete/DELETE n); printf(打印文本 : print/PRINT n); printf(重命名文件 : rename/RENAME n); printf(显示文本 : show/SHOW n); printf(显示版本 : snum/SNUM n); printf(显示目录结构 : tree/TREE n); printf(清除屏幕 : cls/CSL n); printf(退出 : exit/EXIT n); printf(n); printf(请输入你要执行的命令:

18、) ; while( scanf(%s,Command_name)& Com_num != 0 ) fflush(stdin); /清除按键信息的缓存 Com_num =Command_num(Command_name); switch(Com_num) case 0: Com_num = 0;printf(EXIT THE SYSTEMn); return Com_num=0;break; case 1: _TIME(); break;/显示时间 case 2: _DATE(); break;/显示日期 case 3: _CTREAT(); break;/创建文件 case 4: _DELD

19、IR(); break;/删除目录 case 5: _ROUTE_C(); break;/修改目录 case 6: _DIR(); break;/显示当前目录 case 7: _DELETE(); break;/删除文件 case 8: _PRINT(); break;/打印文件 case 9: _RENAME(); break;/重命名文件 case 10: _SHOW(); break;/显示文件 case 11: _SNUM(); break;/显示版本号 case 12: _TREE(); break;/显示目录结构 case 13: _CLS(); break;/清除当前显示 ret

20、urn 0;七、程序结果图八、实验心得在此次的课程设计中,自己找到了很多的不足,对程序的不熟悉,每个细微的细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。如果把早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。经过一次一次的研究,并且不懂的地方就上XX查询资料或者询问同学,终于成功的做出了这次的实验项目。总之,在这段不短的时间里,自己学到了很多很多的东西,同时也巩固了自己以前所学的知识,而且学到了很多在书本上所没学到的知识,XX的功能是强大的,你不懂的知识他能动,通过XX自己的知识得到了很多的拓展提高。通过在这次课程设计使我懂得了理论知识与实践动手能力组合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来。自己只有努力了,成功才会更近一点。虽然学到了很多东西,但依然不太喜欢程序。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1