文章目录
一、关于软件的安装
(一)安装Vmware虚拟机软件
进入Vmware中国官网VMware 中国 - 交付面向企业的数字化基础 | CN,即可下载正版软件。另外,根据中国的《计算机软件保护条例》第十七条,为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。
(二)下载Ubuntu18.04的iso镜像
如果官方网站进不去、下载慢,这里可以去国内的一个原版系统镜像下载网站:NEXT, ITELLYOU,进入网站仅需登陆后就可选择Linux->Ubuntu18.04下载bt,冷门bt资源用迅雷下载较快,无需会员,不限速。
(三)在Vmware上选择Ubuntu系统进行安装
选择安装Ubuntu系统,依照提示安装,途中选择下载过的iso镜像;若要方便备份和迁移虚拟机文件,建议在安装中选择“单文件。
(四)Dev-c++的安装
最终版本是5.11,下载网址:Dev-C++ download | SourceForge.net,原作者 Bloodshed 和 Orwell 已停止更新。最新版本是 5.16i(2022 年 10 月发布),下载网址:小龙 Dev-C++ 中文主页 (gitee.io),小龙 Dev-C++ 是在原有的最终版本 v5.11 基础上于 2020 - 2022 继续开发的分支版本。
二、关于Ubuntu的初始配置以及使用
(一)网络参数的设置
安装Ubuntu虚拟机后,可以按照以下步骤设置网络参数,以确保系统能够连接到互联网:
- 检查网络连接:首先确认物理主机是否已经连接到互联网,并且 VMware 虚拟网络适配器已正确配置。
- 设置虚拟机网络连接类型:在 VMware 虚拟机设置中,确保网络适配器类型被设置为桥接模式(Bridge),这样可以使虚拟机直接连接到物理网络。
- 配置虚拟机网络参数:打开 Ubuntu 虚拟机,在系统设置或者网络设置中找到网络选项。可以通过以下步骤来配置网络参数:
如果使用动态 IP 地址分配(DHCP),确保选择“自动获取 IP 地址”或类似的选项。
如果使用静态 IP 地址分配,需要手动输入 IP 地址、子网掩码、网关和 DNS 服务器信息。 - 检查网络连接:完成设置后,尝试通过浏览器或终端访问互联网,以确保网络连接已成功建立。
如果以上步骤无法解决问题,可以考虑检查防火墙设置或尝试重新启动虚拟机和物理主机来刷新网络连接。如果问题仍然存在,可能需要进一步检查网络配置和 VMware 虚拟网络适配器的设置,或者尝试重新安装 VMware 工具以确保虚拟机驱动程序得到正确安装和配置。
(二)更换软件镜像源
要加快 Ubuntu 系统软件安装速度,可以通过以下步骤将软件源更改为国内镜像源,比如阿里云或清华大学镜像源。按照以下步骤操作:
1.打开终端。可以使用快捷键Ctrl + Alt + T或者通过应用程序菜单找到终端。
2.备份原始的软件源配置文件(建议):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
3.使用编辑器(比如 nano 或者 vi)打开软件源配置文件:
sudo nano /etc/apt/sources.list
4.将原始的软件源替换为指定镜像源。可以将以下内容粘贴到文件中:
//默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
//deb-src http://archive.ubuntu.com/ubuntu focal main restricted
//默认的官方源
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
//deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
//阿里云源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
//deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
//清华大学源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
//deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
5.保存文件并退出编辑器(在 nano 中使用 Ctrl + X,然后按 Y 保存更改)
6.运行以下命令更新软件源:
sudo apt update
现在,系统将会从指定的镜像源获取软件包信息,这会加快软件下载和更新的速度。
(三)掌握Ubuntu常用命令+学习使用vim
常用的Ubuntu命令
- ls - 列出目录内容。
- cd - 更改当前工作目录。
- pwd - 显示当前工作目录的路径。
- mkdir - 创建新目录。
- rm - 删除文件或目录。
- cp - 复制文件或目录。
- mv - 移动文件或目录。
- touch - 创建空文件或更新文件的时间戳。
- cat - 连接文件并打印到标准输出。
- grep - 在文件中搜索模式。
- sudo - 以超级用户权限运行命令。
- apt - Ubuntu的包管理工具,用于安装、卸载、更新软件包。
- df - 显示磁盘空间使用情况。
- free - 显示内存使用情况。
- top - 显示系统中正在运行的进程以及相关系统信息。
- chmod - 修改文件或目录的权限。
- chown - 更改文件或目录的所有者。
- ifconfig - 显示网络接口配置信息。
- wget - 从网络上下载文件。
- tar - 对文件进行归档和提取操作。
这些命令涵盖了在Ubuntu中执行常见操作所需的基本功能。
学习使用vim
打开终端并运行以下命令来安装Vim:
sudo apt update
sudo apt install vim
基本Vim操作:
- 打开文件:运行vim filename打开名为filename的文件或创建一个新文件。
- 切换到编辑模式:按下i键进入插入模式,开始编辑文件。
- 保存文件:按下Esc键退出插入模式,然后输入:w并按下Enter键保存文件。
- 保存并退出:在命令模式下输入:wq并按下Enter键。
- 退出不保存:在命令模式下输入:q!并按下Enter键。
- 移动光标:使用方向键或h(左)、j(下)、k(上)、l(右)移动光标。
- 复制、剪切和粘贴:在命令模式下使用yy复制一行,使用dd剪切一行,然后用p粘贴。
- 搜索:在命令模式下按下/,然后输入要搜索的内容并按下Enter键。
(四)在Ubuntu系统下利用vim写出简单的输出hello world的程序,并编译运行
-
安装编译工具:
安装build-essential包。打开终端并执行以下命令:
sudo apt update
sudo apt install build-essential -
创建C程序文件:
使用Vim创建一个C程序文件。在终端中输入以下命令:
vim hello.c -
在Vim中编辑C代码:
进入Vim后,按下i键进入插入模式,然后输入以下C语言代码:
#include <stdio.h>
int main() {
printf(“Hello, World!\n”);
return 0;
} -
保存文件:
按下Esc键退出插入模式,然后输入:w并按下Enter键来保存文件。 -
退出Vim:
在命令模式下输入:q并按下Enter键退出Vim编辑器。 -
编译C程序:
在终端中运行以下命令来编译C程序:
gcc -o hello hello.c
这将生成名为“hello”的可执行文件。 -
运行程序:
运行以下命令来执行程序:
./hello
在终端中可以看到“Hello, World!”这个输出。
三、使用Dev-c++编写一个基于“辗转相除法”的10进制数转2进制的程序
(一)原理思路:
辗转相除法(又称欧几里德算法)是一种用于计算两个数的最大公约数的算法。这个算法的基本原理是利用两个整数的除法取余操作来实现。可以利用辗转相除法来实现10进制转2进制的算法。
具体步骤如下:
1.从给定的十进制数开始,使用除以2的操作得到商和余数。
2.将得到的余数记录下来,构成二进制数的一部分。
3.将商作为新的被除数,重复步骤1和步骤2,直到商为0为止。
(二)代码实现:
#include
#include
using namespace std;
void decimalToBinary(int n) {
stack binaryStack;
while (n > 0) {
int remainder = n % 2;
binaryStack.push(remainder);
n /= 2;
}
cout << "Binary representation is: ";
while (!binaryStack.empty()) {
cout << binaryStack.top();
binaryStack.pop();
}
}
int main()
{
int decimalNumber;
cout << "Enter a decimal number: ";
cin >> decimalNumber;
decimalToBinary(decimalNumber);
return 0;
}
在这个程序中,使用了一个栈来保存二进制数的各个位,然后按相反的顺序输出,从而得到正确的二进制表示。程序要求用户输入一个十进制数,然后调用decimalToBinary函数来进行转换,并输出对应的二进制表示。