实验8 CSV数据文件操作

实验8  CSV数据文件操作
实验8  CSV数据文件操作

实验8 CSV数据文件操作

实验目的:了解CSV格式数据记录文件结构,掌握大数据量记录的查询技巧。

实验内容:编程设计一个成语接龙游戏。

具体要求如下:

1、判断输入词语是否是成语;

2、可以判断是否符合成语接龙游戏规则;

3、可以实现提示功能;

4、可以实现显示成语含义的功能;

实验步骤:(基于MFC对话框应用程序实现。)

1、界面设计

2、控件变量定义

3、创建“Idiom”类

3.1“Idiom.h”文件内容

// Idiom.h: interface for the Idiom class.

//

///////////////////////////////////////////////////////////////////// /

#include

#if !defined(AFX_IDIOM_H__C9A16E11_19F4_4BCF_B7D0_4CCF4FA5AE2D__INCLU DED_)

#define AFX_IDIOM_H__C9A16E11_19F4_4BCF_B7D0_4CCF4FA5AE2D__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

class Idiom

{

private:

CString Idiom1[30805];//成语

CString Idiom2[30805];//读音

CString Idiom3[30805];//释义

CString Idiom4[3041];//首字

unsigned long Idiom5[3041];//首字在大表位置

public:

void Help(CString C1,int *nIndex1);

void Help(CString C1);

int Distinguish(CString nC1);

void Solitaire(CString C1,CString C2,int *nIndex1);

void GetIdiom(long Index,CString *txt1,CString *txt2,CString *txt3);

Idiom();

virtual ~Idiom();

};

#endif

// !defined(AFX_IDIOM_H__C9A16E11_19F4_4BCF_B7D0_4CCF4FA5AE2D__INCLUD ED_)

3.2“Idiom.cpp”文件内容

// Idiom.cpp: implementation of the Idiom class.

//

///////////////////////////////////////////////////////////////////// /

#include "stdafx.h"

#include "shiyan3.h"

#include "Idiom.h"

#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[]=__FILE__;

#define new DEBUG_NEW

#endif

///////////////////////////////////////////////////////////////////// /

// Construction/Destruction

///////////////////////////////////////////////////////////////////// /

Idiom::Idiom()

{

CStdioFile file1;

CString str;

unsigned long row1=0;

int count=0;

int index;

file1.Open(_T("a1.csv"),CFile::modeRead); while(file1.ReadString(str))

{

//str = str.Trim(_T(" "));

str.TrimLeft();

str.TrimRight();

count=0;

index = str.Find(_T(","));

while (index != -1 && row1<30804)

{

switch(count)

{

case 0:

Idiom1[row1]=_T(str.Left(index));

break;

case 1:

Idiom2[row1]=_T(str.Left(index));

break;

}

count++;

str=str.Right(str.GetLength()-index-1);

index = str.Find(_T(","));

}

if(row1<30804)

{

Idiom3[row1]=_T(str);

}

row1++;

}

file1.Close();

//---------------------------------

file1.Open(_T("a2.csv"),CFile::modeRead);

row1=0;

while(file1.ReadString(str))

{

//str = str.Trim(_T(" "));

str.TrimLeft();

str.TrimRight();

count=0;

index = str.Find(_T(","));

while (index != -1 && row1<3040)

{

switch(count)

{

case 0:

Idiom4[row1]=_T(str.Left(index));

break;

}

count++;

str=str.Right(str.GetLength()-index-1);

index = str.Find(_T(","));

}

if(row1<3040)

{

Idiom5[row1]=_ttol(str);

}

row1++;

}

file1.Close();

}

Idiom::~Idiom()

{

}

void Idiom::GetIdiom(long Index, CString *txt1, CString *txt2, CString *txt3)

{

int n1=rand();

if (Index>=0 && Index<30804)

{

*txt1=Idiom1[Index];

*txt2=Idiom2[Index];

*txt3=Idiom3[Index];

}

else

{

if (n1>30840)

{

n1=n1/2;

}

*txt1=Idiom1[n1];

*txt2=Idiom2[n1];

*txt3=Idiom3[n1];

}

}

void Idiom::Solitaire(CString C1,CString C2,int *nIndex1) {

CString nC1,nC2;

int n1;

nC1=C1.Right(2);//当前成语的最后一个字

nC2=C2.Left(2); //答案词的第一个字

if(nC1==nC2)

{

n1=0;//接语成功

*nIndex1=Distinguish(C2);

}

}

int Idiom::Distinguish(CString nC1)

{

CString nC2;

int n1,n2,m1,m2;

nC2=nC1.Left(2); //输入词的第一个字

for (n1=0;n1<3040;n1++)

{

if(Idiom4[n1]==nC2)

{

break;

}

}

if (n1<3040)

{

m1=Idiom5[n1]-1;

m2=Idiom5[n1+1];

for (n2=m1;n2

{

if(Idiom1[n2]==nC1)

{

return(n2);

}

}

}

return(-1);

}

void Idiom::Help(CString C1)

{

CString nC1,nC2;

int n1,n2,n3,m1,m2;

nC1=C1.Right(2); //输入词的最后一个字for (n1=0;n1<3040;n1++)

{

if(Idiom4[n1]==nC1)

{

break;

}

}

n3=0;

if (n1<3040)

{

m1=Idiom5[n1]-1;

m2=Idiom5[n1+1]-1;

for (n2=m1;n2

{

if(n3<20)

{

nC2 +=Idiom1[n2] ;

nC2 +="\r\n";

}

else

{

break;

}

n3++;

}

}

if (n3>0)

{

MessageBox(0,nC2,"合符要求的成语如下",1);

}

else

{

MessageBox(0,"没有合符要求的成语","警告",1);

}

}

void Idiom::Help(CString C1, int *nIndex1)

{

CString nC1,nC2;

int n1,m1,m2;

nC1=C1.Right(2); //输入词的最后一个字

for (n1=0;n1<3040;n1++)

{

if(Idiom4[n1]==nC1)

{

break;

}

}

if (n1<3040)

{

//*nIndex1=Idiom5[n1]-1;

m1=Idiom5[n1]-1;

m2=Idiom5[n1+1]-2;

m2=m2-m1;

if (m2<=0)

{

*nIndex1=Idiom5[n1]-1;

}

else

{

m2=rand()%m2;

*nIndex1=m1+m2;

}

}

else

{

*nIndex1=-1;

}

}

4、在“*Dlg”类中新建成员变量“myIdiom”,类型为“Idiom”类#include "Idiom.h" // Added by ClassView

Idiom myIdiom;

5、在项目中引用外部成语数据文件

复制“192.168.2.10\实验室文件\面向对象程序设计(龚志鹏)\实验9资源”内文件到本人项目中及项目下的“Debug”中。

6、加入事件响应代码

6.1

void CShiyan3Dlg::OnButton1()

{

// TODO: Add your control notification handler code here

CString c1,c2,c3;

int n1;

UpdateData(TRUE);

/*

myIdiom.GetIdiom(1,&c1,&c2,&c3);

m_ed1=c1;

m_ed3.Format("%s\r\n%s",c2,c3);

*/

myIdiom.Solitaire(m_ed1,m_ed2,&n1);

if (n1>0)

{

myIdiom.GetIdiom(n1,&c1,&c2,&c3);

m_ed1=c1;

m_ed3.Format("%s\r\n%s",c2,c3);

m_ed2="";

m_list1.InsertString(0,m_ed1);

//m_list1.AddString(m_ed1);

}

else

{

MessageBox("成语接龙错误!","警告");

}

UpdateData(FALSE);

}

6.2

void CShiyan3Dlg::OnComputer()

{

// TODO: Add your control notification handler code here CString c1,c2,c3;

int n1;

myIdiom.Help(m_ed1,&n1);

if (n1>=0)

{

myIdiom.GetIdiom(n1,&c1,&c2,&c3);

m_ed1=c1;

m_ed3.Format("%s\r\n%s",c2,c3);

m_list1.InsertString(0,m_ed1);

//m_list1.AddString(m_ed1);

UpdateData(FALSE);

}

else

{

MessageBox("没有合符要求的成语了!","警告");

}

}

6.3

void CShiyan3Dlg::OnReStart()

{

// TODO: Add your control notification handler code here CString c1,c2,c3;

int n1;

//srand(time(0));/*设置种子,并生成伪随机序列*/

//srand((unsigned)time(NULL));

n1=rand();/*得到伪随机数*/

m_list1.ResetContent();

myIdiom.GetIdiom(n1,&c1,&c2,&c3);

m_ed1=c1;

m_ed3.Format("%s\r\n%s",c2,c3);

m_ed2="";

m_list1.InsertString(0,m_ed1);

UpdateData(FALSE);

}

6.4

void CShiyan3Dlg::OnHelp()

{

// TODO: Add your control notification handler code here myIdiom.Help(m_ed1);

}

5.5“*Dlg”初始化

7、编译运行程序

(完整word版)分析化学实验理论题答案

一、滴定分析基本操作练习 滴定至临近终点时加入半滴的操作是怎样进行的? 将酸式滴定管的旋塞稍稍转动或碱式滴定管的乳胶管稍微松动,使半滴溶液悬于管口,将锥形瓶内壁与管口接触,使液滴流出,并用洗瓶以蒸馏水冲下。 标准溶液装入滴定管之前,为什么要用该溶液润洗滴定管2~3次?而锥形瓶是否也需用该溶液润洗或烘干,为什么?移取溶液至锥形瓶前,锥形瓶是否需要用原液润洗? 为了避免装入后的标准溶液被稀释而使得溶液浓度变小,使移液管内残留液体的浓度与试剂一致,减少误差;不需要,锥形瓶中有水也不会影响被测物质量的变化;不需要,会使待测液体积比计算的值偏大,使滴定液体积偏大,从而使测出浓度偏大,造成误差. 配制铬酸洗液是否要在分析天平上称K2Cr2O7?为什么? 因为铬酸洗液的配置是重铬酸钾饱和溶液加浓硫酸,重铬酸钾是工作基准物,所以直接称量就可以配置准确浓度的溶液。 如何判断器皿是否洗涤干净? 均匀润湿,不挂水珠。 滴定管滴定开始前应做哪些准备工作与处理工作?为什么?用来滴定的锥形瓶是否需要干燥,是否需要用被滴定溶液润洗几次以除去其水分?为什么? 使用前需用待盛装溶液洗涤,是为了不影响以后溶液浓度减小对实验结果的干扰。赶尽管尖气泡,调整零刻度,除去管尖外悬挂的半滴溶液。不需要,因为其他仪器不需要考虑浓度对结果的影响且实验时需加水。 移液管放完溶液后残留在移液管口内部的少量溶液,是否应当吹出去?为什么? 不能,校准移液管体积时不包括管口溶液,不算在移液管的刻度之内。 为什么滴定管、移液管、容量瓶等量器不能用去污粉洗涤? 残留的去污粉将会影响实验结果。一般用重铬酸钾洗液泡,再分别用自来水和去离子水冲干净。 滴定至终点时,如何滴加半滴溶液? 当滴定到一定程度时,滴定管嘴部悬有溶液,小心旋动滴定管活塞或挤压胶管,让滴定管下端液体处于悬而未滴的状况,然后轻轻靠一下锥形瓶口内壁,立即用蒸馏水将这半滴冲下去,并振荡锥形瓶。 各种记录应直接记录在实验报告指定格式上,若随意记在手上或零碎纸上可能会出现什么后果? 导致实验数据找不到或混乱。 配制NaOH溶液时,应选用何种天平称取试剂?为什么? 托盘天平。粗称不需要用精密仪器。 有同学认为,滴定管不需要调零,只要分别读取滴定前后溶液的体积读数算出体积差即可得到消耗的滴定剂的体积。该观点是否正确?为什么? 滴定管上的刻度线并非均匀的,滴定管上下部分体积不等,不调零读数会导致整个实验读数误差增大,不利于实验的进行。 NaOH滴定HCl可否用甲基橙试剂,HCl滴定NaOH可否用酚酞试剂?不可以。因为人眼所能观察到的滴定前后颜色变化的敏锐情况不同,为了尽量减小实验误差,必须选用变色明显的。NaOH→HCl用酚酞,指示剂从无色→有色,浅→深易观察;HCl→NaOH用甲基橙,指示剂从有色→无色,深→浅易观察。 在滴定管装入液体之后,为什么要排出滴定管尖嘴内的空气? 滴定管测量液体体积的原理是“差值原理”,测量方法是“差值法”,若不预先排出滴定管尖嘴内的空气,在放出液体的过程中这些空气必然会减少或者全部排出,其空间被溶液填充,这样必然会导致测量液体体积的误差。 二、硫酸铵肥料中含氮量的测定 分析天平的称量方法主要有哪几种?固定称量法和递减称量法各有何优点?

数据结构实验报告

数据结构实验报告 一.题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。 4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么? 二.解决方案 对于前三个题目要求,我们用一个程序实现代码如下 #include #include #include #include "Stack.h"//栈的头文件,没有用上 typedefintElemType; //数据类型 typedefint Status; //返回值类型 //定义二叉树结构 typedefstructBiTNode{ ElemType data; //数据域 structBiTNode *lChild, *rChild;//左右子树域 }BiTNode, *BiTree; intInsertBST(BiTree&T,int key){//插入二叉树函数 if(T==NULL) { T = (BiTree)malloc(sizeof(BiTNode)); T->data=key; T->lChild=T->rChild=NULL; return 1; } else if(keydata){ InsertBST(T->lChild,key); } else if(key>T->data){ InsertBST(T->rChild,key); } else return 0; } BiTreeCreateBST(int a[],int n){//创建二叉树函数 BiTreebst=NULL; inti=0; while(i

SQL Server 2008 数据库案例教程课后习题答案

《SQL Server 2008数据库案例教程》练习题及模拟试卷答案 第1章 一、判断题 1. 数据库技术是是计算机数据处理与信息管理系统的核心。(√) 2. 数据是用于描述现实世界中具体事物或抽象概念,可存储的数字符号。(×) 3. 数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。(√) 4. 数据库管理系统是一个按数据结构来存储和管理数据的服务器管理系统。(×) 5. 关系数据库,是建立在关系模型基础上的数据库。(√) 二、单选题 1. 数据(Data)是一些可存储并具有明确意义的(A) A. 符号 B.图形 C.文字 D.数字 2. 人工阶段计算机用于数值计算,没有操作系统及管理数据的软件。这一阶段的年代是(C) A. 19世纪80年代 B. 20世纪20年代 C.20世纪50年代 D. 20世纪80年代 3. 在网页中常用的图像格式是(D) A..bmp和.jpg B..gif和.bmp C. .png和.bmp D. .gif和.jpg 4.数据库系统的重要特征是什么?(D) A. 数据的独立性和动态性 B.数据的静态性和独立性 C.数据的动态性和共享性 D.数据的独立性和共享性 三、多选题 1.与数据库技术密切相关的基本概念有(ABCD) A. 数据 B. 数据库 C. 数据库管理系统 D. 数据库系统 2.数据库可分为哪几种类型?(ABC) A. 关系型数据库 B. 网状数据库 C. 层次数据库 D.树形数据库 3. DBMS提供数据操作语言DML,为用户提供了哪些操作?(ABCD) A.数据的追加B.数据的删除C.数据的更新D.数据的查询 4.DBMS要分类组织、存储和管理各种数据,包括哪些内容?(ABC) A. 数据字典 B. 用户数据 C. 存取路径 D.服务器 5. 目前,DBMS常见品牌有哪些公司?(ABC) A.微软公司的SQL Server B.IBM公司的DB2 C.甲骨文公司的ORACLE D.索尼公司的MySQL 四、填空题 1.数据库(管理)技术经历了人工管理阶段和文件管理阶段。 2.文件系统不提供对任意部分数据的(快速)访问 3.关系数据库,是建立在关系(模型)基础上的数据库。 4.实体-联系模型(简称E-R模型)是由P.P.Chen于(1976)年首先提出的。

数据结构实验十一:图实验

一,实验题目 实验十一:图实验 采用邻接表存储有向图,设计算法判断任意两个顶点间手否存在路径。 二,问题分析 本程序要求采用邻接表存储有向图,设计算法判断任意两个顶点间手否存在路径,完成这些操作需要解决的关键问题是:用邻接表的形式存储有向图并输出该邻接表。用一个函数实现判断任意两点间是否存在路径。 1,数据的输入形式和输入值的范围:输入的图的结点均为整型。 2,结果的输出形式:输出的是两结点间是否存在路径的情况。 3,测试数据:输入的图的结点个数为:4 输入的图的边得个数为:3 边的信息为:1 2,2 3,3 1 三,概要设计 (1)为了实现上述程序的功能,需要: A,用邻接表的方式构建图 B,深度优先遍历该图的结点 C,判断任意两结点间是否存在路径 (2)本程序包含6个函数: a,主函数main() b,用邻接表建立图函数create_adjlistgraph() c,深度优先搜索遍历函数dfs() d,初始化遍历数组并判断有无通路函数dfs_trave() e,输出邻接表函数print() f,释放邻接表结点空间函数freealgraph() 各函数间关系如右图所示: 四,详细设计 (1)邻接表中的结点类型定义:

typedef struct arcnode{ int adjvex; arcnode *nextarc; }arcnode; (2)邻接表中头结点的类型定义: typedef struct{ char vexdata; arcnode *firstarc; }adjlist; (3)邻接表类型定义: typedef struct{ adjlist vextices[max]; int vexnum,arcnum; }algraph; (4)深度优先搜索遍历函数伪代码: int dfs(algraph *alg,int i,int n){ arcnode *p; visited[i]=1; p=alg->vextices[i].firstarc; while(p!=NULL) { if(visited[p->adjvex]==0){ if(p->adjvex==n) {flag=1; } dfs(alg,p->adjvex,n); if(flag==1) return 1; } p=p->nextarc; } return 0; } (5)初始化遍历数组并判断有无通路函数伪代码: void dfs_trave(algraph *alg,int x,int y){ int i; for(i=0;i<=alg->vexnum;i++) visited[i]=0; dfs(alg,x,y); } 五,源代码 #include "stdio.h" #include "stdlib.h" #include "malloc.h" #define max 100 typedef struct arcnode{ //定义邻接表中的结点类型 int adjvex; //定点信息 arcnode *nextarc; //指向下一个结点的指针nextarc }arcnode; typedef struct{ //定义邻接表中头结点的类型 char vexdata; //头结点的序号 arcnode *firstarc; //定义一个arcnode型指针指向头结点所对应的下一个结点}adjlist; typedef struct{ //定义邻接表类型 adjlist vextices[max]; //定义表头结点数组

实验室常用器材使用方法及注意事项

实验室常用器材使用方法及注意事项

实验室常见仪器使用方法及注意事项 一、常见的仪器 (一)初中化学实验常见仪器 反应容器可直接受热的:试管、蒸发皿、燃烧匙、坩埚等能间接受热的:烧杯、烧瓶、锥形瓶(加热时,需加石棉网) 常存放药品的仪器:广口瓶(固体)、细口瓶(液体)、滴瓶 (少量液体)、集气瓶(气体) 用加热仪器:酒精灯 计量仪器:托盘天平(称固体质量)、量筒(量液体体积) 仪分离仪器:漏斗 取用仪器:药匙(粉末或小晶粒状)、镊子(块状或较大颗粒)、胶头滴管(少量液体) 器夹持仪器:试管夹、铁架台(带铁夹、铁圈)、坩埚钳其它仪器:长颈漏斗、石棉网、玻璃棒、试管刷、水槽 不能加热:量筒、集气瓶、漏斗、温度计、滴瓶、表面皿、广口瓶、细口瓶等 1、试管 (1)、用途: a、在常温或加热时,用作少量试剂的反应容器。 b、溶解少量固体。 c、收集少量气体的容器 d、用于装置成小型气体的发生

器。 (2)、注意事项: a、加热时外壁必须干燥,不能骤热骤冷,一般要先均匀受热,然后才能集中受热, 防止试管受热不均而破裂。 b、加热时,试管要先用铁夹夹持固定在铁架台上(短时间加热也可用试管夹夹持)。 试管夹应夹在的中上部(或铁夹应夹在离试管口的1/3处)。c、加热固体时,试管口要略向下倾斜,且未冷前试管不能直立,避免管口冷凝水倒流 使试管炸裂。 d、加热液体时,盛液量一般不超过试管容积的1/3(防止液体受热溢出),使试管与桌面 约成45°的角度(增大受热面积,防止暴沸),管口不能对着自己或别人(防止液体喷出伤人)。反应时试管内的液体不超过试管容积的1/2。 2、烧杯用途:①溶解固体物质、配制溶液,以及溶液的稀释、浓缩 ②也可用做较大量的物质间的反应 注意事项:受热时外壁要干燥,并放在石棉网上使其受热均匀(防止受热不均使烧杯炸裂), 加液量一般不超过容积的1/3(防止加热沸腾使液体外溢)。

sql数据库示例,适合初学者

一、数据库概述 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。(文件系统) 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。 数据库:存储、维护和管理数据的集合。 二、数据库的安装与配置 * 安装 * 参照图解 * 一路下一步 * 配置 * 参照图解 * 到选择字符集时停 登录Mysql: mysql -u root -p abc * 卸载 1.停止mysql服务net stop mysql 启动mysql服务net start mysql 2.卸载mysql 3.找到mysql 安装目录下的my.ini datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" * 修改密码 运行cmd * 安装成功了打开cmd --> mysql -uroot -p你的密码 * 修改mysql root用户密码 1) 停止mysql服务运行输入services.msc 停止mysql服务 或者cmd --> net stop mysql 2) 在cmd下输入mysqld--skip-grant-tables 启动服务器光标不动(不要关闭该窗口) 3) 新打开cmd 输入mysql -u root -p 不需要密码

SQL server数据库设计实例

数据库原理与应用 课程设计A报告 姓名:袁一帆学号:20121480 学院(系):管理学院专业:信息管理与信息系统

班级:12级信管1 班

襄阳迈博信息科技有限公司企业考勤管理系统 一、系统目标设计 1系统开发的总体任务是实现企业员工考勤管理的系统化、规范化、和自动化。 2能够和人事管理系统、工资管理系统相结合,真正实现企业高效、科学、现代化的员工管理。 二、开发实际思想 1尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。 2员工考勤管理系统能够和考勤机相连接,从而完成自动、高效、科学的考勤信息输入。 3系统采用模块化程序设计方法,既便与系统功能的各种组合和修该,又便于未参与开发的技术维护人员补充、维护。 系统应具备数据库维护功能,即使根据用户需求进行数据的添加、删除、修改、被分等操作。 系统需求分析 1 考勤管理涉及企业人事管理的多个方面,如员工职务升迁、工资发放、奖金发放、员工医疗保险发放等等。本利自重的考勤管理系统需要完成功能主要有以下几点。 2 员工考勤信息处理。该莫完成员工考勤情况的输入、修改等操作。如果企业内有考勤机,可以将它的输出处理后,形成考勤管理系统考勤模块的

输入。 3 企业缺勤类型的设定。 4 企业考勤统计。该模块可对某个员工进行考勤情况的统计,生成统计报表。 5 缺勤时间,缺勤类型对工资的影响 6 缺勤时间,缺勤类型对升职的影响 数据字典 数据项 表1 名称员工编号 说明每个员工拥有唯一的编号 类型字符型 长度 4 有关数据存储员工基本信息存储 表2 名称员工姓名

数据结构实验---图的储存与遍历

数据结构实验---图的储存与遍历

学号: 姓名: 实验日期: 2016.1.7 实验名称: 图的存贮与遍历 一、实验目的 掌握图这种复杂的非线性结构的邻接矩阵和邻接表的存储表示,以及在此两种常用存储方式下深度优先遍历(DFS)和广度优先遍历(BFS)操作的实现。 二、实验内容与实验步骤 题目1:对以邻接矩阵为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接矩阵为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接矩阵表示,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 题目2:对以邻接表为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接表为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接表存贮,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 V0 V1 V2 V3 V4 三、附录: 在此贴上调试好的程序。 #include #include #include V0 V1 V4 V3 V2 ??? ? ??? ? ????????=010000000101010 1000100010A 1 0 1 0 3 3 4

#define M 100 typedef struct node { char vex[M][2]; int edge[M ][ M ]; int n,e; }Graph; int visited[M]; Graph *Create_Graph() { Graph *GA; int i,j,k,w; GA=(Graph*)malloc(sizeof(Graph)); printf ("请输入矩阵的顶点数和边数(用逗号隔开):\n"); scanf("%d,%d",&GA->n,&GA->e); printf ("请输入矩阵顶点信息:\n"); for(i = 0;in;i++) scanf("%s",&(GA->vex[i][0]),&(GA->vex[i][1])); for (i = 0;in;i++) for (j = 0;jn;j++) GA->edge[i][j] = 0; for (k = 0;ke;k++) { printf ("请输入第%d条边的顶点位置(i,j)和权值(用逗号隔开):",k+1); scanf ("%d,%d,%d",&i,&j,&w); GA->edge[i][j] = w; } return(GA); } void dfs(Graph *GA, int v) { int i; printf("%c%c\n",GA->vex[v][0],GA->vex[v][1]); visited[v]=1;

一个完整的数据库示例--说明

一、表的结构及完整性约束 新建一个数据库jxsk,包括S、C、SC、T、TC五个表,结构如下:C表: S表: SC表: T表:

TC表: 二、安全性控制及视图机制 1、三类角色:depart、teacher、student depart的权限: teacher的权限:

student的权限: 2、有2个院系用户:d_jsj,d_xx,同属于depart角色。

有1个教师用户:t ,属于teacher 角色。

有一个学生用户:s,属于student角色。 3、创建计算机系教师视图t_view_jsj、计算机系学生视图s_view_jsj,并授予d_jsj 用户在这两个视图上的select、delete、update、insert权限。 计算机系教师视图t_view_jsj: create view t_view_jsj as select tno,tn,sex,age,prof,sal,comm,dept from t where dept='计算机' with check option

授予d_jsj用户在计算机系教师视图t_view_jsj 上的select、delete、update、insert 权限: grant select,update,delete,insert on t_view_jsj to d_jsj 计算机系学生视图t_view_jsj: create view s_view_jsj as select sno,sn,sex,age,dept,resume,native from s where dept='计算机' with check option 授予d_jsj用户在计算机系学生视图s_view_jsj 上的select、delete、update、insert 权限: grant select,update,delete,insert on s_view_jsj to d_jsj …… 4、创建一个视图,显示学号,姓名,院系,课程名,成绩。 create view score_view(学号,姓名,院系,课程名,成绩) as select s.sno,sn,dept,cn,score from s,sc,c where s.sno=sc.sno and https://www.360docs.net/doc/373727513.html,o=https://www.360docs.net/doc/373727513.html,o 三、完整性控制--触发器、规则 1、要求当删除C表中某课程信息时,同时删除SC和TC中与此课程相关的记录。create trigger c_delete_trigger on c after delete as delete from sc where cno in (select cno from deleted) delete from tc where cno in (select cno from deleted) go

实验一分析化学实验基本操作练习

分析化学实验教案 课程目的 1 .正确、熟练地掌握定量化学分析实验的基本操作技能,学习并掌握典型的分析方法。 2 .充分运用所学的理论知识指导实验;培养手脑并用能力和统筹安排能力。 3 .确立“ 量” 、“ 误差” 、和“ 有效数字” 的概念;学会正确、合理地选择实验条件和实验仪器,以保证实验结果的可靠性。 4 .通过自拟方案实验,培养综合能力。如信息、资料的收集与整理,数据的记录与分析,问题的提出与证明,观点的表达与讨论;树立敢于质疑,勇于探究的意识。 5 .培养严谨的科学态度和实事求是、一丝不苟的科学作风;培养科学工作者应有的基本素质。 大学化学实验的学习方法 1、预习 看认真阅读教材、有关教科书及参考资料,获得相关知识、规范的基本操作 查从附录及有关手册中查所需物理化学数据 写认真写好预习报告。 在“看、查、思考”式的预习进程中,明确实验目的,了解实验原理;熟悉实验内容,主要操作步骤,数据处理方法;提出注意事项,合理安排实验时间。在此基础上写预习报告。 2、课堂讨论 实验前提问、讨论,掌握实验原理、操作要点、注意事项 观看操作录像或教师示教 实验后分析、总结 实验 (1)独立完成实验——认真、细心、手脑并用。 (2)正确使用仪器,基本操作规范、熟练 (3)仔细观察现象,认真测定数据

(4)及时,如实记录:不用铅笔、不用纸片;不杜撰、不凭主观意愿删去数据,不涂改数据;不用橡皮擦、胶带纸粘去原始数据;记错、看错时正确的改写方法。 (5)勤于思考力争自己解决问题,可查资料、可与教师讨论 (3)(4)(5)可归纳为边实验、边记录、边思考 (6)主动、积极的学习如对实验现象或结果有怀疑,在分析和查原因的同时,鼓励大家研究;对不合理的地方提出改进意见。 (7)重做实验必须得到教师同意 实验报告的书写 (1)预习部分(实验前)目的、原理、步骤、理论值、思考题 (2)记录部分(实验时)实验现象、实验数据 (3)结论部分(实验后)计算结果、问题、讨论 由以上三个时间段写的内容组成了完整的实验报告。 预习报告的书写 实验目的学习的知识与技术、要解决的问题 实验原理为什么要这样做,反应式 实验步骤框加箭头,每一个框为一个操作单元,可以用符号△↓↑d 步骤与原理书写的差别: 步骤:如何做;原理:为什么? 书写报告要求字迹端正,叙述简明扼要,框与箭头整齐 思考题可写在原理后或在最后 在实验前检查预习报告,做好预习报告后才能做实验 化学实验规则 课堂纪律:不迟到、不早退(有事请假)、不准大声谈笑、唱歌、离位聊天节约:药品、水、电、气 整洁:书包、衣服放在书包柜;书、笔、报告本等放在抽屉内。废纸、火柴梗放装废物的搪瓷盘内。桌面上:暂不使用的仪器整齐的放在实验桌里面,洗净的玻棒、滴管放在干净的250mL烧杯内,实验中不用的仪器不拿出;桌面的要求,无多余仪器,放置有条理,边做边收拾。实验后,洗净、收好玻璃仪器,抹

数据结构实验报告图实验

邻接矩阵的实现 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; } }

化学实验室基本操作

化学实验室基本操作 化学实验室基本操作2010-07-24 11:54一、常用仪器的主要用途和使用 方法 反应容器:试管、燃烧匙、烧杯、锥形瓶、集气瓶 存放容器:集气瓶(气体)、细口瓶(液体)、广口瓶(固体)、滴瓶(少量液体) 计量仪器:托盘天平(称固体质量)、量筒(量液体体积) 取用仪器:镊子(块状或较大颗粒)、药匙或纸槽(粉末或小颗粒)、胶头滴 管(少量液体) 夹持容器:试管夹、坩埚钳、铁架台(带铁圈、铁夹) 其它仪器:漏斗、长颈漏斗、分液漏斗、石棉网、玻璃棒、水槽、试管刷 可直接加热的:试管、蒸发皿、燃烧匙 能间接加热的(需垫石棉网):烧杯、烧瓶、锥形瓶 加热仪器:酒精灯 1.烧杯圆柱状玻璃容器,杯口有便于倒出液体的嘴。 常用的有25mL、50mL、100 mL、250 mL、500 mL等 (1)用于大量物质的溶解和配制溶液或者进行化学反应的容器,也常用于接 过滤后的液体。 (2)实验时盛放液体的量不超过烧杯容积的1/2,以防搅拌时溅出。 (3)向烧杯中注入液体的时候,应沿烧杯内壁或玻璃棒引流。

(4)加热时要垫石棉网,也防受热不均而使其破裂。烧杯不能用作加热固体试剂。 2.试管 (1)用于少量物质的溶解或发生化学反应的仪器,也常用于制取或收集少量气体。 (2)振荡试管的方法:手持试管、手腕摆动。 3)实验时盛放液体量不能超过试管容积的1/3,以防振荡或加热时溅出。可直接加热。 (4)用试管夹或者铁夹固定时,要从试管底部向上套,夹持在试管的中上部(或离管口1/3的部位)。 3.蒸发皿 (1)用于溶液的蒸发、结晶 2)蒸发过程中需用玻璃棒不断搅拌,防止液体由于局部温度过高而飞溅 3)当溶液的量减少只有大量晶体析出时,停止加热并放至石棉网上,以防晶体飞溅 (4)取放蒸发皿,要用坩埚钳夹持 4.集气瓶 (1)用于收集气体、短时间贮存气体、用做物质在气体中的燃烧的反应器 (2)在收集气体或贮存气体时,要用毛玻璃片盖住瓶口。 5、试剂瓶 试剂瓶包括滴瓶、细口瓶、广口瓶等。分为无色和棕色两种。

分析化学期末实验考核内容

分析化学期末实验考核内容 一基本操作 1滴定管的基本操作(检漏、洗涤、装液、滴定、读数、复原)。 2容量瓶的基本操作(检漏、洗涤、溶解样品、定容操作、复原)。 3移液管的基本操作(洗涤、移取操作—〈液面调整、放液〉、复原)。 4电子天平的基本操作——直接称量或减量法称量(检查天平、称量、复原等)。 5其它仪器的洗涤、使用。 6溶液配制。 7做过的所有实验及有关内容。 二笔答题 1.配制0.1000mol/L重铬酸钾溶液,主要使用哪些量器? 2.配制重铬酸钾标准溶液的方法是什么?需要注意哪些问题? 3.简单叙述0.1mol/L NaOH标准溶液的配制过程。 4.简单叙述硫酸铵中N含量的测定有几种方法? 5.标定NaOH溶液选择何种基准物质?请写出其化学反应。 6.甲醛法测定铵盐中氮含量时,使用了何种指示剂?选择的依据是什么? 7.用EDTA标准溶液直接滴定镁离子时,滴定速度应尽量的快,是否合理,请简述理由。 8.甲醛法测定铵盐中氮含量时,有哪步会造成误差,请简要叙述。 9.差减法称量样品时,应注意哪些问题?

10.简单叙述实验电子天平(直接称量法)称量某一样品,需要哪些步骤。 11.用电子天平称量时,经常用到“归零”操作。请问这一操作在何种情况下才能使用? 12.用电子天平称量时,经常用到“去皮”操作。请问这一操作在何种情况下才能使用? 13.电子天平底板水平的判断方法是什么?底板不水平应如何处理? 14.分析实验室所用万分之一电子天平的感量是多少?可称准至多少? 10.简单叙述使用单盘分析天平(直接称量法)称量某一样品,需要哪些步骤。 11.用分析天平称量时,经常要用到“全开”操作。请问这一操作在何种情况下才能使用? 12.用分析天平称量时,经常要用到“半开”操作。请问这一操作在何种情况下使用? 13.用分析天平称量时,经常要用到“全关”操作。请问这一操作在何种情况下使用? 14.单盘分析天平在何种情况下才能使用调零旋钮。 15.请列举所做过的实验中,有关掩蔽三价铁离子的实验名称及其对应方法。 16.用碘量法测定Cu含量时,应在何时加入KSCN,加入太早或太迟会导致什么问题? 17.碘量法测铜实验中,造成条件电极电位与理论电极电位差异的原因是什么? 18.用重铬酸钾法测定Fe含量时,在何时加入磷酸,提前加入或推迟加入会有什么问题?

数据结构实验

实验1 (C语言补充实验) 有顺序表A和B,其元素值均按从小到大的升序排列,要求将它们合并成一 个顺序表C,且C的元素也是从小到大的升序排列。 #include main() { intn,m,i=0,j=0,k=0,a[5],b[5],c[10];/* 必须设个m做为数组的输入的计数器,不能用i ,不然进行到while 时i 直接为5*/ for(m=0;m<=4;m++)scanf("%d",&a[m]);// 输入数组a for(m=0;m<=4;m++)scanf("%d",&b[m]);// 输入数组b while(i<5&&j<5) {if(a[i]b[j]){c[k]=b[j];k++;j++;} else{c[k]=a[i];k++;i++;j++;}// 使输入的两组数组中相同的数只输出一 个 } if(i<5) for(n=i;n<5;n++) {c[k]=a[n];k++;} elseif(j<5) for(n=j;n<5;n++) {c[k]=b[n];k++;} for(i=0;i

求A QB #include main() { inti,j,k=0,a[5],b[5],c[5];//A=a[5],B=b[5],A n B=c[5] for(i=0;i<5;i++)scanf("%d",&a[i]);// 输入a 数组 for(i=0;i<5;i++)scanf("%d",&b[i]);〃输入b 数组 for(i=0;i<5;i++) {for(j=0;j<5;j++) if(a[i]==b[j]){c[k]=a[i];k++;}// 当有元素重复时,只取一个放入 c 中} for(i=0;i #defineN4 main() { inti,j,m,k,a[N+1];//k 为最后输出数组的长度变量

数据库应用系统实例

淮海工学院计算机工程学院实验报告书 课程名:数据库原理及应用 题目:实验七数据库应用系统实例 班级:D计算机081 学号: 姓名:

一、实验目的 开发学生学籍管理系统小型数据库应用系统数据库连接、数据操程作序编写,熟练使用Microsoft Visual Studio 2005开发平台。 二、实验内容和要求 1.后台为SQL server2000, 2.前台为面向对象编程语言(可选择) 3.完成数据库连接 4.完成对前面实验所建立的studb109学籍数据库中的数据通过应用系统界面进行更新和查询等操作。 三、实验步骤和实验结果 1.连接SQL Server的数据库访问编程实例。编写一个应用程序来连接数据库名为studb109的SQL Sever数据库,并根据连接结果输出一些信息。 (1).运行Microsoft V isual Studio 2005 (2).新建网站

(3).设计网站 using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; namespace web { public partial class_Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e){} protected void Button1_Click(object sender, EventArgs e) {try {SqlConnection coon = new SqlConnection(); coon .ConnectionString =" Server =localhost; uid = sa;pwd=; database=studb109"; coon .Open (); Label1 .Text ="连接成功"; } catch { Label1 .Text ="连接失败"; }}}}

EC数据库操作实例

宿主变量定义: EXEC SQL BEGIN DECLARE SECTION; EXEC SQL END DECLARE SECTION; Selcet、临时表、宿主变量的引用(:): EXEC SQL select eviaa.sbno,eviaa.scdt,eviaa.skst,eviaa.acbl,eviaa.trdt,eviaa.stcd,eviaa.acno,g dsba.sbnm,gdsba.sbno from gdsba,eviaa where gdsba.sbno = eviaa.sbno and eviaa.sbno = :sbnoarray[i] order by scdt into TEMP tmp_gdsb a; 索引的创建(Based on 字段): EXEC SQL create index tmp_gdsba_idx1 on tmp_gdsba(scdt); 创建原则: 1.经常作为where条件的字段要创建索引。 2.重复值比较多的字段,创建索引的作用不大。例如,对于记录状态jiluzt这样的字段,它只有十多个有效的值,对应几十万的记录,在索引中有没有这个字段,意义不是很大。 3.要把重复值少的字段放在复合索引前面。对于sql语句,如果前面的条件就可以确定一条记录的话,就不必去比较后面的字段了。比如:表akhzh创建索引的时候,如果需要创建一个khzhlx和kehuzh的索引,就需要把kehuzh放在前面。这样才可以准确、快速的定位到要查找的记录。 4.索引最好不要创建太多,一般一个表不要超过8个。能合并的索引应该合并。索引其实是牺牲insert,delete的效率来提高select的效率,如果索引过多,表的insert和update是的速度将很慢。 5.索引的合并。不必要的、重复的索引应该删除,可以减少数据库占用的空间,提高数据库insert,update的效率。如果两个或者几个索引的前几个字段相同,并且除去相同的字段,后面的字段的重复值又很多,那么这几个索引就可以合并成字段少的那个索引。 游标 EXEC SQL select sATNU,sFOSQ,sTRDT,sSBNO,sSTCD from trlga where stIn.sATNU=sATNU and stIn.sTRDT=sTRDT order by sTRDT info tmp_trlga_7627

分析化学实验心得

分析化学实验心得 篇一:关于分析化学实验操作的感想 关于分析化学实验操作的感想 杨松 资源环境学院 2010级环境五班 22201020210126 论文关键词:分析化学创新教学兴趣 论文摘要:提高分析化学实验的教学质量和学生的创新能力,必须让我们学生自己学会根据实验目的而设计出实验的操作步骤及其产物量的估算。 分析化学是许多涉及化学专业的必修基础课,是一门实践性很强的学科。在分析化学中,实验教学具有重要的地位,不仅要培养学生的实验兴趣,调动学生学习积极性,深刻理解所学的内容,牢固掌握基本操作,还要注重培养学生严谨的科学态度、创新意识和创新能力等综合素质。 然而,从老师的教学模式来看,分析化学实验教学中存在一些问题,以致学生对分析化学实验课未能给予应有的重视,只是基本完成教学目标,难以在实验教学中培养学生的综合素质。根据我自己的观察,提高分析化学实验教学质量和学生的综合素质,可以从学生自己的身上着手,就是让大家自己用自己的方法去完成实验要求。 1、老师的基础知识教导。老师使用极其幽默的语言教学,让同学们增加对分析化学的兴趣,从而增加对实验的

趣味性。培养学生对实验的兴趣。 分析化学实验对规范性操作要求很严,仅靠上课时教师演示难以保证教学效果。老师可以使用一些现代的教学方式,例如使用动态PPt 教学,或者通过视频的形式让学生了解操作的基本步骤及应该注意的基本事项。 2、耐心细致地指导,并进行阶段性检查,使学生牢固掌握基本操作技能。分析化学实验有着严格规范的操作要求,这是获得准确分析结果的最基本保证。没有规范的操作技能训练和扎实的专业理论知识储备,就不可能有很强的实验能力。加强学生操作技能训练和专业理论知识储备是提高学生实验能力的关键因素。 在进行新的实验课程之前,不是立即开展正规的实验活动,而是先进行基本操作训练,训练过程中,要求教师有高度的责任心,仔细观察学生的操作,耐心指导操作不规范的同学,并时刻提醒大家实验规范操作的重要性。让学生能理解规范操作的必要性并能较快地掌握操作要点。提前通知学生在天平称量和滴定分析基本操作实验完成后,将进行阶段性测验,检 查学生对分析化学实验规范操作的掌握情况,检测不合格的学生将不允许做下一轮实验,在这种压力下,学生几乎都会自觉地严格要求自己,认真按照规范性操作的要求去练习,直至熟练掌握规范性操作,从而养成严谨的实验习惯。

实验室常用检验仪器操作规范

检验仪器操作规范 1. 仪器分类和作业规范 理化检验仪器(序号从4.1-4.30) 4.1原子吸收仪 4.2离子色谱仪 4.3 pH/电导率仪(或其他pH计及电导率仪) 4.4电光分析天平 4.5电子天平/电子分析天平 4.6浊度仪 4.7糖度计 4.8余氯测定仪 4.9分光光度计 4.10阿贝折射仪 4.11低速台式离心机 4.12定氮仪 4.13密度/比重/浓度计 4.14比色管 4.15电热恒温干燥箱 生化检验仪器(序号从4.31-4.40) 4.31自动立式压力蒸汽灭菌锅 4.32生物显微镜 4.33生化培养箱 4.34霉菌培养箱 其他(序号从4.61-4.70) 4.61激光粒子计数器

备注:以下仪器操作规范按仪器分类顺序编写 4.1原子吸收仪 4.1.1. 准备工作: a)接通仪器主机电源,再接通计算机及打印机电源。打开电脑,待 Win dows95 屏幕 左下角显示Start将箭头指向Start,并点击。联机正常后出示 Aawinlab,点击 打开。 b)将空白溶液置于自动进样器位置1上,标准溶液于2上,试样溶液 在其他编码位置上。 c)打开氩气钢瓶,并调节为300-450Kpa d)接通石墨炉冷却水系统电源。 4.1.2. 编制程序: 工作前将下列主要工作页的必要参数一一输入。分别为仪器页、校正页、石墨炉页。 4.1.3. 进行自动分析: 箭头指向Workspace并点击它,出现下图所示的对话框,然后点击 Calibrate 进行校正曲线,完毕点击An alyze Samples 进行试样的测 ^定。 备注:作结束后如需存储文件,点击File上的Save,显示Save Method As窗口,在Method Name^栏上打上方法名字,并点击0K 4.1.4. 关机: 工作结束后点击Automated Analysis Control 窗口的Flush Sampler ,冲洗 进样系统;退出软件,关掉主机就、计算机、打印机、冷却水系统和石墨炉电 源;关紧氩气钢瓶。 4.2离子色谱仪 4.2.1.仪器 离子色谱仪、移液管、滤纸(0.45 卩m、 4.2.2.试剂 阴离子淋洗液、阳离子淋洗液、甲烷磺酸 4.2.3.操作方法 a)洗液的配置: 1. 阴离子淋洗液的配置:

相关文档
最新文档