实验三 表的基本操作
实验三 Word文档的基本操作
实验三Word文档的基本操作
(2学时)
一、实验目的与要求
(1)掌握word文档的建立、保存、打开方法
(2)掌握word文档的基本编辑方法,掌握文本校对和替换方法(3)掌握字符、段落的格式化方法
(4)掌握表格的建立、编辑、格式化、计算、排序和生成图表的方法
(5)掌握插入、编辑和格式化图表的方法,简单图形、艺术字和编辑器的使用方法
(6)掌握图文混排、页面排版的方法
二、实验内容
(1)打开word,熟悉word的界面,输入指定文本并保存(2)文档编辑和排版:按要求对建立word文档进行排版操作(简单写出各个步骤)
(3)建立并保存课程表、学生成绩表
(4) 对成绩表按要求进行编辑和格式化、根据成绩表建立图表(5)按样张在给定的文本中插入艺术字、图片、流程图、数学公式,并按照规定的格式进行排版
(6)设置页眉,调整页边距,进行页面设置。
实验三串基本操作的编程实现
实验三串基本操作的编程实现(共5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验三串基本操作的编程实现【实验目的】内容:串基本操作的编程实现要求:串基本操作的编程实现(2学时,验证型),掌握串的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、合并、剪裁等操作,存储结构可以在顺序结构或链接结构、索引结构中任选,也可以全部实现。
也鼓励学生利用基本操作进行一些应用的程序设计。
【实验性质】验证性实验(学时数:2H)【实验内容】字符串用常规的顺序存储法来存储,实现常用的功能。
自己编程模式:开发一个程序,用来统计文件中各种信息,如字符个数,行数等。
修改程序模式:将下面程序空白的地方填空。
程序检查模式:将本文件夹中的程序运行后总结相关功能。
【思考问题】1.字符串的顺序存储和链表存储的差异C语言中是如何实现字符串的2.在字符串处理方面主要有什么操作3.字符串的操作的主要特点是什么4.举出几个字符串的应用范例【参考代码】立顺序串(仅限单行的字符串,建议不用汉字。
)"<<endl;cout<<"2.显示串"<<endl;cout<<"3.修改串"<<endl;cout<<"4.插入串"<<endl;cout<<"5.删除串"<<endl;cout<<"6.查找串"<<endl;cout<<"7.求串长度"<<endl;cout<<"8.结束程序"<<endl;cout<<"=========="<<endl;}int main(){int flag=0,returnvalue,position,beginposition,endposition,length;char choice,choose,newstr[maxsize];string newstring;menu();while(1){cout<<"请输入选择:";cin>>choice;switch(choice){case '1':if(flag){cout<<"数据已存在,是否覆盖(y/n)";cin>>choose;if(choose=='N'||choose=='n'){cout<<"数据没有发生更改!"<<endl;break;}if(choose=='Y'||choose=='y'){returnvalue=();if(returnvalue==success)cout<<"创建成功!"<<endl;flag=1;}elsecout<<"输入错误!"<<endl;}else{returnvalue=();if(returnvalue==success)cout<<"创建成功!"<<endl;flag=1;}break;case '2':if(flag==0)cout<<"请先建立串!"<<endl;else();break;case '3':if(flag==0)cout<<"请先建立串!"<<endl;else{();cout<<"请输入要修改的初始位置:";cin>>beginposition;cout<<"请输入要修改的终止位置:";cin>>endposition;cout<<"请输入修改后的字符串:";cin>>newstr;returnvalue=(beginposition,endposition,newstr);if(returnvalue==success){cout<<"修改成功!"<<endl;();}if(returnvalue==overflow){cout<<"字符串的最大长度为"<<maxsize<<endl;cout<<"发生溢出,操作失败!"<<endl;}if(returnvalue==range_error)cout<<"位置错误,操作失败!"<<endl;if(returnvalue==empty)cout<<"字符串为空,操作失败!"<<endl;}break;case '4':if(flag==0)cout<<"请先建立串!"<<endl;else{();cout<<"请输入要插入的位置:";cin>>position;cout<<"请输入要插入的字符串:";cin>>newstr;length=strlen(newstr);returnvalue=(position,newstr,length);if(returnvalue==success){cout<<"插入成功!"<<endl;();}if(returnvalue==overflow){cout<<"字符串的最大长度为"<<maxsize<<endl;cout<<"发生溢出,操作失败!"<<endl;}if(returnvalue==range_error)cout<<"位置错误,操作失败!"<<endl;}break;case '5':if(flag==0)cout<<"请先建立串!"<<endl;else{();cout<<"请输入要删除的初始位置:";cin>>beginposition;cout<<"请输入要删除的终止位置:";cin>>endposition;returnvalue=(beginposition,endposition);if(returnvalue==success){cout<<"删除成功!"<<endl;();}if(returnvalue==range_error)cout<<"位置错误,操作失败!"<<endl;if(returnvalue==empty)cout<<"字符串为空,操作失败!"<<endl;}break;case '6':if(flag==0)cout<<"请先建立串!"<<endl;else{();cout<<"请输入要查找的字符串:";cin>>newstr;position=(newstr);if(position>0){cout<<"已找到!"<<endl;cout<<"字符串出现的初始位置为:"<<position<<endl;}if(position==0)cout<<"您要查找的字符串不存在!"<<endl;if(position==-1)cout<<"字符串为空,操作失败!"<<endl;}break;case '7':if(flag==0)cout<<"请先建立串!"<<endl;else{();length=();cout<<"当前串的长度为:"<<length<<endl;}break;case '8':exit(0);break;default:cout<<"输入错误!\n";break;}cout<<"按任意键继续......"<<endl;getch();system("cls");menu();}getch();return 0; }。
实验01 线性表的基本操作
实验01 线性表的基本操作一、实验目的1. 了解线性表的结构特点及有关概念;2. 理解线性表的存储结构;3. 掌握顺序表及单链表的基本操作算法。
二、实验内容1、编写程序实现顺序表的各种基本运算:初始化、插入、删除、取表元素、求表长、输出表、销毁、判断是否为空表、查找元素。
在此基础上设计一个主程序完成如下功能:(1)初始化顺序表L;(2)依次在表尾插入a,b,c,d,e五个元素;(3)输出顺序表L;(4)输出顺序表L的长度;(5)判断顺序表L是否为空;(6)输出顺序表L的第4个元素;(7)输出元素c的位置;(8)在第3个位置上插入元素f,之后输出顺序表L;(9)删除L的第2个元素,之后输出顺序表L;(10)销毁顺序表L。
2、编写程序实现单链表的各种基本运算:初始化、插入、删除、取表元素、求表长、输出表、销毁、判断是否为空表、查找元素。
在此基础上设计一个主程序完成如下功能:(1)初始化单链表L;(2)依次在表尾插入a,b,c,d,e五个元素;(3)输出单链表L;(4)输出单链表L的长度;(5)判断单链表L是否为空;(6)输出单链表L的第4个元素;(7)输出元素c的位置;(8)在第3个位置上插入元素f,之后输出单链表L;(9)删除L的第2个元素,之后输出单链表L;(10)销毁单链表L。
三、实验要点及说明一.顺序表1.顺序表初始化:(1)为顺序表L动态分配一个预定大小的数组空间,使elem 指向这段空间的基地址。
(2)将表的当前长度设为0.2.顺序表的取值:(1)判断指定的位置序号i值是否合理(1<=i<=L.length),若不合理则返回ERROR.(2)若i值合理,则将i个数据元素L.elem[i]赋给参数e,通过e返回第i个数据元素的传值。
3.顺序表的查找:(1)从第一个元素起,依次和e相比较,若找到与e相等的元素L.elem[i],则查找成功,返回该元素的序号i+1.(2)若查遍整个顺序表都没要找到,则查找失败,返回0.4.顺序表的插入:(1)判断插入位置i是否合法(i值的合法范围是1<=i<=n+1),若不合法则返回值ERROR.(2)判断顺序表的存储空间是否已满,若满则返回值ERROR(3)将第n个至第i个位置的元素依次向后移动一个位置,空出第i个位置(i=n+1时无需移动)。
实验3 Windows 7 的基本操作
实验3 Windows7的基本操作【实验目的】1.掌握Windows7窗口、菜单的基本操作2.掌握快捷方式和库设置3.掌握开始菜单、任务栏的使用4.了解获得帮助的途径【实验内容】1.Windows 7窗口基本操作桌面是登录到Windows 7 后看到的屏幕,它是计算机上最重要的特性之一。
桌面可以包含你经常使用的程序、文档、文件甚至打印机的快捷方式。
当运行程序或打开文档时,Windows 7系统会在桌面上打开一个窗口。
(1)窗口组成及菜单用户通过桌面向计算机发出各种操作指令,结果一般是通过窗口体现。
例如图3-1就是双击桌面“计算机”图标以后所显示的窗口及其组成。
图3-1 Windows7“计算机”主界面窗口菜单是图像用户界面的软件中提供的一组对象,位于窗口标题栏的下方。
这些菜单对应着每一项子功能。
当用户需要使用其中的某项功能时,通常借助于该软件提供的菜单命令来实现,如图3-2所示,就是利用Windows7中“工具”菜单中的“文件夹选项”功能。
图3-2 “工具”菜单(2)窗口的移动把鼠标移动到窗口的标题栏,然后按住鼠标左键即可在桌面实现窗口的移动。
(3)改变窗口的大小把鼠标定位到窗口的边缘部分,当鼠标变成双向箭头形状时按住鼠标左键拖动即可调整窗口的大小。
注意:已经最大化的窗口无法调整大小。
必须先还原后才可以调整大小。
(4)窗口的最大化、最小化和还原✧双击窗口的标题栏或者单击窗口标题栏中图标可以实现窗口的最大化。
✧单击窗口标题栏中的图标可以最小化窗口。
✧单击窗口标题栏中的图标可以实现窗口的还原。
✧右击窗口的标题栏,使用“还原”、“最大化”和“最小化”命令操作。
✧单击任务栏通知区域最右侧的“显示桌面”按钮,将所有打开的窗口最小化,再次单击则还原窗口。
✧通过Aero晃动:在目标窗口上按住鼠标左键不放,然后左右晃动鼠标若干次,其他窗口将被隐藏。
重复操作将恢复窗口布局。
(5)多窗口的切换在同一个屏幕中,可以同时打开多个窗口,但在这些窗口中,只有一个是当前活动窗口,如图3-3所示。
数据库实验三
实验三订购数据库(一)数据定义一、基本表操作1.建立基本表1)创建仓库表,由以下属性组成:仓库号(CHAR 型),城市(CHAR 型),面积(INT 型)。
其中仓库号为主码,并且有面积>0 的限定条件2)创建职工表,由以下属性组成:仓库号(CHAR型),职工号(CHAR型),工资(INT型)。
其中职工号为主码,仓库号为外码,工资的限定条件为1000<=工资<=5000。
3)创建供应商表,由以下属性组成:供应商号(CHAR型),供应商名(CHAR型),地址(CHAR 型)。
其中供应商号为主码。
4)创建订购单表,由以下属性组成:职工号(CHAR型),供应商号(CHAR型),订购单号(CHAR 型),订购日期(CHAR型)。
其中订购单号为主码,职工号和供应商号为外码。
2.修改基本表1)往订购单表中增加一个新的属性“完成日期”,DATETIME型,并且允许为空值。
2)将职工表中的工资属性类型改为SMALLINT 型。
3)删除刚才在订购单表中加入的“完成日期”属性。
二、索引操作1.建立索引1)在订购单表上建立关于供应商号的普通索引supidx。
2)在订购单表的多个字段建立索引sup_empidx,先按照供应商号升序索引,然后按照职工号升序索引。
2.删除索引1)删除订购单表上的索引supidx。
2)删除订购单表上的索引sup_empidx。
(二)数据操作一、插入数据1)向仓库表插入下列数据:WH1,北京,370WH2,上海,500WH3,广州,200WH4,武汉,4002)向职工表插入下列数据:WH2,E1,1220WH4,E2,1270WH1,E3,1210WH2,E4,1250WH3,E5,1200WH3,E6,1230WH1,E7,12503)向供应商表插入下列数据: S1,利民电子元件厂,上海S2,联华电子公司,武汉S3,振华电子厂,西安S4,华通电子公司,北京S5,607 厂,郑州S7,爱华电子厂,北京4)向订购单表插入下列数据: E3,S7,OR67,20020623E1,S4,OR73,20020728E7,S4,OR76,20020525E6,NULL,OR77,NULLE3,S5,OR79,20020613E1,NULL,OR80,NULLE3,NULL,OR90,NULLE3,S3,OR91,20020713二、查询操作1.单表查询1)查询工资多于1210 元的职工所在仓库的仓库号。
数据结构实验报告实验总结
数据结构实验报告实验总结本次数据结构实验主要涉及线性表、栈和队列的基本操作以及链表的应用。
通过实验,我对这些数据结构的特点、操作和应用有了更深入的了解。
下面对每一部分实验进行总结。
实验一:线性表的基本操作线性表是一种常见的数据结构,本实验要求实现线性表的基本操作,包括插入、删除、查找、遍历等。
在实验过程中,我对线性表的结构和实现方式有了更清晰的认识,掌握了用数组和链表两种方式实现线性表的方法。
实验二:栈的应用栈是一种后进先出(LIFO)的数据结构,本实验要求利用栈实现简单的括号匹配和后缀表达式计算。
通过实验,我了解到栈可以方便地实现对于括号的匹配和后缀表达式的计算,有效地解决了对应的问题。
实验三:队列的应用队列是一种先进先出(FIFO)的数据结构,本实验要求利用队列实现银行排队和迷宫求解。
通过实验,我对队列的应用有了更加深入的了解,了解到队列可以解决需要按顺序处理的问题,如排队和迷宫求解等。
实验四:链表的应用链表是一种常用的数据结构,本实验要求利用链表实现学生信息管理系统。
通过实验,我对链表的应用有了更深入的了解,了解到链表可以方便地实现对于数据的插入、删除和修改等操作,并且可以动态地调整链表的长度,适应不同的需求。
通过本次实验,我掌握了线性表、栈、队列和链表的基本操作,并了解了它们的特点和应用方式。
同时,通过实际编程的过程,我对于数据结构的实现方式和效果有了更直观的认识,也锻炼了自己的编程能力和解决问题的能力。
在实验过程中,我遇到了一些问题,如程序逻辑错误和内存泄漏等,但通过调试和修改,最终成功解决了这些问题,对自己的能力也有了更多的信心。
通过本次实验,我深刻体会到了理论与实践的结合的重要性,也对于数据结构这门课程有了更加深入的理解。
总之,本次数据结构实验给予了我很多有益的启发和收获,对于数据结构的概念、特点和应用有了更深入的理解。
在以后的学习中,我会继续加强对数据结构的学习和研究,不断提高自己的编程能力和解决问题的能力。
南邮数据结构实验三
南邮数据结构实验三南京邮电大学数据结构实验三、链表的基本操作实验目的本次实验的主要目的是理解链表的概念,掌握链表的基本操作,包括链表的创建、插入、删除和遍历。
实验内容本次实验分为以下几个部分:1、链表的定义与创建1.1 链表的概念链表是一种常见的数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
链表可以分为单链表、双链表和循环链表等不同类型。
本次实验将创建一个单链表。
1.2 链表节点的定义链表节点包含两个成员变量,分别是数据域和指针域。
数据域用于存储节点的数据,指针域指向下一个节点。
1.3 链表的创建在主函数中创建一个空链表,并添加一些初始数据,用于后续的操作。
2、链表的插入操作2.1 插入节点的位置链表的插入操作需要指定节点插入的位置,可以在链表的头部、尾部或者中间插入新节点。
2.2 插入节点的操作根据所选位置,在链表中插入新节点,并更新相应的指针。
3、链表的删除操作3.1 删除节点的位置链表的删除操作需要指定节点删除的位置,可以删除头节点、尾节点或者中间节点。
3.2 删除节点的操作根据所选位置,删除链表中的节点,并更新相应的指针。
4、链表的遍历操作通过循环遍历链表的所有节点,并输出每个节点的数据。
附件说明本文档涉及以下附件:附件1:源代码附件2:实验报告法律名词及注释本文所涉及的法律名词及注释如下:1、数据结构:数据的存储方式和操作组成的集合。
在计算机科学中,数据结构是计算机中存储、组织数据的方式。
2、链表:链表是一种常见的数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
3、节点:链表中的一个元素,包含数据域和指针域。
4、数据域:节点中存储的数据。
5、指针域:节点中指向下一个节点的指针。
6、插入操作:在链表中插入一个新节点。
7、删除操作:从链表中删除一个节点。
8、遍历操作:按照一定的顺序访问链表中的所有节点。
全文结束。
实验3 顺序表的基本操作
}
//7、求指定元素的前驱
Status PriorElem_L(LinkList L, ElemType cur_e, ElemType *pre_e){
int i,j;
struct LNode *p;
i=LocateElem_L( L, cur_e);
typedef struct LNode{
ElemType date;
struct LNode *next;
}LNode,*LinkList;
//向线性表中传值
Status CreateList_L(LinkList L){
int i,n;
struct LNode *p;
switch(select){
case 1: //1.初始化一个线性表
{
leave=1;
InitList_L(&L);
printf("初始化线性表成功!\n");
printf("请向线性表中传值!\n");
CreateList_L(L);
printf("************ 7.求前驱 ***************\n");
printf("************ 8.求后继 ***************\n");
printf("************ 9.在线性表指定位置插入元素***************\n");
return OK;
}
//4、判断线性表是否为空
Status ListEmpty_L(LinkList L){
实验三 Virtuoso版图编辑器的基本使用
实验三Virtuoso版图编辑器的基本使用目录1.实验目的2.使用Virtuoso版图编辑器绘制反相器版图3.设计规则检查(D esign R ule C heck)4.版图网表和参数提取(L ayout and P arameter E xtraction)5.版图与原理图网表对比检查(L ayout v s. S chematic Check)1.实验目的本实验主要目的是通过绘制反相器版图的详细过程初步介绍Virtuoso版图编辑器的使用,同时也介绍了设计规则检查(DRC)、版图提取(LPE)、以及版图原理图网表对比检查(LVS)的基本操作步骤。
2.使用Virtuoso版图编辑器绘制反相器版图通过用版图编辑器创建反相器版图的例子来熟悉版图编辑器的使用。
在Library Manager窗口中选中IClab1库,然后点击File-->New-->Cell View,输入Cell Name为inverter,Tool选Virtuoso,View Name会自动变成layout,见图1。
图1. 用Virtuoso创建layout对话框在此需要特别注意的是,我们创建的版图是为实验一反相器原理图而创建的,因此自定义元件库名称必须与原理图所在库名称一致,特别是Cell Name也必须与原理图的Cell Name一致,即为inverter,有些同学在做此实验时在新创建的元件库中做,而且取了一个与原理图不同名的版图名称,这就给后面的版图提取和后端仿真带来了很大麻烦,所以请严格遵守上述命名规则。
点击OK会打开Virtuoso版图编辑器,同时启动的还有Layer Select Window,即LSW。
因绘制版图时一定先要与某一工艺库关联,而LSW将与关联的工艺库联动,所以不同的工艺库会有不同的LSW窗口出现。
本实验中的IClab1自定义库是与NCSU_TechLib_ami06工艺库关联的,所以该工艺库的名称会显示在LSW窗口的上面。
数据结构--实验报告 线性表的基本操作
数据结构--实验报告线性表的基本操作数据结构--实验报告线性表的基本操作一、引言本实验报告旨在通过实际操作,掌握线性表的基本操作,包括初始化、插入、删除、查找等。
线性表是最基本的数据结构之一,对于理解和应用其他数据结构具有重要的作用。
二、实验目的1·了解线性表的定义和基本特性。
2·掌握线性表的初始化操作。
3·掌握线性表的插入和删除操作。
4·掌握线性表的查找操作。
5·通过实验巩固和加深对线性表的理解。
三、线性表的基本操作1·初始化线性表线性表的初始化是将一个线性表变量设置为空表的过程。
具体步骤如下:(1)创建一个线性表的数据结构,包括表头指针和数据元素的存储空间。
(2)将表头指针指向一个空的数据元素。
2·插入元素插入元素是向线性表中指定位置插入一个元素的操作。
具体步骤如下:(1)判断线性表是否已满,如果已满则无法插入元素。
(2)判断插入位置是否合法,如果不合法则无法插入元素。
(3)将插入位置及其后面的元素都向后移动一个位置。
(4)将待插入的元素放入插入位置。
3·删除元素删除元素是从线性表中删除指定位置的元素的操作。
具体步骤如下:(1)判断线性表是否为空,如果为空则无法删除元素。
(2)判断删除位置是否合法,如果不合法则无法删除元素。
(3)将删除位置后面的元素都向前移动一个位置。
(4)删除最后一个元素。
4·查找元素查找元素是在线性表中查找指定元素值的操作。
具体步骤如下:(1)从线性表的第一个元素开始,逐个比较每个元素的值,直到找到目标元素或遍历完整个线性表。
(2)如果找到目标元素,则返回该元素的位置。
(3)如果未找到目标元素,则返回找不到的信息。
四、实验步骤1·初始化线性表(1)定义线性表的数据结构,包括表头指针和数据元素的存储空间。
(2)将表头指针指向一个空的数据元素。
2·插入元素(1)判断线性表是否已满。
三人表决器、五人表决器的实验报告
三人表决器、五人表决器的实验报告
一 实验目的
1。
熟悉Quartus II 软件的基本操作 2.学习使用Verilog HDL 进行设计输入 3。
逐步掌握软件输入、编译、仿真的过程 二 实验说明
三人表决器真值表:
输入信号
输出信号
B1 B2 B3 u 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1
1
1
1
逻辑表达式:U=
三 实验要求
b1
b2 voter u
b3
本次实验是要设计一个三人表决器。
该电路应有两个数据输入端口b1,b2,b3,电路的输出端口为voter(u 输出信号)。
1、完成三人表决器的Verilog HDL程序代码输入并进行仿真
2、采用结构描述方式和数据流描述方式
3、完成对设计电路的仿真验证
四、实验过程
(1)三人表决器:
程序代码
仿真结果
五人表决器:
程序代码
仿真结果
五、实验体会
通过三人表决器和五人表决器的设计,使我们更加熟悉Quartus 软件进行数字系统设计的步骤,以及运用Verilog HDL进行设计输入,并掌握三人表决器和五人表决器的逻辑功能和设计原理,逐步理解功能仿真和时序仿真波形。
三人表决器和五人表决器大体相似,并没有太大的区别.。
顺序表的基本操作实验报告
顺序表的基本操作实验报告一、实验目的。
本实验旨在通过对顺序表的基本操作进行实验,加深对顺序表的理解,掌握顺序表的基本操作方法,提高编程能力。
二、实验内容。
1. 初始化顺序表。
2. 插入元素。
3. 删除元素。
4. 查找元素。
5. 修改元素。
6. 输出顺序表。
三、实验步骤。
1. 初始化顺序表。
在本实验中,我们使用C语言来实现顺序表的基本操作。
首先,我们需要定义一个结构体来表示顺序表,结构体中包括数据元素和表长两个成员变量。
然后,我们通过动态内存分配来创建一个顺序表,并初始化表长为0。
2. 插入元素。
插入元素是指向顺序表中的指定位置插入一个新的元素。
在实验中,我们需要编写插入元素的函数,通过移动元素位置来实现插入操作。
具体步骤包括,先判断插入位置是否合法,然后将插入位置后的元素依次向后移动一个位置,最后将新元素插入到指定位置。
3. 删除元素。
删除元素是指从顺序表中删除指定位置的元素。
实验中,我们需要编写删除元素的函数,同样也是通过移动元素位置来实现删除操作。
具体步骤包括,先判断删除位置是否合法,然后将删除位置后的元素依次向前移动一个位置,最后将表长减1。
4. 查找元素。
查找元素是指在顺序表中查找指定数值的元素,并返回其位置。
实验中,我们需要编写查找元素的函数,通过遍历顺序表中的元素来实现查找操作。
具体步骤包括,遍历顺序表中的元素,逐个比较元素的数值,找到目标元素后返回其位置。
5. 修改元素。
修改元素是指将顺序表中指定位置的元素进行修改。
实验中,我们需要编写修改元素的函数,通过直接修改指定位置的元素值来实现修改操作。
具体步骤包括,先判断修改位置是否合法,然后直接修改指定位置的元素值。
6. 输出顺序表。
输出顺序表是指将顺序表中的所有元素依次输出。
实验中,我们需要编写输出顺序表的函数,通过遍历顺序表中的元素来实现输出操作。
具体步骤包括,遍历顺序表中的元素,逐个输出元素的数值。
四、实验结果。
经过实验,我们成功实现了顺序表的初始化、插入、删除、查找、修改和输出等基本操作。
实验三 表的基本操作
实验三表的基本操作一、实验目的1.掌握表建立的方法以及修改表结构的方法。
2.掌握表中数据输入的方法。
3.掌握记录指针的移动方法。
4.掌握表的基本操作:追加、插入、修改、显示、删除和恢复记录。
5.掌握表中的数据访问控制方式。
6.掌握表的排序和索引及使用。
7.掌握多个工作区和多表的操作方法。
二、实验内容和步骤1.创建自由表。
(1)创建学生情况表(xsqk.dbf)表结构如下:①在D盘创建自己学号后两位和姓名的文件夹,选择“工具/选项/文件位置”把该文件夹设为VFP的默认工作目录。
②选择“文件/新建/表/新建文件”,在“创建”对话框中的输入表名文本框输入“xsqk”,单击“保存”按钮。
③进入图1所示的表设计器,依次设置表的所有字段名字、类型、宽度和小数位数。
最后单击“确定”按钮。
④系统提示现在录入记录吗,单击“是”,录入下面两条记录。
⑤录入两条记录完毕,选择“显示/浏览…”命令查看录入的两条记录。
⑥选择“显示/追加方式”命令,继续输入以下三条记录。
⑦ 选择“显示/表设计器”命令,或在命令窗口输入“MODIFY STRUCTURE ”,打开表设计器,修改表结构,在性别后加一字段籍贯(c,20)。
(2)创建课程表(kc.dbf ) ① 表结构如下:② 表结构建立完毕,输入以下记录:(3)创建成绩表(cj.dbf ) ① 表结构如下:② 在表中输入以下记录:图1 表设计器2.打开表并查看表中记录。
(1)显示学生情况表(xsqk.dbf )中的记录。
菜单操作:①选择“文件/打开”命令,在打开对话框中把文件类型设为“表(*.dbf )”,如图2所示。
② 选定“xsqk.dbf ”,单击“确定”按钮,即打开xsqk表,观察主窗口中状态栏的变化。
③ 选择“显示/浏览…”命令,即可浏览查看xsqk 表中的记录。
命令法:① 打开表: USE xsqk ② 浏览记录:BROWSE ③ 关闭表:USE(2)用菜单操作和命令两种方法显示课程表(kc.dbf )中的记录。
多用表实验报告
多用表实验报告多用表实验报告引言:多用表是一种用于测量电流、电压和电阻等电学量的仪器。
它具有测量精度高、使用方便等特点,被广泛应用于科学研究、工程技术等领域。
本实验旨在通过多用表的使用,掌握其基本操作方法,并进行相关实验,以提高我们对电学量的认识。
实验一:测量电池电压实验目的:通过使用多用表,测量电池的电压,了解电池的工作原理。
实验步骤:1. 将多用表的选择旋钮拨至电压测量档位。
2. 将多用表的红色测量引线连接到电池的正极,黑色测量引线连接到电池的负极。
3. 读取多用表上显示的电压数值。
实验结果:通过多用表的测量,我们得到了电池的电压数值。
根据实验结果,我们可以得出结论:电池的电压为X伏特。
实验二:测量电路中的电流实验目的:通过使用多用表,测量电路中的电流,了解电流的基本概念和测量方法。
实验步骤:1. 将多用表的选择旋钮拨至电流测量档位。
2. 将多用表的红色测量引线连接到电路的正极,黑色测量引线连接到电路的负极。
3. 打开电路开关,使电流通过多用表。
4. 读取多用表上显示的电流数值。
实验结果:通过多用表的测量,我们得到了电路中的电流数值。
根据实验结果,我们可以得出结论:电路中的电流为X安培。
实验三:测量电阻实验目的:通过使用多用表,测量电阻,了解电阻的概念和测量方法。
实验步骤:1. 将多用表的选择旋钮拨至电阻测量档位。
2. 将多用表的红色测量引线连接到电阻的一端,黑色测量引线连接到电阻的另一端。
3. 读取多用表上显示的电阻数值。
实验结果:通过多用表的测量,我们得到了电阻的数值。
根据实验结果,我们可以得出结论:电阻为X欧姆。
实验四:测量电路中的功率实验目的:通过使用多用表,测量电路中的功率,了解功率的概念和测量方法。
实验步骤:1. 将多用表的选择旋钮拨至功率测量档位。
2. 将多用表的红色测量引线连接到电路的正极,黑色测量引线连接到电路的负极。
3. 读取多用表上显示的功率数值。
实验结果:通过多用表的测量,我们得到了电路中的功率数值。
最新实验三单表查询实验报告
最新实验三单表查询实验报告实验目的:本实验旨在通过实践操作,加深对数据库查询语言(SQL)中JOIN语句的理解,特别是掌握内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)的使用,并通过三个表的查询操作,提高解决复杂数据问题的能力。
实验环境:- 数据库管理系统:MySQL- 开发工具:MySQL Workbench- 操作系统:Windows 10实验内容:1. 首先,创建三个表:学生表(Students)、课程表(Courses)、成绩表(Scores)。
2. 在学生表中定义学生的基本信息,如学号、姓名、年龄等。
3. 在课程表中定义课程的基本信息,如课程号、课程名、学分等。
4. 在成绩表中记录学生的选课信息和成绩。
5. 使用INNER JOIN查询所有学生的姓名及其所选课程和成绩。
6. 使用LEFT JOIN查询所有学生的所有选课记录,包括未选课程的记录。
7. 使用RIGHT JOIN查询所有课程及选课学生的姓名和成绩。
实验步骤:1. 设计表结构:- 学生表(Students):学号(ID)、姓名(Name)、年龄(Age) - 课程表(Courses):课程号(CourseID)、课程名(CourseName)、学分(Credit)- 成绩表(Scores):学号(StudentID)、课程号(CourseID)、成绩(Score)2. 插入测试数据:- 向学生表、课程表和成绩表中插入适量的测试数据。
3. 执行查询操作:- 内连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsINNER JOIN Scores ON Students.ID = Scores.StudentIDINNER JOIN Courses ON Scores.CourseID = Courses.CourseID; ```- 左连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsLEFT JOIN Scores ON Students.ID = Scores.StudentIDLEFT JOIN Courses ON Scores.CourseID = Courses.CourseID; ```- 右连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsRIGHT JOIN Scores ON Students.ID = Scores.StudentIDRIGHT JOIN Courses ON Scores.CourseID = Courses.CourseID; ```实验结果:- 内连接查询结果显示了所有学生的姓名、所选课程和成绩。
数据结构实验顺序表的基本操作
数据结构实验-顺序表的基本操作顺序表是一种线性数据结构,它的元素在内存中是连续存储的。
顺序表具有随机访问的特点,可以通过下标直接访问元素,因此在访问元素时具有较高的效率。
顺序表的基本操作包括插入、删除、查找等,下面将对这些基本操作进行详细介绍。
1. 初始化:初始化顺序表需要为其分配一定的内存空间,以存储元素。
可以使用静态分配或动态分配两种方式来初始化顺序表。
静态分配是在编译时为顺序表分配固定大小的内存空间,而动态分配是在运行时根据需要动态地为顺序表分配内存空间。
2. 插入操作:插入操作是将一个元素插入到顺序表的指定位置上。
在插入元素之前,需要判断顺序表是否已满,如果已满则需要进行扩容操作。
插入元素时,需要将插入位置以及其后的元素向后移动一位,为插入元素腾出位置。
插入操作的时间复杂度为O(n),其中n为顺序表的长度。
3. 删除操作:删除操作是将顺序表中的一个元素删除。
在删除元素之前,需要判断顺序表是否为空,如果为空则无法进行删除操作。
删除元素时,需要将删除位置后面的元素向前移动一位,覆盖删除位置上的元素。
删除操作的时间复杂度为O(n),其中n为顺序表的长度。
4. 查找操作:查找操作是根据给定的关键字,在顺序表中查找满足条件的元素。
可以使用顺序查找或二分查找两种方式进行查找。
顺序查找是从顺序表的第一个元素开始,逐个比较关键字,直到找到满足条件的元素或遍历完整个顺序表。
二分查找是在有序顺序表中进行查找,每次将待查找区间缩小一半,直到找到满足条件的元素或待查找区间为空。
查找操作的时间复杂度为O(n),其中n为顺序表的长度。
5. 修改操作:修改操作是将顺序表中的一个元素修改为新的值。
修改操作需要先进行查找操作,找到待修改的元素,然后将其值修改为新的值。
修改操作的时间复杂度为O(n),其中n为顺序表的长度。
6. 遍历操作:遍历操作是依次访问顺序表中的每个元素。
可以使用for循环或while循环进行遍历,从第一个元素开始,依次访问每个元素,直到遍历完整个顺序表。
《数据库原理》实验指导书--最新版
实验一实验环境熟悉与数据库(表)的建立实验目的熟悉实验的环境,掌握数据库、数据表的建立方法。
实验内容1、熟悉SQL的使用环境进入SQL环境(企业管理管理器、查询分析器)。
2、建立学生管理系统所需的数据库、数据表一个数据库,三张数据表。
实验环境1、硬件PC机,具有网络功能。
2、软件OS:windows 2000 professional;DBMS: SQL Server 2000.实验过程一、SQL server 2000环境1、系统的安装系统的安装过程比较简单,给学生演示一下。
2、进入查询分析器开始→程序→Microsoft SQL Server→查询分析器, 如下图所示:图1-1查询分析器的界面如图1-2所示:图1-2在文本框输入命令即可。
举例:计算圆面积的SQL程序的输入与运行结果界面(图1-3)。
图1-33、企业管理器的进入开始→程序→Microsoft SQL Server→企业管理器, 如下图所示:图1-4企业管理器的界面如图1-5:图1-5二、建立数据库与数据表1、建立学生管理数据库用SQL语句(生成的主文件名为: XSGL.MDF)语句为:CREATE DATABASE XSGL2、建立学生管理系统的数据表(共3个)使用SQL语句建立如下三个数据表(表结构见课本P92):学生表: Student.DBF(选本班10个同学作为10条记录)CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20)UNIQUE, Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));INSERT INTO Student ( Sno, Sname, Ssex, Sdept, Sage) V ALUES ('200215128','陈东','男','IS',18);建立表结构的语句见课本p85(P88—P89),记录的输入用插入命令INSERT, 详见课本P115。
实验3.顺序表的基本操作
printf("请输入要插入的位置和数值,退出请输两个负数:");
break;
case 10:
printf("请输入要删除的位置:");
scanf("%d",&m);
DeleteElem(&L,m,n);
#include <stdio.h>
#include <stdlib.h>
#define LISTINCREMENT 1
#define OVERFLOW -1
typedef struct SqList{
int *elem;
int length;
int listsize;
printf("前驱值为%d\n",e);
}
return 0;
}
int LaterElem(SqList L,int i,int e){
if(i<0||i>=L.length){
printf("输入不合法\n");
return 0;
}
else{
e=L.elem[i];
break;
case 11:
ShowList(L);
break;
default:
printf("error! 请重新输入:\n");
scanf("%d", &i);
break;
}
}
return 0;
for(int *p=&(L->elem[L->length-1]);p>=q;--p)
线性表的基本操作实验报告
实验一:线性表的基本操作【实验目的】学习掌握线性表的顺序存储结构、链式存储结构的设计与操作。
对顺序表建立、插入、删除的基本操作,对单链表建立、插入、删除的基本操作算法。
【实验内容】1.顺序表的实践1) 建立4个元素的顺序表s=sqlist[]={1,2,3,4,5},实现顺序表建立的基本操作。
2) 在sqlist []={1,2,3,4,5}的元素4和5之间插入一个元素9,实现顺序表插入的基本操作。
3) 在sqlist []={1,2,3,4,9,5}中删除指定位置(i=5)上的元素9,实现顺序表的删除的基本操作。
2.单链表的实践3.1) 建立一个包括头结点和4个结点的(5,4,2,1)的单链表,实现单链表建立的基本操作。
2) 将该单链表的所有元素显示出来。
3) 在已建好的单链表中的指定位置(i=3)插入一个结点3,实现单链表插入的基本操作。
4) 在一个包括头结点和5个结点的(5,4,3,2,1)的单链表的指定位置(如i=2)删除一个结点,实现单链表删除的基本操作。
5) 实现单链表的求表长操作。
【实验步骤】1.打开VC++。
:点File->New,选Project标签,在列表中选Win32 Console Application,再在右边的框里为工程起好名字,选好路径,点OK->finish。
至此工程建立完毕。
:点File->New,选File标签,在列表里选C++ Source File。
给文件起好名字,选好路径,点OK。
至此一个源文件就被添加到了刚创建的工程之中。
4.写好代码5.编译->链接->调试1、#include "stdio.h"#include "malloc.h"#define OK 1#define OVERFLOW -2#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int ElemType;typedef int Status;typedef struct {ElemType *elem;int length;int listsize;} SqList;Status InitList( SqList &L ) {int i,n;L.elem = (ElemType*) malloc (LIST_INIT_SIZE*sizeof (ElemType));if (!L.elem) return(OVERFLOW);printf("输入元素的个数:");scanf("%d",&n);printf("输入各元素的值:");for(i=0;i<n;i++)scanf("%d",&L.elem[i]);L.length = n;L.listsize = LIST_INIT_SIZE;return OK;}Status ListInsert(SqList &L, int i, ElemType e) {ElemType *newbase,*p,*q;gth+1) return ERROR;if (L.length >= L.listsize) {newbase = (ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType));if (!newbase) return(OVERFLOW);L.elem = newbase;L.listsize += LISTINCREMENT;}q = &(L.elem[i-1]);for (p = &(L.elem[L.length-1]); p >= q; --p) *(p+1) = *p;*q = e;++L.length;return OK;}Status ListDelete(SqList &L, int i, ElemType &e) { ElemType *p,*q;if((i < 1) || (i > L.length)) return ERROR;p = &(L.elem[i-1]);e = *p;q = L.elem+L.length-1;for (++p; p <= q; ++p) *(p-1) = *p;--L.length;return OK;}void VisitList(SqList L){ int i;for(i=0;i<L.length;i++)printf("%d\t",L.elem[i]);}void main(){int i,e;SqList L;InitList(L) ;VisitList(L);printf("输入插入位置和值:");scanf("%d,%d",&i,&e);printf("插入元素后,表中的值:"); ListInsert(L,i,e);VisitList(L);printf("输入删除位置:");scanf("%d",&i);printf("删除元素后,表中的值:"); ListDelete(L,i,e);VisitList(L);}2、#include "stdio.h"#include "malloc.h"#define OK 1#define OVERFLOW -2#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef int ElemType;typedef int Status;typedef struct {ElemType *elem;int length;int listsize;} SqList;Status InitList( SqList &L ) { int i,n;L.elem = (ElemType*) malloc (LIST_INIT_SIZE*sizeof (ElemType)); if (!L.elem) return(OVERFLOW);printf("输入元素的个数:");scanf("%d",&n);printf("输入各元素的值:");for(i=0;i<n;i++)scanf("%d",&L.elem[i]);L.length = n;L.listsize = LIST_INIT_SIZE;return OK;}void VisitList(SqList L){ int i;for(i=0;i<L.length;i++)printf("%d\t",L.elem[i]);}void main(){SqList L;InitList(L) ;VisitList(L);}3、#include "stdio.h"#include "malloc.h"#define OK 1#define OVERFLOW -2#define ERROR 0typedef int Status;typedef int ElemType;typedef struct LNode {ElemType data;struct LNode *next;} LNode,*LinkList;Status ListInsert(LinkList &L,int i,ElemType e){ LinkList p,s;int j;p=L;j=0;while(p&&j<i-1) {p=p->next;++j;}if(!p||j>i) return ERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;return OK;}Status ListDelete(LinkList &L,int i,ElemType &e){ LinkList p,q;int j;p=L;j=0;while(p->next&&j<i-1){p=p->next;++j;}if(!(p->next)||j>i-1) return ERROR;q=p->next;p->next=q->next;e=q->data;free(q);return OK;}Status CreateList(LinkList &L, int n) {int i;LinkList p;L = (LinkList) malloc (sizeof (LNode));L->next = NULL;printf("输入元素的个数和相应值:");scanf("%d",&n);for (i = n; i > 0; --i) {p = (LinkList) malloc (sizeof (LNode));//生成新结点 scanf("%d",&p->data);//输入指针p指出i=n时所对应的数值 p->next = L->next;L->next = p;}return OK;}void VisitList(LinkList L){LNode *p;p=L->next;while(p){printf("%d\t",p->data);p=p->next;}}void main(){int i,n;LinkList L;ElemType e;CreateList(L,n);VisitList(L);printf("输入插入位置和值:");scanf("%d,%d",&i,&e);printf("插入元素后,表中的值:");ListInsert(L,i,e);VisitList(L);printf("输入删除位置:");scanf("%d",&i);printf("删除元素后,表中的值:");ListDelete(L,i,e);VisitList(L);}【实验心得】今天是本学期的第一次上机实验课,老师先给我们发了本次上机的内容以及部分实验代码,因为是第一次接触这门课程,还没有理解这门学科的特点和学习方法,所以同学们都觉得无从下手。
五年级上册科学实验基本操作一览表
1.认识反冲力。
2.知道要使静止的物体运动起来,必须对物体用力。要使物体运动更快,必须对物体用更大的力。
23
4-4测量力的大小
认识和使用弹簧测力计.
弹簧测力计、钩码、用于测量重力的小物体、长条形硬纸板、橡皮筋、回形针。
1.测量前只要求检查而不调整,强调的是检查计量工具的意识;请教师调整,目的是避免学生自行乱调指针。
1、要检查出水口是否正对“河道”
2、保持杯子中的水始终是满的
1.认识到河流也是流水侵蚀土地形成的。
2.河流的侵蚀和沉积作用形成了许多不同的地形地貌。
19
3-8减少对土壤的侵蚀
设计和建造模拟家园
长方形塑料水槽1个、湿润并混有少量沙石的土壤若干、报纸1张、塑料薄膜1张、小铲子1个、喷水器1个、水1瓶、小泡沫块10块左右、小草4棵左右。
2.分组设计对比实验方案,并验证自己的猜测。
通过实验了解动物生活需要的环境条件,体会自然事物是相互联系的。
4
1-6做一个生态瓶
生态瓶的制作分组实验
做生态瓶的容器、一个盛满了水的水桶、洗干净的沙子和小石子、小铲、漏网等工具、标签。
1.认识池塘生态环境的基础上讨论、填写实验申请单,确定自选材料。
2.在交流的基础上,各自提取实验材料,建造生态瓶。
五年级上册科学实验基本操作一览表
序
号
课题
实验名称
实验仪器及相关准备工作
步骤要点
设计意图
1
1-1种子发芽实验1
种子发芽分组实验
1个放大镜、4颗绿豆种子、2个干净的塑料种植盒、4张标签、1个塑料勺、1块纸巾。盛有潮湿土壤的桶、2支滴管、水、大头针、剪刀。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三表的基本操作一、实验目的1.掌握表建立的方法以及修改表结构的方法。
2.掌握表中数据输入的方法。
3.掌握记录指针的移动方法。
4.掌握表的基本操作:追加、插入、修改、显示、删除和恢复记录。
5.掌握表中的数据访问控制方式。
6.掌握表的排序和索引及使用。
7.掌握多个工作区和多表的操作方法。
二、实验内容和步骤1.创建自由表。
(1)创建学生情况表(xsqk.dbf)表结构如下:字段名类型宽度小数位索引 null学号 C 8姓名 C 8性别 C 2专业 C 12出生日期 D 8入学分数 N 3 0团员 L 1备注 M 4照片 G 4①在D盘创建学生管理文件夹,选择“工具/选项/文件位置”把该文件夹设为VFP的默认工作目录。
②选择“文件/新建/表/新建文件”,在“创建”对话框中的输入表名文本框输入“xsqk”,单击“保存”按钮。
③进入图1所示的表设计器,依次设置表的所有字段名字、类型、宽度和小数位数。
最后单击“确定”按钮。
④系统提示现在录入记录吗,单击“是”,录入下面两条记录。
⑤录入两条记录完毕,选择“显示/浏览…”命令查看录入的两条记录。
⑥ 选择“查看/追加方式”命令,继续输入以下三条记录。
⑦ 选择“显示/表设计器”命令,或在命令窗口输入“MODIFY STRUCTURE ”,打开表设计器,修改表结构,在性别后加一字段籍贯(c,20)。
(2)创建课程表(kc.dbf )① 表结构如下:字段名 类型 宽度 小数位 索引 null 课程号 C 4 课程名 C 12学分 N 1 0 先修课 C 10② 表结构建立完毕,输入以下记录:(3)创建成绩表(cj.dbf ) ① 表结构如下:字段名 类型 宽度 小数位 索引 null 学号 C 8 课程号 C 4 学期C 1图1 表设计器成绩 N 3 0 ② 在表中输入以下记录:2.打开表并查看表中记录。
(1)显示学生情况表(xsqk.dbf )中的记录。
菜单操作:①选择“文件/打开”命令,在打开对话框中把文件类型设为“表(*.dbf )”,如图2所示。
② 选定“xsqk.dbf ”,单击“确定”按钮,即打开xsqk表,观察主窗口中状态栏的变化。
③ 选择“显示/浏览…”命令,即可浏览查看xsqk 表中的记录。
命令法:① 打开表: USE xsqk ② 浏览记录:BROWSE ③ 关闭表:USE(2)用菜单操作和命令两种方法显示课程表(kc.dbf )中的记录。
图2 “打开”对话框(3)用菜单操作和命令两种方法显示成绩表(cj.dbf)中的记录。
3.表中记录定位。
(1)打开学生情况表(xsqk.dbf),将记录指针指向第1记录,并测试函数recno(),eof(),bof()的结果。
菜单操作:①打开xsqk.dbf,选择“显示/浏览…”命令,浏览表中记录。
②选择“表/转到记录/第一个”命令。
③在命令窗口输入命令:?recno(),eof(),bof()④显示结果为:1 .F. .F.命令法:①打开表: USE xsqk②定位记录:GO 1③测试函数结果:?recno(),eof(),bof()1 .F. .F.(2)分别用菜单法和命令法进行下列操作,然后把测试结果填入表中。
移动记录指针测试函数的值(3)条件定位①打开表: USE xsqk②查找姓名为张晓伟的记录。
命令:Use xsqkLocate for 姓名=”张晓伟”③在命令窗口用found()函数和Eof()函数测试是否找到该记录。
Found()函数的值是:.T.分析结果:在表中有姓名为张晓伟的记录,所以结果为.T.Eof ()函数的值是:.F.分析结果:在表中找到了张晓伟的记录,记录指针指向最后一条记录 4.修改表中记录。
把课程表中所有3学分改为4学分。
(1)用手工方式修改表中记录。
① 选择“文件/打开”命令,打开课程表(kc.dbf )。
② 选择“显示/浏览…”命令,浏览表。
③ 移动记录指针到学分为3的地方,直接输入4即可。
注意:修改时一定要小心谨慎。
(2)批量修改记录。
把课程表中所有4学分重新改为3学分。
菜单操作:① 选择“文件/打开”命令,打开课程表(kc.dbf )。
② 选择“显示/浏览…”命令,浏览表。
③ 选择“表/替换字段”命令,打开图3所示“替换字段”对话框。
④ 把所有学分为4的课程的学分改为3。
命令法:① 打开表: USE kc② 把所有学分为4的课程的学分重新改为3。
命令:use kcReplace all kc.学分 with 3 for kc.学分=4图4 替换字段对话框5.删除与恢复表中记录。
(1)逻辑删除学生情况表(xsqk.daf)中专业为“市场营销”的所有记录。
菜单操作:①选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。
②选择“显示/浏览…”命令,浏览表。
③选择“表/删除记录”命令,打开图5所示“删除”对话框。
④在“删除”对话框设置删除专业为“市场营销”的记录。
⑤单击“确定”按钮,所有“市场营销”专业的记录打上了黑色删除标记。
图5 删除对话框命令法:①打开表:USE xsqk②逻辑删除专业为“市场营销”的记录。
命令:use xsqkDelete all for xsqk. 专业=”市场营销”(2)物理删除记录和恢复记录去掉张晓伟所打的删除标记,彻底删除其他打上删除标记的记录。
菜单操作:①选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。
②选择“显示/浏览…”命令,浏览表。
③用鼠标单击记录张小伟前的黑色删除标记,即可去掉删除标记。
也可选择“表/恢复记录”命令去掉删除标记。
④选择“表/彻底删除”命令可以物理删除已打上删除标记的记录。
命令法:①打开表:USE xsqk②恢复张小伟这条记录。
命令:use xsqkRecall for 姓名=”张晓伟”③物理删除其它打上删除标记的记录。
命令:pack6.表的排序与索引。
(1)表的排序对学生情况表(xsqk.daf)按入学分数从高到低排序生成表文件rxfs.dbf,并检查排序结果。
命令:use xsqkSort to rxfs on 入学分数/dUse rxfsBrowse last(2)建立表的索引对学生情况表(xsqk.dbf)建立以学号为主关键字的候选索引xh。
菜单操作:①选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。
②选择“显示/表设计器”命令,打开表设计器。
③在“索引”区域选择升序或降序。
④单击“索引”选项卡,打开如图6所示的建立索引对话框,在索引名处输入“xh”,类型设为“候选索引”,单击“确定”按钮。
图6 建立索引命令法:①打开表: USE xsqk②建立索引:INDEX ON学号 TAG xh CANDIDATE参照以上两种方法对学生情况表建立以下索引:①以姓名为关键字建立普通索引xm。
②以出生日期为关键字建立普通索引csrq。
③以入学分数为关键字建立普通索引rxfs且降序排列。
USE xsqkINDEX ON 姓名 TAG xm CANDIDATEINDEX ON 出生日期 TAG csrq CANDIDATEINDEX ON 入学分数 TAG rxfs DESCENDING参照以上两种方法对成绩表cj.dbf建立以下索引:①以学号为关键字建立普通索引xh;②以课程号为关键字建立普通索引kch;③以学号+课程号为关键字建立候选索引(xhkc)USE cjINDEX ON 学号 TAG xh CANDIDATEINDEX ON 课程号 TAG kch CANDIDATEINDEX ON 学号+课程号 TAG xhkc CANDIDATE(3)索引查询的使用。
按姓名查询张晓伟的情况,并测试是否找到,如果找到显示结果。
①打开学生情况表(xsqk.dbf):USE xsqk②把姓名为关键字建立的普通索引xm作为主控索引:SET ORDER TO TAG xm③索引查找: SEEK ”张晓伟”④测试查找结果:?RECNO(),FOUND()3 .T.⑤显示查找结果:DISPLAY参照上述步骤查找学号为“20070105”的学生情况,并测试是否找到,如果找到显示结果。
写出命令序列:Use xsqkSet order to tag xhSeek “20070105”?recno(),found()结果: 4 .T.参照上述步骤查找出生日期为“12/01/88”的学生情况,并测试是否找到,如果找到显示结果。
写出命令序列:USE xsqkSet order to tag csrqSeek {^1988-12-01}?recno(),found()结果:4 .T.7.多个工作区操作。
(1)练习在多个工作区打开多个表。
菜单操作:①选择“窗口/数据工作期”命令,打开数据工作期对话框。
②依次选择“打开”按钮,打开xsqk,kc,cj三个表,如图7所示。
③选中工作表,单击“关闭”按钮可以依次关闭所有表。
图7 数据工作期窗口命令法:①在1区打开学生情况表:SELECT 1USE xsqk②在 2区打开课程表:SELECT 2USE kc③在3区打开成绩表:SELECT 3USE cj④关闭所有打开的表:CLOSE TABLES(2)多表数据查询。
列出李小霞所选的课程号及成绩。
①在1区打开学生情况表(xsqk.dbf)定位李小霞。
命令:Select 1Use xsqkSet order to xmSeek “李小霞”disply②在2区打开成绩表(cj.dbf),显示成绩表中和1区学号相同的记录就是李小霞的成绩。
(要求:最后显示的字段有学号,姓名,课程号,成绩)命令:Select 1Use xsqkSet order to xmSeek 李小霞Select 2Use cjList fields 学号,课程号,成绩,xsqk.姓名 for 学号=xsqk.学号 off(3)表的关联创建学生情况表(xsqk.dbf )和成绩表(cj.dbf )的一对多关联,并显示关联结果。
菜单操作:① 选择“窗口/数据工作期”命令,打开数据工作期对话框。
② 依次打开表xsqk 和cj 。
③ 选中cj 表,单击“属性”命令按钮,把cj 表的索引顺序选为xh 。
④ 选中xsqk 表,单击“关系”按钮,然后单击cj 表,在图8所示的“表达式生成器”对话框中选择“学号”字段,单击“确定”按钮。
两表已经建立关联。
⑤ 单击“一对多”按钮,为两表建立一对多关联。
⑥ 在命令窗口输入命令“BROWSE FIELDS 姓名,cj.课程号,cj.成绩”,显示一对多关联后结果,如图9所示。
命令法:① 选择工作区1打开学生情况表(xsqk.dbf )。
命令:② 选择工作区2打开成绩表(cj.dbf ),并把按学号字段建立的索引作为主索引。