详细介绍:中国海洋大学_计算机科学与技术导论_王胜科
目录
实验1:打字
实验内容较为简单,下载金山打字通并按要求打字即可。
实验2:Office使用
实验内容较为简单,B站相关学习资源丰富,故此处省略。
实验3:操作系统安装
实验要求
1.使用虚拟机软件安装Linux操作系统。
2.使用Linux下VI编辑器编写hello world C语言程序,使用GCC编译器编译,并输出结果。
重要用途
1.可在计算机上同时运行多个操作系统,并为每个操作系统分配硬件资源。
2.为云计算服务。
实验过程
1.首先在windows系统中安装虚拟机。在网上搜索找到VMware Workstation 16Pro版本,确定安装目录。总是点击下一步,直至安装完成。
2.图为安装完成后的界面。

3.从软件校内下载链接途径分别下载若干操作系统相关文件(如下图)。

4.以上准备已就绪,下面正式使用虚拟机软件安装Linux操作系统。在VMware Workstation 16Pro主页单击创建新的虚拟机按钮,在新建虚拟机向导界面按照如图步骤依次进行。






5.安装完成后,单击虚拟机设置按钮,点击虚拟机设置按钮,在硬件栏下设备栏单击CD/DVD(IDE),选择使用ISO映像文件选项卡,导入预备的压缩文件,单击确定。

6.开启此虚拟机,按照系统提示逐次进行
(1)进入CentOS主界面后,在语言设置栏里选择中文_简体中文(中国)
(2)安装位置选择自动分配
(3)设置root密码
(4)单击开始安装(安装需要一定时间,耐心等待)
(5)在初始设置界面点击LICENSE INFORMATION选项卡,勾选同意,如下图

(6)总是单击前进按钮直至出现关于您界面,设置用户名和密码,如下图




(7)下图为安装成功的界面

(8)在Lunix虚拟系统终端输入如下命令,下载gcc编译器(如图),查看版本信息确认安装完成


(9)编写HelloWorld:先在终端创建名为HelloWorld.c的文件,编写文件代码vi HelloWorld.c
I键进入编辑模式,输入C语言代码(如图),编辑完成后esc退出编辑模式,“shift+:”,输入指令,“w”保存,“q”退出。Enter。

(10)运行HelloWorld程序,成功输出HelloWorld。

问题及解决办法
问题1:初次安装的VMware Workstation 版本落后,任务执行有问题。
解决办法:将软件升级为VMware Workstation 16Pro版本,问题得以解决。
问题2:多次操作系统提示login incorrect且总是无法出现虚拟机的初始设置界面,不能正常进入虚拟机。
解决办法:再一次创建新的虚拟机并卸载先前创建的虚拟机,在安装界面更改软件选择为“带GUI的服务器”,其他选项选择不变,问题得以解决。
实验4:斐波那契数列计算
实验原理
斐波拉契数列计算公式如下:
F(1)=F(2)=1; F(n)=F(n-1)+F(n-2)
实验要求
编程实现F(50)的计算,要求输出F(1)至F(50)的计算结果。
1、在Windows 下使用C语言实现。
2、在Linux下使用Go语言实现。
3、采用递归的方式实现,输出程序总体运行时间。
4、采用更快速的方法实现,输出程序总体运行时间。
实验过程
1.C语言编程实现斐波那契数列前50项的计算结果,程序如下:
(程序1:采用递归方式实现)
#include
#include
int Fibonacci(int n)
{
if(n==1||n==2)
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
int main(int argc,char*argv[])
{
int n;
scanf("%d",&n);
int result = Fibonacci(n);
printf("%d",result);
return 0;
}
(程序2:采用非递归(迭代)方式实现)
#include
#include
int Fibonacci(int n)
{
if(n<=2)
return 1;
else
{
int num1=1;
int num2=1;
int i;
for(i=2;i
2.Golang语言编程实现斐波那契数列前50项的计算结果,程序如下:
package main
import ("fmt")
func fibonacci(n int) int
{
if (n == 1 || n == 2)
{
return 1
}
else
{
return fibonacci(n - 1) + fibonacci(n - 2)
}
}
// 使用递归的方式,求出斐波那契数:1,1,2,3,5,8,13...
func main() {
res := fibonacci(10)
fmt.Println("res=",res)
}
3.分别采用递归和非递归方法实现,并输出程序总体运行时间,程序代码如下:
#include
#include
long Fib_rec(int n)
{
if(n=0||n=1) return (1);
else return(Fib_rec(n-1)+Fib_rec(n-2));
}
long Fib_ite(int n)
{
long fib1,fib2,fib;
int i;
fib1=1;
fib2=2;
for(i=3;i<=n;i++)
{
fib=fib1+fib2;
fib1=fib2;
}
return fib;
}
void main()
{
clock_t us1,us2;
int n;
printf("Please input n:\n");
scanf("%d",&n);
us1=clock();
printf("Recursive function calculation result is:%ld\n",Fib_rec(n));
us2=clock();
printf("Recursive function runtime is:%ld ms\n",us2-us1);
us1=clock();
printf("Nonrecursive function calculation result is:%ld\n",Fib_rec(n));
us2=clock();
printf("Nonrecursive function runtime is:%ld ms\n",us2-us1);
}
编译运行结果
![]()
![]()
![]()
![]()
问题及解决办法
问题1.程序运行结果出现不符要求的负数。
解决办法:将数据类型由int型更改为long long型,重新编译并运行,问题得以解决。
问题2:Linux无golang编译系统。
解决办法:在Linux里使用火狐浏览器进入golang官网,按照指定步骤下载并安装19.1版本golang,进行编译(如下图)。
![]()
![]()
![]()
![]()
实验5:汉字点阵显示
实验要求
1.在Windows系统下安装Visual Studio 2017(vs2017)或以上。
2.在vs2017下调试并运行附件中的代码。
3.修改代码,输出为自己姓名的汉字点阵。
4.在Linux下将相关代码编译运行。
实验过程
1.在应用商店下载并安装Visual Studio 2022版本。
2.在vs2022下调试并运行附件中的代码。
3.修改代码,输出为自己姓名的汉字点阵。
4.在Linux下将相关代码编译运行。
问题及解决办法
问题:在Linux系统上不能成功运行,曾出现如下错误信息:
![]()
![]()
解决办法:将代码中“张”、“三”字符串包装进一个数组,再次运行,问题得以解决。
实验6:排序算法
实验要求
编写程序实现冒泡排序和快速排序算法。
1.随机生成100000个随机数,进行冒泡排序和快速排序,并比较执行时间。
2.用C语言实现。
实验过程
1.用C语言随机生成100000个随机数,进行冒泡排序,程序如下:
#include
#include
#include
#include
void BubbleSort(int *a, int length) ;
#define SIZE 100000
#define BUBBLE_SORT
int main(void)
{
int array[SIZE];
int i;
srand(time(0)); //设置随机数种子
//使用随机数初始化数组
for(i = 0; i a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
2.运用C语言随机生成100000个随机数,进行快速排序,程序如下:
#include
#include
#include
#include
void quick_sort(int *array, int low, int high);
#define SIZE 100000
#define QUICK_SORT
int main(void)
{
int array[SIZE];
int i;
srand(time(0)); //设置随机数种子
//使用随机数初始化数组
for(i = 0; i key) //从右往左找,找到一个小于等于key的数据,然后与key交换位置
{
j--;
}
if(i < j)
{
array[i++] = array[j]; //把找到的这个数放到key的位置
}
while(i < j && array[i] <= key) //从左往右找,找到一个大于key的数据,然后与key交换位置
{
i++;
}
if(i < j)
{
array[j--] = array[i]; //把找到的这个数放到key的位置
}
}
array[i] = key;
quick_sort(array, low, i-1);
quick_sort(array, i+1, high);
}
}
3.比较两种排序程序运行时间
(1)冒泡排序程序运行时间为:7.227s
![]()
(2)快速排序程序运行时间为:5.061s
![]()
实验7:人体快速排序计算机
略
实验8:使用Qt实现基本计算器的功能
仅需提交代码源文件,略
实验9:拆装机
实验要求
由小组内两位成员,共同完成以下任务:
1.拆除除了CPU、风扇外的全部元器件,摆放在桌上,有助教进行检查;
2.熟悉各个元器件的外观和名称,由助教随机提问;
3.将计算机组装完毕后,通过U盘安装操作系统,开机进入系统成功,请助教检查;
4.如果主机无法启动,通过交叉验证的方式,确定有问题的硬件。
实验工具
一台完整的计算机主机及其相关配件,U盘(需提前准备好系统,本组准备的是Windows7版本),十字型螺丝刀,一字型螺丝刀,镊子等。
实验过程
1.拆卸机箱
(1)确定机箱侧板固定螺丝的位置,用十字型螺丝刀将其拧下;
(2)转向机箱侧面,将侧板向机箱后方平移后拧下,在机箱另一侧重复相同操作;
(3)拆除电源:逐一拧下电源的四个固定螺丝,将电源从电源仓位置小心取出;
(4)拆除固态硬盘:拧下固定螺丝,拔掉相关线,摘除固态硬盘;
(5)拆除内存条:在小组两位同学协作下,一人手按卡扣,一人顺利摘除内存条;
(6)操作完成后,请助教进行检查提问,检验通过。
依次进行如上操作后,拆除的元零件如下图所示(依次为:电源,固态硬盘和内存条,后附两张拆机过程图和拆机结果图)
![]()
![]()
![]()
![]()
![]()
2.安装机箱
(1)安装内存条:将内存条上的缺口对准主板内存插槽缺口,垂直向下压入插槽中,插槽两侧的白色固定夹卡在内存条两侧的缺口上锁牢内存条;
(2)安装电源:把电源放在电源仓内,使电源上的螺丝孔与机箱上的螺丝孔一一对应,然后拧上螺丝。
(3)安转固态硬盘:逐次上好固定螺丝,连接插线;
(4)连接各类连线:按照拆机前的线路依次连接好各类连线,保证连线接头处接触良好;
(5)安装主板:将主板悬在机箱底板上方,对准主板和底板的固定孔,上紧螺丝。 (下图为安装结束后的主机内部图)
![]()
3.安装Windows7操作系统
(1)将组装好的主机连接电脑,并接通电源(插线如下图)
![]()
(2)将制作好Windows7系统的U盘插到电脑主机的USB接口,开机,按快捷启动键F12,选择”USB Storage Device”选项 ,等待系统加载,接着依次点击“下一步”、“现在安装”,等待安装程序启动,点击“下一步”、“自定义安装”,等待系统启动Windows,设置用户名、密码(可以暂不设置)等,完成设置,安装完成。(过程图如下)
![]()
![]()
![]()
![]()
![]()
![]()
![]()
问题及解决办法
问题:第一次装机完成,执行相应操作后,无法正常开机;
解决办法:断开电源,重复装机操作,经助教解惑后,改变某条线路连接点,重新开机,问题得以解决。
实验10:Jetbot智能小车
参考B站相关学习资源,略
实验11:网线制作与测试
实验要求
使用双绞线一根,水晶头两个,压线钳,网线测试仪等工具进行网线制作并完成测试。
实验过程
1.剪断:使用压线钳的剪线刀口剪取适当长度的网线(约60厘米);
剥皮:使用压线钳的剪线切口在距线一端约5厘米处的位置切割胶皮,旋转将胶皮剥下;
2.排序:将4根两两缠绕的线分开成8根独立的细导线,按照从左至右依次为白橙、橙、白绿、蓝、白蓝、绿、白棕、棕色的顺序将8根细导线排列整齐;
3.剪齐:把细导线抻直、压平、挤紧,使用压线钳的剪线刀口将其剪整齐;
插入:一手捏住水晶头,使带有弹簧弹片的一侧朝下,针脚一方朝远离自己的方向,并用食指抵住,另一手捏住双绞线外面的胶皮,缓缓用力将整理好的8根细导线同时沿RJ-45头内的八个线槽插入,一直插到底;
4.压制:将已插好导线的水晶头推入压线钳夹槽,挤压压线钳手柄使针脚全部压入水晶头内;
5.重复上述步骤完成网线另一端的操作;
6.使用网线测试仪对网线进行测试,测试结果良好。
实验结果
使用网线测试仪直接测试网线,发射端和接收端依次按顺序1到8亮灯,表明网线正常。
心得体会
这次实验尽管步骤较为简单,但我的实验过程并不顺利。首先第一次网线制作匆忙完成后拿去测试,结果不如人意,测试仪没有反应,经老师指导后,得知是压制时没有压紧的缘故。经过改正后,网线得以连通。总的来说,这次实验是一次对个人细心和耐心不小的考验,做其他事也应如此,沉下心来戒骄戒躁,才能取得满意的结果。
产学实验1:利用ModelArts进行手势识别
实验要求
1.参与华为云“云上先锋”AI学习赛创建,参考华为云“云上先锋”AI学习赛Baseline(完整版)完成基本流程;
2.参考学习赛流程,利用数据集(gesture_recognition_data.zip)在ModelArts开发平台训练一个可以识别不同的手势模型(Yeah,Rock,OK,Great,Other)
3.自定义一个自己的专属手势,加到数据集中重新训练模型;
4.在线部署并进行预测自己的专属手势。
实验过程
1.创建OBS桶
登录OBS管理控制台,单击页面右上方“创建桶”,在弹出的页面中选择区域、自定义桶名称,单击“立即创建”,并自定义参数(参数设置如下: a.“区域”选择“华北-北京四”;b.数据冗余存储策略选择单AZ存储;c.存储类别:标准存储;d.桶策略:私有;e.默认加密关闭;f.归档数据直读关闭;g.桶名称自定义为obs-shan-gesture-recognition)过程图和结果图如下:
![]()
![]()
2.新建文件夹并导入本地数据集
在OBS桶列表单击桶名称,然后单击左侧导航栏中“对象”,单击页面中“新建文件夹”,自定义文件夹名称后,单击“确定”。 新建一个文件夹(dataset)存放数据集数据集; 新建一个文件夹(codes)存放代码文件; 新建一个文件夹(model_output)存放训练输出的模型文件,结果图如下:
![]()
利用自己已有的数据集gesture_recognition_data.zip(在课堂派作业发布中下载)在OBS Browser+中对数据集进行上传。
![]()
3.在ModelArts全局配置中配置访问授权
(注:因在主题为垃圾分类的AI学习中已配置访问授权,故在此无需重复操作)
4.创建训练作业并进行手势预测
在ModelArts左侧导航栏选择自动学习,创建图像分类项目,按步骤依次填写数据集名称、数据集输入位置和数据集输出位置,点击创建项目。下面进行三步:其一数据标注:将数据集中的图片逐次标注,标注完成后点击开始训练;其二模型训练:对训练任务进行部署;其三部署上线:上传本地图片并进行预测,检验预测结果是否正确。过程图和结果图如下:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
5.自定义一个自己的专属手势(zhuazi),加到数据集中重新训练模型。在线部署并进行预测自己的专属手势。
![]()
问题及解决办法
问题:本地上传数据集时遇到以下问题:单次最多支持100个文件同时上传且总大小不超过5GB,而已有数据集文件gesture_recognition_data.zip数量不符要求,故不能成功上传。
![]()
解决办法:重新在OBS Browser+内登录和创建桶,并在OBS Browser+中对数据集进行上传,问题得以解决。结果如下图:
![]()
心得体会
以前总认为AI、人工智能这些东西可望而不可即,没有想到在本次产学实验中竟然有机会接触到这些“高大上”的名词 。 刚开始学习的时候,既兴奋又紧张,可能是因为平台的陌生,可能是因为刚开始接触人工智能,我的实验进度很慢,所幸CSDN社区为我提供了一个学习借鉴的平台,通过其他用户对问题的解读,可以清楚地意识到问题出在了哪里,并及时解决。按照教程,在ModelArts部署自己的模型,通过老师下发的手势数据集来进行训练,并在平台上直观的看到训练成果,这种体验真的奇妙。总的来说,本次实验让我领略到了人工智能的魅力所在。
产学实验2:云平台部署OA系统
实验要求
1.学习使用云服务器;
2.了解如何编译安装数据库MySQL;
3.了解一个Web应用的部署流程。
4.使用华为云提供的云服务器,编译安装数据库MySQL;
5.使用华为云提供的云服务器,部署一个开源的办公自动化(OA)系统。
实验过程
1.购买华为云ECS云服务器
登录华为云账号 -> 单击右上角“控制台”进入控制台操作页面 ->单击页面右上角“购买弹性云服务器” -> 选择基础配置(参数详情如下图1)-> 网络配置(参数详情如下图2)-> 检查安全组中是否有“Sys-FullAccess”(检查结果:有,故无需新建安全组) -> 弹性云服务器高级配置(参数详情如下图3)-> 勾选同意协议并完成购买。
注:需记录刚刚购买的弹性云服务器ecs-mysql的弹性ip地址(120.46.206.179)。
![]()
![]()
![]()
2.安装CMake
使用ecs-mysql右侧“远程登录”中的“CloudShell登录”,依次执行实验手册中的代码命令,完成CMake的安装。(安装完成图如下)
![]()
![]()
3.检查GCC编译器版本
执行实验手册中的代码命令,检查结果为版本10.3.1,符合版本要求。
![]()
4.编译安装MySQL(安装完成图如下)
依次执行实验手册中的代码命令,等待编译和安装完成。
注:修改步骤3代码(命令是进入MySQL目录进行配置)中的70为73。
![]()
5.配置MySQL
创建mysql用户及用户组 -> 进入安装路径,创建“data”、“log”、“run”文件夹修改“/usr/local/mysql”权限 -> 执行初始化配置脚本,生成初始的数据库和表,记录生成的随机密码 -> 创建“mysql.log”和“mysql.pid”文件(空文件),赋予“mysql”用户及用户组权限 -> 通过vi命令新建“my.cnf” -> 在文件中添加以下代码,保存并退出。
6.运行MySQL
启动MySQL服务 -> 添加环境变量并使之生效 -> 建立套接字软链接并接入MySQL环境输入密码 -> 修改密码 -> 使用新的密码登录
7.导入数据
下载原始sql文件到/home目录 -> 登录mysql -> 创建名为“oasys”的数据库 -> 使用“oasys”数据库,执行原始sql文件。
8.再次购买华为云ECS云服务器,重复操作步骤一(其中记录IP地址为114.116.234.24)
注:基础配置参数有一处发生改变kc1.xlarge.2 8vCPUs|16GB改为kc1.xlarge.2 2vCPUs|4GB
9.安装GDK
执行以下命令,创建Maven安装目录
![]()
执行以下命令,切换到Maven安装目录
![]()
执行以下命令,获取Maven二进制包
![]()
执行以下命令,解压Maven二进制包
![]()
执行以下命令,打开环境变量配置文件
![]()
在文件最后添加以下代码并保存退出:
![]()
执行以下命令,使新增配置生效
![]()
![]()
执行以下命令,验证Maven安装
![]()
10.Maven换源
进入Maven配置文件目录
![]()
打开配置文件
![]()
输入”:158”后按回车键,在<mirrors>和</mirrors>中间,插入以下代码
11.克隆项目
执行以下命令,安装Git
![]()
执行以下命令,验证Git版本
![]()
执行以下命令,Clone源码到本地
![]()
12.配置MySQL
执行以下命令,进入OA系统数据库配置文件目录
![]()
执行以下命令,编辑应用配置文件(用户名:root 密码:********)
![]()
执行以下命令,进入OA系统目录
![]()
执行以下命令,重新Maven本地编译安装
![]()
编译成功后启动
![]()
通过ecs-oa弹性公网IP地址加8088端口访问OA系统登录页
![]()
登录成功
![]()
最后结束应用关闭服务器即可
13.释放实验资源。
问题及解决办法
问题1:设置华为云ECS云服务器基础配置参数时参数错误导致后续实验无法正常进行。
解决办法1:重新购买华为云ECS云服务器,设置正确的参数(kc1.xlarge.2 8vCPUs|16GB),问题得以解决。
问题2:执行实验手册中的相应代码(命令是进入MySQL目录进行配置)无法得到预期结果。
解决办法2:将代码中的70更改为73,问题得以解决。
心得体会
做实验要兼备细心和耐心。首先是细心,即使很细小的地方也容不得马虎,就比如说我第一次实验时对华为云ECS云服务器基础配置参数设置错误,而导致后面的实验寸步难行,惨痛经历让我吸取教训。然后是耐心,由于本实验过程较复杂,花费时间较长,这就需要沉下心来,将问题一一解决。






























































浙公网安备 33010602011771号