模拟一个简单二级文件管理系统

模拟一个简单二级文件管理系统
模拟一个简单二级文件管理系统

模拟一个简单二级文件管理系统

设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。

设计内容:模拟一个简单二级文件管理系统

一、实验内容描述

1 实验目标

本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现.

2 实验要求

为DOS系统设计一个简单的二级文件系统.要求做到以下几点:

①可以实现下列命令:

login 用户登录

dir 列文件目录

create 创建文件

delete 删除文件

open 打开文件

close 关闭文件

read 读文件

write 写文件

②列目录时要列出文件名、物理地址、保护码和文件长度.

③源文件可以进行读写保护.

二、程序主要内容

1设计思路

程序中要求每个用户在登陆后才可对其拥有的文件进行操作,用户对于其他用户的文件无操作权.文件操作包括浏览、创建、删除、打开、关闭、阅读、写入、修改模式.其他操作包括新建用户、帮助、用户登入、用户登出、退出系统.

在程序文件夹下有个名为“file”的系统根目录,此目录下包括:一个名为“mfd”的文件,记录所有注册过的帐号及密码;用户文件,以用户名作为文件名,内容为其拥有的文件名及属性;一个名为“keiji”的文件夹.“keiji”文件夹中包括:“”指针文件,记录所有已用的物理地址;一些以物理地址为名的文件,内容为文件内容.

2 数据结构

file结构体系统文件数据结构:

fpaddrint,文件的物理地址、flengthint,文件长度、fmodeint,文件模式 0.只读;1.可写;2.可读写;3.保护、 fname[]char,文件名;

filemode结构体文件状态数据结构:

isopenint,文件当前状态,0.关闭;1.打开、modeint,文件模式 0.只读;1.可写;2.可

读写;3.初始化;

user结构体用户信息数据结构:

uname[]char,用户名、upassword[]char,用户密码;

userfile结构体用户文件数据结构:

uname[]char,用户名、ufile[]file,用户拥有的文件数组.

代码:

#include <>

#include <>

#include <>

#include <>

#include <>

#define MaxUser 100 ser=(UFD *)malloc(sizeof(UFD));

userTable[i].user->next=NULL;

}

while(1)

{

printf("********************************************\n");

printf(" 1、Creat user\n");

printf(" 2、login\n");

printf("********************************************\n");

printf("Please chooce the function key:>");

int choice;

scanf("%d",&choice);

if(choice==1) userCreate();

else if(choice==2) userID=login();

else printf("您的输入有误,请重新选择\n");

while(userID!=-1)

{

fflush(stdin);

printf("———————————————————————————————————————\n");

printf(" create-创建格式:create a1 1000 rw,将创建名为a1,长度为1000

字节可读可写的文件\n");

printf(" rm-删除格式:rm a1,将删除名为a1的文件\n");

printf(" cat-查看文件内容格式:cat a1,显示a1的内容\n");

printf(" write-写入格式:write a1\n");

printf(" fine-查询格式:fine a1 ,将显示文件 a1的属性\n");

printf(" chmod-修改格式:chmod a1 r,将文件a1的权限改为只读方式\n"); printf(" ren-重命名格式:ren a1 b1 ,将a1改名为b1\n");

printf(" dir-显示文件格式:dir aaa,将显示aaa用户的所有文件\n");

printf(" df-显示磁盘空间使用情况格式:df\n");

printf(" close-关闭文件格式:close a1,将关闭文件a1\n");

printf(" return-退出用户,返回登录界面\n");

printf(" exit-退出程序\n");

printf("———————————————————————————————————

—————\n");

printf("please imput your command:>");

gets(command);

int select;

for(i=0;command[i]!=' '&&command[i]!='\0';i++) ser->next;p!=NULL;p=p->next) serName,userName))

{

printf("\n");

printf("该用户名已存在,创建用户失败\n");

system("pause");

return;

}

}

strcpy(userTable[used].userName,userName);

printf("\n");

printf("请输入密码:");

for(i=0;c=getch();i++)

{

if(c==13) break;

else

userTable[used].password[i]=c;

printf("*");

}

userTable[userID].password[i]='\0';

printf("\n");

printf("创建用户成功\n");

used++;

system("pause");

}

else

{

printf("创建用户失败,用户已达到上限\n");

system("pause");

}

fflush(stdin);

}

int login()

{

char name[10],psw[10];

char c;

int i,times;

printf("请输入用户名:");

for(i=0;c=getch();i++)

{

if(c==13) break;

else

name[i]=c;

printf("%c",c);

}

name[i]='\0';

for(i=0;i

{

if(!strcmp(userTable[i].userName,name))

break;

}

if(i==used)

{

printf("\n您输入的用户名不存在\n");

system("pause");

return -1;

}

for(times=0;times<3;times++)

{

memset(psw,'\0',sizeof(psw));

printf("\n请输入密码:");

for(i=0;c=getch();i++)

{

if(c==13) break;

else

psw[i]=c;

printf("*");

}

printf("\n");

for(i=0;i

{

if(!strcmp(psw,userTable[i].password)) {

printf("用户登录成功\n");

system("pause");

break;

}

}

if(i==used)

{

printf("您输入的密码错误,您还有%d次输入机会\n",2-times);

if(times==2) exit(0);

}

else break;

}

fflush(stdin);

return i;

}

void initDisk()

{

diskHead=(diskNode *)malloc(sizeof(diskNode));

diskHead->maxlength=MaxDisk;

diskHead->useFlag=0;

diskHead->start=0;

diskHead->next=NULL;

}

int requestDist(int &startPostion,int maxLength)

{

int flag=0; ser->next;p!=NULL;p=p->next)

{

if(!strcmp(p->file->fileName,fileName))

{

printf("文件重名,创建文件失败\n");

system("pause");

return;

}

}

if(requestDist(startPos,length))

{

fileNode=(UFD *)malloc(sizeof(UFD));

fileNode->file=(fileTable *)malloc(sizeof(fileTable)); ser->next==NULL)

userTable[userID].user->next=fileNode;

else

{

p=userTable[userID].user->next;

while(p->next) p=p->next;

p->next=fileNode;

}

printf("创建文件成功\n");

system("pause");

}

else

{

printf("磁盘空间已满或所创建文件超出磁盘空闲容量,磁盘空间分配失败\n"); system("pause");

}

}

void freeDisk(int startPostion)

{

diskNode *p;

for(p=diskHead;p!=NULL;p=p->next)

{

if(p->start==startPostion)

break;

}

p->useFlag=false;

}

void fileDel(char fileName[])

{

UFD *p,*q,*temp;

q=userTable[userID].user;

p=q->next;

while(p)

{

if(!strcmp(p->file->fileName,fileName)) break;

else

{

p=p->next;

q=q->next;

}

}

if(p)

{

if(p->file->openFlag!=true) ser;

for(p=q->next;p!=NULL;p=p->next)

{

if(!strcmp(p->file->fileName,fileName))

break;

}

if(p)

{

startPos=p->file->strat;

length=p->file->length;

p->file->openFlag=true; ser;

int i,k,startPos;

for(p=q->next;p!=NULL;p=p->next)

{

if(!strcmp(p->file->fileName,fileName))

break;

}

if(p)

{

if(!strcmp(p->file->fileKind,"r")) ser;

for(p=q->next;p!=NULL;p=p->next)

{

if(!strcmp(p->file->fileName,fileName))

break;

}

if(p)

{

printf("********************************************\n"); printf("文件名:%s\n",p->file->fileName);

printf("文件长度:%d\n",p->file->maxlength);

printf("文件在存储空间的起始地址:%d\n",p->file->strat); printf("文件类型:%s\n",p->file->fileKind);

printf("创建时间:%s\n",asctime(p->file->timeinfo));

printf("********************************************\n"); system("pause");

}

else

{

printf("没有找到该文件,请检查输入的文件名是否正确\n");

system("pause");

}

}

void chmod(char fileName[],char kind[])

{

UFD *p,*q;

q=userTable[userID].user;

for(p=q->next;p!=NULL;p=p->next)

{

if(!strcmp(p->file->fileName,fileName))

break;

}

if(p)

{

strcpy(p->file->fileKind,kind);

printf("修改文件类型成功\n");

system("pause");

}

else

{

printf("没有找到该文件,请检查输入的文件名是否正确\n"); system("pause");

}

}

void fileRen(char fileName[],char name[])

{

UFD *p,*q;

q=userTable[userID].user;

for(p=q->next;p!=NULL;p=p->next)

{

if(!strcmp(p->file->fileName,fileName))

break;

}

if(p)

{

while(q->next)

{

if(!strcmp(q->next->file->fileName,name))

{

printf("您输入的文件名已存在,重命名失败\n"); system("pause");

return;

}

q=q->next;

}

strcpy(p->file->fileName,name);

printf("重命名成功\n");

system("pause");

}

else

{

printf("没有找到该文件,请检查输入的文件名是否正确\n"); system("pause");

}

}

void fileDir(char userName[])

{

UFD *p;

int i,k;

for(i=0;i

{

if(!strcmp(userTable[i].userName,userName))

{

k=i;break;

}

}

if(i==MaxUser)

{

printf("没有找到该用户,请检查输入用户名是否正确\n");

system("pause");

return;

}

else

{

p=userTable[k].user->next;

printf("***********************************************************************

*********\n");

printf("文件名文件长度文件在磁盘的起始地址文件类型创建时间\n"); for(;p!=NULL;p=p->next)

printf("%s %d %d %s %s",p->file->fileName,

p->file->maxlength,p->file->strat,p->file->fileKind,asctime(p->file->timeinfo))

;

printf("***********************************************************************

*********\n");

system("pause");

}

}

void diskShow()

{

diskNode *p;

int i=0,unusedDisk=0;

printf("***********************************************************************

****\n");

printf(" 盘块号起始地址容量(bit) 是否已被使用\n");

for(p=diskHead;p!=NULL;p=p->next,i++)

{

if(p->useFlag==false) unusedDisk+=p->maxlength;

printf(" %d %d %d %d \n",i,p->start,p->maxlength,p->useFlag);

}

printf("***********************************************************************

****\n");

printf("磁盘空间总容量:512*1024bit 已使用:%dbit 末使用:%dbit\n\n",MaxDisk-unusedDisk,

unusedDisk);

system("pause");

}

void fileClose(char fileName[])

{

UFD *p,*q;

q=userTable[userID].user;

for(p=q->next;p!=NULL;p=p->next)

{

if(!strcmp(p->file->fileName,fileName))

break;

}

if(p)

{

p->file->openFlag=false;

printf("%s文件已关闭\n",p->file->fileName);

system("pause");

}

else

{

printf("没有找到该文件,请检查输入的文件名是否正确\n");

system("pause");

}

}

运行结果视图:

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

信号与系统 实验报告 (信号与系统实验箱) 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低通滤波器幅频响应曲线图如下:

《员工信息管理系统》详细设计说明书

《员工信息管理系统详细设计说明书》 一、引言 编写目的 根据需求规格说明书、概要设计说明书,在仔细考虑讨论之后,我们对员工信息管理系统软件功能的划分、数据结构、软件总体结构的实现有了进一步的想法。本说明书的预期读者是与员工信息管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。 背景 利用先进的管理手段,提高人事信息的管理水平,是每一现代公司所面临的重要课题。为了解决这一重要课题,就必须有一套科学,高效,严密,实用的人事信息管理系统。现代公司的人事信息管理都是在计算机上实现的,采用现代计算机管理系统来进行管理,提供规范,统一的服务,它在管理系统中的应用不仅可以简化,规范各机构的日常操作,而且可以使企业人事信息管理更加方便,简单,快捷,清晰,从而减轻工作人员的劳动强度,减少企业的财政消耗。 定义 SQL Server:所用的数据库管理系统 VS 2010:所用的开发软件 二、程序(一)设计说明 程序描述 主模块 功能 建立与数据库连接 获取系统设置 能够跳转至子模块:登陆、注册等模块。 输入、输出项 用户鼠标点击登陆、注册按钮 跳转至相应模块界面 流程逻辑

选择项 登陆系统注册系统查询系统管理系统界面设计 功能实现方法 '跳转登陆页面 Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles If ("UserName") Is Nothing Then ("") Else "", "") End If End Sub '跳转注册页面 Protected Sub lbtnRegister_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ("") End Sub 三、程序(二)设计说明 程序描述

操作系统模拟文件管理

操作系统课程设计报告 模拟文件管理 目) 院系:计算机科学技术学院计算机科学与技术系班级:计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.设计报告:学生设计后应按时完成设计报告。要求:内容充实、写作规范、项目填写正确完整、书面整洁等。

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

实验七 连续时间系统的模拟(硬件实验) 一、 目的 学习根据给定的连续系统的传输函数,用基本运算单元组成模拟装置。 二、 原理 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、要求设计一个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.实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现 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; /*文件打开表的

简单的职工管理系统

简单的职工管理系统 #include #include #include #include typedef struct //,,,,?,,?,,,,壬(,,,,,,,,,,,,,,?,,,,,,,,?,,?,?,,,?,,,, { char name[20];//,,,, char sex[4]; //,,, int birthday; //,,,,,,,, int year; //,,,,,,,, char degree[8]; // ,,///,,,?,,?,?,,,,, char position[30]; //?,,///,,,?,,,?,?,,,,,,,?,, char address[30]; // ,,?///?,,,?,,,?,,,,,?,,,,,, char phone[15]; //,,///}employee; employee emp[80]; ///,,,,,,,,,,,,,"struct"? int menu_select() //,,,,,,, { char c; do{ printf("?,,,,,,,\n"); //,,,,,?? printf(" | 1. Input Records \n"); printf(" | 2. Display All Records |\n");

printf(" | 3. Sort |\n"); printf(" | 4. Insert a Record |\n"); printf(" | 5. Delete a Record |\n"); printf(" | 6. Query |\n"); printf(" | 7. Change |\n"); printf(" | 0. Quit |\n"); printf("Give your Choice(0-7):"); c=getchar(); //,,,,,, ? }while(c<'0'||c>'7'); return(c-'0'); //,,,,,,? } int Input(employee emp[],int n) //,,,,,,,,,,? { int i=0; char sign; do { printf("employee's name:\n"); //,,,,,,,, scanf("%s",&emp[i].name); ///?"employee",,,,?,,"emp",,,,,,,?,,,,,,,,,,,, printf("employee's sex:\n"); scanf("%s",&emp[i].sex); /// printf("employee's birthday:\n"); scanf("%d",&emp[i]. birthday);///

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

中北大学 操作系统课程设计 说明书 学院、系:软件学院 专业:软件工程 学生姓名: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位*/

管理信息系统模拟试卷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、要求及时响应

简单的JAVA员工信息管理系统源码

// 项目目标:建立员工管理系统第一个版本。 // 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。 // 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener { Connection con; Statement stmt; String sql; ResultSet rs; StringBuffer sb = new StringBuffer(); JTextField jtf2 = new JTextField("张飞",10); JTextField jtf3 = new JTextField(10); JTextField jtf4 = new JTextField(10); JTextField jtf7 = new JTextField(10); JTextField jtf5 = new JTextField(10); JTextField jtf6 = new JTextField(10); JTextField jtf8 = new JTextField(10); JTextField jtf9 = new JTextField(10); JTextArea jta10 = new JTextArea(50, 40); public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); if ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp() searchEmp(); } else if ("增加".equals(str)) {

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

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

信号与系统 实验报告 (信号与系统实验箱) 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低通滤波器幅频响应曲线图如下:

模拟简单二级文件管理系统

操作系统课程设计 模拟简单二级文件管理系统 姓名:王馨萍 学号: 系别:计算机学院 专业:网络工程 年级:16级 指导教师: 2019年05 月11 日

一、课程设计项目介绍(含项目介绍及设计目的) 1、设计目的: 通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 2、项目介绍: 为LINUX 设计一个简单的二级文件系统。本文件系统采用类似DOS系统的文件管理方式,每次调用该文件系统时,首先申请一定的内存空间,然后对该内存空间进行分配。将申请到的空间划分为目录区,文件区;采用位示图进行空间管理,盘块的分配使用显示链接(FAT表)的方式。每次调用该文件系统时自动为其分配空间,并将上次操作的结果从硬盘上调入内存;当结束调用时则将操作的结果重新存入硬盘,以便下次调用。(每次使用都会自动搜索文件系统,以此确定是否是第一次使用;若是则格式化生成文件系统,否则读取已存在的文件系统。)本项目通过VC编写简单的二级文件系统的代码,实现文件管理方式,使用者只需要给出相应的文件操作命令就可以分别得到各类文件操作的相应,并且可以选择登陆或注销不同用户。

二、总体设计(含系统的总体结构、原理框图或各模块介绍等) 1、系统总体结构图:

2、模块介绍 (1)、主函数部分:在主函数系统接受输入信息,包括登陆用户和注册用户,登陆完成后选择相应的文件操作,可以选择创建目录、浏览目录、修改目录、创建文件等操作,如果选择错误就会出现相应的提示信息。 (2)、命令解释层函数:在命令解释层函数cmdexp()里加了一些选择和操作功能,增加程序实现的功能,如原来程序只有显示当前目录和文件、创建目录和修改目录的功能,把它拓展到系统所要求的全部功能,并在原有的程序的基础上进行相应的修改,使程序更加完善。 (3)、文件系统格式化函数:该函数首先建立文件,申请空间,在设置成功时将其空间写入filesystem.dat,使filesystem.dat为1M。接着设置磁盘i节点缓冲区,DIEMPTY表示空闲,设计成第1盘块存储用户名表,第2盘块用于存储根目录,第3盘块用于根目录下的子目录。 (4)、空闲盘块分配、回收函数:首先排除磁盘已满,无空闲盘块,或者已经是栈底的情况,接着设置栈指针下移一位,则空闲盘块少1。如果是空闲盘块堆栈已满状态,则把空闲盘块数据写入缓冲区,栈指针指向栈底,缓冲区内容写入新回收的盘块。最后是回收盘块,回收完毕后空闲盘块多1。 (5)、节点分配和释放函数:若没有空闲磁盘i节点,则显示相应提示信息;若空闲磁盘i节点栈空,则分为空闲磁盘i节点数可装满空闲i节点栈和剩下的空闲磁盘i节点不能装满栈区两种情况来考虑。接着初始化磁盘i节点、分配内存i节点,并从磁盘i节点读取数据到内存i节点。

企业员工信息管理系统

本科毕业设计说明书 企业员工信息管理系统的设计与实现EMPLOYEE INFORMATION MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATION 学院(部): 专业班级: 学生姓名: 指导教师: 2012年5月25日

企业员工信息管理系统的设计与实现 摘要 现今互联网发展越来越迅速,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。因此在信息化科技飞速发展的今天,借助于电脑,通过员工信息管理系统管理各部门职工,能为企业人力资源的管理者提供人性化的服务。同时也能为企业的员工提供一定的方便。 本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了企业员工信息管理的工作效率和企业的信息化的水平。 本论文从员工信息管理系统的初步调查开始,详细介绍员工信息管系统的需求分析和数据流程分析,并进行了系统总体结构设计、数据结构和数据库设计、输入输出设计等。 关键词:J2EE,Mysql,struts2,企业员工信息管理

EMPLOYEE INFORMATION MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATION ABSTRACT Nowadays, the Internet development is fast, bringing people's work and life tremendous convenience with efficiently.Therefore, the rapid development of technology of information technology today, through the use of computers, employee information management system to manage the various departments and workers, to provide personalized service for corporate human resources managers.Also provides a convenience for the employees of the enterprise. This system has a various characteristics:The system function is complete, using conveniently, the customer interface humanization, the safety keeps secret a constitution well-found, reduced an operation the work of the personnel and customer burden consumedly.Raise the work efficiency of the business enterprise information management and the information-based level of the business enterprise. Papers from personnel management information system, the preliminary survey began detailed introduction of human resource management information system requirements analysis, and data flow analysis, and a system overall structure design, data structure and database design, input/output design, etc. KEYWORDS:J2EE, Mysql,struts2,Employee information management

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

离散系统与连续时间系统的根本差别是:离散系统(图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.理解采样定理的意义;

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

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. 完整性

连续时间系统模拟

实验名称:连续时间系统的模拟 教材名称:电工电子实验技术(下册) 页码:P146 实验目的: 1、学习如何根据给定的连续系统的传输函数,用基本的运算单元组成模拟 装置。 2、掌握将Multisim 软件用于系统模拟的基本方法。 实验任务: 1、直接测量图9-9和图9-10的幅频、相频传输特性,并测出相应的数据。 测点自定,但是半功率点和谐振点必须在其中。 2、根据预习时计算出的传输函数H (S )分别搭建图9-9和图9-10的系 统模拟测试电路,分别测量幅频和相频特性,并按直接测量时所选的测点进行测量。 3、分别比较图9-9和图9-10 直接测量的传输特性与系统模拟测出的传 输特性数据,如有差异,找出原因并纠正。 设计提示: 1、先写出传输函数,再转换成标准形式。 设计过程: 图9-9传输函数: ()622 2232 61222 11110()1()3113101()()311110()V s RC S S H s V s SCR SCR SRC RC S S S ??====?++++?++? 其中:31110RC K uF -=?= 图9-10传输函数: ()29122 113571.4()1113571.41()11 1.7810R V s R L S S H s R V s R LS CS SL LC S S S ?? ==== ++++?++?? 其中:9203571.45.611 1.78105.60.1R L mH LC mH uF Ω ====?? 实验电路图及实验结果:

半功率点频率59.5 Φ= =;相位差59.5O f Hz φ=- 特性曲线同直接测量,半功率点频率59.5 f Hz =。52o

模拟一个简单二级文件管理系统

模拟一个简单二级文件管理系统 设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 设计内容:模拟一个简单二级文件管理系统 一、实验内容描述 1 实验目标 本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现. 2 实验要求 为DOS系统设计一个简单的二级文件系统.要求做到以下几点: ①可以实现下列命令: login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 ②列目录时要列出文件名、物理地址、保护码和文件长度. ③源文件可以进行读写保护. 二、程序主要内容 1设计思路 程序中要求每个用户在登陆后才可对其拥有的文件进行操作,用户对于其他用户的文件无操作权.文件操作包括浏览、创建、删除、打开、关闭、阅读、写入、修改模式.其他操作包括新建用户、帮助、用户登入、用户登出、退出系统. 在程序文件夹下有个名为“file”的系统根目录,此目录下包括:一个名为“mfd”的文件,记录所有注册过的帐号及密码;用户文件,以用户名作为文件名,内容为其拥有的文件名及属性;一个名为“keiji”的文件夹.“keiji”文件夹中包括:“”指针文件,记录所有已用的物理地址;一些以物理地址为名的文件,内容为文件内容. 2 数据结构 file结构体系统文件数据结构: fpaddrint,文件的物理地址、flengthint,文件长度、fmodeint,文件模式 0.只读;1.可写;2.可读写;3.保护、 fname[]char,文件名; filemode结构体文件状态数据结构: isopenint,文件当前状态,0.关闭;1.打开、modeint,文件模式 0.只读;1.可写;2.可

相关文档
最新文档