实验一(实验环节配置与使用)


实验目标:

熟悉Linux上C程序的编译和调试工具,包括以下内容:

  1. 了解Linux操作系统及其常用命令
  2. 掌握编译工具gcc的基本用法
  3. 掌握使用gdb进行程序调试

实验环境与工件

1.个人电脑
2. Ubuntu 操作系统
3. gcc
4. gdb

实验内容与步骤

1.根据实验一:实验环境配置与使用.ppt 熟悉Linux基本操作(P.1 – P.28),然后根据以下过程创建用户:用户名为学生名称加学号,如吴坤汉,学号2015170297,则该用户名为wukunhan_2015170297。按照1.1~1.3完成并截图,截图需要有运行的命令及其结果。另外:后面的题目必须在该新建用户下完成。(30分)

实验步骤:

1.1.首先切换为超级用户

$su
这是运行命令及截图:
在这里插入图片描述

如果出现Authentication failure的情况,则可以用sudo passwd root来给root重设密码:
在这里插入图片描述

1.2.创建新用户, 设置新建用户的密码

注意:只有设置了密码才能激活用户,否则无法以该用户身份登录

#adduserwukunhan_2015170297
写入命令 adduser chenxiaoyi_2020151034 , 创建新用户成功,并将密码设成123456:
在这里插入图片描述

1.3.注销当前用户,并以新建的用户身份登录

登录后运行 $ whoami,并进行截图:
在这里插入图片描述

2.新建用户主目录下创建子目录:gdbdebug, 并进入gdbdebug 子目录。将过程和结果截图。(10分)

2.1创建子目录gdbdebug

在这里插入图片描述

2.2输入ls命令查看文件夹

在这里插入图片描述

2.3进入gdbdebug 子目录

在这里插入图片描述

2.4输入pwd命令查看当前用户所处工作目录

在这里插入图片描述

3.使用vi编辑以下两个文件并编译和运行,截图(30分)

3.1.编辑reverse.h

在这里插入图片描述

①创建reverse.h文件:
输入vi reverse.h并运行
在这里插入图片描述
在这里插入图片描述

②编辑reverse.h
按“i”从光标当前位置开始输入文件,然后输入如下代码
在这里插入图片描述
在这里插入图片描述

输入完成后按“esc”结束输入,并键入“:wq”对代码进行保存:
在这里插入图片描述

3.2.编辑reverse.c

①创建并编写reverse.c,输入vi reverse.c并运行。
在这里插入图片描述
在这里插入图片描述

②编辑reverse.c
按“i”从光标当前位置开始输入文件,然后输入如下代码:
在这里插入图片描述

同上一步操作,进入末行模式,按“wq”退出存盘;

3.3.按以下步骤编译,如有警告信息,请修改代码至无警告信息

$gcc –Wall reverse.c –o reverse
出现警告信息如下:

在这里插入图片描述

因此,进去reverse.c修改代码:
增加头文件<string.h>;将reverse()函数的返回值改为void,因为该函数不需要返回任何数据;将scanf()函数后的取址符号删除,不需要对str取址。
修改后的代码如下:
在这里插入图片描述

写入命令$gcc –Wall reverse.c –o reverse,无警告信息:
在这里插入图片描述

3.4.运行程序

$./reverse
运行程序后输入“cccxyij”,虽然程序执行了,但输出是错误的,因此我们需要进行debug并对代码进行修改调试。
在这里插入图片描述

4.按照以下过程调试并修正reverse.c,请参考过程截图。(30分)

4.1.编译时加入调试信息

$gcc -g reverse.c -o reverse1
在这里插入图片描述

4.2.启用GDB调试

在这里插入图片描述

4.3.键入list,查看源代码并根据行号/函数名设置断点(断点位置仅供参考,不需雷同)

①输入list对代码进行查看:
在这里插入图片描述

②添加并查看断点:
根据自己的代码设置5个断点如下,完成断点添加后,可以输入info break对断点信息进行查看:
在这里插入图片描述

③开始调试:
输入run进行调试
在这里插入图片描述

4.4.观察变量值,并作分析,推测错误(过程仅供参考,不需雷同)

在这里插入图片描述
在这里插入图片描述

从程序运行间可以看到,当第一次对字符数组操作时,第一个“a”本应被替换成“d”却是第二个字符被替换成了“d”,通过分析代码可知,代码的本意应该是通过指针交换第一个与最后一个字符,而实际上却是发生了偏移,而且也不应该是1而是i。这是因为,每次的指针应该是*(str+i)而不是*str+i,在C语言运行时,将先执行指针符号,再执行加法,因此需将两处都加上括号。

4.5.修正程序并运行

修改后的程序:
在这里插入图片描述

运行结果如下:

在这里插入图片描述

四、实验结果
本次实验,通过使用vi编辑器编辑代码,再通过gcc对代码进行编译,发现了代码中的语法错误,并进行修改,成功编译了代码,最后通过gdb对代码进行调试,使用设置断点以及查看变量等方法,发现了代码中的逻辑错误,成功实现了reverse代码的实现。通过此代码,我们可以成功的将字符串进行反转。
在这里插入图片描述

如上图,程序运行无误,最后也输出了正确的结果。

五、实验总结与体会

编写C程序代码时要注意程序运行的优先级。本次实验中就是因为忽略了指针运算符(*)会在加法运算符(+)前执行导致程序错误。不过最后通过debug问题得到解决。
通过这次实验,我熟悉了Linux上C程序的编译和调试工具,了解了Linux操作系统及其常用命令,掌握了编译工具gcc的基本用法,也掌握了使用gdb进行程序调试。同时本次实验也让我重新回顾了c语言的知识,加深了对c语言的熟悉程度。
熟练掌握Linux系统上的操作是将来学习过程中的重要基础,这次实验使我对其有了基础的了解,在以后的学习过程中,我也会继续学习了解Linux系统,熟练掌握Linux系统的操作,提升自己的专业能力。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实 验 报 告 1. 实验目的 学习配送中心建设流程和运营管理。编写项目建议书以及可行性研究报告。对配送中 心的运营绩效评价。 2. 实验内容 运用Flexsim软件,模拟物流配送中心的建设阶段,运营阶段,绩效评估. 3. 实验过程及内容 3.1实验背景: 某快运公司在南京的物流园区建立一个配送中心,用来满足凯蒂服饰的配送业务需求, 为凯蒂服饰公司的仓储、分拣、配送等作业提供服务。该配送中心作为服装供应链中间 一环,其上游连接服装企业,下游连接销售门店,模型如下: 3.2作业区域设置 服装供应链系统假设和配送中心系统运作流程描述如下: (1)将配送中心抽象出四个业务作业流程P1、P2、P3、P4。P1表示入库验收作业,P2表示 分拣作业,P3表示流通加工作业(如包装、刷标志、贴标签等),P4表示出库发货作业; (2)服装送至配送中心。在Pl作业环节,每单位货物耗用时间为uniform(120,20)s; (3)然后依次经过其它各个作业环节:在P2环节,每单位货物耗用时间为uniform(5,2) min;在P3环节,耗用时间为normal(300,30)s;在P4环节,耗用时间为normal(6,1)m in;最后货物在集运区等待装车发运; (4)每两个作业环节之间需要uniform(60,lO)s的调整时间; (5)当有订单或需求到达时,按照需求提货出库,订单到达时间间隔服从随机分布unifo rm(500,lO)min;每个订单的需求量为normal(80,5)个单位的产品。 3.3 建模仿真 设计完成后的整体布局图 参数设置: 1、发生器,订单的到达服从均匀分布U(30000,600) 分离器设置 订单的需求量服从正态分布:N(80,5) P1处理器 在Pl作业环节,每单位货物耗用时间为uniform(120,20)s; 4、P2处理器 在P2环节,每单位货物耗用时间为uniform(5,2)min; 5、P3处理器 在P3环节,耗用时间为normal(300,30)s; 6、P4处理器 在P4环节,耗用时间为normal(6,1)min; 7、包装箱发生器 合成器参数 仿真周期设为一个月(2592000)和一天(86400),使用复演法做多次独立的仿真试 验,然后通过观察、统计、分析实时状态图和导出的仿真实验数据,得到最终的仿真结 果。 3.4 建模仿真数据和问题 3.4.1仿真报告:如下表 P6\p8\p10\p12\s14\c15 S2\p6\p8\p10\p12\s14\c15 等待时间 上图是process6的利用率 上图是PR8 PR10 PR12 SEP14 COM15 Q7的状态,50%闲置率 Q7\Q11\Q13\Q16缺货率 (1)上两种仿真运行方式的比较分析。从上述统计可以知道。一天的缺货率小于一个月 的缺货率,这说明在较长时间的运行状况下,订单有较大的比例得不到满足,这意味着 在长期过程中,订单的堆积情况被放大,因而说明订单在长期中其集 中程度波动较大。 (2)预测需求量变化分析。预测认为,如果每次需求量接近normal(80。5)的随机分布, 经过建模仿真,可以分析这个配送中心的规划是否合理,运营中有没有瓶颈,库存随时 间的变化等情况。从统计数据的队列长度平均值来看,queuel3、queuel5和queuel7货物 堆积较严重,因此我们可以着重改进这三个队列之后的P1、P2和P4环节的作业效率,以 提高整个系统的平衡性。然而,P1之前的堆积满足服装到货充足的实际情况,因而不应 被看做是运作瓶颈,所以运营中的瓶颈应认为是P2和P4环节。库存随时间的变化具有较 大的波动性,可由前述的库存变化图解释。如果市场需求扩大,预测每次需求量增长为 normal(90,5)的随机分布,仍然采用原来的配置方案,就无法很好满足市场需求。因为 在需求量接近normal(80,5)的随机分布情况下,最后已经供不应求,如果改为需求量接 近normal(90,5)的随机分布,则将加剧缺货的频率和数量。为了满足需求从而占领市场 ,配送中心可以通过仿真结果分析,调整系统的资源配置,修改系统参数,再重复仿真 运行和分析,直至确定系统方案,仿真结束。例如,配送中心应该优先改进P2和P4环节 的作业效率。当然,在考虑了系统的平衡性和改进成本后,对于其他较为次要方面的改 进也是可以考虑的。 ----------------------- 销 售 门 店 服 务 企 业 收 货 区 集装化和装运 P2 P3 配送中心 P1 P4 flexsim实验报告(1)全文共16页,当前为第1页。 flexsim实验报告(1)全文共16页,当前为第2页。 flexsim实验报告(1)全文共16页,当前为第3页。 flexsim实验报告(1)全文共
JAVA实验报告一全文共10页,当前为第1页。JAVA实验报告一全文共10页,当前为第1页。Java语言程序设计实验报告一 JAVA实验报告一全文共10页,当前为第1页。 JAVA实验报告一全文共10页,当前为第1页。 班级: 姓名: 学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 具有分析、寻找和排除程序中常见问题的能力。 二、实验内容与收获 Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java开发环境(Eclipse 集成开发环境的安装、配置使用) 安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。可以通过IE或Netscape浏览器浏览网址:http://java.sun.com/j2se,根据提示JAVA实验报告一全文共10页,当前为第2页。JAVA实验报告一全文共10页,当前为第2页。可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 JAVA实验报告一全文共10页,当前为第2页。 JAVA实验报告一全文共10页,当前为第2页。 安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。 图1-2 图1-3 环境变量的设置 JAVA实验报告一全文共10页,当前为第3页。JAVA实验报告一全文共10页,当前为第3页。设置环境变量的目的是为了能够正常使用所安装的JDK开发包。通常,我们需要设置两个环境变量:PATH 和 CLASSPATH。 JAVA实验报告一全文共10页,当前为第3页。 JAVA实验报告一全文共10页,当前为第3页。 PATH:该环境变量指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。 CLASSPATH:该环境变量也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的jdk\lib 包含在 CLASSPATH 中。 JAVA实验报告一全文共10页,当前为第4页。JAVA实验报告一全文共10页,当前为第4页。设置好之后,测试环境变量是否设置好。点击开始运行输入cmd,打开命令提示符,然后输入测试命令javac和java。如果出现一大串的字符系列,则表示环境变量设置成功。 JAVA实验报告一全文共10页,当前为第4页。 JAVA实验报告一全文共10页,当前为第4页。 配置成功截图: 图1.1 显示java的版本信息图 简单的程序设计: 题目1:在屏幕上打印"Hello World" 程序代码: public class Test { public static void main(String args[]){ System.out.print("Hello world!"); }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值