模拟文件管理系统

模拟文件管理系统
模拟文件管理系统

一.设计说明

设计实现一个简单的模拟文件管理系统,包括目录文件、普通文件、i结点和存储区,具体要求如下:

(1)程序初始化时应构造如图1-1所示的目录结构。

图1-1 初始目录树

(2)在此模拟文件管理系统中可以实现的操作有:

改变目录:cd<目录名>,工作目录转移到指定的目录下。目录不存在时,给出错误信息。

创建文件:edit<文件名>,创建一个指定名字的新文件,即在目录中增加一项,不考虑文件的内容。对于重名文件给出错误信息。

删除文件:del<文件名>,当没在用户使用指定文件时,将其删除。文件不存在时给出错误信息。

显示目录:dir<目录名>,显示指定目录下的全部文件和第一级子目录,如果没有指定目录名,则显示当前目录下的相应内容。

创建目录:md<目录名>,在指定路径下创建指定的目录,如没有指定路径,则在当前目录下创建指定的目录。对于重名目录给出错误信息。

删除目录:rd<目录名>,删除指定目录及其下的全部文件和子目录。如果指定目录为空,可直接删除,否则给出用户提示是否删除。

其他说明:

<目录名>和<文件名>都支持全路径名和相对路径名。

文件名由目录结构中各级文件名分量排列构成,各分量间用“/”隔开。

输入exit命令可退出此模拟文件管理系统。

二.工作原理

2.1 编译工具

本程序使用的函数均为标准C库函数,可以由任何支持标准C的编译器编译运行。

已经通过测试的编译环境如下:

Windows平台:Visual C++ 6.0

使用方法:用VC6打开fileSys.c文件,执行Build,根据对话框提示创建工程文件。Build完成即可用Execute运行程序。

Linux平台: Gcc 2.96

使用方法:到fileSys.c所在路径下,执行命令gcc-o fileSys fileSys.c生成可执行文件fileSys,执行./fileSys运行程序。

2.2 相关说明

支持相对路径和绝对路径:

相对路径如“cd user/file1↙”,“dir↙”

绝对路径如“cd /user/file1”(root指根目录)、“cd /user/file1↙”、“cd/↙”(表示对根目录操作)

如果命令或路径出错会有详尽的提示。

在新建文件或目录中,若文件名或目录名同名的文件或目录下已存在,则创建失败并给以提示。

CD命令中,如果遇到路径错误,将报错,并保持在当前路径下等待下一次命令。

如果有命令格式或者文件目录格式有错,系统将报错,并提示用户,允许重试。

不允许对文件操作的命令与对目录操作的命令混用,否则报错。

本系统采用了动态分布存储空间的链表结构,所以对文件数目没有明确限制,只受系统资源制约。

Exit为退出系统命令,该命令不能接目录名。在6个命令中,只有dir可接空路径名,

表示对当前目录的操作,其他的将会对命令格式的错误情况报错。

三.详细设计

3.1程序框架及函数调用关系

函数之间的关系如图3-1所示,每个函数的说明如下:

Main(): 主函数

CdComd(): 改变目录功能处理

EditComd(): 创建文件功能处理

DelComd(): 删除文件功能处理

RdComd(): 删除目录功能处理

Dircomd(): 显示目录功能处理

Mdcomd(): 创建目录功能处理

Init(): 初始化文件树

ParseCommand(): 接受输入的命令并将其分解成操作名和路径文件名ExecuteCommand(): 执行命令,根据参数Paral,调用相应的功能处理模块;若输

入命令有误,则报错

图3-1 调用关系图

FindPath(): 查找参数ph所指向的路径

FindFileName(): 从参数para2中找到要建立或删除的子目录,文件名,并调用查

找路径子函数把指针指向其父亲结点

CreateFileNode(): 创建结点

GetInput(): 缓冲区安全输入子函数,如果输入超过缓冲区长度,则截取前[缓

冲区长度-1]位,最后一位补“/0”

CheckCommand(): 命令检查

GetDir(): 获取当前目录名

Trim(): 对命令进行格式处理,即去掉空格等

3.2数据结构及相应算法

整个文件系统采用二叉树型存储结构,如图3-2所示

图3-2 初始目录树

每一个结点的结构如下:

Struct FileNode

{

Char filename[FILENAME_LEN]; //文件名/目录名

int isdir; //目录文件识别标志

int i_nlind; //文件的链接数

int adr; //文件的地址

Struct FileNode *parent,*child; //指向父亲的指针和指向左孩子的指针

Struct FileNode *sibling_prev,*sibling_next;//指向前一个兄弟的指针//和指

向后一个兄弟的指针

};

3.3程序流程图

本程序中共包含一个主函数和16个子函数,这里仅对其中的9个函数用流程图来进行详细说明。

(1) Main()主函数(见图3-3)

图3-3 主程序流程图

(2)FindFileName()子函数:获取文件或目录名,并调用查找路径子函数把指针指向其父亲结点(见图3-4)

图3-4 FindFileName()

(3)ParseCommand()分解命令子函数(见图3-5)

图3-5 ParseCommand()

(4)FindPath():查找路径子函数,ph是路径名参数(见图3-6)

图3-6 FindPath()

(5)CdComd():cd改变目录功能处理子函数(见图3-7)

图3-7 CdComd()

(6)EditComd():edit创建文件功能处理子函数(见图3-8)

图3-8 EditComd()

(7)DelComd():del删除文件功能处理子函数(见图3-9)

图3-9 DelComd()

(8)RdComd():rd删除目录功能处理子函数(见图3-10)

图3-10 RdComd()

(9)DirComd():dir显示目录功能处理子函数(见图3-11)

图3-11 DirComd()

3.4程序源代码

#include

#include

#include

#include

#include

#define FILENAME_LEN 21

#define INPUT_LEN 81

#define COMMAND_LEN 11

//结点结构

struct FileNode

{

char filename[FILENAME_LEN];//文件名/目录名

int isdir;//目录文件识别标志

int i_nlink;//文件的链接数

int adr;//文件的地址

struct FileNode *parent, *child;//指向父亲的指针和指向左孩子的指针

struct FileNode *sibling_prev, *sibling_next;//指向前一个兄弟的指针和指向//后一个兄弟的指针.

};

void Init();//初始化文件树

int ParseCommand();//接受输入的命令并把其分解成操作名和路径文件名

void ExecuteCommand();//执行命令

int cdComd();//处理cd命令

int editComd();//处理edit命令

int delComd();//处理del命令

int rdComd();//处理rd命令

int dirComd();//处理dir命令

int mdComd();//处理md命令

int FindPath(char *ph);//寻找参数ph所指向的路径

//从参数Para2中找到要建立或删除的文件、目录名,并把指针指向其父亲结点

int FindFilename(char Para2[]);

struct FileNode* CreateFileNode(char filename[],int isdir,int i_nlink);//创建结点

int GetInput(char* buffer,unsigned int buffer_len);//获取输入

int CheckCommand();//命令检查

int GetDir(int begin,char* path,char* curDir);//获取路径

void Trim(char* str);

struct FileNode *cp, *tp, *root,*upper;

char path[INPUT_LEN-COMMAND_LEN];//记录当前走过的路径

char curpath[INPUT_LEN-COMMAND_LEN],Para1[COMMAND_LEN],

Para2[INPUT_LEN-COMMAND_LEN],tmppath[INPUT_LEN-COMMAND_LEN];

char filename[FILENAME_LEN],dirname[FILENAME_LEN],tmp;

unsigned int i,j;

//主函数

int main()

{

Init();//初始化文件树

while(1)

{

if(ParseCommand())//分解命令

ExecuteCommand();//执行命令

}

}

//执行命令子函数

void ExecuteCommand()

{

int sign;

//根据参数Para1调用相应的功能处理模块

if(strcmp(Para1,"cd")==0)

sign=cdComd(); //cd命令

else if(strcmp(Para1,"edit")==0)

sign=editComd(); //edit命令

else if(strcmp(Para1,"del")==0)

sign=delComd(); //del命令

else if(strcmp(Para1,"dir")==0)

sign=dirComd(); //dir命令

else if(strcmp(Para1,"md")==0)

sign=mdComd(); //md命令

else if(strcmp(Para1,"rd")==0)

sign=rdComd(); //rd命令

else if(strcmp(Para1,"exit")==0)

exit(0); //exit命令

else

printf("命令错误,请重试\n"); //命令输入不正确,报错

}

//创建结点

struct FileNode* CreateFileNode(char filename[],int isdir,int i_nlink)

{

//申请结点空间

struct FileNode* node=(struct FileNode*)malloc(sizeof(struct FileNode));

//相应内容赋初值

strcpy(node->filename,filename);

node->isdir=isdir;

node->i_nlink=i_nlink;

node->parent=NULL;

node->child=NULL;

node->sibling_prev=NULL;

node->sibling_next=NULL;

return node;

}

//初始化文件树

void Init()

{

struct FileNode *binNode,*usrNode,

*unixNode,*etcNode,*libNode,*userNode,

*binNode2,*liuNode,*sunNode,*ftiNode;

strcpy(path,"/"); //根目录写入当前路径

//创建文件树的结点

binNode=CreateFileNode("bin",1,0);

usrNode=CreateFileNode("usr",1,0);

unixNode=CreateFileNode("unix",0,0);

etcNode=CreateFileNode("etc",1,0);

libNode=CreateFileNode("lib",1,0); userNode=CreateFileNode("user",1,0); binNode2=CreateFileNode("bin",1,0);

liuNode=CreateFileNode("liu",1,0); sunNode=CreateFileNode("sun",1,0);

ftiNode=CreateFileNode("fti",1,0);

cp=tp=root=CreateFileNode("/",1,0);

//结点相应内容赋值

root->parent=NULL;

root->child=binNode;

root->sibling_prev=root->sibling_next=NULL;

binNode->parent=root;

binNode->child=NULL;

binNode->sibling_prev=NULL;

binNode->sibling_next=usrNode;

usrNode->parent=NULL;

usrNode->child=libNode;

usrNode->sibling_prev=binNode;

usrNode->sibling_next=unixNode;

unixNode->parent=NULL;

unixNode->child=NULL;

unixNode->sibling_prev=usrNode;

unixNode->sibling_next=etcNode;

etcNode->parent=NULL;

etcNode->child=NULL;

etcNode->sibling_prev=unixNode;

etcNode->sibling_next=NULL;

libNode->parent=usrNode;

libNode->child=liuNode;

libNode->sibling_prev=NULL;

libNode->sibling_next=userNode;

userNode->parent=NULL;

userNode->child=NULL;

userNode->sibling_prev=libNode;

userNode->sibling_next=binNode2;

binNode2->parent=NULL;

binNode2->child=NULL;

binNode2->sibling_prev=userNode;

binNode2->sibling_next=NULL;

liuNode->parent=libNode;

liuNode->child=NULL;

liuNode->sibling_prev=NULL;

liuNode->sibling_next=sunNode;

sunNode->parent=NULL;

sunNode->child=NULL;

sunNode->sibling_prev=liuNode;

sunNode->sibling_next=ftiNode;

ftiNode->parent=NULL;

ftiNode->child=NULL;

ftiNode->sibling_prev=sunNode;

ftiNode->sibling_next=NULL;

}

//获取文件或目录名,并把指针指向其父亲结点

int FindFilename(char Para2[])

{

i=strlen(Para2)-1;

j=0;

while(Para2[i]!='/'&& i>=0)

{

filename[j]=Para2[i];

i--; j++;

}

filename[j]='\0';//获得逆序的文件或目录名,存入filename中if(i<0) Para2[i+1]='\0';

else Para2[i]='\0';

j--;

//filename逆转,获得正确的文件或目录名

for(i=0;i

{

tmp=filename[i];

filename[i]=filename[j];

filename[j]=tmp;

}

//查找路径

if(strlen(Para2)>0)

{

int sign=FindPath(Para2);

if(sign==0) return 0;

}

return 1;

}

//缓冲区安全输入子函数

//如果输入超过buffer_len,则截取前buffer_len-1长度的输入,//buffer_len处字符用'/0'代替

int GetInput(char* buffer,unsigned int buffer_len)

{

unsigned int count=0;

while(count

{

if((buffer[count]=getchar())==10)

{

buffer[count]='\0';

return count;

}

count++;

}

while(getchar()!=10);

buffer[buffer_len-1]='\0';

return -1;

}

//分解命令子函数

int ParseCommand()

{

char Inputs[INPUT_LEN];

int i=0,j=0,ch;

unsigned int k=0;

printf("%s>",path);

//获取输入

if(GetInput(Inputs,INPUT_LEN)==-1)

{

printf("输入行太长。\n");

return 0;

}

Para1[0]=Para2[0]='\0';

//获取参数Para1,即操作名

while(Inputs[i]!=' '&&Inputs[i]!='\0' && i

Para1[i]=Inputs[i];

i++;

}//while

Para1[i]='\0';

//输入命令太长

if(i==(COMMAND_LEN-1))return 1;

//获取参数2,即路径文件名

if(Inputs[i]!='\0')

{

while(Inputs[i]==' ' && i

j=0;

while(Inputs[i]!='\0' && i

{

Para2[j]=Inputs[i];

i++; j++;

}

Para2[j]='\0';

}

Trim(Para1);

Trim(Para2);

//将操作名全部转换成小写字母

for(k=0;k

{

ch=tolower((int)Para1[k]);

Para1[k]=ch;

}

return 1;

}

//cd功能处理子函数

int cdComd()

{

if(!CheckCommand())//命令检查

return 0;

if(strcmp(Para2,"..")==0)

{ //对cd ..命令的处理

int i;

while(cp->sibling_prev)

cp=cp->sibling_prev;//找到这一层最左边的结点if(cp->parent)

{

cp=cp->parent;//找到父亲结点

}

else

{

return 0;

}

//对当前路径进行相应处理

i=strlen(path);

while(path[i]!='/'&& i>0) i--;

if(i!=0)

path[i]='\0';

else

path[i+1]='\0';

}

else

{

FindPath(Para2);//查找路径

}

return 1;

}

//命令格式处理子函数

void Trim(char* str)

{

int begin,end;

char* tmp;

begin=0;

end=strlen(str);

//找到字符串第一个非空格的位置

while(str[begin]==' ' && str[begin]!='\0')begin++;

//去除字符串尾部空格

while(str[--end]==' ');

str[end+1]='\0';

//除去空格

if(begin

{

tmp=(char*)malloc((sizeof(char))*(end-begin+2));

strcpy(tmp,&str[begin]);

strcpy(str,tmp);

free(tmp);

}

}

//获取当前目录名子函数

int GetDir(int begin,char* path,char* curDir)

{

int i=0;

int len=strlen(path);

while(!((path[begin]=='\\' )|| (path[begin]=='/'))&&begin

curDir[i++]=path[begin++];

}

curDir[i]='\0';

Trim(curDir);

return begin+1;

}

//查找路径子函数

int FindPath(char *ph)

{

struct FileNode *temp;//struct FileNode *tp,*temp;

char oldpath[INPUT_LEN-COMMAND_LEN];

unsigned int i=0;//int i=0;

int sign=1;

if(strcmp(ph,"/")==0)

{ //ph是根目录

cp=root;

strcpy(path,"/");

return 1;

}

temp=cp;

strcpy(oldpath,path);//保存原路径和指针

if(ph[0]=='/')

{ //指针指向根目录的左孩子

cp=root->child;

i++;//滤过'/'

strcpy(path,"/");

}

else

{

if(cp!=NULL && cp!=root )

strcat(path,"/");

if(cp && cp->child)

{

if(cp->isdir)

cp=cp->child; //指针指向当前目录的左孩子

else

{

printf("路径错误!\n");

return 0;

}

}

}

while(i<=strlen(ph)&& cp)//继续查找指定路径,如遇到文件则报错{

int j=0;

if(ph[i]=='/'&& cp->child)

{

i++;//略过 '/'

if(cp->isdir)

cp=cp->child;//继续查找下级目录

else

{

printf("路径错误!\n");

return 0;

}

strcat(path,"/");

}

//curpath 记录当前要找的路径名

while(ph[i]!='/'&& i<=strlen(ph))

{

curpath[j]=ph[i];

i++; j++;

}

curpath[j]='\0';

while((strcmp(cp->filename,curpath)!=0 || (cp->isdir!=1))&& cp->sibling_next!=NULL)

{

cp=cp->sibling_next;

}

if(strcmp(cp->filename,curpath)==0 )

{

if(cp->isdir==0)

{

strcpy(path,oldpath);

cp=temp;

printf("是文件不是目录.\n");

return 0;

}

strcat(path,cp->filename);

}

if(strcmp(cp->filename,curpath)!=0 || cp==NULL)

{

strcpy(path,oldpath);

cp=temp;

printf("输入路径错误\n");

return 0;

}

}

return 1;

}

//创建文件子函数

int editComd()

{

struct FileNode * temp=CreateFileNode("",0,0);

int sign;

struct FileNode *tp;

//路径不能为空

if(strlen(Para2)==0)

{

printf("\n命令格式有错误.\n");

return 0;

}

//长度检查

if(strlen(Para2)>50)

{

printf("\n文件名过长\n");

return 0;

}

//格式检查

if (!(isalpha(Para2[0])||Para2[0]=='_'||Para2[0]=='\0'||Para2[0]=='/')) {

printf("文件名格式有错!\n");/* 文件首字母可以为'字母'或'数字'或'_'或'/'或'回车'*/

return 0;

}

//获取文件名

sign=FindFilename(Para2);

if(sign==0)

return 0;

if(cp->isdir!=1)//如当前指针指向的是文件,则报错

{

printf("you cannot edit a file in under a file!\n");

return 0;

}

//创建文件结点,并插入到指定目录下

tp=CreateFileNode("",1,0);

strcpy(tp->filename,filename);

tp->isdir=0;

tp->i_nlink=0;

if(cp->child==NULL)

{ tp->parent=cp;

tp->child=NULL;

cp->child=tp;

tp->sibling_prev=NULL;

操作系统模拟文件管理

操作系统课程设计报告 模拟文件管理 目) 院系:计算机科学技术学院计算机科学与技术系班级:计07--2 班 姓名:刘德庆 学号:12 指导教师:鲁静轩 2009 年6 月15 日

操作系统课程设计任务书 一、设计题目:模拟文件管理 二、设计目的 《操作系统原理》课程设计是软件工程专业实践性环节之一,是学习完《操作系统原理》课程后进行的一次较全面的综合练习。其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。 三、设计要求 (1)选择课程设计题目中的一个课题,合作完成。 (2)良好的沟通和合作能力 (3)充分运用前序课所学的软件工程、程序设计等相关知识 (4)充分运用调试和排错技术 (5)简单测试驱动模块和桩模块的编写 (6)查阅相关资料,自学具体课题中涉及到的新知识。 (7)课题完成后必须按要求提交课程设计报告,格式规范,内容详实 四、设计内容及步骤 1.根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么。 2.根据实现的功能,划分出合理的模块,明确模块间的关系。 3.编程实现所设计的模块。 4.程序调试与测试。采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果; 5.结果分析。程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。

6.编写课程设计报告; 设计报告要求:A4纸,详细设计部分主要叙述本人的工作内容 五、课程设计工作计划 设计在学期的第15、16周进行,时间安排如下: 序号内容时间(天) 1 预习、讲课 1 2 设计 3 3 编码、测试 5 4 验收 1 合计10 。 六、成绩评定办法 成绩分为优(A)、良(B)、中(C)、及格(D)、不及格(E)五个等级。其中设计表现占30%,验收40%,设计报告占30%。 1.设计表现:教师可依据学生使用实验环境的能力、观察和分析实验现象的能力、实验结果和数据的正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。 2.验收:要求学生演示设计的程序,讲解设计思路、方法、解决的主要问题,教师根据具体情况向每个学生提问2至3个问题。 3.设计报告:学生设计后应按时完成设计报告。要求:内容充实、写作规范、项目填写正确完整、书面整洁等。

实验二 连续时间系统的模拟实验报告

信号与系统 实验报告 (信号与系统实验箱) HD-XH-II型 实验二连续时间系统的模拟 学院 专业班级 姓名学号 指导教师 实验报告评分:_______

连续时间系统的模拟 一、实验目的 1.了解用集成运算放大器构成基本运算单元—标量乘法器,加法和计分器,以及它们的组合全加积分器的方法。 2.掌握用以上基本运算单元以及它们的组合构成模拟系统,模拟一阶和二阶连续时间系统的原理和方法,并用实验测定模拟系统的特性。 二、实验内容及步骤 1.一阶模拟系统阶跃响应的观测 (1)对图9-5(c)的实际的电路,在输入端TP901处输入幅度Uim=0.2V,频率=200HZ的方波,观测输入波形及输出(TP903处)响应波形,比较输入波形与输出波形的周期和幅度,测量时间常数τ和放大倍数A。 (2)输入幅度Uim=0.2V的正弦波信号,由低频(20HZ左右)开始,缓慢改变正弦波信号频率,测出低通滤波器的截止频率f0. 2.二阶模拟系统频率特性测试 对图9-6(c)的实际电路,在输入端TP905处输入幅度Uim=0.2V正弦波,改变正弦波的信号频率,此时,应注意保持输入电压不变,记录相应的输出(TP907处)电压值,画出扶贫特性曲线,测定系统的放大倍数A,中心频率f0及其频带宽度Bw,计

算品质因素Q。 三、实验过程 一阶模拟系统 一阶模拟系统输入波形: 输出波形:

(1)放大倍数A=Rf/R1=10K/1K=10 H(s)=(a^2)/(s^2+3*a*s+a^2) 其中a=1/RC,值为4170。 以log f为横坐标,Vo/Vi为纵坐标,绘制滤波器的幅频特性曲线。再以log f为横坐标,Φ(ω)为纵坐标,绘制滤波器的相频特性曲线。 RC低通滤波器幅频响应曲线图如下:

景区旅游信息管理系统

数据结构课外实践报告 项目名称景区旅游信息管理系统 所在班级: 小组成员: 指导教师: 起止时间:

课外实践评定成绩记录 指导教师意见 系统完成情况:优良中差 报告完成情况:优良中差 答辩评定成绩团队整体成绩: 成 员 成 绩 “姓名”“学号” 综合成绩

项目基本信息项目名称景区旅游信息管理系统 项目简介旅游业随着我国经济的增长和人民收入的提高迅速发展,而景区旅游管理问题日益紧迫。本项目提供基本的有关的管理操作,能够智能化的管理,还能够为导游提供指引,为游客指路, 小组成员 任务分工:项目基本框架设计、项目工程中“4.cpp”文件“main.cpp”文件和“structure.h”文件、 后期的调试工作、PPT制作。 :项目工程中的“3.cpp”文件、课外实践报告。:项目工程中的“2.cpp”文件。 :项目工程中的“1.cpp”文件。 一、问题描述及分析 在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。 任务中景点分布是一个无向带权连通图,图中边的权值是景点之间的距离。 (1)景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导游线路图,导游线路图用有向图表示。遍历采用深度优先策略,这也比较符合游客心理。 (2)为了使导游线路图能够优化,可通过拓朴排序判断图中有无回路,若有回路,则打印输出回路中的景点,供人工优化。 (3)在导游线路图中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路图中将输出任意景点间的最短路径和最短距离。 (4)在景区建设中,道路建设是其中一个重要内容。道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题。本任务中假设修建道路的代价只与它的里程相关。

模拟文件系统的设计与实现

中北大学 操作系统课程设计 说明书 学院、系:软件学院 专业:软件工程 学生姓名:xxx 学号:xxx 设计题目:模拟文件系统的设计与实现 起迄日期: 2015年12月28日- 2016年1月8日指导教师:xxx 2016 年1月8日

1需求分析 通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。 模拟二级文件管理系统的课程设计目的是通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。 2总体设计 结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。 文件的创建: create 文件关闭:close 文件的打开:open 文件的读:read 文件的写:write 文件关闭:close 删除文件:delete 创建子目录:mkdir 删除子目录:rmdir 列出文件目录:dir 退出:exit 系统执行流程图 开始 选择操作 创建文件删 除 文 件 读 文 件 写 文 件 创 建 文 件 夹 删 除 文 件 夹 删 除 子 目 录 显示 当前 子目 录 创 建 子 目 录 更 改 目 录 退 出

退出 3.详细设计 主要数据结构: #define MEM_D_SIZE 1024*1024 //总磁盘空间为1M #define DISKSIZE 1024 //磁盘块的大小1K #define DISK_NUM 1024 //磁盘块数目1K #define FATSIZE DISK_NUM*sizeof(struct fatitem) //FAT表大小 #define ROOT_DISK_NO FATSIZE/DISKSIZE+1 //根目录起始盘块号#define ROOT_DISK_SIZE sizeof(struct direct) //根目录大小 #define DIR_MAXSIZE 1024 //路径最大长度为1KB #define MSD 5 //最大子目录数5 #define MOFN 5 //最大文件深度为5 #define MAX_WRITE 1024*128 //最大写入文字长度128KB struct fatitem /* size 8*/ { int item; /*存放文件下一个磁盘的指针*/ char em_disk; /*磁盘块是否空闲标志位 0 空闲*/ }; struct direct { /*-----文件控制快信息-----*/ struct FCB { char name[9]; /*文件/目录名 8位*/ char property; /*属性 1位目录 0位普通文件*/ int size; /*文件/目录字节数、盘块数)*/

实验七 连续时间系统的模拟(硬件实验)

实验七 连续时间系统的模拟(硬件实验) 一、 目的 学习根据给定的连续系统的传输函数,用基本运算单元组成模拟装置。 二、 原理 1. 线性系统的模拟 系统的模拟就是用基本运算单元组成的模拟装置来模拟实际的系统。这些实际的系统可以是电的或非电的物理量系统,也可以是社会、经济和军事等非物理量系统。模拟装置可以与实际系统的内容完全不同,但是两者之间的微分方程完全相同,输入输出关系即传输函数也完全相同。模拟装置的激励和响应是电物理量,而实际系统的激励和响应不一定是电物理量,但它们之间的关系是一一对应的。所以,可以通过对模拟装置的研究来分析实际系统,最终达到在一定条件下确定最佳参数的目的。对于那些用数学手段较难处理的高阶系统来说,系统模拟就更为有效。 2. 传输函数的模拟 若已知实际系统的传输函数为: 10111()()()n n n n n n a s a s a Y s H s F s s b s b --+++==+++ (1) 分子、分母同乘以n s -得: 11011111() ()()()1() n n n n a a s a s P s Y s H s F s b s b s Q s ------+++===+++ (2) 式中1()P s -和1()Q s -分别代表分子、分母的s 负幂次方多项式。因此: 111 ()()()() Y s P s F s Q s --=? (3) 令:11 ()() X F s Q s -= (4) 则111()()n n F s XQ s X b s X b s X ---==+++ (5) 11()n n X F s b s X b s X --??=-++?? (6) 1101()()n n Y s P s X a X a s X a s X ---==+++ (7) 根据式(6)可以画出如图3-1所示的模拟框图。在该图的基础上考虑式(7)就可以画出如图3-2所示系统模拟框图。在连接模拟电路时,1s -用积分器,1b -、2b -、3b -及0a 、1a 、2a 均用标量乘法器,负号可用倒相器,求和用加法器。值得注意的问题是,积分运算单元有积 分时间常数τ,即积分运算单元的实际传递函数为1/s τ-,所示标量乘法器的标量 12,,,n b b b --- 应分别乘以12,,,n τττ 。同理,01,,,n a a a 应分别乘以012,,,,n ττττ 。此外, 本实验采用的积分器是反相积分器,即传递函数为1/s τ--,所以01,,,n a a a 还应分别乘以 012(1),(1),(1),,(1)n ---- ,同理,12,,,n b b b 也应分别乘12(1),(1),,(1)n --- 。对于图3-3(a)

旅游景区管理

1、旅游景区是指以其特有的旅游特色和价值吸引旅游者前来,通过提供相应的旅游设施和服务,满足其观光游览、休闲娱乐、度假康体、科考探险、教育和特殊旅游需求,有专门的旅游经营管理的旅游管理地域综合体。 2、景区的管理职能,即用什么方式进行景区管理,或称为景区管理方式。 3、景区策划是制定景区开发建设和经营以及管理的方案的过程。 4、策划创意是策划过程中的点子、方法、亮点。 5、景区规划,就是以景区为对象,根据景区的资源特点、市场状况和其他相关的自然社会经济条件,所进行的有关开发、保护、管理等内容的布局、设计、安排。 6、旅游主题是在景区的建设和旅游者的旅游活动过程中被不断地展示和体现出来的一种理念或价值观念。 7、旅游项目是指旅游开发商或旅游经营者为实现特定的旅游、发展目标、整合旅游资源和环境条件所开发出的具有一定旅游功能和经济、社会、环境效益,能吸引旅游者并促进当地旅游业发展的项目或项目综合体的总称。 8、绿色建筑是指在建筑的全寿命周期内,最大限度地节约资源(节能、节地、节水、节材)、保护环境和减少污染,为人们提供健康、适用和高效的使用空间,与自然和谐共生的建筑。 9、导游员解说系统是景区解说员、旅行社的导游人员向游客进行主动的、动态的信息传递为主的解说形式。 10、物化解说系统是由书面材料、标准公共信息图形符号、语音导游等无生命设施、设备向游客提供静态的、被动的信息服务。 11、景区环境是指景区的周围空间及其周围空间中存在的事物和条件的总和。 12、景区环境管理是指运用经济、法律、技术、行政、教育等手段,提高环境的资源价值,建设环境,增强景区的吸引力,对一切可能损害景区环境的行为和活动施加影响,从而协调景区经营活动与环境保护之间的关系,以实现景区经济效益、环境效益、社会效益的有机统一。 13、景区设施是指构成景区固定资产的各种有形物品。 14、特殊交通道是指旅游景区中特殊交通工具使用的交通道路。主要有索道、缆车、踏步电梯、马帮、水面交通工具、空中交通工具等。 15、旅游服务质量是指旅游服务活动所能达到规定效果和满足旅游者需求的能力和程度。 16、外部标准是指旅游区服务质量应符合并满足游客的期望,是游客对实际所提供服务或共享到的服务的评判。 17、景区营销是指综合运用各种有效的市场经营手段,通过旅游市场实现交换,把景区的产品和服务销售给旅游者,以使目标旅游者的需求得到满足的经济活动和动态过程。 18、景区销售渠道指的是景区产品向旅游者转移过程当中所要经过的各个环节连接成的通道。 19、世界遗产:当代人从祖先继承下来和自然赋予的最为宝贵的物质财富和精神财富。 20、文化景观是自然遗存与人类持续活动共同产生的景观,代表了人与自然长期的亲密的相互关系,是一种具有真实性的、活的人与自然和谐相处的景观。 21、风景名胜区系指风景名胜资源集中、自然环境优美,具有一定规模和游览条件,经县级以上人民政府审定命名划定范围,供人游览、观赏、休息和进行科学文化活动的区域。 22、森林公园是具有一定规模和质量的森林风景资源和环境条件,可以开展森林旅游,并按法定程序申报批准的森林地域。

实验 文件管理(二)

实验六:文件系统 一、目的要求 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 2、要求设计一个n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 二、例题: ①设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 ②程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 ③为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 ④算法与框图: a、因系统小,文件目录的检索使用了简单的线性搜索。 b、文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。 c、程序中使用的主要设计结构如下: Ⅰ、主文件目录和用户文件目录(MFD、UFD) Ⅱ、打开文件目录(AFD)(即运行文件目录)

三、调度算法的流程图 四、文件管理源程序 #include<> #include<> #include<> #include<> typedef struct ufd { char filename[10];/*文件名*/ char procode[8];/*属性*/

int length;/*文件长度*/ struct ufd *nextfile;/*指向下一个文件*/ }UFD; typedef struct mfd { char username[10];/*用户名*/ struct ufd *link;/*指向该用户的第一个文件*/ }MFD; typedef struct protected_flag { char code[4]; }PRO; typedef struct afd/*运行文件目录*/ { char filename[10];/*打开文件名*/ char procode[4]; int rwpointer;/*读写指针*/ }AFD; PRO flag[3]={"100",/*只读*/ "110",/*读写*/ "001"/*可执行*/ }; UFD *rw_pointer;/*读写指针*/ AFD *afd=NULL; MFD filesystem[10]; int num;/*当前用户个数*/ void displayallfile() { int i; UFD *p; for(i=0;ifilename); printf("文件属性: %s\t||",p->procode); printf("文件长度: %d\n\n",p->length); p=p->nextfile; } }

文件管理系统课程设计

课程名称:操作系统 实验题目:文件管理系统 1、课程设计选题 (3) 1.1主要设计内容 3 1.2主要设计思路 3 2、课程设计需求分析 3 3、概要设计 (4) 3.1整体设计框架 4 3.2各模块的基本功能 4 4、系统实现 5 4.1原理 6 4.2各模块算法思想 6 4.3流程图描述 9 4.4代码描述 10 5、系统测试 11

5.1系统主界面 11 5.2子系统功能测试 11 6、总结 19 7、参考文献样式 19 1、课程设计选题 1.1主要设计内容 本课程设计主要是用C语言编写,设计的是一个模拟的多用户多级目录的文 件管理系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文 件操作的实现,加深对文件系统内部功能和实现过程的理解。 1.2主要设计思路 首先系统要完成初始化的任务,建立起整个系统,等待用户注册,注册成功后,用户登录模块,对用户的用户名进行验证,如果用户登录成功,则系统进入 等待用户输入的状态,用户选择相应指令后,系统按照即定方式处理用户请求, 用户退出后,系统转入登录模块,等待下一位用户的登录。 2、课程设计需求分析 本系统为多用户多级目录的文件管理系统,用户可以根据所注册的用户名登 陆来对文件或是文件进行操作。多用户功能可以满足不同用户不同的需求,同时 也起到了很好的保密作用。 文件系统为用户提供了按名存取的功能,以使得用户能透明地存储访问文

件。为了实现按名存取,文件需要对文件存储设备进行合理的组织,分配;对存储在文件存储设备上的文件进行保护,保密和提供共享的手段。另外,文件系统还要提供检索文件或文件中记录的手段,文件系统就是完成上述功能的一组软件和数据结构的集合。 模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。系统建立了文件目录树,存储文件系统中的所有文件。对于用户名下的文件,用文件目录树的分枝来存贮。 采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。 因为存在着同一个目录下不能有同名文件的问题。所以在进行文件的基本操作时要考虑到在已经有的文件中是否有同名文件,有的话则输出提示信息。 3、概要设计 3.1整体设计框架 系统初始化界面是由用户注册,用户登录,退出系统三个模块组成。用户登录模块再由创建用户,进入目录,删除用户,显示所有用户,显示位示图,修改用户资料几大模块组成。然后各个模块再由一些小模块组成。其中创建文件,打开关闭文件,读写文件等文件操作模块包括在进入目录模块里面。 3.2各模块的基本功能 3.21系统初始化 系统的初始化包括初始化了磁盘的空间即位示图、一个管理员用户 3.22用户注册模块 用户可以在这里注册,用户名和密码的最大长度都为10个字节,如果用户名不重复的话,则注册成功,用户的权限默认为一般用户。

操作系统文件管理系统模拟实验

文件管理系统模拟 1.实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现 2.实验内容 为Linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条) login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。 3.实验提示 (1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。入file0,file1,file2…并以编号作为物理地址,在目录中进行登记。 4.源代码 #include #include #include #define MEM_D_SIZE 1024*1024 //总磁盘空间为1M #define DISKSIZE 1024 //磁盘块的大小1K #define DISK_NUM 1024 //磁盘块数目1K #define FATSIZE DISK_NUM*sizeof(struct fatitem) //FAT 表大小

#define ROOT_DISK_NO FATSIZE/DISKSIZE+1 //根目录起始盘块号 #define ROOT_DISK_SIZE sizeof(struct direct) //根目录大小#define DIR_MAXSIZE 1024 //路径最大长度为1KB #define MSD 5 //最大子目录数5 #define MOFN 5 //最大文件深度为5 #define MAX_WRITE 1024*128 //最大写入文字长度128KB struct fatitem /* size 8*/ { int item; /*存放文件下一个磁盘的指针*/ char em_disk; /*磁盘块是否空闲标志位0 空闲*/ }; struct direct { /*-----文件控制快信息-----*/ struct FCB { char name[9]; /*文件/目录名8位*/ char property; /*属性1位目录0位普通文件*/ int size; /*文件/目录字节数、盘块数)*/ int firstdisk; /*文件/目录起始盘块号*/ int next; /*子目录起始盘块号*/ int sign; /*1是根目录0不是根目录*/ }directitem[MSD+2]; }; struct opentable { struct openttableitem { char name[9]; /*文件名*/ int firstdisk; /*起始盘块号*/ int size; /*文件的大小*/ }openitem[MOFN]; int cur_size; /*当前打文件的数目*/ }; struct fatitem *fat; /*FAT表*/ struct direct *root; /*根目录*/ struct direct *cur_dir; /*当前目录*/ struct opentable u_opentable; /*文件打开表*/ int fd=-1; /*文件打开表的

模拟磁盘文件管理的程序

模拟磁盘文件管理的程序 一、课程设计内容 ⑴自定义磁盘文件管理的数据结构; ⑵能够自由创建、修改、删除文件; ⑶文件具有一定自定义的属性; ⑷能够显示当前系统文件的状态。 二、课程设计的数据结构说明 程序中定义了两个类: class file//文件类 {private: char name[10]; //文件名 public: int tag; //删除标记 1:已删 0:未删 file( ){ } char *getname( ){return name;} //获取文件名 int gettag( ){return tag;} //获取删除标记 int getlength() {return length;} //获取文件大小 int getblocknum() {return blocknum;} // 磁盘块数 int getblocksum1(){return blocksum1;} //磁盘块号的始点 int getblocksum2(){return blocksum2;} //磁盘块号的终点 int length,blocknum,blocksum1,blocksum2; void setname(char na[ ] ) {strcpy(name,na);} //设置文件名 void delwenjian(){ tag=1; }//设置删除标记 1:已删 0:未删 void creatfile(char *na,int L,int num,int s1,int s2) //创建文件 void deltefile(char *na) {tag=1; strcpy(name,na);} //删除文件 void disp( )//输出文件信息 class fdatabase //文件库类 { private: int top; //文件记录指针 file f[50]; public: fdatabase(){top=-1;} //构造函数 int search(char *fname)//按文件名查找 int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在 int deltefile(char *na)//删除文件时先查找是否存在 void disp() //输出所有文件信息 };

管理信息系统模拟试卷2-4套

管理信息系统试卷(2) 一、填空题:(每空1分,共15分) 1.系统的一般模型包括输入、、和三部分。 2.组织管理技术进步的重要标志就是要建立起高效的。 3.数据流图综合地反映出信息在系统中的流动、__ 和情况。 4.系统维护的类型有正确性维护、适应性维护、、。 5.详细调查主要包括:组织结构调查、和。 6.程序设计说明书是以一个作为单位,用以定义处理过程的书面文件。 7.系统设计的任务是:在系统分析提出的的基础上,科学合理地进行 的设计。 8.程序设计说明书由____ _____编写,交给___ ____使用。 9.校验位校验的目的是检查输入的____ ________是否有错。 二、选择题(每小题2分,共30分) 1.以下不属于输出设计任务的是()。 A、确定输出内容 B、选择输出方式 C、输出格式设计 D、输出目的设计 2.系统常用的转换方式中没有()。 A、直接转换 B、并行转换 C、间接转换 D、分阶段转换 3.日常事务处理信息适用于()。 A、中层管理 B、高层管理 C、基层管理 D、目标管理 4.数据的关系模型是由若干()组成的集合。 A、关系框架 B、网络框架 C、层次框架 D、其他框架 5.系统设计的主要任务不包括()。 A、代码设计 B、输入输出设计 C、程序设计 D、系统分析 6.系统设计报告的主要作用是作为()的依据 A、系统总体规划 B、系统分析 C、系统实施 D、系统评价 7.下列应用中,哪个属于业务处理系统() A、决策支持系统 B、生产过程控制系统 C、财务处理系统 D、专家系统 8.将2001年5月1日记作20010501,这种编码类型属于() A、多位码 B、助记码 C、顺序码 D、区间码 9.DSS解决的是() A、结构化问题 B、结构化问题和半结构问题 C、半结构化问题和非结构化问题 D、半结构化问题 10.联机实时处理系统适用于() A、需要人工进行干预 B、对信息的时间性要求不高 C、需要脱机转换数据 D、要求及时响应

实验二-连续时间系统的模拟实验报告

实验二-连续时间系统的模拟实验报告

信号与系统 实验报告 (信号与系统实验箱) HD-XH-II型 实验二连续时间系统的模拟 学院 专业班级 姓名学号 指导教师

实验报告评分:_______ 连续时间系统的模拟 一、实验目的 1.了解用集成运算放大器构成基本运算单元—标量乘法器,加法和计分器,以及它们的组合全加积分器的方法。 2.掌握用以上基本运算单元以及它们的组合构成模拟系统,模拟一阶和二阶连续时间系统的原理和方法,并用实验测定模拟系统的特性。 二、实验内容及步骤 1.一阶模拟系统阶跃响应的观测 (1)对图9-5(c)的实际的电路,在输入端TP901处输入幅度Uim=0.2V,频率=200HZ的方波,观测输入波形及输出(TP903处)响应波形,比较输入波形与输出波形的周期和幅度,测量时间常数τ和放大倍数A。 (2)输入幅度Uim=0.2V的正弦波信号,由低频(20HZ左右)开始,缓慢改变正弦波信号频率,测出低通滤波器的截止频率f0. 2.二阶模拟系统频率特性测试 对图9-6(c)的实际电路,在输入端TP905处输入幅度

Uim=0.2V正弦波,改变正弦波的信号频率,此时,应注意保持输入电压不变,记录相应的输出(TP907处)电压值,画出扶贫特性曲线,测定系统的放大倍数A,中心频率f0及其频带宽度Bw,计算品质因素Q。 三、实验过程 一阶模拟系统 一阶模拟系统输入波形: 输出波形:

(1)放大倍数A=Rf/R1=10K/1K=10 H(s)=(a^2)/(s^2+3*a*s+a^2) 其中a=1/RC,值为4170。 以log f为横坐标,Vo/Vi为纵坐标,绘制滤波器的幅频特性曲线。再以log f为横坐标,Φ(ω)为纵坐标,绘制滤波器的相频特性曲线。 RC低通滤波器幅频响应曲线图如下:

《数据库原理》-旅游景区管理系统

《数据库原理》课程设计报告 设计题目:旅游景区管理系统 专业:信息管理与信息系统 计算机与数据科学学院 2019 年01月11日

目录 1 概述 (1) 1.1选题的背景与意义 (1) 1.2相关技术分析 (1) 1.2.1 系统功能需求 (1) 1.2.2 系统数据要求 (1) 2 系统功能设计 (2) 2.1系统总体结构设计图 (2) 2.2系统功能模块 (3) 2.2.1 用户模块 (3) 2.2.2 管理模块 (3) 3 数据库设计 (4) 3.1需求分析 (4) 3.2.1 系统需求分析 (4) 3.2.2 数据流图 (4) 3.2.3 数据字典 (5) 3.2概念结构设计 (7) 3.3逻辑结构设计 (9) 3.4物理结构设计 (10) 3.4.1 存储结构设计 (10) 3.4.2 存取方式 (10) 3.5数据库实施 (10) 3.6数据库运行与维护 (14) 3.6.1 数据库备份与还原的原则 (14)

3.6.2 数据库备份与还原过程中注意的问题 (14) 3.6.3 数据库的备份计划 (14) 3.6.4 数据库的还原计划 (14) 4 结束语 (15) 参考文献 (16)

1 概述 1.1 选题的背景与意义 由于时下大多数人生活优越,交通工具方便快捷,信息获取方便,导致旅游业迅速发展。为了方便旅游爱好者在网上获取信息,有效地掌握景区的相关信息,开发出一套适合于旅游者在网络上快速获取信息的管理系统,通过本系统,出行者可以查看河南的全部景点列表,了解某个景点的详细情况,自驾车、公交线路,获取景区内的旅游地图等。该系统为旅客提供全面的旅游景点查询服务。 1.2相关技术分析 1.2.1 系统功能需求 1.可以对用户的有关资料进行查询,输入,修改以及删除。 2.便于管理人员掌握用户的具体情况,提供强大的查询功能。 1.2.2 系统数据要求 1.数据录入和处理时的准确性 数据输入错误会导致系统输出的不正确或不可用,从而使此系统的工作没有意义。 2.数据的一致性与完整性 因为信息量非常大,处理用户信息的时候操作非常频繁,管理系统对数据的处理有着非常高的硬性要求,所以要有一定数量的操作人员来维护数据的一致性,在数据录入处来控制数据的去向。 3.数据的独立性 对用户信息进行日常管理,及时进行信息的更新,并且要对系统进行独立且准确的操作。

离散系统与连续时间系统的根本差别是:离散系统(图)有采样开

离散系统与连续时间系统的根本差别是:离散系统(图3)有采样开关存在,而连续系统则无。连续信号经过采样开关变成离散信号(图4),采样开关起这理想脉冲发生器的作用,通过它将连续信号调制成脉冲序列。 图3 离散系统方块图 图4 离散型时间函数 调制之后的信号中,包含与脉冲频率相关的高频频谱(图5),相邻两频谱不相重叠的条件是: max 2f f s 其中: s f ---采样开关的采样频率 m ax f ---连续信号频谱中的最高频率 这就是采样定理,通常选择采样频率时取四倍连续信号的最大频率。实验中,信号源产生频率可调的周期性信号,计算机通过A/D 板将信号采集入内存,通过软件示波器显示出来,调整采样频率,可以得到不同的采样结果,以波形图直观显示出来。由此,可考察波形失真程度。 三、实验使用的仪器设备及实验装置 1. 装有LabVIEW 软件和PCI-1200数据采集卡的计算机一台 2. 频率计或信号发生器一台 3. 外接端子板、数据采集板、计算机、组态软件 基于LabVIEW 的信号测试系统主要包括信号发生器、DAQ 数据采集卡和计算机软件三部分组成。A/D 数据采集采用NI 公司PCMCIA 接口的PCI-1200型多功能数据采集卡;L abVIEW 7.1软件。 将PCI-1200数据采集卡插到计算机主板上的一个空闲的PCI 插槽中,接好各种附件,其驱动程序就是NI-DAQ 。附件包括一条50芯的数据线,一个型号为CB-50LP 的转接板,转接板直接与外部信号连接。 图5 信号频谱图

四、具体实验步骤 (一)通过LabVIEW进行模拟信号的数据采集 1. 安装数据采集卡,根据数据采集卡接线指示(图6)连接线路,并检查测试。 2. 熟悉LabVIEW软件中与数据采集相关的控件与设置项。 3. 编制DAQ程序,并调试数据采集组态。 4. 应用该组态软件进行波形数据采集并存储,信号种类设置为正弦波,分别设置 信号发生器频率为50,100Hz,观察并记录波形变化。 5. 设置信号种类为方波或锯齿波,重复上述实验。 (二)采样定理验证实验 1. 按图8连接线路,并检查测试。 2. 熟悉GeniDAQ软件中与数据采集相关的控件与设置项。 3. 编制、调试数据采集组态。 4. 应用该组态软件进行波形数据采集并存储,信号种类设置为正弦波,分别设置 信号发生器频率为50,100Hz,采集频率设置为50、100、150、200、300、500Hz,观察并记录波形变化,体验采样定理的正确性。 五、实验准备及预习要求 1.认真阅读实验指导书,在老师答疑和同学讨论的基础上,完成实验准备任务: 1).了解数据采集及其硬件(A/D变换器和数据采集卡)选择的基本知识; 2).熟悉G语言编程环境和虚拟仪器的含义; 1.理解采样定理的意义;

景区管理系统概述 一

景区管理系统概述(一) 1)系统简介 随着互联网的快速发展,技术日益成熟的今天,利用互联网的优越性并通过门户网站平台建设来提高景区管理部门效率和加强景区对外整体形象宣传无疑为明智之举,建成后的网站平台将会使各部门间的联系更加紧密,信息间共享更加便捷,协同办公更加灵活高效,为游客服务更加贴切,对外宣传更为广泛,同时也增强了景区管理办公的透明性。 2)系统特色 a)景区站群管理 依托强大的站群功能,为景区中各类企业、服务机构提供子站服务,统一管理 b)景区资讯信息发布 景区动态、景区公告、行业信息、政策法规等多种分类信息发布,可自定义分类或无限级别设置,支持文本、图片、动画、视频等多种表现形式,各类信息内容可体现在任意网站频道或页面,前台发布十分简易,并灵活设置审核、发布模式

c)旅游信息导入 如需批量信息录入或大量的信息转载时,该系统更拥有批量文本导入添加和远程信息全智能化采集功能。 d)全面的景点展示 按照景区的划分或推荐的旅游线路详细展示景区内各景点的风景特色、历史渊源以及文学典故等,支持文本、图片、动画、视频等多种表现形式,不拘一格。 e)景区旅游问卷管理 网站任意页面发布任意标题、任意可选数量的调查信息,系统全面支持单选、多选、自定义输入等模式,更具多种模式混合应用的强大功能,堪称业内功能最强悍的调查系统。 在线调查对于分析判断用户喜好、作为决策依据具有重要现实意义,可广泛应用于投票决策、问卷反馈、用户倾向调查、原始资料收集等多种用途。 f)景区、景点相关资料展示 景区、景点展示不是一味的平铺直叙,还可以与景区公告、相关游记、风景图片、经典视频甚至门票预定、特产购买实现同步互动,为游客提供最便捷的浏览操作和最具体的景点印象。 同时可依托三维全景、地理信息系统对景点、景区进行全方

操作系统课程设计-模拟文件系统

目录 第1章需求分析 (1) 第2章概要设计 (1) 2.1 系统的主要功能 (1) 2.2系统模块功能结构 (1) 2.3运行环境要求 (2) 2.4数据结构设计 (2) 第3章详细设计 (3) 3.1模块设计 (3) 3.2算法流程图 (3) 第4章系统源代码 (4) 第5章系统测试及调试 (4) 5.1运行结果及分析 (4) 5.2系统测试结论 (5) 第6章总结与体会 (6) 第7章参考文献 (6) 附录 (7)

第1章需求分析 通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。 模拟二级文件管理系统的课程设计目的是通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。 第2章概要设计 2.1 系统的主要功能 1) 系统运行时根据输入的用户数目创建主目录 2) 能够实现下列命令: L ogin 用户登录 Create 建立文件 Read 读取文件 Write 写入文件 D elete 删除文件 Mkdir 建立目录 Cd 切换目录 Logout 退出登录 2.2系统模块功能结构

2.3运行环境要求 操作系统windows xp ,开发工具vc++6.0 2.4数据结构设计 用户结构:账号与密码结构 typedef struct users { char name[8]; char pwd[10]; }users; 本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。 users usrarray[8] = { "usr1","usr1", "usr2","usr2", "usr3","usr3", "usr4","usr4", "usr5","usr5", "usr6","usr6", "usr7","usr7", "usr8","usr8", }; (3)数据结构说明 a)文件结构链表 struct fnode { char filename[FILENAME_LENGTH]; int isdir; int isopen; char content[255]; fnode *parent; fnode *child; fnode *prev; fnode *next; }; b)函数介绍 fnode *initfile(char filename[],int isdir);//初始化文件或目录 void createroot();//建立系统根目录 int run();系统运行 int findpara(char *topara);对参数进行处理 bool chklogin(char *users, char *pwd);检查账号与口令 void help();命令列表 int mkdir();建立目录 int create();建立文件

管理信息系统模拟题及答案(模拟三)

2010 自考《管理信息系统》模拟试题 (5) (考试时间 150 分钟) 第一部分选择题 一、单项选择题 (本大题共 20 小题,每小题 1分,共 20 分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1. 在管理信息中,执行层信息的特性包括( ) A. 大部分来源于企业内部 B. 使用频率较低 C. 保密要求较高 D. 使用时间较长 2. 下列属于系统主要特征的是 ( ) A. 目的性 B. 相关性 C. 边界性 D. 以上均正确 3. 管理信息系统阶段为 20世纪 ( ) A. 50 年代中期至 60 年代中期 B. 60 年代中期至 70 年代初期 C. 70年代初期至90年代 D. 90 年代至今 4. 最传统和古老的组织结构形式是 ( ) A. 事业部制 B. 职能式 C. 直线式 D. 矩阵制 5. 下列属于逻辑运算的是 ( ) B. 减 A. 加 C. 乘 D. 比较 6. 关于 DBMS 的功能下列说法错误的是 ( ) A. 合理组织大量数据以避免冗余 B. 支持多用户对数据的共享 C. 保证数据的安全 D. 保证用户对数据存取的合法性 7. 802.3规范是 IEEE802 标准体系之一,它规定用无源的___________ 来作为总线来传送数 据帧。 ( ) A. 双绞线 B. 电缆 C. 光纤 D. 微波 8?下列IP地址正确的是() A. 19.2.1.300 B. 192. 22.a.15

C. 202.112.0.x D. 202. 112. 111. 190 9. 关于关系数据模型说法错误的是( ) A. 建立在逻辑概念的基础上 B. 存取路径对用户透明 C. 数据独立性好 D. 查询效率较低 行为一个( ) 10. Access数据表以行和列的格式组织存储数据,在表中,每 A. 字段 B. 属性 C. 记录 D. 单元 11. Access视图中,用于查看报表的页面数据输出形态的是 A. “视计”视图 B. “打印预览”视图 C. 版面预览”视图 D. “定义”视图 12. 生命周期法中,系统设计阶段的主要工作内容是( ) A. 系统的逻辑设计 B. 系统的物理设计 C. 编写程序 D. 系统调试 13. ERP 是指 ( ) A. 物料需求计划 B .制造资源计划 C. 企业资源计划 D. 供应链管理 14. 下列不属于数据流程图的基本元素的是( ) A. 数据结构 B. 数据存储 C. 数据流 D. 外部实体 15. 在系统设计中,物理模块是逻辑模块的( ) A. 抽象 B. 综合 C. 具体化 D. 集合 16. 数据模型的规范化可提高数据的( ) A. 一致性 B. 完整性

相关文档
最新文档