文档库 最新最全的文档下载
当前位置:文档库 › 文件完整性保护 20103277 李鑫实验七

文件完整性保护 20103277 李鑫实验七

文件完整性保护 20103277 李鑫实验七
文件完整性保护 20103277 李鑫实验七

上海电力学院

计算机系统安全

实验报告

实验题目:文件完整性保护

院系:计算机科学与技术学院信息安全系专业年级:信息安全专业三年级

学生姓名:李鑫学号20103277

实验七文件完整性保护

一、实验目的和要求:

掌握文件完整性检查的方法,实现基于莫科尔树模型的完整性验证。

二、实验内容:

1) 文件完整性检查

2)实现基于莫科尔树的数据完整性验证算法。

三、主要实验设备:(包括实验课程所用设备、软件、工具等)

PC机,Windows, VmWare 虚拟机,Linux操作系统,

四、实验步骤

1. 文件完整性检查

1)使用md5sum对/etc/passwd文件生成摘要,具体命令如下:

md5sum /etc/passwd > md5result , 其中md5result为自定义的文件名。

2) 在passwd未做变动的情况下,对该文件进行完整性检查,具体命令如下:

md5sum -c md5result, 其中,参数-c md5result 表示从md5result 文件中读取源文件摘要,并进行文件完整性检查。

若passwd文件无变动(生成摘要到当前时间段内),则会出现“passwd: OK”的信息提示。

3)使用vim编辑器/etc/passwd,对文件进行任意改动,存盘退出(先按esc键,接着键入“:wq”回车)。

对passwd文件进行完整性检查,由于passwd已被修改过,所以检查后的信息提示为:”passwd :FAILED”.

2. 编写算法实现基于莫科尔树模型实现数据的完整性验证。

要求:

1)算法的详细设计。

2)用实例验证,给出结果截图。

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Encoder;

public class MerkleTree {

protected static class Merkle_node{

String hash_value;

Merkle_node left,right;

int elem; //执行计位操作

public Merkle_node(){}

public Merkle_node(int elem){

this.elem=elem;

this.hash_value="";

}

public void setHash(String md5){

this.hash_value=md5;

}

public int getelem(){return elem;}

public String getHash(){return hash_value;}

}

protected Merkle_node root;

private int size;//树节点个数

private int level;//树的层次

private String temphash;

private String rootHash;//即总数据的md5值

//md5加密方法

public String md5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{ //调用md5算法

MessageDigest md5=MessageDigest.getInstance("MD5");

BASE64Encoder base64en = new BASE64Encoder();

//执行md5计算

String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));

return newstr;

}

//构建一般的二叉树,nodeCount为节点总数

public void creatFullBT(int nodeCount){

root=recurCreateFullBT(1,nodeCount);

}

private Merkle_node recurCreateFullBT(int num,int nodeCount){

size++;

Merkle_node rootNode=new Merkle_node(num);

if(num*2<=nodeCount){

rootNode.left=recurCreateFullBT(num*2, nodeCount);

if(num*2+1<=nodeCount)

rootNode.right=recurCreateFullBT(num*2+1, nodeCount);

}

return (Merkle_node)rootNode;

}

//num表示数据块的数目,构建二叉树

public void createMT(String str) throws NumberFormatException, IOException, NoSuchAlgorithmException{ temphash="";

rootHash="";

//获取数据块个数,计算层次以及对原始数据进行分割

//BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));

//System.out.println("数据所分块数(2的倍数):");

//int num=Integer.parseInt(keyin.readLine());

int num=4;//确定数据块个数

String text=str;

int count=text.length()/num+1;

String[] txt=new String[num];

for(int i=0;i

if((i+1)*count>text.length())

txt[i]=text.substring(i*count);

else

txt[i]=(String) text.subSequence(i*count,(i+1)*count);

}

//定义空串的md5值

String nullvalue=md5("");

String[] hashtxt=new String[num];

level=1;

while(num!=1){

num/=2;

level++;

}

for(int i=0;i<(int)Math.pow(2,level-1);i++)

{

if(i>txt.length)

hashtxt[i]=nullvalue;

else

hashtxt[i]=this.md5(txt[i]);

}

this.creatFullBT((int)(Math.pow(2, level)-1));//构造空二叉树完毕

//向内部传递hash数值,从底层向上传递

for(int i=level;i>0;i--)

{

for(int j=0;j<(int)Math.pow(2, i-1);j++)

{

int c=(int)Math.pow(2, i-1)+j;

if(i==level){

setHash(c,hashtxt[j]);

}

else{

String sumhash="";//合并的hash值

getHash(c*2);//左结点

sumhash+=temphash;

getHash(c*2+1);//右结点

sumhash+=temphash;

setHash(c, this.md5(sumhash));//合并项进行md5运算

}

}

}

getHash(1);

rootHash=temphash;

}

public int size() {return size;}

public int level() {return level;}

public String getRootHash(){return rootHash;}

public String getHashbyindex(int index){

this.getHash(index);

return temphash;

}

//验证比较两个数据

public boolean cmp(String str) throws NumberFormatException, NoSuchAlgorithmException, IOException{ MerkleTree cp=new MerkleTree();

cp.createMT(str);

if(this.rootHash.equalsIgnoreCase(cp.getRootHash()))

return true;

else

return false;

}

//根据获取数据块判断是否完整

public boolean IsIntegrity(int v,String hash) throws NoSuchAlgorithmException, UnsupportedEncodingException{ int count=v;

String realHash=this.getRootHash();

while(count>1){

if(count%2==0)

hash+=getHashbyindex(count+1);

else

hash+=getHashbyindex(count-1);

hash=this.md5(hash);

count=count/2;

}

if(realHash.equalsIgnoreCase(hash))

return true;

else

return false;

}

//利用前序遍历的方式查找元素,设置md5值

public void setHash(int v,String hash){

setHash(v,root,hash);

}

private void setHash(int v,Merkle_node node,String hash){

if(node!=null){

if(node.elem==v){

node.hash_value=hash;

}

setHash(v,node.left,hash);

setHash(v,node.right,hash);

}

}

//前序遍历方式获取hash值

public void getHash(int v){

temphash="";//初始化

getHash(v,root);

}

private void getHash(int v,Merkle_node node){

if(node!=null){

if(node.elem==v){

temphash = node.hash_value;

}

getHash(v,node.left);

getHash(v,node.right);

}

}

public static void main(String[] args) throws IOException, NoSuchAlgorithmException {

BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));

MerkleTree MT=new MerkleTree();

System.out.println("输入文本进行构建MerkleTree:");

String text=keyin.readLine();

MT.createMT(text);

//验证消息情况

System.out.println("实现消息认证:");

System.out.println("输入另外一串文本进行验证:");

String str=keyin.readLine();

if(MT.cmp(str))

System.out.println("验证成功!");

else

System.out.println("验证失败!");

//根据获取块确定消息是否完整

System.out.println("根据获取块确定消息是否完整");

System.out.println("以下用于测试,输出第四位的md5值:");

System.out.println(MT.getHashbyindex(4));

System.out.println("输入你所获取的数据块位置:");

int index=Integer.parseInt(keyin.readLine());

System.out.println("输入你所获取的数据块内容:");

String contxt=keyin.readLine();

if(MT.IsIntegrity(index, contxt))

System.out.println("验证正确!");

else

System.out.println("验证失败!");

}

}

五、实验报告要求

1. 针对以上实验要求(目的、步骤等),在报告中明确描述对各部分要求的完成情况,同时需将实验中的各种现象、问题及结论等在报告中清晰反映(应提供必要的截图和相关注解说明),并最终做出实验总结。

2. 实验为独立完成,实验报告必须个人独立完成。

3. 实验报告封面参照附件格式,且应将红色文字部分改为每次实验的实际内容。

4.超过实验内容的部分也可以写入实验报告。

5. 实验报告应在规定时间( 6月7日)之前上交,且上交内容包括打印稿和电子稿,由各班班长负责收齐后统一上交。

数据结构实验七 查找

实验七查找 一、实验目的 1. 掌握查找的不同方法,并能用高级语言实现查找算法; 2. 熟练掌握二叉排序树的构造和查找方法。 3. 熟练掌握静态查找表及哈希表查找方法。 二、实验内容 设计一个读入一串整数,然后构造二叉排序树,进行查找。 三、实验步骤 1. 从空的二叉树开始,每输入一个结点数据,就建立一个新结点插入到当前已生成的二叉排序树中。 2. 在二叉排序树中查找某一结点。 3.用其它查找算法进行排序(课后自己做)。 四、实现提示 1. 定义结构 typedef struct node { int key; int other; struct node *lchild, *rchild; } bstnode; void inorder ( t ) { if (t!=Null) { inorder(t→lchild); printf(“%4d”, t→key); inorder(t→rchild); } } bstnode *insertbst(t, s) bstnode *s, *t; { bstnode *f, *p; p=t;

while(p!=Null) { f=p; if (s→key= =p→key) return t; if (s→key

实验室管理制度修订

1实验室规范化管理 1.1实验室规范化管理基本要求 ⑴建立严格的实验室管理制度,明确责任和要求,防止操作人员违规操作; ⑵保持实验室环境整洁,注意操作细节,避免由于操作人员失误给实验室带来沾污。经常彻底地清洁实验室及其设备,严禁用扫帚扫地,尽量不用电风扇,避免扬尘和过分潮湿; ⑶工作人员进入操作间应更换衣、帽和鞋,严禁将与实验无关的物品带入实验室,避免污染、影响实验操作; ⑷相互产生交叉污染或干扰的项目必须分室进行; ⑸应建立制度,使有控制要求的区域不准随意进入,无关人员不准随意进出实验室; ⑹不同项目的台面和物品不准混用,必须在通风柜内进行的实验操作应严格遵守。 1.2 实验室环境 ⑴实验室布局合理,便于工作,周围环境和测试项目间不产生干扰和交叉污染。如水质中氨氮和总硬度的测定不能在同一间实验室进行,因为总硬度测定时使用氨水会使氨氮的测量值增高; ⑵对温度、湿度有严格要求的测试场所(如精密仪器室)必须配置相应设施及监控设备,并对测试时的环境条件进行记录; ⑶当电磁干扰、噪声或振动等环境因素对检测工作有影响时,应采取专门的监控措施,并记录有关的实测参数;对有振动要求和易产生较大振动的检测项目,应有隔振防振措施; ⑷精密仪器不得与化学分析实验室混放,以避免仪器受潮以及酸碱等化学品腐蚀; ⑸实验区域与办公区域适当分开,并对进入和使用可能影响工作质量的区域进行限制和控制; ⑹有良好的内务管理,保持实验室的清洁、整齐、明亮、安静; ⑺实验室内产生的废水、废气及其它要素等有害物质应有处理措施,符合环境保护要求; ⑻样品间要划出待检区、在检区、检毕区、留样区,特殊区域要有明显标识; ⑼应有独立的纯水制备间。 1.3 实验室物品及试剂管理 ⑴实验室内物品管理,分为在用、报废、闲置三类,并有序、整齐摆放,

如何管理好实验室的各类文件

如何管理好实验室的各类文件 实验室文件的分类 实验室质量体系使用的文件按类别分为管理文件和技术文件。管理文件包括质量方针、目标、质量手册、程序文件、各种管理规定、计划、通知和各种管理活动的记录等。技术文件包括校准、测试依据的方法、标准、图纸、图样、软件、说明书、核查规范、软件确认规范、设备操作规程、校准、测试记录等。 按来源分为内部制定的和来自外部的,内部制定的有质量方针、目标、质量手册、程序文件、管理规定、自编方法、指导书、计划、通知、各种记录表格等。来自外部的有法律、法规和规章、制度、标准、规范、以标准发布的检测和校准方法、图纸、图样、软件、说明书和参考数据手册等。 实验室内部文件管理 (1)凡作为质量体系组成部分发给实验室人员的文件,在发布之前应由授权人员审查、批准。制定文件清单,清单中包括序号、文件名称、代号、版本、数量等信息。建立文件发放和回收登记,文件发放和回收登记中包括文件名称、代号、版本、数量、领用人、交回人签名、领用和交回日期、文件的受控号等信息。 (2)实验室质量体系所有文件都应做出唯一性标识、唯一性标识包括发布日期、修订标识、页码、总页数或表示文件结束的标记和颁发机构等,对有保密规定的文件应确定适当的密级。 (3)自编方法的确认。实验室自编方法时,应拟订编制计划,计划的内容包括:自编方法预计达到的指标、自编方法的编制进度、自编方法的试验条件和使用要求、自编方法所需经费预算等,计划经实验室最高管理者批准后组织实施。自编方法初稿完成后应组织相关人员进行评审,填写评审记录。经评审确认能够满足校准、测试工作要求,经实验室技术负责人批准后方可下发使用。 存入计算机系统的文件管理 管理对存入计算机系统的文件应设定更改的授权,防止非授权人接触和修改文件;应在计算机系统以外保留备份件,保证在文件丢失或其它非正常情况下,仍有正确的文件;对于已批准不允许随意更改的文件应做只读处理;对于批准修改部分应在所有备份中确保正确更新。 外来文件的管理 (1)对外来的法律、法规和规章、制度、标准、规范、以标准发布的检测或校准方法,实验室应和自编文件一样制定清单,建立发放、回收登记,给出受控编号。 (2)对外来的图纸、图样、软件、说明书和参考数据手册等,实验室应制定清单,建立借阅登记。

数据结构实验报告七查找、

云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期:2010秋季学期 任课教师: 实验题目: 查找算法设计与实现 姓名: 王辉 学号: 20091120154 电子邮件: 完成提交时间: 2010 年 12 月 27 日

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色: 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) 1 哈希表查找。根据全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。 熟悉各种查找算法的思想。 2、掌握查找的实现过程。 3、学会在不同情况下运用不同结构和算法求解问题。 4 把每个学生的信息放在结构体中: typedef struct //记录 { NA name; NA tel; NA add; }Record; 5 void getin(Record* a)函数依次输入学生信息 6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数,并返回模值。并采用二次探测再散列法解决冲突。 7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1抽象数据类型的功能规格说明和结构体: #include

数据结构实验7实验报告

暨南大学本科实验报告专用纸 课程名称数据结构实验成绩评定 实验项目名称习题6.51 指导教师孙世良 实验项目编号实验7 实验项目类型实验地点实验楼三楼机房学生姓名林炜哲学号2013053005 学院电气信息学院系专业软件工程 实验时间年月日午~月日午温度℃湿度(一)实验目的 熟悉和理解二叉树的结构特性; 熟悉二叉树的各种存储结构的特点及适用范围; 掌握遍历二叉树的各种操作及其实现方式。 (二)实验内容和要求 编写一个算法,输出以二叉树表示的算术表达式,若该表达式中含有括号,则应该在输出时添上。 (三)主要仪器设备 实验环境:Microsoft Visual Studio 2012 (四)源程序 #include #include typedef struct bitnode{ char data; struct bitnode *lchild,*rchild; }bitnode,*bitree; void create(bitree &T){ char t; t=getchar();

if(t==' ') T=NULL; else{ if( !( T=(bitnode*)malloc(sizeof(bitnode)) ) ) exit(0); T->data=t; create(T->lchild); create(T->rchild); } } void middle_order(bitree &Node){ if(Node != NULL){ if((Node->data=='*'||Node->data=='/')&&(Node->lchild->data=='+'|| Node->lchild->data=='-')) printf("( "); middle_order(Node->lchild); if((Node->data=='*'||Node->data=='/')&&(Node->lchild->data=='+'|| Node->lchild->data=='-')) printf(") "); printf("%c ", Node->data); if((Node->data=='*'||Node->data=='/')&&(Node->rchild->data=='+'|| Node->rchild->data=='-')) printf("( "); middle_order(Node->rchild); if((Node->data=='*'||Node->data=='/')&&(Node->rchild->data=='+'|| Node->rchild->data=='-')) printf(") "); } } int main() { bitree y; printf("以先序遍历的方式输入二叉树:"); create(y); printf("输出表达式:"); middle_order(y); return 0; } (五)数据调试

数据结构实验七图的创建与遍历

实验七图的创建与遍历 实验目的: 通过上机实验进一步掌握图的存储结构及基本操作的实现。 实验内容与要求: 要求: ⑴能根据输入的顶点、边/弧的信息建立图; ⑵实现图中顶点、边/弧的插入、删除; ⑶实现对该图的深度优先遍历; ⑷实现对该图的广度优先遍历。 备注:单号基于邻接矩阵,双号基于邻接表存储结构实现上述操作。算法设计: #include #include #define INFINITY 32767 #define MAX_VEX 20 //最大顶点个数 #define QUEUE_SIZE (MAX_VEX+1) //队列长度 using namespace std; bool *visited; //访问标志数组 //图的邻接矩阵存储结构 typedef struct{ char *vexs; //顶点向量 int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数 }Graph; //队列类 class Queue{ public: void InitQueue() { base=(int *)malloc(QUEUE_SIZE*sizeof(int)); front=rear=0;

. } void EnQueue(int e) { base[rear]=e; rear=(rear+1)%QUEUE_SIZE; } void DeQueue(int &e) { e=base[front]; front=(front+1)%QUEUE_SIZE; } public: int *base; int front; int rear; }; //图G中查找元素c的位置 int Locate(Graph G,char c) { for(int i=0;i

(完整版)实验室管理文件

精心整理 实验室实验规章总则 一、实验室是化学化工学院实验中心下属单位,所有规章制度都不得违背实验中心各项制度,作为化学工程与工艺专业的教学、科研重地,必须加强管理,确保正常的教学、科研秩序。 定程序报批。 七、实验室仪器设备必须按学校有关规定建立帐、卡,专人保管,严格履行领物、借用、登记手续,定期清查核对,保持帐、物、卡一致。八、实验室工作人员要坚守岗位,搞好清洁卫生,做好安全与环境保护工作,人员离开时必须关好门窗、水龙头、断开电(气)源等。

九、与本实验室教学、科研无关人员不得擅自进入实验室,实验室开展对外服务须按学校有关程序进行审批。 十、参与实验的所有人员必须熟悉灭火器材的放置地点和使用方法,安全用具要妥善保管。 实验室安全管理制度 一、在实验中对有可能发生燃烧、爆炸的药品,需视性质、数量情况,采取可靠的 放。 八、任何化学药品一经放置于容器后,必须立即贴上标签,如发现异常,应检验证明或询问保管人员,不得随意乱丢乱放,有毒物品要集中存放和处理。 九、严格遵守实验安全操作规程和化学药品的保管使用制度,遵循实验指导书的要求进行实验,防止因急于求成或思想麻痹而不按操作规程进行作业以及违反化学物品保管使用制度,而引起燃烧或爆炸事故

十、做实验期间严禁脱岗。晚上、节假日做某些危险实验的室内应有二人以上,方可实验。 十一、不能继续使用和保管的药品,应按规定及时处理或销毁。在实验室明显处放置必要的灭火器材,做好灭火准备。 实验室药品的使用管理制度 一、化学药品必须根据化学性质分类存放,易燃、易爆、剧毒、强腐蚀品不得混放; 处理; 制定合理的储存量,不许过量且包装容器应密封性好;八、遇水能分解或燃烧、爆炸的药品,钾、钠、三氯化磷、五氯化磷、发烟硫酸、硫磺等不准与水接触,不准放置于潮湿的地方储存; 九、所有化学药品、试剂等未经许可不得擅自带出实验室;

数据结构实验七

(*ht)[i].RChild = 0; } for(i=n+1;i<=m;i++){ (*ht)[i].weight = 0; (*ht)[i].LChild = 0; (*ht)[i].parent = 0; (*ht)[i].RChild = 0; } for(i=n+1;i<=m;i++){ YLX_select(ht,i-1,&s1,&s2); (*ht)[s1].parent=i; (*ht)[s2].parent=i; (*ht)[i].LChild=s1; (*ht)[i].RChild=s2; (*ht)[i].weight=(*ht)[s1].weight+(*ht)[s2].weight ; } } void YLX_outputHuffman(HuffmanTree HT, int m){ if(m!=0){ YLX_outputHuffman(HT,HT[m].LChild); if(!HT[m].LChild&&!HT[m].RChild)printf("%c \t", HT[m].data); YLX_outputHuffman(HT,HT[m].RChild); } } void YLX_CrtHuffmanCode(HuffmanTree *ht, HuffmanCode *hc, int n){ char *cd; int i; unsigned int c; int start; int p; hc=(HuffmanCode *)malloc((n+1)*sizeof(char *)); cd=(char * )malloc(n * sizeof(char )); cd[n-1]='\0'; for(i=1;i<=n;i++){ start=n-1; for(c=i,p=(*ht)[i].parent; p!=0; c=p,p=(*ht)[p].parent) if( (*ht)[p].LChild == c) cd[--start]='0'; else cd[--start]='1'; hc[i]=(char *)malloc((n-start)*sizeof(char)); strcpy(hc[i],&cd[start]); } free(cd); for(i=1;i<=n;i++) printf("%c编码为%s\n",(*ht)[i].data,hc[i]); } void main() { HuffmanTree HT; HuffmanCode HC; int n; int m; printf("*******袁丽湘*******"); printf("\n"); printf("输入叶子节点的个数:" ); scanf("%d",&n); YLX_CrtHuffmanTree(&HT,n); m=2*n-1;printf("中序输出哈夫曼树叶子节点:\n"); YLX_outputHuffman(HT,m); printf("\n"); YLX_CrtHuffmanCode(&HT,&HC,n); } 六、运行结果截图

实验室管理体系文件宣贯培训考试(2011)答案

实验室管理体系文件宣贯培训考试(2011)答案 姓名:得分: 一、填空题30分(每一空格2分)。 1、实验室或其所在组织应是一个能够承担法律责任的实体。 2、最高管理者应确保在实验室内部建立适宜的沟通机制,并就确保与管理体系有效性的事宜进行沟通。 3、内部审核的周期通常应当为 1 年。 4、管理评审的典型周期为12 月。 5、本实验室检测程序文件有 28 个。 6、本实验室体系文件是由质量体系编写小组编写,发布时间是 2013年8月1日 7、管理手册、程序文件和管理类记录文件由质量负责人审核,总经理批准;作业指导书及技术类记录文件由质量负责人审核,技术负责人批准发布;质量计划由有关部门负责人审核,相关职能负责人(技术负责人或质量负责人)批准。 8、本检测公司代码(××)+分隔符(/)+文件分类代码(××)+年份。其中 XJ 指“九江市鑫洁生产环境科技有限公司”,SC指管理手册,CX指程序文件,ZD指作业指导书 二、选择题20分(每题2分),将正确答案填在括号内。 1、本检测公司依据( A)建立能保证检测工作公正性、独立性和与检测工作活动相适应的管理体系,并文件化。 A、《实验室资质认定评审准则》 B、ISO/IEC17025:2005《检测和校准实验室能力的通用要求》 C、GB/T27025-2008《检测和校准实验室能力的通用要求》 D《实验室和检查机构资质认定管理办法》 2、实验室所出具的报告应有(C)来签署才有效。 A、技术员 B、质量主管 C、授权报告签署人 D、技术主管 3、下列(D)属于要书面通知客户。 A、分包安排 B、实验室搬迁时 C、实验室结果可能使客户受到影响 D、以上皆是 4、下列(E )需要唯一性标识。 A、样品 B、文件 C、设备 D、修改后,出具的全新报告 E、以上皆是 5、当设备停止使用时,实验室应执行(A ) A、明显标示 B、借给其他实验室 C、用布遮起来 D、不处理 E、口头告知人员 6、ISO/IEC17025标准规定了实验室从事检测的通用要求,这些检测包括运用(D )。 A、标准方法 B、非标准方法 C、实验室自制的方法 D、以上皆是 7、按ISO/IEC17025标准要求,当实验室接受客户投诉时,应(E)。 A、请客户吃饭 B、该次试验免费 C、建立投诉处理程序 D、销毁试验记录 E、以上皆非 8、当出现(D)时,应执行附加评审。 A、技术人员变动 B、文件修改 C、不符合或偏离的确认,导致对政策和程序的怀疑时 D、以上皆是 9、实验室保存技术记录的的主要原因( E )。

数据结构实验报告[3]

云南大学 数据结构实验报告 第三次实验 学号: 姓名: 一、实验目的 1、复习结构体、指针; 2、掌握链表的创建、遍历等操作; 3、了解函数指针。 二、实验内容 1、(必做题)每个学生的成绩信息包括:学号、语文、数学、英语、总分、加权平均分;采用链表存储若干学生的成绩信息;输入学生的学号、语文、数学、英语成绩;计算学生的总分和加权平均分(语文占30%,数学占50%,英语占20%);输出学生的成绩信息。 三、算法描述 (采用自然语言描述) 首先创建链表存储n个学生的成绩信息,再通过键盘输入学生的信息,创建指针p所指结点存储学生的成绩信息,从键盘读入学生人数,求出学生的总分和加权平均分,输出结果。 四、详细设计 (画出程序流程图)

五、程序代码 (给出必要注释) #include #include typedef struct score {int number; int chinese; int math; int english; int total; float average; struct score *next; } student; //创建链表存储n个学生的信息,通过键盘输入信息student*input_score(int n) {int i; student*stu,*p; for(i=0,stu=NULL;inumber);

ISO17025(CNAS)实验室认可条件清单

一、什么是CNAS认证? CNAS认证,为中国合格评定国家认可委员会(China National Accreditation Service for Conformity Assessment,CNAS)的认证英文缩写,是在原中国认证机构国家认可委员会(CNAB)和中国实验室国家认可委员会(CNAL)基础上合并重组而成的。 二、CNAS与17025的区别: 2.1定义不同: ISO17025是实验室认可服务的国际标准,全称是ISO/IEC17025:2005-5-15《检测和校准实验室能力的通用要求》; CNAS是中国合格评定国家认可委员会,是根据《中华人民共和国认证认可条例》的规定,由国家认证认可监督管理委员会批准设立并授权的国家认可机构。 2.2作用不同: ISO17025: (1)表明实验室具备了按有关国际准则开展校准/检测的技术能力; (2)增强实验室在校准/检测市场的竞争能力,赢得政府部门和社会各界的信任; (3)参与国际实验室认可双边、多边合作,得到更广泛的承认。 CNAS: (1)按照我国有关法律法规、国际和国家标准、规范等,建立并运行合格评定机构国家认可体系,制定并发布认可工作的规则、准则、指南等规范性文件; (2)对境内外提出申请的合格评定机构开展能力评价,作出认可决定,并对获得认可的合格评定机构进行认可监督管理;

(3)负责对认可委员会徽标和认可标识的使用进行指导和监督管理; (4)组织开展与认可相关的人员培训工作,对评审人员进行资格评定和聘用管理。 2.3认可机构不同: ISO17025:中国实验室国家认可委员会是我国唯一的实验室认可机构,承担全国所有实验室的 ISO17025标准认可; 中国认证机构国家认可委员会(CNAS)是经中国国家认证认可监督管理委员会依法授权设立的国家认可机构,负责对从事各类管理体系认证和产品认证的认证机构进行认证能力的资格认可。 三、实验室CNAS认可条件一览表:

实验室管理制度文件

一、实验室是教师及学生完成教学任务的重要场所,所有教师及学生应自觉维护和遵守实验室规则。 二、任课教师和实验员要密切配合实验室管理人员开展工作。 三、实验室内所有仪器、设备、实验用品,未经负责实验的教师同意,一律不得随意挪动,仪器、设备外借必须经主管领导同意。 四、学生在进行实验前应按照“实验指导”教材充分预习和准备,实验结束后,应按照实验室教师的要求,规整各类实验器物和用品。 五、实验室内所有仪器、设备、实验用品,不能随意损坏或丢失,应加以爱护,以保证下次实验的延续进行,如有损坏,丢失应酌情按价赔偿。 六、实验室是课堂教学场所,不得喧哗、互相干扰和影响,保证实验过程的顺利进行。 七、实验室应保证整洁、卫生,每次实验结束后,应有值日学生负责清理和打扫。仪器、器材每学期清查一次,及时做好报损报废和增添登记工作。 八、实验室应严格遵守安全,管理规则,实验结束后要及时关好门窗,切断电源、水源。并做好实验记录。 东阳学校

一、本校教职工凡借用实验室仪器设备,必须先填好借用单,报学校总务处批准,再由实验员经手借出,借者必须妥善使用和保养设备,如期归还,归还时由实验员逐一验收,确认无错、漏、损后,再在借用单上签收。如有损坏,按实验室赔偿制度处理。 二、凡实验室贵重精密仪器(每件价在200元以上)不准私人借用,也不准擅自出租。外单位确需借用者,必须经学校领导批准,并严格履行借用手续和执行损失赔偿制度。 三、实验员必须忠于职守,严格执行借用制度,严格检查和验收。如因玩忽职守,致使实验室财产造成损失者,应按市有关文件追究其责任。 东阳学校

维修保养制度 一、实验员必须掌握各种仪器设备的工作原理、构造和性能,掌握各种材料、药品的性能和用途。科学地保管各种仪器设备,经常检查,及时维修,力争小维修自己解决,不能解决的要及时报学校领导批准送维修部门维修,保证仪器设备台件完好率在90%以上。 二、实验员必须定期清理仪器设备,每周一次,做好六防:防尘、防潮、防锈、防压、防虫、防腐。仪器入柜应按照仪器性能特点,做好四放:平放、侧放、竖放和吊放。学生实验完毕,必须及时清理仪器,验收入库,要保持实验室的清洁卫生。 东阳学校

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

实验室认可(CNAS)咨询方案

国家实验室认可咨询方案 北京爱格森信息咨询有限公司 Beijing Action Information Consultant Limited Company 联系人:黄山 电话:0 传真:0 手机: E—m ail: 公司网址: 公司地址:北京市通州区九棵树瑞都国际2号808 邮编:101121

目录 一、北京爱格森信息咨询公司简介............................................ 错误!未定义书签。 1、公司简介........................................................... 错误!未定义书签。 2.公司服务宗旨....................................................... 错误!未定义书签。 3.公司咨询承诺....................................................... 错误!未定义书签。 4.公司优势........................................................... 错误!未定义书签。 5. 公司咨询项目....................................................... 错误!未定义书签。 6. 公司咨询部分成功案例............................................... 错误!未定义书签。 二、国家实验室认可简介.................................................... 错误!未定义书签。 1.什么是实验室认可................................................... 错误!未定义书签。 2.实验室认可的目的、意义和作用....................................... 错误!未定义书签。 3.实验室认可的基本原则................................................ 错误!未定义书签。 4.目前的认可状态...................................................... 错误!未定义书签。 5.实验室认可证书样式.................................................. 错误!未定义书签。 三、国家实验室认可咨询流程图.............................................. 错误!未定义书签。 四、国家实验室认可培训方案................................................ 错误!未定义书签。 1. 国家实验室认可培训计划............................................. 错误!未定义书签。 2. 国家实验室认可专项培训课程内容..................................... 错误!未定义书签。 五、国家实验室认可咨询方案................................................ 错误!未定义书签。 1、实验室认可咨询参考计划............................................. 错误!未定义书签。 1、实验室认可咨询参考方案............................................. 错误!未定义书签。 六、国家实验室认可申请/取证指导书......................................... 错误!未定义书签。 1. 申请要求........................................................... 错误!未定义书签。 2. 国家实验室认可流程................................................. 错误!未定义书签。 3. 国家实验室认可评审费............................................... 错误!未定义书签。

数据结构课程实验报告(7)

课程实验报告课程名称:数据结构 专业班级:信安 学号: 姓名: 指导教师: 报告日期:2015.4.5 计算机科学与技术学院

目录 1 课程实验概述 (1) 2 实验一基于顺序结构的线性表实现 2.1 问题描述 (2) 2.2 系统设计 (2) 2.3 系统实现 (7) 2.4 效率分析 (11) 3 实验二基于链式结构的线性表实现 3.1 问题描述 (12) 3.2 系统设计 (12) 3.3 系统实现 (14) 3.4 效率分析 (22) 4 实验三基于二叉链表的二叉树实现 4.1 问题描述 (23) 4.2 系统设计 (23) 4.3 系统实现 (32) 4.4 效率分析 (43) 5 实验总结与评价 (45)

1 课程实验概述 上机实验是对学生的一种全面综合训练,是与课堂听课、自学和练习相辅相成的必不可少的一个教学环节。实验目的着眼于原理与应用的结合,使学生学会如何把书上的知识用语解决实际问题,能够理解和运用常用的数据结构,如线性表、栈、队列、树、图、查找表等,并在此基础上建立相应的算法;通过上机实验使学生了解算法和程序的区别,培养学生把算法转换为程序的能力,提高学生解决实际问题的能力;学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。

2 实验一基于顺序结构的线性表实现 2.1 问题描述 编写一个程序,实现顺序表的各种基本运算,并在此基础上完成以下功能: 1) 初始化顺序表; 2) 释放顺序表; 3) 判断顺序表L是否为空; 4) 输出顺序表L的长度; 5) 输出顺序表L的第i个元素; 6) 输出元素e的位置; 7) 输出元素e的前一个元素; 8) 输出元素e的后一个元素; 9) 在第i个元素位置上插入f元素; 10) 删除L的第i个元素; 11) 输出顺序表L; 12) 保存顺序表L的数据。 2.2 系统设计 1、数据类型 顺序表:typedef struct { ElemType * elem; //线性表首地址 int length; //线性表当前长度 int listsize; //线性表最大长度 }SqList; 数据类型:int(可以在头文件中更改数据类型) 输入形式:文件读取、键盘输入 输入范围:-2^15~2^16 2、函数返回状态 判断为真:TRUE 0 判断为假:FALSE -1 函数正确执行:OK -2 函数执行错误:ERROR -3 元素不存在:NOTEXIST -4 内存分配溢出:OVERFLOW -5

实验室认可程序规则

实验室认可程序规则 1前言 1.1国防科技工业实验室认可委员会(英文缩写为:DILAC,以下简称国防认可委)依据国家相关法律法规和国际规范开展实验室认可(以下简称认可)工作,遵循的原则是:客观公正、科学规范、诚实守信、廉洁高效。 1.2认可程序是国防认可委认可工作公正性和规范性的重要保障,国防认可委依据《国防科技工业实验室认可委员会章程》编制本规则。 2适用范围 2.1本规则适用于承担国防科技工业检测和校准任务的检测实验室和校准实验室的认可。 2.2本规则规定了国防认可委认可体系运作的程序,包括认可条件,认可流程,暂停、恢复、撤销认可以及获准认可机构的权利和义务,是国防认可委认可活动的程序规则。 3引用文件 3.1DILAC/J01:2008《国防科技工业实验室认可委员会章程》 3.2ISO/IEC17000:2004《合格评定—术语和总则》 3.3DILAC/J03:2008《专门委员会管理规则》 3.4DILAC/AR02:2008《公正性与保密规则》 3.5DILAC/AR03:2008《认可标识与认可证书管理规则》 3.6DILAC/AR04:2008《申诉、投诉与争议处理规则》 3.7DILAC/AR05:2008《评审员与技术专家管理规则》 3.8DILAC/AR06:2008《实验室认可收费管理规则》 3.9DILAC/AR07:2008《能力验证规则》 3.10DILAC/AR08:2008《量值溯源要求》

3.11DILAC/AR09:2008《测量不确定度评估和报告通用要求》 4定义 4.1实验室:从事检测和/或校准工作的机构。 4.2实验室认可:对检测和/或校准实验室是否有能力进行指定类型的检测和/或校准作出一种正式承认的程序。 4.3认可条件:申请人为获得认可资格必须满足的全部要求。 4.4申请人:正在寻求认可的机构。 4.5获准认可机构:已获得认可资格的机构。 4.6暂停认可:使部分或全部认可范围暂时无效的过程。 4.7恢复认可:被暂停认可的获准认可机构,在规定的期限内已实施有效的纠正措施,经确认后,恢复认可资格的活动。 4.8撤销认可:取消全部认可的过程。 4.9评审:依据特定标准和(或)其它规范性文件,在确定的认可范围内,对申请人和获准认可机构的管理体系和申报的技术能力进行评价的过程。 4.10监督评审:为验证获准认可机构是否持续地符合认可条件而在认可有效期内安排的定期或不定期的评审。 4.11复评审:在认可证书有效期结束前对获准认可机构实施的全面评审,以确定是否持续符合认可条件,并将认可延续到下一个有效期。 4.12认可评定:根据认可条件对在文件评审、现场评审或认可规则允许的其他来源得到的客观证据进行符合性审查,以做出认可或维持认可与否的决定。 4.13观察员:为特定目的派出的对评审活动进行现场观察的人员,不参与评审工作。 4.14咨询:参与申请人与获准认可机构以获得认可为目的的任何活动。5认可条件

数据结构实验报告图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif #include using namespace std; #include "" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0;

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include >验目的 掌握顺序栈的基本操作:初始化栈、判栈空否、入栈、出栈、取栈顶数据元素等运算以及程序实现方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)分析问题的要求,编写和调试完成程序。 (3)保存和打印出程序的运行结果,并分析程序的运行结果。 3.实验内容 利用栈的基本操作实现一个判断算术表达式中包含圆括号、方括号是否正确配对的程序。具体完成如下:

(1)定义栈的顺序存取结构。 (2)分别定义顺序栈的基本操作(初始化栈、判栈空否、入栈、出栈等)。 (3)定义一个函数用来判断算术表达式中包含圆括号、方括号是否正确配对。其中,括号配对共有四种情况:左右括号配对次序不正确;右括号多于左括号;左括号多于右括号;左右括号匹配正确。 (4)设计一个测试主函数进行测试。 (5)对程序的运行结果进行分析。 实验代码: #include < > #define MaxSize 100 typedef struct { ??? int data[MaxSize]; ??? int top; }SqStack; void InitStack(SqStack *st) 验目的 (1)进一步掌握指针变量的用途和程序设计方法。 (2)掌握二叉树的结构特征,以及链式存储结构的特点及程序设计方法。 (3)掌握构造二叉树的基本方法。 (4)掌握二叉树遍历算法的设计方法。 3.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)掌握一个实际二叉树的创建方法。 (3)掌握二叉链存储结构下二叉树操作的设计方法和遍历操作设计方法。 4.实验内容 (1)定义二叉链存储结构。

相关文档
相关文档 最新文档