实验报告1
- 格式:doc
- 大小:656.40 KB
- 文档页数:28
操作系统安全实验1实验报告一、实验目的本次操作系统安全实验的主要目的是让我们深入了解操作系统的安全机制,通过实际操作和观察,掌握一些常见的操作系统安全配置和防护方法,提高对操作系统安全的认识和应对能力。
二、实验环境本次实验使用的操作系统为Windows 10 和Linux(Ubuntu 2004),实验设备为个人计算机。
三、实验内容与步骤(一)Windows 10 操作系统安全配置1、账户管理创建新用户账户,并设置不同的权限级别,如管理员、标准用户等。
更改账户密码策略,包括密码长度、复杂性要求、密码有效期等。
启用账户锁定策略,设置锁定阈值和锁定时间,以防止暴力破解密码。
2、防火墙配置打开 Windows 防火墙,并设置入站和出站规则。
允许或阻止特定的应用程序通过防火墙进行网络通信。
3、系统更新与补丁管理检查系统更新,安装最新的 Windows 安全补丁和功能更新。
配置自动更新选项,确保系统能够及时获取并安装更新。
4、恶意软件防护安装并启用 Windows Defender 防病毒软件。
进行全盘扫描,检测和清除可能存在的恶意软件。
(二)Linux(Ubuntu 2004)操作系统安全配置1、用户和组管理创建新用户和组,并设置相应的权限和归属。
修改用户密码策略,如密码强度要求等。
2、文件系统权限管理了解文件和目录的权限设置,如读、写、执行权限。
设置特定文件和目录的权限,限制普通用户的访问。
3、 SSH 服务安全配置安装和配置 SSH 服务。
更改 SSH 服务的默认端口号,增强安全性。
禁止 root 用户通过 SSH 登录。
4、防火墙配置(UFW)启用 UFW 防火墙。
添加允许或拒绝的规则,控制网络访问。
四、实验结果与分析(一)Windows 10 操作系统1、账户管理成功创建了具有不同权限的用户账户,并能够根据需求灵活调整权限设置。
严格的密码策略有效地增加了密码的安全性,减少了被破解的风险。
账户锁定策略在一定程度上能够阻止暴力破解攻击。
实验报告总结(20篇)实验报告总结篇1在本学期,自然实验室的工作仍旧在以往的基础上,继续以省实验小学的标准来严格要求。
本学期,实验室能做好各项工作:能按实验小学的要求规范存放各类仪器,并对实验器材进行保养和维修;按要求来配备自然仪器,每学期都会增添必要的实验用品;及时做好实验室的各项资料备查等等。
一学期下来,工作取得了必须的成绩,也存在这一些问题以及要改善的设想,为将工作做的更好,特分如下四个方面来总结。
一、实验教学开展情景1、本学期,各年级都能按照实验计划执行,上好开足实验课,教师和学生均能记好实验记录。
同时,在实验中,教师注重发挥学生的自主能动性,让学生参与探究,在此过程中培养学生的实验本事和科学的学习、实验态度。
经过一学期的努力,师生的实验水平都有所提高。
据统计,本学期开足学生分组实验课和教师演示实验课,完成了计划任务。
2、在深化教育改革,实施新课程标准的同时,结合自然实验教学向全体学生贯彻落实素质教育,注重在实验中培养学生的创新精神、实践本事,培养了学生对科学的兴趣爱好以及实事求是的科学态度。
二、实验室活动1、在期初,实验室即制订了全年级的实验计划、周日程安排表,组织成立了自然备课组,在每个星期二组织开展活动,对实验教学的`目标、要求进行了详尽的研讨,使每个实验教师的专业素质本事获得了提高。
2、实验教师充分利用现有的仪器设备,组织开展实践活动,以举办科学知识和小实验等竞赛来激发学生学科学、用科学的兴趣和爱好。
三、成绩方面1、本学期,自然教师科研兴教意识较强,能经过平时每周一次备课组活动和空余时间认真学习科研理论方法,提高自身的理论水平。
本学期,实验教师撰写自然学科论文2篇,分获市级二、三等奖。
2、本学期,实验教师认真辅导学生参加了金钥匙科技知识竞赛,学生们在比赛中努力为学校争光,取得了一个又一个的成绩。
3、本着勤俭节俭的原则,收集了很多塑料瓶杯等其它可代用品用于教学,小的维修则自我动手,为学校节俭开支。
科学实验报告15篇随着社会不断地进步,报告不再是罕见的东西,我们在写报告的时候要注意语言要准确、简洁。
相信许多人会觉得报告很难写吧,以下是小编收集整理的科学实验报告,仅供参考,大家一起来看看吧。
科学实验报告1今天上午,我去参加小记者活动,科学实验之染色工艺。
活动开始了,老师先告诉我们什么叫染色工艺。
染色工艺就是在布上染色,在布上不好染,所以我们今天要学习一下。
老师拿来三个盒子,她给我们介绍里面的东西,里面有三个空塑料小瓶子,还有捣蒜时用的捣棒、扣子、茶杯、夹子、冰糕棍等等。
老师还告诉我们染色工艺有许多种手法,我们今天要学习扎染和夹染。
老师拿出三袋颜料,分别是红、黄、蓝,她拿出小勺子挖了两勺放在小瓶子里,又倒了两厘米的水,再一晃就行了。
我们先试了试扎染,扎染就是把一张纸或是一块布折三折,像一个扇子样,然后再用皮筋扎起来,在两边扎一下,中间扎一下,然后再染色。
出来的形状是条条形的,非常美丽。
我们又试了夹染,这时冰糕棍或者扣子就派上用场了,夹染就是用夹子把扣子或者冰糕棍夹起来。
染色的时候,要注意不能滴太多了颜料,只能滴那么三四滴,滴多了就不好了。
滴完后,让颜料在纸上或布上蔓延出来,再把用夹子夹着的冰糕棍、扣子去掉,打开看一看是什么样子的。
我们做出来的手绢上面印有扣子的形状,非常漂亮。
然后,我还染了一个商标牌,因为商标牌没法折,所以我是用夹染制作的。
最后,老师送给我了一个小手绢,我非常喜欢这个小手绢,因为这个小手绢里的颜色非常丰富饱满。
这次的活动真有意义!科学实验报告2实验内容 12怎样得到更多的光和热实验地点室外实验目的阳光直射、斜射与吸热实验器材温度计、黑色纸袋实验步骤1、把三个同样的黑色纸袋分别按和地面水平、垂直、和太阳光垂直的方式摆放。
2、看哪个升温快。
实验现象和阳光接触面集越大升温越快实验结论和阳光接触面集越大升温越快备注实验人实验时间科学实验报告3一、创意说明:实验是科学之母,才智是实验之子。
实验成绩汇总表
学生实验守则
一、按实验课表时间和管理要求进入实验室,按学号入座,禁止大声喧
哗,有事举手请示指导教师或管理人员处理;
二、实验前要预习相关内容,做好实验准备,实验时要遵循操作要领,
根据实验项目的内容,在指导老师的辅导下进行操作;
三、遵守实验课堂纪律和作息时间,注意室内卫生,不随地吐痰,不乱
扔纸屑和垃圾,配合管理人员做好实验室各项教学和管理工作;
四、爱护实验设备及实验器材,注意安全,不乱动电器开关、不私自带
走实验室物品;
五、认真思考,勤学苦练,开拓创新,完成实验后,要做好有关实验记
录,填写实验报告,交给指导教师;
六、做好实验前后的实验器具交接、检查、管理工作,确定好实验器材
管理责任制;
铜陵学院公共管理系实验(实训)报告
20 至20 学年第学期
姓名:学号:
系别:班级:
课程:课程类型:
指导教师:实验地点:
实验项目名称(1):
实验日期:实验地点:实验学时:实验组别:
实验项目名称(2):
实验日期:实验地点:实验学时:实验组别:。
实验报告
学院:专业:年月日
4.实验方法、步骤、程序及测试结果建立S,P,J,SPJ表:
1.找出所有供应商的姓名和所在城市
运行程序:SELECT SNAME,CITY FROM S;
运行结果图:
2.找出所有零件的名称、颜色、重量
运行程序: SELECT PNAME,COLOR,WEIGHT FROM P;
运行结果图:
3.找出使用供应商S1所供应零件的工程号码
运行程序: SELECT JNO FROM SPJ
WHERE SNO='S1';
运行结果图:
4.找出工程项目J2使用的各种零件的名称及其数量
运行程序: SELECT PNAME,QTY
FROM P,SPJ
WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2';
运行结果图:
5.找出天津厂商供应的所有零件号码
运行程序: select PNO
FROM S,SPJ
WHERE S.SNO=SPJ.SNO AND CITY='天津';
运行结果图:。
最新实验报告(实验一)实验目的:本实验旨在探究特定条件下物质的热分解行为,通过定量分析,了解温度、时间、催化剂等因素对反应速率和产物分布的影响。
实验方法:1. 材料准备:选取适量的待分解物质样品,记录其初始质量。
2. 设备设置:使用热重分析仪(TGA)进行实验,设定升温程序为从室温升至800℃,升温速率为10℃/分钟。
3. 实验操作:将样品置于坩埚中,开启TGA设备,记录质量变化数据。
4. 数据收集:实验结束后,收集TGA曲线图,记录各个阶段的质量损失和残留物情况。
实验结果:1. TGA曲线显示,在200℃时,样品开始有轻微的质量损失,推测为水分的蒸发。
2. 当温度升至400℃时,样品质量迅速下降,表明发生了明显的热分解反应。
3. 在600℃时,质量损失趋于稳定,此时残留物质量约为初始样品的30%。
4. 通过对比实验,发现在添加特定催化剂后,热分解起始温度降低,反应速率加快。
实验讨论:1. 实验观察到的初步质量损失与预期的水分蒸发相符,进一步证实了样品中含有一定量的结合水。
2. 热分解阶段的质量快速下降表明样品在高温下不稳定,容易发生分解。
3. 残留物的组成分析表明,分解产物主要包括氧化物和其他无机盐类。
4. 催化剂的加入显著改变了反应动力学,这可能与催化剂降低了反应的活化能有关。
结论:本次实验成功地模拟并分析了物质在不同条件下的热分解行为。
通过TGA分析,我们确定了样品的热稳定性和分解产物,同时发现催化剂的使用对提高反应效率具有重要意义。
未来的工作将进一步探索不同催化剂和反应条件下的分解行为,以优化工业生产过程。
实验报告内容格式范文5篇实验报告内容格式范文5篇实验报告的分析讨论,主要分析实验结果和数值是否匹配,如果有误差,分析具体原因。
下面是小编为大家整理的实验报告格式范文,如果大家喜欢可以分享给身边的朋友。
实验报告格式内容范文【篇1】准备材料:一个玻璃杯、一枚硬币、小半杯水(最好是有颜色的)、蜡烛和一个平底的容器。
实验内容:在一个盘子里倒半杯水,放入一枚硬币。
手既不许接触到水,又不能把水倒出来,怎样才能把硬币取出来呢?实验过程:第1次:我们首先在平底的容器中倒入小半杯水,淹没硬币。
然后点燃一节蜡烛放在盘子里,罩上玻璃杯,蜡烛会因为缺氧停止燃烧,这时,外面的水便源源不断地涌进玻璃杯。
(可惜吸水不够多,所以没有把硬币取出来)结果:失败。
第2次:和第一次一样,失败。
第3次:我们换了一根大一点的蜡烛,这次流进去的水很多,成功。
第4次:我们用了两根蜡烛,不过因为杯子扣的太紧,杯口被盘子吸住,水没能流进玻璃杯,失败。
第5次:我把杯子扣下去的速度慢了一点点,导致蜡烛提前熄灭,失败。
第6次:同样是放了两根蜡烛,这次很正常,成功。
实验总结:我做这个实验是为了证实气体冷却后,能让压力下降,于是外面正常的大气压把盘子中的水挤进了杯中。
另外,在实验中,我观察到,用玻璃杯盖住蜡烛的时候,火焰不是马上熄灭,是继续燃烧一会儿才熄灭,说明玻璃杯的空气也是含有一定量的氧气的。
而做这个实验应注意:1、杯子不要扣的太慢,否则会让火焰提前熄灭导致实验失败。
2、水最好是有颜色的水,我选择在水中滴蓝墨水,效果不错,这样方便观看。
3、可以用燃烧的纸片代替蜡烛,但是水一定要放少一点,放多了难吸光。
4、要保持距离,让火焰离自己远一点。
实验报告格式内容范文【篇2】电路实验课已经结束,请按题目要求认真完成实验报告,并要仔细检查一遍,以免退回,具体要求如下:一、绘制电路图要工整、选取适宜比例,元件参数标注要准确、完整。
二、计算题要有计算步骤、解题过程,要代具体数据进行计算,不能只写得数。
实验报告范文模板3篇Experimental report template编订:JinTai College实验报告范文模板3篇小泰温馨提示:实验报告是把实验的目的、方法、过程、结果等记录下来,经过整理,写成的书面汇报。
本文档根据实验报告内容要求展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整及打印。
本文简要目录如下:【下载该文档后使用Word打开,按住键盘Ctrl键且鼠标单击目录内容即可跳转到对应篇章】1、篇章1:实验报告范文模板2、篇章2:实验报告范文模板3、篇章3:实验报告范文模板篇章1:实验报告范文模板例一定量分析实验报告格式(以草酸中h2c2o4含量的测定为例)实验题目:草酸中h2c2o4含量的测定学习naoh标准溶液的配制、标定及有关仪器的使用;学习碱式滴定管的使用,练习滴定操作。
h2c2o4为有机弱酸,其ka1=5.9×10-2,ka2=6.4×10-5。
常量组分分析时cka1>10-8,cka2>10-8,ka1/ka2<105,可在水溶液中一次性滴定其两步离解的h+:h2c2o4+2naoh===na2c2o4+2h2o计量点ph值8.4左右,可用酚酞为指示剂。
naoh标准溶液采用间接配制法获得,以邻苯二甲酸氢钾标定:此反应计量点ph值9.1左右,同样可用酚酞为指示剂。
一、naoh标准溶液的配制与标定用台式天平称取naoh1g于100ml烧杯中,加50ml蒸馏水,搅拌使其溶解。
移入500ml试剂瓶中,再加200ml蒸馏水,摇匀。
准确称取0.4~0.5g邻苯二甲酸氢钾三份,分别置于250ml锥形瓶中,加20~30ml蒸馏水溶解,再加1~2滴0.2%酚酞指示剂,用naoh标准溶液滴定至溶液呈微红色,半分钟不褪色即为终点。
二、h2c2o4含量测定准确称取0.5g左右草酸试样,置于小烧杯中,加20ml 蒸馏水溶解,然后定量地转入100ml容量瓶中,用蒸馏水稀释至刻度,摇匀。
实验报告通用模板(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作总结、工作计划、演讲致辞、策划方案、合同协议、规章制度、条据文书、诗词鉴赏、教学资料、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays for everyone, such as work summaries, work plans, speeches, planning plans, contract agreements, rules and regulations, doctrinal documents, poetry appreciation, teaching materials, other sample essays, etc. If you want to learn about different sample formats and writing methods, please stay tuned!实验报告通用模板实验报告通用模板(精选7篇)实验报告通用模板篇1一、定义与作用实验报告,就是在某项科研活动或专业学习中,实验者把实验的目的、方法。
实验一的实验报告实验目的:本实验旨在通过实际操作,掌握实验室基本操作流程和实验室安全常识,并对实验方法和数据处理方法有初步认识和了解。
实验器材:- 试管- 显微镜- 称量器具- 实验药品实验原理:在本实验中,我们将探究实验物质在不同条件下的物态变化规律。
通过加热、冷却、搅拌等操作来观察物质的相变过程,并记录相应的实验数据。
同时,我们还将借助显微镜,对微观世界的变化进行观察和研究。
实验步骤:1. 准备实验器材和试剂。
2. 在试管中加入适量的实验物质,并记录初始质量。
3. 借助称量器具,精确称量实验物质的质量。
4. 加热试管中的实验物质,并记录实验过程中的温度变化。
5. 在加热过程中,不断观察实验物质的变化,记录是否发生相变及相应的温度。
6. 冷却实验物质,继续记录温度变化和是否发生相变。
7. 利用显微镜观察实验物质微观结构的变化,并记录所观察到的现象。
实验结果:1. 实验物质在加热至一定温度时发生了相变,由固态转变为液态。
2. 随着继续加热,液态物质再次发生相变,由液态转变为气态。
实验数据处理:1. 统计实验物质在不同温度下的质量变化情况,并作图表示。
2. 计算相变过程中的温度差异及质量差异,并绘制相应的变化曲线。
实验结论:1. 实验一的结果表明,在一定温度范围内,物质可以从固态转变为液态,再从液态转变为气态。
2. 通过显微镜的观察,我们还进一步认识到在微观层面上,这些相变过程是由分子或原子的运动引起的。
实验心得:本次实验中,通过亲身操作和观察,我对物态变化过程有了更深入的了解。
实验过程中,我严格按照实验操作要求进行操作,并注意实验室安全。
通过实验数据处理和结果分析,我对实验方法和数据处理方法有了初步掌握。
在以后的实验中,我将更加注重实验细节和数据的准确性,以期取得更加准确和有意义的实验结果。
实验改进方向:1. 在实验过程中,应更加细致地记录实验过程中的温度变化和相变情况,以便进行更加详细的数据分析。
北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY一、实验内容定义一个包含学生信息(学号,姓名,成绩)的的顺序表和链表,使其具有如下功能:(1) 根据指定学生个数,逐个输入学生信息;(2) 逐个显示学生表中所有学生的相关信息;(3) 根据姓名进行查找,返回此学生的学号和成绩;(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩);(5) 给定一个学生信息,插入到表中指定的位置;(6) 删除指定位置的学生记录;(7) 统计表中学生个数。
二、实验要求:(1) 程序要添加适当的注释,程序的书写要采用缩进格式。
(2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。
(3) 程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。
(4) 根据实验报告模板详细书写实验报告,在实验报告中给出链表根据姓名进行查找的算法和插入算法的流程图。
(5) 上传源程序和实验报告到教师机的相应班级所在文件夹。
顺序表的源程序保存为SqList.cpp,链表的源程序保存为LinkList.cpp,实验报告命名为:实验报告1.doc。
源程序和实验报告压缩为一个文件(如果定义了头文件则一起压缩),按以下方式命名:15数字媒体技术X班——学号——姓名.rar,如15数字媒体技术X班070814101薛力.rar。
二、程序实现(内容、步骤、程序)顺序表#include<malloc.h>#include<iostream>#include<stdlib.h>#include<string.h> using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2 typedef int Status;typedef struct{char no[8];char name[10];int price;}Student;// Student为学生信息类型#define ListSizeFirst 10 // L的初始分配量#define ListSizeAdd 2 // L的分配增量typedef struct{Student *elem;int length;int listsize;}SqList;void InitList(SqList &L) // 构造空的顺序表L{L.elem = (Student*)malloc(ListSizeFirst * sizeof(Student));if (!L.elem)exit(OVERFLOW);L.length = 0;L.listsize = ListSizeFirst; // 初始化存储容量}int ListLength(SqList L) // L中有多少个数据元素个数{return L.length;}Status GetElem(SqList L, int i, Student &e) // 返回L中第i个数据元素的值{if (i<1 || i>L.length) // 如果i不在L的范围之内就报错return ERROR;e = *(L.elem + i - 1); // 将L的第i个元素的值赋给ereturn OK;}int LocateElem(SqList L, Student e, Status(*namecompare)(Student, Student)) // 返回L里面第1个与e满足名字相同的元素的位序。
{int i = 1; // 比较元素的次序Student *p = L.elem; // 比较元素的地址while (i <= L.length && !namecompare(*p++, e)) // 还没找到满足关系的数据元素++i;if (i <= L.length)return i; // 找到满足关系的数据元素就返回其位序elsereturn 0;}Status ListInsert(SqList &L, int i, Student e) // 在L中第i个位置前面插入数据元素e,L长度加1{Student *newbase, *q, *p;if (i<1 || i>L.length + 1)return ERROR;if (L.length == L.listsize) // 存储空间满了{newbase = (Student*)realloc(L.elem, (L.listsize + ListSizeAdd) * sizeof(Student));L.elem = newbase; // 新地址L.listsize += ListSizeAdd; // 加长度}q = L.elem + i - 1; // 插入位置for (p = L.elem + L.length - 1;p >= q;--p) // 元素右移*(p + 1) = *p;*q = e; // 插入e++L.length;// 表长增1return OK;}Status ListDelete(SqList &L, int i, Student &e) //删除L的第i个数据元素并返回{Student *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 ListTraverse(SqList L, void(*print)(Student&)) // 从表L的第1个元素到最后1个元素都调用print{Student *p = L.elem;int i;for (i = 1;i <= L.length;i++)print(*p++);cout << "\n";}void print(Student &c) //遍历输出学生信息{printf("%s\t %s\t %d\t\n", c.no, , c.price);}Status namecompare(Student c1, Student c2) //根据学生名字比较函数{if (strcmp(, ) == 0)return TRUE;elsereturn FALSE;}void main(){int k, n, i, j, len;SqList L;Student e;InitList(L);while (1){cout << "学生成绩管理\n";cout << "\n";cout << "1.根据指定学生个数,逐个输入学生信息\n";cout << "2.逐个显示学生表中所有学生的相关信息\n";cout << "3.根据姓名进行查找,返回此学生的学号和成绩\n";cout << "4.根据指定的位置可返回相应的学生信息(学号,姓名,成绩)\n";cout << "5.给定一个学生信息,插入到表中指定的位置\n";cout << "6.删除指定位置的学生记录\n";cout << "7.统计表中学生个数\n";cout << "\n";cout << "请输入你的选择:\n";cin >> k;switch (k){case 1:cout << "请输入学生人数:\n";cin >> n;for (int i = 1;i <= n;i++){cout << "请录入第" << i << "个学生信息\n";cout << "输入学生学号:\n";cin >> e.no;cout << "输入学生姓名:\n";cin >> ;cout << "输入学生成绩:\n";cin >> e.price;ListInsert(L, i, e);}break;case 2:cout << "学号\t姓名\t成绩\t\n";ListTraverse(L, print);break;case 3:cout << "输入要查找学生的姓名:\n";cin >> ;j = LocateElem(L, e, namecompare);if (j){GetElem(L, j, e);cout << "学号\t姓名\t成绩\t\n";print(e);}elsecout << "没有符合条件的元素\n";break;case 4:cout << "输入待查找的学生的位置:\n";cin >> i;j = GetElem(L, i, e);if (j){GetElem(L, i, e);cout << "学号\t姓名\t成绩\t\n";print(e);}elsecout << "查找失败!\n";break;case 5:cout << "输入待插入学生的位置:\n";cin >> i;cout << "输入待插入学生的学号:\n";cin >> e.no;cout << "输入学生姓名:\n";cin >> ;cout << "输入学生成绩:\n";cin >> e.price;ListInsert(L, i, e);break;case 6:cout << "输入待删除学生的位置:\n";cin >> i;j = GetElem(L, i, e);if (j){ListDelete(L, i, e);cout << "删除成功,删除学生为:\n";cout << "学号\t姓名\t成绩\t\n";print(e);}elsecout << "没有该位置,无法删除!\n";break;case 7:len = ListLength(L);cout << "表中学生个数为" << len << "个";cout << "\n";break;case 0:exit(0);default:cout << "选择错误,重新开始!\n";}}}单链表#include<malloc.h>#include<iostream>#include<stdlib.h>#include<string.h>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef struct{char no[8];char name[10];int price;}Student;typedef struct LNode{Student data;struct LNode *next;}LNode, *LinkList;void InitList(LinkList &L) // 初始化L{L = (LinkList)malloc(sizeof(LNode)); // 产生头结点if (!L)exit(OVERFLOW);L->next = NULL;}int ListLength(LinkList L) // 返回数据元素的个数{int i = 0;while (p){i++;p = p->next;}return i;}Status GetElem(LinkList L, int i, Student &e) // 取第i个元素赋值给e{int j = 1;LinkList p = L->next;while (p&&j<i) // 往下找知道i=p或者p为空{j++;p = p->next;}if (!p || j>i)return ERROR;e = p->data;return OK;}int LocateElem(LinkList L, Student e, Status(*compare)(Student, Student)) // 给定比较函数,查找指定元素{int i = 0;while (p){i++;if (compare(p->data, e)) // 比较得到数据元素return i;p = p->next;}return 0; // 元素不存在返回0}Status ListInsert(LinkList L, int i, Student e) // 插入元素{int j = 0;LinkList s, p = L;while (p&&j<i - 1) // 寻找第i-1个结点{j++;p = p->next;}if (!p || j>i - 1)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, Student &e) // 删除第i个元素{int j = 0;LinkList q, p = L;while (p->next&&j<i - 1) // 寻找第i个结点{j++;p = p->next;}if (!p->next || j>i - 1)return ERROR;q = p->next;p->next = q->next;e = q->data;free(q);return OK;}void ListTraverse(LinkList L, void(*visit)(Student &)) // 依次对每个数据元素调用函数visit(){ //LinkList p = L->next;while (p){visit(p->data);// 对结点调用函数visit()p = p->next;}cout << "\n";}void print(Student &c) //输出结点对应学生信息{printf("%s\t %s\t %d\t\n", c.no, , c.price);}Status namecompare(Student c1, Student c2) //根据学生名字比较函数{if (strcmp(, ) == 0)return TRUE;elsereturn FALSE;}void main(){int k, n, j, i, len;LinkList L;Student e;InitList(L);while (1){cout << "学生成绩管理\n";cout << "\n";cout << "1.根据指定学生个数,逐个输入学生信息\n";cout << "2.逐个显示学生表中所有学生的相关信息\n";cout << "3.根据姓名进行查找,返回此学生的学号和成绩\n";cout << "4.根据指定的位置可返回相应的学生信息(学号,姓名,成绩)\n";cout << "5.给定一个学生信息,插入到表中指定的位置\n";cout << "6.删除指定位置的学生记录\n";cout << "7.统计表中学生个数\n";cout << "\n";cout << "请输入你的选择:\n";cin >> k;switch (k){case 1:printf("请输入学生人数:\n");cin >> n;for (i = 1;i <= n;i++){printf("请录入第%d个学生信息\n", i);printf("输入学生学号:\n");cin >> e.no;printf("输入学生姓名:\n");cin >> ;printf("输入学生成绩:\n");cin >> e.price;ListInsert(L, i, e);cout << "\n";}break;case 2:printf("学号\t姓名\t成绩\t\n");ListTraverse(L, print);cout << "\n";break;case 3:printf("输入要查找学生的名字:\n");cin >> ;j = LocateElem(L, e, namecompare);if (j){GetElem(L, j, e);printf("学号\t姓名\t成绩\t\n");print(e);}elseprintf("没有符合条件的元素\n");cout << "\n";break;case 4:cout << "输入待查找的学生的位置:\n";cin >> i;j = GetElem(L, i, e);if (j){GetElem(L, i, e);cout << "学号\t姓名\t成绩\t\n";print(e);}elsecout << "查找失败!\n";cout << "\n";break;case 5:cout << "输入待插入学生的位置:\n";cin >> i;cout << "输入待插入学生的学号:\n";cin >> e.no;cout << "输入学生姓名:\n";cin >> ;cout << "输入学生成绩:\n";cin >> e.price;ListInsert(L, i, e);cout << "\n";break;case 6:cout << "输入待删除学生的位置:\n";cin >> i;j = GetElem(L, i, e);if (j){ListDelete(L, i, e);cout << "删除成功,删除学生为:\n";cout << "学号\t姓名\t成绩\t\n";print(e);}elsecout << "没有该位置,无法删除!\n";cout << "\n";break;case 7:len = ListLength(L);cout << "表中学生个数为" << len << "个";cout << "\n";break;case 0:exit(0);default:printf("选择错误,重新开始!\n");}}}三、调试与运行顺序表:单链表:四、实验总结:1、学到了如何利用顺序表和单链表建立学生管理程序。