幻灯片 1
实验2:栈与队列的应用
目的:
掌握栈与队列的基本概念、基本操作及设计与应用。
内容:
键盘输入算数表达式,并放入队列当中;
应用栈的概念设计表达式求值算法;
输出表达式求值结果;
要求:按实验报告模版编写
运行过程及运行结果(屏幕截图)
(注意:测试数据由本人学号从左至右各位数字组成,之间用+、-、*、/连接,其中运算符顺序不要求,但至少包括+、-、*、/ 四种运算符) ;
例:本人学号,20183825,测试表达式可为:2+0-1*8/3+8-2*5;
程序代码;
程序代码及运行结果整理成Word文档,
*
实验2:栈与队列的应用
说明:
用字符串数组来存储栈与队列;
char szQueue[MAX_SIZE][MAX_LEN];
char szStack[MAX_SIZE][MAX_LEN];
队列和栈,可以定义一个结构体
栈与队列的最大元素个数为20;
栈与队列的基本操作事先定义为函数(InitQueue,InQueue,OutQueue,InitStack,…)
优先级的确定,以及表达式的计算等事先定义为函数(Priority,Compute)
引用函数前要事先对函数进行声明
为简单起见,
操作符仅考虑:^, *, /, +, -, ;
strcpy 可以实现串拷贝(#include
pow(a,b), 表示ab (#include
atof(str), 将字符串转换为浮点数
注意函数传值和传地址的区别
Isdigit 判断一个字符是否是数字
*
实验3:操作系统的文件管理
内容:
编写和调试一个简单的文件系统,模拟文件管理的工作过程。
要求设计一个n个用户的简单二级文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施。具体要求如下:
(1)请实现如下命令(其中标记为*为必须完成,其他可选作,要求完成其中6条命令):
login 用户登录*;
验证要求:创建以自己学号为user name的用户并完成登录,运行结果截屏列入报告。
*
实验3:操作系统的文件管理
内容:
create创建文件* ;
验证要求:创建以自己学号+姓名为文件名的文件,运行结果截屏列入报告。
dir列文件目录* ;
验证要求:显示之前以自己学号+姓名命名文件在内目录文件列表(不少于3个文件),显示要求列出文件名、物理地址、保护码和文件长度,运行结果截屏列入报告。
open打开文件* ;
验证要求:成功打开之前dir列文件目录中的一个文件(需要进行读写保护判断) ,运行结果截屏列入报告。
read读文件;
验证要求:成功读之前open打开文件中打开的文件(需要进行读写保护判断) ,运行结果截屏列入报告。
write写文件;
验证要求:成功写之前open打开文件中打开的文件(需要进行读写保护判断) , 运行结果截屏列入报告。
close关闭文件;
验证要求:成功关闭之前open打开文件中打开的文件,运行结果截屏列入报告。
delete删除文件;
验证要求:成功删除之前dir列文件目录中的一个文件,显示运行后的文件目录,运行结果截屏列入报告。
*
实验3:操作系统的文件管理
要求:
按实验报告模版编写
按验证要求给出实现6条命令的运行结果截图
程序代码(其中自己完成命令部分需要标注必要的注释说明);
程序代码及运行结果整理成Word文档
*
实验3:操作系统的文件管理
说明:
设计一个5个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件;
程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD);
为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。
算法:因系统小,文件目录的检索使用了简单的线性搜索;文件保护简单使用了三位保护码:允许读写执行,对应位为 1,对应位为0,则表示不允许读写、执行。
*