北工大 数据库实验报告

2024-10-16

北工大 数据库实验报告(精选10篇)

北工大 数据库实验报告 篇1

数据库实验报告

专业:电子信息工程 学号:14020019 姓名:康文杰

一,实验内容:

本章介绍关系数据库标准语言SQL。主要内容包括:1数据定义、2数据操纵、3数据控制和数据约束等。

实验目标:

(1)SQL数据库的体系结构,SQL的组成。

(2)SQL的数据定义:SQL模式、基本表和索引的创建和撤销。(3)SQL的数据查询:

SELECT语句的句法,SELECT语句的几种形式及各种限定,基本表的联接操作。

(4)SQL的数据更新:插入、删除和修改语句。

(5)视图的创建和撤消,对视图更新操作的限制。(6)嵌入式SQL: 预处理方式,使用规定,使用技术,卷游标,动态SQL语句。

上课内容: 1)SQL的发展历程

SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统System R上实现。

1986年10月,经美国国家标准局(ANSI)的数据库委员会批准了SQL作为关系数据库语言的美国标准,并公布了标准SQL文本。

1987年6月国际标准化组织(ISO)将其采纳为国际标准,称为“SQL86”。相继出现了“SQL89”、“SQL2(SQL92)”、“SQL3”。2)SQL已成为关系数据库领域中的一个主流语言:

首先,各个数据库产品厂家纷纷推出了自己的支持SQL的软件或与SQL接口的软件。

其次,SQL在数据库以外的其他领域也受到了重视。不少软件产品将SQL的数据检索功能与面向对象技术、图形技术、软件工程工具、软件开发工具、人工智能语言等相结合,开发出功能更强的软件产品。

3)SQL数据库的体系结构的特征:

一个SQL模式是表和约束的集合。

一个表(TABLE)是行的集合。每行是列的序列,每列对应一个数据项。一个表可以是一个基本表,也可以是一个视图。一个基本表可以跨一个或多个存储文件,一个存储文件也可存储一个或多个基本表。

用户可以用SQL语句对视图和基本表进行查询等操作。SQL用户可以是应用程序,也可以是终端用户。4)SQL的组成

(1)数据定义语言(Data Definition Language,简称DDL)用于定义SQL模式、基本表、视图和索引。(2)查询语言(Query Language,简称QL)用于数据查询。

(3)数据操纵语言(Data Manipulation Language,简称DML)用于数据的增、删、修改。

(4)数据控制语言(Data Control Language,简称DCL)用于数据访问权限的控制。

二,实验过程:

1)定义基本表 : CREATE TABLE<表名>(<属性名1 ><类型1>[NOT NULL] [UNIQUE]

[,<属性名2><类型2+ *NOT NULL+ *UNIQUE+ +…)

[其他参数];

一个关系的主关键字由一个或几个属性构成,在CREATE TABLE中使用保留字PRIMARY KEY声明主关键字:

(1)在列出关系模式的属性时,在属性及其类型后加上保留字PRIMARY KEY,表示该属性是主关键字;

(2)在列出关系模式的所有属性后,再附加一个声明:

PRIMARY KEY(<属性1>[,<属性2>…+)如果关键字由多个属性构成,则必须使用方法(2)

2)基本表的修改和删除 1 增加新的属性

ALTER TABLE [<表的创建者名.>] <表名>

ADD<属性名><类型>; 2基本表的删除

在SQL中删除一个无用表的操作是非常简单的,其语句格式为:

DROP TABLE <表名>;

3)查询语句格式

查询语句的基本部分:

SELECT <属性列表>

FROM <基本表>(或视图)

[WHERE <条件表达式>];

4)元组插入,修改和删除

1元组插入语句的一般格式是:

INSERT INTO <表名>[(<属性名1> [,<属性名2>,…+)+

VALUES(<常量1>[,<常量2>,…]);

2删除元组的语句格式是:

DELETE

FROM <表名>

[WHERE <条件>]; SQL中用数据修改(UPDATE)来修改元组的值。其语句格式是:

UPDATE <表名>

SET <属性1>=<表达式1>[,<属性2>=<表达式2>,…]

[WHERE <条件>];

5)简单查询

最简单的SQL查询只涉及到一个关系,类似于关系代数中的选择运算。

三,实验感悟

总结:1SQL是关系数据库的标准语言,已广泛应用在商用系统中。

2SQL的数据定义部分包括对SQL模式、基本表、视图、索引的创建和撤消。

3SQL的数据操纵分成数据查询和数据更新两部分。4SQL的数据查询是用SELECT语句实现,兼有关系代数和元组演算的特点。5SQL的数据更新包括插入、删除和修改等三种操作,在视图中只有行列子集视图是可以更新的。

6嵌入式SQL涉及到SQL语句的宿主语言程序中的使用规定,以解决两种语言的不一致和相互联系的问题。

通过本次实验基本掌握了数据库的结构化查询语言SQL,为接下来数据库大作业打了基础,在本次实验中通过对SQL语言的学习,我们组对数据库大作业有了更清晰的规划。

北工大 数据库实验报告 篇2

扬州话是江淮官话的代表方言, 她的存在至少也有三、四百年的历史了。方言学上的“扬州话”一般指扬州城区及毗邻的双桥、城东等乡村的方言, 扬州四乡又称其为“街上话”。它曾经是明朝时期的官话, 至今还有很多古汉语词汇, 以及一些生动的、有意思的口头语。以扬州方言为载体的曲艺有扬州清曲、扬州评剧、扬剧等。这些曲艺已经被列入国家非物质文化遗产。而广义上的扬州话还包括邗江全境20多个乡镇以及仪征北部数乡镇的方言。地级扬州市所辖县的高邮、仪征、宝应等方言, 通常不将其看作扬州方言来研究。本次实验主要是调查扬州话单字字调的发音情况。

1.实验材料和过程

1.1实验目的

(1) 学会独立完成扬州方言单字调的实验研究, 熟悉整个实验的步骤, 运用相应的仪器和软件, 得到声调数据结果, 与传统方言数据进行比较。

(2) 用学习到的声调理论知识将实验数据进行分析讨论, 能够在实际的操作中掌握理论。

(3) 学会编制录音底本, 选取有效的调查字表, 合适的发音人。

(4) 自主完成使用Audition软件录制方言单字调的过程, 在不断调试后, 获取有效音频文档。

(5) 在前次实验的基础之上, 对自己完成的录音文档用Praat软件进行标注和提取数据, 对声调承载段问题有更深入的认识。

(6) 利用Excel表格得出的数据结果描绘出扬州方言声调格局图, 比对传统值和老师实验值的出入, 找出自己实验问题在哪里。

1.2实验准备

1.2.1调查点

(1) 调查点:江苏省扬州市维扬区

(2) 扬州市东经:119°26北纬度:32°24′

(3) 扬州市市区人口 (不算下级单位) :100万左右

(4) 扬州市民族和其人口:90%以上是汉族, 同时有少数各族人民。

(5) 扬州市少数民族语言:无

(6) 方言种类:江淮官话洪巢片扬州话

(7) 方言艺术:扬剧、扬州评话、扬州清曲

1.2.2发音人

(1) 姓名:滕惟茜 (2) 性别:女 (3) 民族:汉

(4) 出生年月:1965年6月 (5) 出生地:扬州市广陵区

(6) 主要经历:一直在扬州生活与工作

(7) 文化程度:高中 (8) 职业:会计

(9) 会说的话:扬州话、不标准普通话

(10) 现在主要说什么话:扬州话

(11) 父亲是哪里人:扬州人

(12) 母亲是哪里人:泰州黄桥人

1.2.3调查人

(1) 姓名:滕菲 (2) 性别:女

(3) 单位:南京师范大学文学院

1.2.4调查人

(1) 调查时间:2012年1月30号

(2) 调查地点:扬州市五台山医院特别检查室

(3) 背景噪音:较为安静, 但笔记本不插电源时本身有声音

1.2.5调查人

(1) 调查字表的确定过程

根据资料的查找, 确定了扬州方言共有五个调类, 分别是阴平、阳平、上声、去声和入声。

以方言声调采录底本为参照, 单字每个调类取12个字, 尽量避免送气音、多音字和在日常生活中不能单说的字。

让发音人检查字表, 检查有没有读音不准确的字, 进行剔除重选, 最终选定调查字表如下:

1.3录音

阴1平.3.1器材方阳案:平笔记本电脑上+声简易录音话去筒声入声

(1) 笔记本电脑:东芝 (M833) —1G内存、Window7系统

(2) 话筒:简易有底座的话筒

1.1.3.2准备工作

(1) 场所:较为安静的办公室, 关闭门窗, 关掉所有交流电源, 包括笔记本电脑的话筒。

(2) 话筒:使用时, 嘴巴不能正对话筒, 要与话筒成斜角, 保持固定的3~5cm, 防止“扑麦”和“爆音”。

(3) 提示和方式:事先和发音人明确“开始录音”和“停止录音”的手势。

(4) 试音:为了让录音人熟悉录音的过程和要求、测试录音效果, 在正式录音前, 让发音人试录部分调查单字调。

1.3.3录音软件

阴平本次调查运阳用平了老师推荐上声的Adobe Au去di声tion3.0版录入音声和音频处理软件。

点12.和34音986频484处43理软2.2件89。71356992.3136445782.34099310032.3738757367点22.345311.439.0483基本2.2录85音193参49数092.30340897892.34233435182.371964342点32.3334 (2616) 25声3道2:.2单81声530道94772.29721084672.3491326522.3722301751点42.3187 (026) 27采8样2.率2:9247411809508H5z2.29315093472.35675664042.3702818893点52.2984 (3632) 34分7辨2.率3:1416669位15082.28814919492.36595672.3681207176点62.2782 (4642) 64音2频2.格35式79:95W1i5n6d3ow2s.P28C3M30 (8*3.3w9a6v) 2.37394561482.3697722777点72.256411.816.033.75录2.音39过549程685412.27452097592.37464350852.3678108741点82.2399 (2410) 68选7择2“.4文07件66”36—55“2新建2.”26选811择37相56应的2.3参669数18和111保1存2文.36件87的688824点92.类21型608—911按14下红2.4色10按255钮032开5始2.录25音71, 882查996看背2.3景63噪780音83和81观2察.36录89音265855点102.人18发86音498后76的波2.4形14, 27及09时808进行2.调252整45。352432.36553438632.367250869

(2) 试音之后, 开始正式录音。按照讲好的手势开始, 因为字较多, 所以四个字一录, 避免发音人因喘气或呼气造成的失败。

(3) 录完之后, 按照声调类别进行归类, 用“混合型粘贴”将每个调类的字剪切在一起, 形成一个整的12个发音字的文件。

(4) 全部结束后进行试听, 查看背景噪音—选中一段无用的过渡段—“效果”—“修复”—“降噪器”, 选择相应的参数, FFT6000, 衰减12DB—“获取特性”—“确定”—再次进入降噪器—“波形全选”—“确定”—二次试听, 达到要求后, 分别保存在F盘的temp文件的五个调类文件中 (文件类型是

(5) 由于第一次操作不熟练, 在进行提取基频时, 发现音频的波形出现问题, 于是再次录音, 但这次的背景没有上次安静, 电平为-40DB———-42DB, 经过降噪之后 (12DB) , 为-52DB———-57DB, 听时仍会感到电脑电池运行的声音。

1.4提取基频和做声调格局图

1.4.1工具:

Praat音频处理软件。

1.4.2提取基频:

(1) 打开声音文件, 由于电脑运行速度慢, 没有将五个声音文件粘贴在一起, 而是分调类依次打开和修改基频。

(2) 选中声音文件Sound—Periodicity—Topitch在对话框中修改:女声:最小Pitchfloor (Hz) :75.0, 最大Pitchceiling (Hz) :600.0, 生成Pitch文件。打开Pitch, 发现呈现的声调再次范围之类, 就不需要再修改Periodicity。

(3) 选中Pitch—Edit进行调整, 去除野点, 补足空余段。首先选中一个声调, 记住其图形特征, 按in不断放大, 直到删除野点时能够不影响其他的声调段, 然后选中要删的点, 选Selection-Unvoice去除野点。而补足空余时, 只能在有数字显示的地方补。

(4) 做好之后, 选中Pitch中的Down to pitch tier, 生成pitch tier文件, 保存在C盘Temp文件夹中。

1.4.3标注文件:

(1) 选中Sund—Annotate—To TextGrid修改All tier name Mary John (说明标注有两层内容) , 下面的不改, 生成TextGrid。

(2) 将Sound和TextGrid关联起来, 点击Edit进行标注。

(3) 我选择的方法是先选中一个字的读音, 将其放大到能看清蓝线的每一点, 逐字进行标注。

标注第一层音节时, 选取用拼音表示, 因为标汉字时, 发现软件有不识别的情况。

标注时, 发现听感和图像显示有较大区别, 按图像说, 有蓝线的地方才应该有声, 但放大到一定限度时, 实际听到的超过蓝线范围, 尤其是遇到送气的辅音。笔者没有选择完全按照图像显示, 而是根据听感, 选择清晰地一段, 因为音节的标注对于最后数据处理没有影响。

标注第二层声调承载段时, 一开始用“主要元音及过渡段”法, 但是多次尝试之后发现, 听耳很难分辨出, 尤其是有韵尾或多音节的情况, 所以最终选择“韵母段”, 同时仍然处理了“弯头”、“降尾”。在标注时, 选择用数字1-7来表示声调, 奇数为阴调, 偶数为阳调, 分别为:阴平-1、阳平-2、上声-3、去声-5、入声-7。

说明:在标注入声时发现, “百”、“读”在蓝线后的一段上有较为清晰的声调出现, 如果不选, 声音显得无力 (后补录, 发现还是这样, 可能是发音人的问题) , 就将后面一段清晰地声音也算在范围之类, 可能对数据有影响。最终T值里, 入声的值有几个基频点不到4, 其余的在4-5之间, 但都偏向4, 就将入值归为4, 与传统值和刘利李老师的实验值5不同。

标注完成之后, 保存文件。

1.4.4提取基频值:

点击Control-Open Praat Script选择脚本:提取音节或声韵母的音高数据, 运行Run将标注层数设为2, 将每个样本提取的数据数设为10。

1.4.5用Excel表格进行数据分析和做声调格局图:

(1) 新建Excel表格, 导入外部数据, 数据为来自C盘temp文件夹中的Pitch (txt) 文档。

(2) 复制数据到Sheet2, 整理数据, 标注顺序排序, 留下标注内容、时长和各基频点值。

(average) 和对数值 (log10) 和标准差 (stdev) 。

(4) 利用Excel表的“公式”, 选取所有对数值中得最大值和最小值阴 (平设最大值刚为、a专, 、尊最、丁小、边值、安为、b开, 、粗对、昏数、商值、三变、飞量为x) 。

(5) 根阳平据公式T=穷 (、l床gx、才-l、g平b、) 寒, 、鹅计、娘算、人出、龙相、难应、麻的、云五度值, 并保

上声纸、l走ga、短-l、g草b、好、受、五、女、老、武、买、有阴平刚、专、尊、丁、边、安、开、粗、昏、商、三、飞

留两位小去数声。帐、正、对、汉、送、放、大、数、饭、岸、漏、用

阳平穷、床、才、平、寒、鹅、娘、人、龙、难、麻、云

(6) 将入声计算出来曲的、出五、突度、各值、桌绘、百制、尺成、拍折、药线、杂图、读, 、修舌改刻度。

上声纸、走、短、草、好、受、五、女、老、武、买、有

要检查数据是否合格, 就要算出基频点的标准差, 单字调<或=25时, 说明数据是可靠的。在本次试验中, 所有数据只有阴平的点9为25.96和点10的标准差为28.88, 其余都合格。

点1-0121

2.1.1.1与已有实验值相比

(1) 阴平和上声的调值完全一样。

(2) 阳平都显示为升调, 上升的幅度大致相同, 但此实验值略高于已有的实验值。

(3) 去声和入声都是高平调, 但此实验值略低。

(4) 相比较, 二次实验值虽有具体数据的不同, 但显示的调型和声拱特征是一样, 此次实验的数据具有可采纳性。

2.1.1.2与传统值 (听感描写) 的相比

对于扬州方言单字调的研究成果, 主要记录在《江苏省志·方言志》与《扬州方言词典中》, 也就是所列出的传统值。实验结果与听感描写基本一致, 但也存在差异:

(1) 阴平的实验结果是41, 但听感描写分别是21和11, 存在较大差异。实验值41是一个全降调, 传统值21也是降调, 数据的不同可能与发音人有关, 同时听觉毕竟只是一个大概感知, 与数据计算会有一定的差别。但另一传统值11, 就完全不同, 这是个低平调, 而不是降调, 可能作为本地人听本地音, 又受到普通话阴平55值的影响, 觉得扬州方言的阴平发音与之相似, 只是低了个调。但两次实验值和传统值1都

认为是降调, 只是调域不同, 那11这个值就有待斟酌。

(2) 阳平的描写较为一致, 都是一个升幅不大的声调实验值与传统值分别是35、24和34、35, 没有多大出入。

(3) 上声的实验值是32, 传统值是42, 只是调域起点的不一样, 都是一个中降调, 结果基本一致。

(4) 去声的已有实验值和传统听感值都是55, 一个高平调。本次实验结果是44, 也是一个高平调, 但发音较低, 可能与发音人本身有关, 但并不与55值冲突。

(5) 入声已有实验值是5, 本次实验和传统值是4, 都是短促的高平调, 同时听感上都能感到短促的收缩。

综上, 实验的结果与听感描写是相一致的, 不同大多是具体数值的差异, 调类、调型也是相同的。可见实验的手段是对传统语音学“口说耳辩”的补充, 利于更加细致的比较研究。

2.1.1.3声调的声学空间

“每一种声调语言或者方言, 都具有一个特定的声调格局。声调格局是由该语言或方言中全部单字调所构成的格局, 是各种声调变化的基础形式。而每一种声调在声调格局中不仅是一条曲线, 而且是一条的带状的声学空间。可以采用带状的包络线来表示声调调位的声学空间。只要一条声调曲线位于这个声学空间中, 就符合这个声调的特征, 就不会为其他的声调。”虽然两次实验值有数据差异, 与传统值也有差别, 但从声调的声学空间来看, 是在范围之内, 也反过来证明了声学空间的存在。

2.2声调承载段讨论

声调承载段的认识发端于声调与音段的认识关系。中国语音学界主要有三说:1.音节说:声调由整个音节承载;2.带音说声调由音节的带音部分承载, 包括带音声母;3.韵母说:声调附着于音节的韵母之上。1995-1996林茂灿的讲话提出“主要元音及过渡段”是声调的承载段。从语图和“弯头”、“降尾”来看, 这种说法更为准确, 但实际操作困难。到底哪里是主要元音, 切分不易, 所以本次实验采取了“韵母段”的做法。在实际操作中, 听感与语图会有差异, 本人将窄带语图不断放大, 但有时还是很难分清, 采取了往韵母段靠的方法, 保证承载段的稳定性。最后结合语图, 处理“弯头”和“降尾”。

原始数据表格:

去声220.44222.98220.93221.10222.32218.86218.15219.44219.70219.92

参考文献

[1]宋益丹.南京方言声调实验研究, 2006.

[2]丁琳.姜堰方言声调实验研究, 2005.

[3]刘利李.江淮方言声调实验研究和折度分析[M].巴蜀书社, 2007.

[4]石峰.语音格局——语音学与音系学的交汇点[M].商务印书馆, 2008.

[5]南开大学语言研究所.语音学实验研究报告写作规范 (草案) [J].南开语言学刊, 2009 (1) .

[6]刘俐李.汉语声调的曲拱特征和降势音高[J].中国语文, 2005 (3) .

SQL数据库实验报告 实验二 篇3

1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。

(2)掌握使用SQL Server管理平台对数据库进行管理的方法。

(3)掌握使用Transact-SQL语句对数据库进行管理的方法。

2.实验内容及步骤

(1)在SQL Server管理平台中创建数据库。

① 运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。

② 右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。

(2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。

(3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。指定“最大文件大小”为5MB。修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。

(4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句CREATE DATABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。

(5)在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。

(6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。

(7)使用SQL Server管理平台将studb数据库的名称更改为student_db。

(8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。

3.实验思考

(1)数据库中的日志文件是否属于某个文件组?

(2)数据库中的主数据文件一定属于主文件组吗?

(3)数据文件和日志文件可以在同一个文件组吗?为什么?

(4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库?

数据库原理实验报告 篇4

《数据库原理与应用》

课程实验报告

实验一 SQL Server 2005常用服务与实用工具实验

所在院(系): 数学与信息技术学院 班级:

学号:

姓名:

1.实验目的

(1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。(2)了解SQL Server 2005的主要组件、常用服务和系统配置。

(3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。

2.实验要求

(1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。

(2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。

(3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得所感兴趣的相关产品主题/技术文档。

(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查询语句。

(5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。(6)按要求完成实验报告。

3.实验步骤、结果和总结实验步骤/结果

(1)简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。

(2)总结SQL Server Management Studio的主要操作方法。

(3)总结查询编辑器的功能和主要操作方法,并举例说明。

(4)总结“模板”的使用方法,并举例说明。

4.实验思考:

二工大实习报告 篇5

光阴似箭,岁月如梭。一晃几个月的实习生活已经过去了,在最近的几个月的实习过程中,我有着许多的收获和欢乐,但也有苦涩和教训,这些成功的经验将激励我在以后的人生之路上取得更大成绩,失败的经历将使努力去改变自己不完美的地方,让自己在以后的日子作的更好,这一切将成为我生命中最宝贵的财富之一

我原本是一个挺内向的人,不是很善于和别人交流沟通,总是在沉默中独来独往,这种生活习惯也许在学校中不会产生太多的负面影响,但是在单位中,各种工作需要大家团结协作来完成,任何人单打独斗都很难把工作作好,这使我初到单位很不适应这种整体化、系统化的工作环境,所以一开始我的工作做的很差,这使我充分认识到交流沟通的重要性,交流和沟通是解决困难、创造机遇的有效途径,也许我已经习惯了一个人独来独往的生活方式,用更多的自我思考代替相互交流,但是现代社会要求我们每个人要学会相互交流和深入沟通,交流沟通是一种智慧,是一种为人处事的生活方式,我会慢慢改变自己,让自己拥有交流的智慧,养成一种为人处事的良好生活方式,这一切不仅是个人发展的需要,也是时代和社会发展的趋势。

虽然实习的工作与所学专业没有很大的关系,但实习中,我拓宽了自己的知识面,学习了很多课本以外的知识,甚至在学校难以学到的东西。

在实习的那段时间,让我体会到从工作中再拾起书本的困难性。每天较早就要上班工作,晚上较晚才下班回宿舍,深感疲惫,很难有精力能再静下心来看书。这更让人怀念在学校的时光。

此次毕业实习,我学会了运用所学知识解决处理简单问题的方法与技巧,学会了与员工同事相处沟通的有效方法途径。积累了处理有关人际关系问题的经验方法。同时我体验到了社会工作的艰苦性,通过实习,让我在社会中磨练了下自己,也锻炼了下意志力,训练了自己的社会适应能力,提升了自己的实践技能。积累了社会工作的简单经验,为以后工作也打下了一点基础。

认真作好每一件小事将是我们每一个人都必须去努力追求的,在实习单位中,我一开始做一些基础性的工作,慢慢地我开始做数据统计上报工作,这让我深深地感觉到认真作好每一个细节的重要性,因为每一个数字都关系到部门的利益,自己的一不小心就会给部门和同事造成相当大的损失。这就要求在日常生活中原本不很严谨的我努力作好每一个细节。自己在工作中的一次次失误深深地刺痛我内心深处的每一根神经,这样的环境迫使我更加严格地

要求自己,努力把日常工作作好,做到尽善尽美、精益求精,让自己在工作实践中不断完善自己的知识结构,提高自身的工作水平。

通过几个月的实习,我开始认识到实践的重要性。实践中蕴涵着无穷无尽的知识,这些知识需要我们在实践去发现、去总结。在实习单位中有许多同事,他们没有受过正规的大学教育,但是他们仍然做出了良好的业绩,在公司占据了一席之地,为公司和个人都带来了良好的效益。这一切证明了实践出真知,实践是认识发展的动力和源泉。

“路漫漫其修远兮,吾将上下而求索”通过几个月的实践学习,我学到了学多在校园内无法学到的知识,这些宝贵的人生经历将激励我在以后的人生路上勇于实践,开拓创新,为人生的下一次辉煌奠定坚实的基础,成为我受益终生的宝贵财富。

即将踏上社会的我们还有太多太多需要学习的东西。我们没有足够的知识做铺垫,更没有足够的实战经验。如此一番并不乐观的甚至可以说是悲观的言辞,只是我这个初出茅庐的“菜鸟”的一点牢骚。

就像自己喜欢的一句话“我允许自己像蜗牛一样一步一个脚印的开始,却不允许自己不思进取得活着。”每个人都有自己对待生活的态度,对待挫折的态度和对待成功的态度。也许并没有真正遇到挫折,也没有真正成功过,但是积极向上的态度总是对的。就像亘古不变的“谦虚使人进步,骄傲使人落后”一样,我终究会学会用适合的方式去做正确的事情。

这是一段充满艰辛和收获的经历,这是一段充满幸福和快乐的旅程,这是一段充满挫折与反思的人生,这是一件我们一生用心珍藏的礼物,这是一个不老的故事,是师傅和徒弟用情感书写的传奇,这一切必将是我生命中不朽的记忆,必将给我们以后的人生打下坚实的基础,必将是我生命中丰硕而宝贵的精神财富。

数据库实验报告 SQL语言 篇6

实验6 视图

实验目的:1)掌握交互式创建、删除视图的方法

2)掌握使用SQL创建、删除视图的方法

3)掌握交互式更新视图的方法

4)掌握使用SQL更新视图的方法 实验内容

6.1实验题目:创建视图

实验过程:1)交互式创建视图VIEW_S

2)交互式创建成绩视图VIEW_SCORETABLE

3)使用SQL创建课程表视图VIEW_CTABLE

实验结果:

6.2实验题目:修改视图

实验过程:1)使用交互式方法把视图VIEW_S中的字段SNO删掉

2)使用SQL为视图VIEW_CTABLE增加一个课时字段CT tiny int

实验结果:

6.3实验题目:通过视图修改数据库数据

实验过程:1)交互式通过修改视图VIEW_S中的数据来实现对其基本表S中数据的修改

2)对视图VIEW_S执行INSERT语句,查看此视图的基本表S中数据的变化

3)修改视图VIEW_S的定义,使其包含表S中的主键,再执行插入操作

4)用SQL语句对视图VIEW_S执行DELETE操作,查看此视图的基本表S中数据的变化 实验结果:

6.4实验题目:删除视图

实验过程:1)交互式删除视图VIEW_S

2)使用SQL删除视图VIEW_CTABLE

实验结果:

实验7 数据查询

实验目的:1,掌握从简单到复杂的各种数据查询。包括,单表查询、多表连接查询、嵌套查询、集合查询。

2,掌握用条件表达式表示检索结果。

3,掌握用聚合函数计算统计检索结果。实验7.1 单表查询

实验目的:1,掌握指定列或全部列查询。

2,掌握按条件查询。

3,掌握对查询结果排序。

4,掌握使用聚集函数的查询。

5,掌握分组统计查询。实验内容:1,指定或全部列查询。

2,按条件查询及模糊查询。

3,对查询结果排序。

4,使用聚集函数的查询。

5,分组统计查询。

实验7.2 连接查询 实验目的:掌握设计一个以上数据表的查询方法。多表之间的连接包括等值连接、自然连接、非等值连接、自身连接、自身连接、外连接和复合连接。

实验内容:1,连接查询,查询所有选课学生的学号、姓名、选课名称及成绩。

查询每门课程的课程号、任课教师姓名及其选课人数。

2,自身连接,查询所有比刘伟工资高的的教师的姓名、工资及刘伟的工资。

查询同时选修了程序设计和微机原理的学生的姓名、课程号。

3,外连接,查询所有学生的学号、姓名、选课名称及成绩(没有选课的学生的选课信息显示为空)

实验结果

实验7.3 嵌套查询

实验目的:掌握嵌套查询使我们可以用多个简单查询构成复杂的查询。从而增强了SQL的查询能力。

实验内容:1,返回一个值的子查询,查询与刘伟教师职称相同的教师号、姓名和职称。

2,返回一组值的子查询,使用ANY谓词查询讲授课程号为C5的教师姓名。使用IN谓词查询讲授课程号为C5的教师姓名。使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师的姓名、工资、使用EXISTS谓词查询没有讲授课程号为C5的课程的教师姓名、所在系.使用NOT EXISTS谓词查询至少选修了学生S2选修的全部课程的学生的学号。实验结果

实验7.4 集合查询

实验目的:掌握使用UNION操作符将来自不同查询但结构相同的数据集合组合起来,形成一个具有综合信息的查询结果。

实验内容:查询年龄不大于19岁或者属于计算机系的学生,步骤如下:打开新建查询窗口,创建SQL语句。执行语句。

实验结果

实验十.T-SQL程序设计与游标设计

实验目的

掌握Transact-SQL语言及其程序设计的方法 掌握T-SQL游标的使用方法

实验10.1 T-SQL程序设计逻辑 实验目的

掌握T-SQL程序设计的控制结构及程序设计逻辑 实验内容

(1)计算1~100之间所有能被3整除的数的个数和总和。

(2)从学生表S中选取SNO,SN,SEX,如果为“男”则输出M,如果为“女”则输出F。实验 10.2 面向复杂T-SQL程序设计 实验目的

掌握面向复杂应用的T-SQL程序设计方法。实验内容

(1)从教学数据库jxsk中查询所有同学选课成绩情况:姓名,课程名,成绩。要求:凡成绩为空者输出“未考”;小于60分的输出“不及格”;60~70分的输出“及格”;70~80分的输出“中”;80~90分输出“良好”;90~100分输出优秀。并且输出记录按照下面要求排序:先按SNO升序,再按CNO升序,最后按成绩降序。

(2)现给教师增加工资。要求:必须任两门以上课程且涨幅按总收入分成三个级别:4000元以上涨300;3000元以上涨200;3000元以上涨100。只任一门课程的涨50.其他情况不涨。

实验 10.2 使用游标 实验目的

学习和理解关系数据中游标的概念和设计思想。掌握使用T-SQL游标处理结果集的方法。实验内容

针对数据库jiaoxuedb,进行下面的实验:

数据库的安全性实验报告 篇7

验:课程 班

级 学号 学生姓名 任课教师(计算机学院)

课内实验报告

数据库的安全性试验

数据库原理及应用B

网络1203

孟彩霞

:::::

一、实验目的(1)理解SQL Server 2000验证用户身份的过程,掌握设置身份验证模式的方法。(2)理解登录账号的概念,掌握混合认证模式下登录账号的建立与取消方法。(3)掌握混合认证模式下数据库用户的建立与取消方法。(4)掌握数据库用户权限的设置方法。

(5)理解角色的概念,掌握管理的角色技术。

二、实验内容

(1)在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。(2)创建、管理数据库服务器的登录账号。(3)创建、管理数据库用户。(4)管理用户权限。

(5)创建、管理数据库角色。

三、实验环境

SQL Server 2008版本。

四、实验前准备

仔细预习实验内容,理解实验步骤。

五、实验步骤

1.在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。

2.创建、管理数据库服务器的登录账号。用T-SQL语句创建、查看、删除登录账号。

创建一个名为Student、密码为111、使用的默认数据库为JWGL的登录账号。EXEC sp_addlogin ‘student’,’111’,’JWGL’ 查看登录账号

EXEC sp_helplogins 删除登录账号为EXEC sp_droplogins ‘student’

3.创建、管理数据库用户。

用T-SQL语句创建、查看、删除数据库用户。

为数据库JWGL创建一个用户user1,该用户登录SQL Server服务器的账号为wang,登录密码为secret,相应的程序代码为: EXEC sp_addlogin ‘wang’, ‘secret’, ‘JWGL’ GO EXEC sp_grantdbaccess ‘wang’, ‘user1’ 查看数据库用户为EXEC sp_helpuser 删除数据库中的“wang”用户为EXEC sp_revokedbaccess ‘wang’

4.管理用户权限。

使用T-SQL语句完成第3章习题12中(1)~(3)的用户管理和用户权限管理。企业管理器:

(1)允许用户李明对Orders表进行插入、删除操作。

GRANT INSERT ,DELETE ON Orders TO ‘李明’(2)将查询Goods表和修改单价的权限授予用户李四。

GRANT UPDATE(Price),SELECT ON Goods TO ‘李四’

(3)将查询Goods表的权限授予用户文云龙,并允许他将此权限授予他人。

GRANT SELECT ON Goods TO ‘文云龙’

WITH GRANT OPTION

5.创建、管理数据库角色。

如一个小组共3个成员,他们对JWGL具有相同的操作权限,具体权限为对Student,Course表只能进行数据查询;对SC表可以进行查询、修改、删除和插入。

可以创建一个角色(如role),给该角色赐予相应的权限,然后给每个成员建立一个登录账号(如分别为lin,wang,zheng),并将每个成员的登录账号添加为数据库角色role的成员。其代码如下: EXEC sp_addrole ‘role’

GO GRANT SELECT ON Student,course TO role

GRANT SELECT,UPDATE,DELETE,INSERT ON SC TO role GO EXEC sp_addrolemember ‘role’, ‘lin’ EXEC sp_addrolemember ‘role’, ‘wang’ EXEC sp_addrolemember ‘role’, ‘zheng’

删除角色role,然后再使用企业管理器完成以上任务。删除角色role时,必须保证它不包含任务数据库用户,即要先删除其下的所有成员。

EXEC sp_droprolemember ‘role’, ‘lin’ EXEC sp_droprolemember ‘role’, ‘wang’ EXEC sp_droprolemember ‘role’, ‘zheng’ GO EXEC sp_droprole ‘role’

六、实验步骤及部分结果截图

1.混合登陆

2.创建一个名为Student、密码为111、使用的默认数据库为JWGL的登录账号。

EXEC sp_addlogin ‘student’,’111’,’JWGL’

查看登录账号

EXEC sp_helplogins

3.为数据库JWGL创建一个用户user1,该用户登录SQL Server服务器的账号为wang,登录密码为secret

查看数据库用户:

删除数据库中的“wang”用户:

4.(1)允许用户李明对Orders表进行插入、删除操作:

2)将查询Goods表和修改单价的权限授予用户李四:

3)将查询Goods表的权限授予用户王二,并允许他将此权限授予他人

5.创建一个角色(如role),给该角色赐予相应的权限,然后给每个成员建立一个登录账号(如分别为lin,wang,zheng),并将每个成员的登录账号添加为数据库角色role的成员

将lin,wang,zheng加为角色成员:

删除角色role,然后再使用企业管理器完成以上任务

七、心得体会

安工大暑期马钢实习报告 篇8

一、实习地点及生产流程介绍........................................................1 马钢第三钢轧总厂——H型钢.................................................1.2 H型钢概念.....................................................................1.3 主要生产设备...................................................................1.4 生产工艺流程...................................................................1.5 主要工艺特点...................................................................2 马钢第二炼铁总厂——高炉冶炼工艺...................................2.1 高炉简介..........................................................................2.2 原料及基本原理...............................................................2.3 上料、配料系统...............................................................2.4 高炉内衬..........................................................................2.5 产品..................................................................................2.6 冶炼过程..........................................................................2.7 冷却系统..........................................................................二、实习总结...................................................................................

一、实习地点及生产流程介绍 马钢第三钢轧总厂——H型钢 1.1 马钢H型钢简介

1998年9月建成投产的热轧H型钢厂是我国第一条热轧大型H型钢生产线,该生产线由德国DEMAG、SIE-MENS公司和美国的ITAM公司提供技术和主要设备,具有90年代国际先进水平。目前可按国标组织生产腹板高200-800mm的热轧H型钢和钢板桩,同时也可按日本、英、美标准生产供货。

图为带队老师在讲解

马钢热轧H型钢厂投产以来,以其良好的品质,广泛地应用在国内土木建筑业、机械、石油、电力、交通等方面,如北京中华世纪坛、厦门会展中心、澳门政权移交大典广场、广州丫髻沙大桥、铁道部新型车辆、渤海石油平台、大亚湾核电站。马钢H型钢还成功地进入了美国、加拿大市场。产品先后通过了ISO9002-2000、德国劳氏船级社认证和国家级新产品称号。马钢拥有品种规格齐全的H型钢和角钢、槽钢等产品。H型钢产品应用于中华世纪坛、澳门回归馆、渤海石油钻井平台、三峡水利大坝、国家大剧院、北京2008奥运场馆、央视新大楼等重点工程。

1.2 H型钢概念

H型钢是一种截面面积分配更加优化、强重比更加合理的经济断面高效型材,因其断面与英文字母“H”相同而得名。由于H型钢的各个部位均以直角排布,3

大大提高我国型钢生产技术水平,使马钢继车轮、高线之后又有一拳头产品,将给马钢带来良好的经济效益和社会效益。马钢第二炼铁总厂——高炉冶炼工艺 2.1 高炉简介

横断面为圆形的炼铁竖炉。用钢板作炉壳,壳内砌耐火砖内衬。高炉本体自上而下分为炉喉、炉身、炉腰、炉腹、炉缸5部分。由于高炉炼铁技术经济指标良好,工艺 简单,生产量大,劳动生产效率高,能耗低等优点,故这种方法生产的铁占世界铁总产量的绝大部分。高炉生产时从炉顶装入铁矿石、焦炭、造渣用熔剂(石灰石),从位于炉子下部沿炉周的风口吹入经预热的空气。在高温下焦炭(有的高炉也喷吹煤粉、重油、天然气等辅助燃料)中的碳同鼓入空气中的氧燃烧生成的一氧化碳和氢气,在炉内上升过程中除去铁矿石中的氧,从而还原得到铁。炼出的铁水从铁口放出。铁矿石中未还原的杂质和石灰石等熔剂结合生成炉渣,从渣口排出。产生的煤气从炉顶排出,经除尘后,作为热风炉、加热炉、焦炉、锅炉等的燃料。高炉冶炼的主要产品是生铁,还有副产高炉渣和高炉煤气。

2.2 原料及基本原理

高炉冶炼用的原料主要由铁矿石、燃料(焦炭)和熔剂(石灰石)三部分组成。通常,冶炼1吨生铁需要1.5-2.0吨铁矿石,0.4-0.6吨焦炭,0.2-0.4吨熔剂,总计需要2-3吨原料。为了保证高炉生产的连续性,要求有足够数量的原料供应。生产时,从炉顶不断地装入铁矿石、焦炭、熔剂,从高炉下部的风口吹进热风(1000~1300℃),喷入油、煤或天然气等燃料。装入高炉中的铁矿石,主要是铁和氧的化合物。在高温下,焦炭中和喷吹物中的碳及碳燃烧生成的一氧化碳将

使用碳砖有三种型式:全部为碳砖;炉底四周和上部为碳砖,下部为粘土砖或高铝砖;炉底四周和下部为碳砖,上部为粘土砖或高铝砖。后两种又称为综合炉底。设计炉底厚度有减薄趋势。碳砖的缺点是易受空气、二氧化碳、水蒸气和碱金属侵蚀。炉腰特别是炉身下部砖衬,由于磨损、热应力、化学侵蚀等,容易损坏。采用冷却壁的高炉,投产两年左右,炉身下部砖衬往往全被侵蚀。炉身上部和炉喉砖衬要求具有抗磨性和热稳定性的材料,以粘土砖为宜。

2.5 产品

生铁是高炉产品,而高炉的产品不只是生铁,还有锰铁等,属于铁合金产品。锰铁高炉不参加炼铁高炉各种指标的计算。高炉炼铁过程中还产生副产品水渣、矿渣棉和高炉煤气等。

高炉炼铁的特点:规模大,不论是世界其它国家还是中国,高炉的容积在不断扩大,如我国宝钢高炉是4063立方米,日产生铁超过10000吨,炉渣4000多吨,日耗焦4000多吨。

2.6 冶炼过程

高炉冶炼是把铁矿石还原成生铁的连续生产过程。铁矿石、焦炭和熔剂等固体原料按规定配料比由炉顶装料装置分批送入高炉,并使炉喉料面保持一定的高度。焦炭和矿石在炉内形成交替分层结构。矿石料在下降过程中逐步被还原、熔化成铁和渣,聚集在炉缸中,定期从铁口、渣口放出。

鼓风机送出的冷空气在热风炉加热到800~1350℃以后,经风口连续而稳定地进入炉缸,热风使风口前的焦炭燃烧,产生2000℃以上的炽热还原性煤气。上升的高温煤气流加热铁矿石和熔剂,使成为液态;并使铁矿石完成一系列物理化学变化,煤气流则逐渐冷却。下降料柱与上升煤气流之间进行剧烈的传热、传

循环供水系统也已被强制循环供水系统所代替,后者优点是热交换好、无沉淀、消耗水量少等。

二、实习总结

在这两年里我学了很多课本知识,但是我却对我的专业却不甚了解。学校为了让我们更好的了解我们的专业和培养我们学习兴趣,也为我们能更好的学习以后的专业课,特地为我们组织了这次认识实习。这次为期两天的参观实习是我们参与实践活动的很重要的一部分,在老师的带领下我们参观实习了。

7月10号,是我们认识实习的第一天,去的是马钢第三钢轧总厂。去的时候心情特别的激动,毕竟这是我们第一次校外实习。一进去车间就感觉一股热浪扑面而来,再加上身上穿着工作服,还有那沉沉的不透气的安全帽,再加上炎热的天气,那种闷热感觉可想而知。即使我们是走在参观通道上,但是温度也很高,尤其是火红的H型钢刚被生产出来是,一股热浪迎面而来。

7月11号,我们去的是马钢第二炼铁总厂,主要参观的是钢铁冶炼的生产过程,此次参观时我们清晰的认识到炼铁的生产工艺流程。

两天的实习让我认识到,现在的钢铁企业大部分是自动化工作的,并不需要多少人的工作,所以,以后如何为自己找到工作的岗位,就需要我们自己的努力了。在这个科技时代中,高技术产品种类繁多,生产工艺、生产流程也各不相同,但不管何种产品,从原料加工到制成产品都是遵循一定的生产原理,通过一些主要设备及工艺流程来完成的。因此,在专业实习过程中,首先要了解其生产原理,弄清生产的工艺流程和主要设备的构造及操作。

数据结构实验报告 篇9

一、实验目的

1、掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。

2、深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用。

3、了解各种方法的排序过程及其依据的原则,并掌握各种排序方法的时间复杂度的分析方法。

二、实验要求及内容

要求编写的程序所能实现的功能包括:

1、从键盘输入要排序的一组元素的总个数

2、从键盘依次输入要排序的元素值

3、对输入的元素进行快速排序

4、对输入的元素进行折半插入排序

三、实验代码及相关注释

#include using namespace std;#include “malloc.h”

typedef struct { int key;}RedType;

typedef struct { RedType r[100];int length;}SqList;

//1 快速排序的结构体

typedef struct {

int data[100];

int last;}Sequenlist;//2 折半插入排序的结构体

int Partition(SqList &L, int low, int high)

//1 寻找基准

{

L.r[0]=L.r[low];//子表的第一个记录作基准对象

int pivotkey = L.r[low].key;//基准对象关键字 while(low

while(low= pivotkey)--high;

L.r[low] = L.r[high];//小于基准对象的移到区间的左侧

while(low

L.r[high] = L.r[low];//大于基准对象的移到区间的右侧 }

L.r[low] = L.r[0];return low;}

void QuickSort(SqList &L, int low, int high)

//1 快速排序 { //在序列low-high中递归地进行快速排序

if(low < high)

{

int pivotloc= Partition(L, low, high);

//寻找基准

QuickSort(L, low, pivotloc-1);//对左序列同样递归处理

QuickSort(L, pivotloc+1, high);//对右序列同样递归处理

} }

Sequenlist *Sqlset()

//2 输入要折半插入排序的一组元素

{

Sequenlist *L;

int i;

L=(Sequenlist *)malloc(sizeof(Sequenlist));

L->last=0;

cout<<“请输入要排序的所有元素的总个数:”;

cin>>i;

cout<

cout<<“请依次输入所有元素的值:”;

if(i>0)

{

for(L->last=1;L->last<=i;L->last++)

cin>>L->data[L->last];

L->last--;

}

return(L);}

middlesort(Sequenlist *L)

//2 折半插入排序 { int i,j,low,high,mid;for(i=1;i<=L->last;i++){

L->data[0]=L->data[i];

low=1;

high=i-1;

while(low<=high)

{

mid=(low+high)/2;

if(L->data[0]data[mid])

high=mid-1;//插入点在前半区

else

low=mid+1;//插入点在后半区

}

for(j=i;j>high+1;j--){ L->data[j]=L->data[j-1];} //后移

L->data[high+1]=L->data[0];//插入 } return 0;}

int main(){ gg: cout<<“请选择功能(1.快速排序 2.折半插入排序 3.退出程序):”;int m;cin>>m;cout<

if(m==1){ SqList L;int n;cout<<“请输入要排序的所有元素的总个数:”;cin>>n;cout<

cin>>L.r[i].key;

} cout<

QuickSort(L,1,L.length);

for(int j=1;j<=L.length;j++)

{

cout<

}

cout<

cout<

}

if(m==2){

Sequenlist *L;

int i;

L=Sqlset();

cout<

middlesort(L);

cout<<“折半插入排序后为:”;

for(i=1;i<=L->last;i++)

{

cout<data[i]<<“ ”;

}

cout<

cout<

goto gg;}

if(m==3){

exit(0);

cout<

四、重要函数功能说明

1、Sequenlist *Sqlset()

输入要折半插入排序的一组元素

2、int Partition(SqList &L, int low, int high)

寻找快速排序的基准

3、void QuickSort(SqList &L, int low, int high)

快速排序

4、middlesort(Sequenlist *L)

折半插入排序

五、程序运行结果

下图仅为分别排序一次,可多次排序,后面有相关截图:

六、实验中遇到的问题、解决及体会

1、起初编写快速排序的程序时,我是完全按照老师PPT上的算法敲上去的,然后建立了一个SqList的结构体,调试运行时出现错误,仔细查看才意识到Partition函数中L中应该包含元素key,而我建立结构体时没有注意,然后我将key这个元素补充进去,继续调试,又出现错误,提示我Partition没有定义,我就觉得很奇怪,我明明已经写了函数定义,为什么会这样,当我又回过头来阅读程序时,我发现QuickSort函数中调用了Partition函数,但是我的Partition函数的定义在QuickSort函数的后面,于是我将Partition函数放到了QuickSort函数的前面,再次调试运行,就可以正常运行,得出结果了。这让我懂得,编程一定要认真仔细,不可大意马虎,否则又会花很多时间回过头来检查修改程序,得不偿失。

运行程序错误截图:

2、本来我是编写了两个程序,分别实现快速排序和折半插入排序的功能,但我后来想我是否可以将其合二为一,于是我想到用if选择语句用来实现不同的功能,从键盘输入功能选项m,if(m==1),可以进行快速排序,if(m==2),可以进行折半插入排序,于是我继续思考,我是否可以在一次运行程序中,多次对含有不同元素的序列进行排序,于是我用了goto语句,每次排序一次后,自动循环到选择语句,当不需要在排序的时候,可以从键盘输入3,退出程序,这样一来,程序变得更加实用和清晰明朗。这让我懂得,想要编出好的程序,要善于思考,在实现所需功能的前提下,多想问题,看是否能使程序更加实用简便。

修改程序前两个运行结果截图

(两个程序,调试运行两次,每次只能进行一次排序)

1、快速排序程序运行结果截图:

2、折半插入排序程序结果截图:

程序重要模块修改截图:

修改程序后运行截图:

数据结构实验报告 篇10

篇一:数据结构实验报告范例

《数据结构与算法》实验报告

专业 班级 姓名 学号

实验项目

实验一 二叉树的应用

实验目的

1、进一步掌握指针变量的含义及应用。

2、掌握二叉树的结构特征,以及各种存储结构的`特点及使用范围。

3、掌握用指针类型描述、访问和处理二叉树的运算。

实验内容

题目1:编写一个程序,采用一棵二叉树表示一个家谱关系。要求程序具有如下功能:

(1)用括号表示法输出家谱二叉树,

(2)查找某人的所有儿子,

(3)查找某人的所有祖先。

算法设计分析

(一)数据结构的定义

为了能够用二叉树表示配偶、子女、兄弟三种关系,特采用以下存储关系,则能在二叉树上实现家谱的各项运算。

二叉树型存储结构定义为:

typedef struct SNODE

{char name[MAX]; //人名

struct SNODE *left;//指向配偶结点

struct SNODE *right; //指向兄弟或子女结点

}FNODE;

(二)总体设计

实验由主函数、家谱建立函数、家谱输出函数、儿子查找函数、祖先查找函数、结点定位函数、选择界面函数七个函数共同组成。其功能描述如下:

(1)主函数:统筹调用各个函数以实现相应功能

void main()

(2)家谱建立函数:与用户交互建立家族成员对应关系

void InitialFamily(FNODE *&head) //家谱建立函数

(3)家谱输出函数:用括号表示法输出家谱

输出形式为:父和母(子1和子妻1(孙1),子2和子妻2(孙2))

void PrintFamily(FNODE *head) //家谱输出函数

(4)儿子查找函数:在家谱中查找到某人所有的子女并输出,同时也能辨别出其是否为家族成员与是否有子女

void FindSon(FNODE *b,char p[]) //儿子查找函数

(5)祖先查找函数:在家谱中查找到某人所有的祖先并输出,同时也能辨别出其是否为家族中成员。

int FindAncestor(FNODE *head,char son[ ]) //祖先查找函数

(6)结点定位函数:在家谱中找到用户输入人名所对应的结点。

FNODE *findnode(FNODE *b,char p[]) //结点定位函数

(7)选择界面函数:为便于编写程序,将用户选择部分独立为此函数。

void PRINT(int &n)

(三)各函数的详细设计:

void InitialFamily(FNODE *&head) //家谱建立函数

1:首先建立当前人的信息,将其左右结点置为空,

2:然后让用户确定其是否有配偶,如果没有配偶,则当前程序结束,

3:如果有则建立其配偶信息,并将配偶结点赋给当前人的左结点;

4:再让用户确定其是否有子女,如果有则递归调用家谱建立函数建立子女结点,并将其赋给配偶结点的下一个右结点。

5:如无,则程序结束

void PrintFamily(FNODE *head) //家谱输出函数

1:首先判断当前结点是否为空,如果为空则结束程序;

2:如果不为空,则输出当前结点信息,

3:然后判断其左结点(配偶结点)是否为空,如不为空则输出“和配偶信息。

4:再判断配偶结点的右结点是否为空,如不为空则递归调用输出其子女信息,最后输出“)”;

5:当配偶结点为空时,则判断其右结点(兄弟结点)是否为空

6:如果不为空,则输出“,”,并递归调用输出兄弟信息

7程序结束

FNODE *findnode(FNODE *b,char p[]) //结点定位函数

1:当前结点是否为空,为空则返回空;

2:如果和查找信息相同,则返回当前结点;

3:如不然,则先后递归访问其左结点,再不是则递归访问右结点

void FindSon(FNODE *b,char p[]) //儿子查找函数

1:在家谱中定位到要查找的结点,如无则输出“查找不到此人”

2:判断其配偶结点与子女结点是否为空,为空则输出“无子女”

3:不为空则输出其配偶结点的所有右结点(子女结点)。

int FindAncestor(FNODE *head,char son[ ]) //祖先查找函数

1:先在家谱中定位到要查找的结点,如为空输出“不存在此人”,程序结束

2:先将父母结点入栈,当栈为空时程序结束,

3:栈不为空时,判断栈顶元素是否已访问过,

4:访问过,再判断是否为查找结点,如是则输出栈中保存的其祖先结点,并滤过其兄弟结点不输出;不是查找结点,则退栈一个元素

5:未访问过,则取当前栈顶元素,置访问标志——1,同时取其右结点

6:栈不为空或当前所取结点不为空时,转到2;

实验测试结果及结果分析

(一)测试结果

(二)结果分析

(略)

实验总结

上一篇:泪流满面-泪流满面的故事-泪流满面的寓意-泪流满面的意思下一篇:感恩十年 一路有你