`
L.G.Alexander
  • 浏览: 156241 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一天学习

阅读更多
day01AM:
C++课程分两部分:
core C++,它是标准的C++,不依赖于平台的,不依赖于任何的操作系统。讲15天(三周)。
几乎讲遍
U C++ Unix下的C++编程,它依赖于Unix操作系统。5天(一周)。
常用技术
Fedora Core4
username:root password:121315
username:lukuijun password:lukuijun

1、打开vi并建立文件名为cpp的文件
$ vi cpp.sh
2、不要显示行号 set nonu
按esc后,输入
:set nonu
3、在vi中编辑文本
date 日期
echo I will try my best to learn C++.
4、保存退出,当我们按Esc键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令
:w 保存;
:w finename 另存为filename;
:wq!保存退出;
:wq! filename 注:以filename为文件名保存后退出;
:q!不保存退出;
:x应该时保存并退出,功能和:wq!相同
5、列出文件信息
$ ls -a
显示cpp.sh文件
6、创建一个目录 mkdir directoryfile
$ mkdir day01
7、移动文件cpp.sh 到day01下面去
$ mv cpp.sh day01/
8、进入到目录day01下看看
$ cd day01
$ ls
列出文件cpp.sh
9、看看能不能执行app.sh
$ ./cpp.sh
显示-bash:./app.sh:Permission denied 权限被否定,不能在执行
10、设置权限
$ chmod a+x ccp.sh
注意:文件/目录权限设置命令:chmod
这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法:
用包含字母和操作符表达式的文字设定法,其语法格式为:chmod [who] [opt] [mode] 文件/目录名
其中who表示对象,是以下字母中的一个或组合:
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
而mode则代表权限:
r:可读
w:可写
x:可执行

例如:为同组用户增加对文件a.txt的读写权限: chmod g+rw a.txt
关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有

则有0表示,那么rwx r-x r--则可以表示成为:111 101 100 再将其每三位转换成为一个十进制数,就是754。
例如,我们想让a.txt这个文件的权限为:
自己 同组用户 其他用户
可读 是 是 是
可写 是 是 可执行 
那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十

进制数,就得到664,因此我 们执行命令:chmod 664 a.txt
11、执行app.sh文件
$ ./app.sh
得到结果:
Sat Mar 21 00:51:07 CST 2009
echo I will try my best to learn C++.
注意:直接执行app.sh,提示说-bash: app.sh:commod not found 命令没有找到。是因为没有设置bash的环境变量

PATH,bash的环境变量怎么设置呢?PATH是系统寻找命令文件的地方,它找命令文件去PATH里面找,PATH里面是什么呢

?我们去PATH里面看一下,这样显示PATH:
$ echo $PATH
显示结果:/usr/kerberos/bin:/usr/local/bin:usr/bin
PATH中是若干个用:号分割开的目录。系统在寻找命令的时候,就去PATH里的目录下依次寻找,直到找到为止。如果希

望在当前目录下找,需要在PATH里面加.表示当前目录。
怎么添加环境变量,两个方法:
1)一次性的,关了后重启就失效,$ export PATH=$PATH:.
2)永久性的,写在配置文件里面,
用vi打开配置文件.bash_profile
$ vi .bash_profile
找到其中有一行PATH=....,在这行的末尾加上:.然后保存推出注销重新登录生效,直接执行!app.sh就可以了。
注意:.bash_profile在主目录先,~表示主目录
linux 注销 关机 重启命令
a)注销系统的logout命令
Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel 2.4.20.8 on an i686
Login: ← 回到登陆的画面
b)关机或重新启动的shutdown命令
Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。
参数说明如下:
    立即关机:-h 参数让系统立即关机。范例如下:
  [root@localhost root]#shutdown –h now ← 要求系统立即关机
 指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:
  [root@localhost root]#shutdown now ← 立刻关机
  [root@localhost root]#shutdown +5 ← 5分钟后关机
  [root@localhost root]#shutdown 10:30 ← 在10:30时关机
  关机后自动重启:-r 参数设置关机后重新启动。范例如下:
  [root@localhost root]#shutdown -r now ← 立刻关闭系统并重启
  [root@localhost root]#shutdown -r 23:59 ← 指定在23:59时重启动
c)重新启动计算机的reboot命令
  顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:
 -f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。
 -I 参数:在在重新启动之前关闭所有网络接口。
  虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了

12、在unix文件系统,要么相对路径要么绝对路径。如果没有带目录,如vi a.txt表示创建或者打开当前目录下的

a.txt文件。/etc/a.txt表示指定目录ect下的a.txt文件。
13、$ g++命令
$ g++
显示 g++:no input files 恭喜可以使用它来写C++,如果显示command not fond,则需要添加环境变量PATH
14、$ which g++
功能说明:查找文件。
语  法:which [文件...]
补充说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
参  数:
 -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
 -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
 -w  指定输出时栏位的宽度。
 -V  显示版本信息

C++ Programming in UNIX
课程介绍
    C++语法基础
    面向对象程序设计的概念
    大量的编程实践
目标
    熟练掌握C++语法
    具有面向对象程序设计的概念与能力
    熟练阅读复杂的C++程序源代码
    能独立的设计与完成面向对象的C++程序
课程内容介绍
    C++语言基础(六天五章)
        保留字
        变量,常量
        表达式
        语句
        函数
        程序的结构
        数据结构与算法
            数组 指针 引用 结构 链表与栈

    C++面向对象编程
        类
        构造函数与析构函数
        静态成员与友员
        函数重载
        继承与多态

    I/O流

    模板

    异常

程序设计语言介绍
What computer understand?
  bits
Assembler Language
  Limited structure
  Global scope
  Machine code
Primitive High-Level Language
  Function decomposition
  Data separation
  Highe level structure
Block Structured Language
  Encapsulation
  Flexible data scoping
  Modularization
Object-Oriented Language
  Inheritance
  Polymorphism
  Abstract data types

C++程序设计语言
1972,AT&T,Bell Lab.Dennis Ritche,C language
1981,Bell Lab. Bjarne Stroustrup,C extension
1983,C++ named
1997,ANSI(American National Standards Institute) C++ (standard C++)
Which C++ will we learn in this course?
Standard C++: ANSI C++ is more scalable to different platform such as Unix ,ms Windows ,Mac..
The standard C++ library got supported by most of industry providers
You'd better don't know C.   ......???
We will try to avoid C library and C syntax.
A C++ file can be with .cc,.cp,.cpp exntensions.
14、linux 的文件表示方法,两种方法:绝对路径和相对路径
绝对路径:/a/b/e/g第一个/表示根目录,其他的表示/表示分隔符
相对路径:e/g <==>./e/g 其中.表示当前目录
表示文件或者目录一定是绝对路径或者相对路径。两者必具其一。
程序员应该具备的计算机知识1
操作系统与应用程序
运行环境与运行机制
    系统与命令
    运行环境与命令参数
    进程 一份正在运行的程序,一个进程
    栈 由系统自动管理的一小块内存空间
    堆 交给程序员自由挥霍的一大片内存空间
15、设置环境变量在非shell和shell下面不一样
非shell下面这样设置:set env...
shell bash下面这样设置:export PATH=...
Binary and Hexadecimal
  Binary: 0101 1000
  Decimal: 88
  Hexadecimal:0x58
  1byte = 8bits
思考:十进制123转换成二进制(除以2取余数),然后在转换成十进制(乘以2加上余数)。
记住十六进制:
A 10
B 11
C 12
D 13
E 14
F 15
计算机为什么喜欢用十六进制?因为一个字节正好两个十六进制位。寄存器是一个字节一个字节的,正好相符合。
计算机里面,负数表示方法是先算出对应的二进制正数,然后按位取反,然后加1。称为补码。
思考:-1用补码怎么表示?答案:11111111
编辑器 vi 它编辑的程序为源程序 *.cc
保存推出 :wq或者:x或者 ZZ
bash代码自动补全:Tab键
编译器 将源程序编译成目标文件 g++ -c 文件名 编译后位*.o的目标文件
    编译器的功能
    解释执行与编译执行的差别
    熟悉自己常用的编译器,查错能力
连接器 g++ 可执行文件(命令文件)
库与库函数
系统调用  执行:命令
编程周期
源程序--> 编译--> 连接--> 调试--> 运行
Software Lifecycle
开发
测试
维护
更新

熟悉你的环境
可用的UNIX服务器
1、www.openlab.com.cn
2、192.168.1.21
3、192.168.1.23
4、192.168.1.26
Telnet命令介绍
    telnet 192.168.1.21
    Login:uer your registered user account
    Password:type in your password
创建自己的学习账号
    telnet www.openlab.com.cn
    login:tarena
    Password:tarena
欢迎使用达内科技(中国)公司开放实验室服务!
Welcome to the OpenLab of Tarena Technologies Inc.Cananda.

请按照以下提示创建你的用户账号。
Please follow the steps to create your own account.
(请输入你要注册的账号)Please enter your new account name:XXXX
(请输入你的E-mail地址)Please enter your email address:xxx@ss.zz

用自己的账号登录UNIX服务器
Escape character is '^]'
SunOS 5.8

login:XXX
Choose a new password
New password:*******

程序员经常用到的UNIX命令1
简单的文件维护与管理
ls列表
cd改变目录
mkdir创建目录
rm删除文件
cp复制
mv移动文件
cat显示查看文件内容
more 分屏查看
rmdir或者 rm -r删除目录
源程序的编写
vi,ed
编译与连接
gcc,g++,ld c++自动去调用ld
运行与调试
adb,
gdb调试
查看运行状态
% ps -ef查看进程状态
% grep aaa a.txt(aaa is the chars in the file name a.txt)在文件里面找字符串
% prstat(ctrl D to exit)看进程状态
% kill pid(pid is a process id)暗杀进程

第一个UNIX上的C++程序
用vi编辑器来编写hello.cc源程序
% vi hello.cc
c++程序的扩展名在unix环境下叫.cc,window环境下叫.cpp,但是都可以用。
1)编辑hello.cc
$ vi hello.cc
/* the first C++ program */
#include <iostream>
using namespace std;
//mani function
int main(){
    cout << "Hello world!" << endl;
    cout <<  "This is my first C++ program.\n";
}
2)编译hello.cc
$ g++ -c hello.cc
3)连接
$ g++ hello.o
4)执行
$ ./a.out

命令改名mv
linux mv 命令详解
功能说明:移动或更名现有的文件或目录。
语  法:mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录]
补充说明:mv可移动文件或目录,或是更改文件或目录的名称。
参  数:
 -b或--backup  若需覆盖文件,则覆盖前先行备份。
 -f或--force  若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。
 -i或--interactive  覆盖前先行询问用户。
 -S<附加字尾>或
 --suffix=<附加字尾>  与-b参数一并使用,可指定备份文件的所要附加的字尾。
 -u或--update  在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。
 -v或--verbose  执行时显示详细的信息。
 -V=<方法>或
 --version-control=<方法>  与-b参数一并使用,可指定备份的方法。
 --help  显示帮助。
 --version  显示版本信息。
5)将a.out文件改名位abc
$ mv a.out abc
6)执行abc
$ abc
7)在连接时生成文件可以用-o 自己定义名字
$ g++ hello.o -o hello

g++的常用参数
-c 编译成目标文件.o
-o指定输出文件名,输出文件名跟在-o后面,用空格分隔。如果不使用这个选项,缺省的输出文件名为a.out。
-g产生有调试信息的可执行文件
-w不产生警告信息
-l连接指定的库文件
-L指定库文件的路径
-i要包含的头文件
-I头文件的路径
-E显示预处理后的程序文件到屏幕上,可以用-o指定输出到文件
-S产生汇编程序
如果没有c、E、S就会生成可执行文件
8)编译链接一起做
$ g++ hello.cc
9)编译连接取名一起做
$ g++ hello.cc -o hello
C++程序的基本样式:
1)注释
C++有两种注释:多行注释/*.....*/和单行注释//..
多行注释
/* the first
C++ program */
单行注释
//main function
2)预处理命令
#开头表示预处理,在编译之前做预处理,处理完在编译
3)预处理的包含命令
#include <文件>
包含进来的意思是把指定文件的内容插入到包含的地方,#include <iostream>就是把iostream的文件的内容插入到这

个地方。包含进来的文件也称为头文件。iostrean.h是不标准的C++,标准的C++头文件一律没有.h
凡是系统自带的头文件都用<>包含,自己写的头文件就用""包含。
4)使用命名空间,C++引入了命名空间。可以这么理解,凡是使用标准C++库里面的东西,都要使用std的名字空间。因

为标准C++把它自带的一切东西都放在了std这个名字空间里面。一个名字空间就象一个区域一样指定一个范围,举例:

市长,不知道哪个市的市长,如果说重庆市市长,就清楚了。std是standard的缩写,保准的东西就放在标准名字空间

里面。
using namespace std;
5)主函数,一切程序中,一律将主函数做为程序唯一的入口。一个程序只能有一个主函数。
int main(){}
在非标准的写法为void main(){},但是标准的都是int main(){}
6)编程风格:代码缩进,很重要。用Tab键盘缩进
7)一个语句以;结尾
8)cout是console output的缩写,表示控制台输出。cin是console input的缩写,表示控制台输入。
9)endl是end line的缩写表示换行。\n也表示换行。
10)用到输入输出一定要包含iostream,即#include <iostream>
注意可以将
#include <iostream>
using namespace std;
当成一个C++程序的框架。
练习程序myself.cc
编写一个程序,打印出自己的姓名、性别、年龄、家庭住址、电话号码、爱好,每一条信息输出为一行。
练习程序hi.cc
#include <iostream>
using namespace std;
int main(){
count << "Hi Jian!" << endl;
count << "Have a nice day." << ednl;
return 0;
}
在hi.cc中使用字符串
#include <iostream>
using namespace std;
int main(){
char name[] = "John";

count << "Hi" << "!" << endl;
count << "Have a nice day." << ednl;
return 0;
}
注意:用双引号""包起来的字符串将原样输出。
问题Email:chenzq@tarena.com.cn
技术论坛:bbs.tarena.com.cn
作业:
1、进制转换,必须会。
2、用*输出三角形或者文字。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics