7简单加密算法模板
- 格式:pdf
- 大小:324.56 KB
- 文档页数:9
加密解密程序设计加密解密程序设计通常用于保护敏感信息的传输和存储,确保只有授权的用户才能访问和理解这些信息。
本文将讨论一个基本的加密解密程序设计,其中包含了常用的加密算法和解密算法,以及一些常见的加密解密技巧和策略。
一、加密算法设计1. 替换加密算法(Substitution Cipher):将原始消息中的字符替换为其他字符,通常使用一个固定的字母表和一个加密密钥。
例如,可以通过移位加密算法将字母A替换为字母D,将字母B替换为字母E,以此类推。
解密时,将密文中的字符替换回原始字符即可。
2. 移位加密算法(Caesar Cipher):也称为凯撒密码,是一种简单的替换密码。
将原始消息中的每个字母按照固定的位移量向后移动,例如,位移量为3时,字母A将被替换为字母D,字母B将被替换为字母E,以此类推。
解密时,将密文中的字母按照相同的位移量向前移动即可恢复原始消息。
3. 对称加密算法(Symmetric Cryptography):使用同一个密钥进行加密和解密,常用的对称加密算法包括DES、AES和RC4等。
加密时,将原始消息和密钥作为输入,通过特定的算法生成密文。
解密时,将密文和相同的密钥作为输入,通过逆算法恢复原始消息。
4. 非对称加密算法(Asymmetric Cryptography):使用两个不同的密钥进行加密和解密,分别为公钥和私钥。
常用的非对称加密算法包括RSA、DSA和ECC等。
加密时,将原始消息和公钥作为输入,通过特定的算法生成密文。
解密时,将密文和私钥作为输入,通过逆算法恢复原始消息。
5. 哈希函数(Hash Function):将任意长度的输入数据映射到固定长度的输出数据。
常用的哈希函数有MD5和SHA1等。
哈希函数通常用于生成消息的摘要,以验证消息的完整性和防止数据篡改。
二、加密解密程序设计示例以下是一个基本的加密解密程序设计示例,使用移位加密算法和对称加密算法进行加密和解密。
1.移位加密算法:```pythondef shift_cipher_encrypt(message, shift):encrypted_message = ""for character in message:if character.isalpha(:encrypted_character = chr((ord(character) - ord('A') + shift) % 26 + ord('A'))else:encrypted_character = characterencrypted_message += encrypted_characterreturn encrypted_messagedef shift_cipher_decrypt(encrypted_message, shift):decrypted_message = ""for character in encrypted_message:if character.isalpha(:decrypted_character = chr((ord(character) - ord('A') - shift) % 26 + ord('A'))else:decrypted_character = characterdecrypted_message += decrypted_characterreturn decrypted_message```2. 对称加密算法(使用Python的PyCrypto库进行AES加密):```pythonfrom Crypto.Cipher import AESdef symmetric_encrypt(message, key):cipher = AES.new(key, AES.MODE_ECB)encrypted_message = cipher.encrypt(message)return encrypted_messagedef symmetric_decrypt(encrypted_message, key):cipher = AES.new(key, AES.MODE_ECB)decrypted_message = cipher.decrypt(encrypted_message)return decrypted_message```三、加密解密技巧和策略1.密钥管理:确保只有授权的用户才能获得密钥。
分组密码加密算法的常见算法结构随着计算机技术的不断发展,信息安全问题也越来越受到关注。
在信息传输过程中,数据的加密是保障信息安全的重要手段之一。
分组密码加密算法是一种常见的加密算法,它将明文数据分成若干个固定长度的分组,通过对每个分组进行加密来实现整个消息的加密。
本文将介绍分组密码加密算法的常见算法结构,以及它们的优缺点和应用场景。
1. 基本结构分组密码加密算法的基本结构由两个部分组成:明文分组和密文分组。
明文分组是指明文数据被分割成固定长度的块,每个块长度通常为64位或128位。
密文分组是指加密后的明文分组,长度与明文分组一致。
加密算法的核心是将明文分组转换为密文分组,这个过程称为加密。
解密的过程是将密文分组转换为明文分组。
分组密码加密算法的常见算法结构包括:ECB、CBC、CFB和OFB。
这些算法结构在加密和解密过程中采用不同的方式来处理明文和密文分组。
2. ECB模式ECB(Electronic Codebook)模式是最简单的分组密码加密算法结构,它将每个明文分组单独加密,得到对应的密文分组。
每个明文分组之间是独立的,因此ECB模式无法处理明文分组之间的关系。
这种模式的缺点是,它容易受到重放攻击,即攻击者可以拦截并重复发送相同的密文分组,从而获得明文数据。
ECB模式的优点是加密和解密过程简单,可以并行处理多个分组。
它适用于每个明文分组的安全性要求不高的情况,例如对称密钥的传输和存储。
3. CBC模式CBC(Cipher Block Chaining)模式是一种常见的分组密码加密算法结构,它采用前一个密文分组来加密当前的明文分组。
具体地,在加密过程中,首先将前一个密文分组和当前明文分组进行异或运算,得到一个新的数据块,然后对这个新数据块进行加密。
解密过程与加密过程相反,将密文分组解密后再与前一个密文分组进行异或运算,得到对应的明文分组。
CBC模式的优点是可以处理明文分组之间的关系,提高安全性。
常用简易数据加密算法摘要:1.简易数据加密算法简介2.常见简易数据加密算法a.凯撒密码b.替换密码c.字母频率密码d.摩尔斯电码3.简易数据加密算法的优缺点4.应用场景与实例5.我国在数据加密领域的发展正文:随着信息化时代的到来,数据安全已成为越来越多人关注的问题。
加密算法作为保障数据安全的重要技术手段之一,被广泛应用于各个领域。
简易数据加密算法作为加密算法的一种,具有简单易懂、易于实现的特点,被广泛应用于初学者学习以及一些简单的应用场景。
本文将对常用简易数据加密算法进行简要介绍。
一、简易数据加密算法简介简易数据加密算法,顾名思义,是一种简单易学的加密方法。
这类加密算法通常不涉及复杂的数学原理,容易理解和实现。
它们主要通过替换、移位等方法对原始数据进行处理,使得数据在传输过程中不易被破解。
二、常见简易数据加密算法1.凯撒密码凯撒密码是一种最简单的加密方法,它通过字母表的移位来实现加密。
具体来说,将明文字母按照字母表顺序向后移动一个固定的位数,作为密文字母。
例如,若将字母表向后移动3 位,则“Hello”加密后为“Khoor”。
2.替换密码替换密码是一种将明文中的某些字符替换为其他字符的加密方法。
常见的替换密码有维吉尼亚密码和波雷费密码。
这类加密方法通常通过一个密钥来确定替换规则,例如,维吉尼亚密码通过一个单词作为密钥来确定替换规则。
3.字母频率密码字母频率密码是一种根据字母在英语中的频率来加密的算法。
首先统计明文中每个字母出现的频率,然后根据密钥字母的频率分布来替换明文字母。
由于英语中字母的频率具有一定的规律性,因此这种方法在一定程度上具有较好的加密效果。
4.摩尔斯电码摩尔斯电码是一种基于点和短线的电信代码,它通过不同的点线组合来表示不同的字母和数字。
由于摩尔斯电码在传输过程中不易被破解,因此被广泛应用于早期的无线电通信。
三、简易数据加密算法的优缺点简易数据加密算法的优点在于简单易学、易于实现,适用于初学者进行学习和实践。
加密解密⽅式代码public class EncodePassword {// (1)加密算法有:AES,DES,DESede(DES3)和RSA 四种// (2) 模式有CBC(有向量模式)和ECB(⽆向量模式),向量模式可以简单理解为偏移量,使⽤CBC模式需要定义⼀个IvParameterSpec对象// (3) 填充模式:// * NoPadding: 加密内容不⾜8位⽤0补⾜8位, Cipher类不提供补位功能,// 需⾃⼰实现代码给加密内容添加0, 如{65,65,65,0,0,0,0,0}// * PKCS5Padding: 加密内容不⾜8位⽤余位数补⾜8位,// 如{65,65,65,5,5,5,5,5}或{97,97,97,97,97,97,2,2}; 刚好8位补8位8// private static final String ENCODE_TYPE = "AES/CBC/PKCS5Padding"; "算法/模式/填充模式"//指定算法private static final String ENCODE_TYPE = "AES";//salt 盐值,⽤于⽣成密钥private static final String publicKey = "s7WKkt@zqJO+wVdW";public static void main(String[] args) throws Exception {getSecretKey();System.out.println("============AES对称加密⽅式================");String aesEncode = testAESEncode("wo6ai8zhong6guo"); // 加密后的密码String aesDecode = testAESDecode(publicKey, aesEncode);System.out.println("解密后的密码:"+aesDecode);// System.out.println("============Base64提供的加密⽅式(可逆)================");// testBase64Encode();// System.out.println("============spring-security-core提供的加密⽅式================");// testBCryptEncode();}// ⽣成密钥private static void getSecretKey() throws NoSuchAlgorithmException {// 通过 KeyGenerator创建秘密密匙 128、192和256位KeyGenerator keyGenerator = KeyGenerator.getInstance(ENCODE_TYPE);keyGenerator.init(128);SecretKey keySpec = keyGenerator.generateKey();byte[] encoded = keySpec.getEncoded(); //密钥String str = Base64.getEncoder().encodeToString(encoded);System.out.println("KeyGenerator:"+str);SecretKey secretKey = new SecretKeySpec(publicKey.getBytes(), ENCODE_TYPE);byte[] encoded1 = secretKey.getEncoded();System.out.println(encoded1.toString());String str1 = Base64.getEncoder().encodeToString(encoded1);System.out.println("SecretKeySpec:"+str1);}/* AES加密数据块和密钥长度可以是128⽐特、192⽐特、256⽐特中的任意⼀个。
常用简易数据加密算法摘要:1.引言2.常用简易数据加密算法概述3.常用简易数据加密算法分类3.1 对称加密算法3.2 非对称加密算法4.对称加密算法具体算法介绍4.1 DES 算法4.2 3DES 算法4.3 AES 算法5.非对称加密算法具体算法介绍5.1 RSA 算法5.2 ECC 算法6.简易数据加密算法的应用场景7.总结正文:【引言】在信息时代,数据安全和隐私保护成为了人们日益关注的问题。
数据加密技术是保护数据安全和隐私的有效手段之一。
本篇文章将为大家介绍一些常用的简易数据加密算法。
【常用简易数据加密算法概述】数据加密算法主要分为两大类:对称加密算法和非对称加密算法。
对称加密算法指的是加密和解密使用同一密钥的加密算法,非对称加密算法指的是加密和解密使用不同密钥的加密算法。
【常用简易数据加密算法分类】【3.1 对称加密算法】对称加密算法中,加密和解密使用同一密钥。
常见的对称加密算法有DES、3DES 和AES 等。
【3.2 非对称加密算法】非对称加密算法中,加密和解密使用不同的密钥。
常见的非对称加密算法有RSA 和ECC 等。
【4 对称加密算法具体算法介绍】【4.1 DES 算法】DES(Data Encryption Standard)算法是一种广泛应用的对称加密算法,其密钥长度为56 位,加密后的数据长度为64 位。
【4.2 3DES 算法】3DES(Triple Data Encryption Standard)算法是DES 的改进版,其加密过程采用了三次DES 加密,密钥长度为192 位,加密后的数据长度为256 位。
【4.3 AES 算法】AES(Advanced Encryption Standard)算法是目前应用最广泛的对称加密算法,其密钥长度可以是128 位、192 位或256 位,加密后的数据长度与密钥长度相同。
【5 非对称加密算法具体算法介绍】【5.1 RSA 算法】RSA(Rivest-Shamir-Adleman)算法是一种非常著名的非对称加密算法,其安全性高,广泛应用于网络通信和数据存储等领域。
常用的加密方法及应用场景加密是将明文转换成密文的过程,是信息安全领域中重要的技术手段之一。
常用的加密方法有对称加密算法、非对称加密算法和哈希算法。
下面将详细介绍这些加密方法及其应用场景。
1. 对称加密算法:对称加密算法又称为私钥加密算法,是指加密和解密使用相同的密钥。
常见的对称加密算法有DES、3DES、AES等。
应用场景:(1) 数据加密传输:对称加密算法可以保护数据在传输过程中的安全性。
例如,在进行网上银行转账时,可以使用对称加密算法对用户的交易信息进行加密,以防止被黑客窃取。
(2) 文件加密存储:对称加密算法可以用于对敏感文件进行加密存储,以防止文件被未授权的人访问。
例如,企业可以使用对称加密算法对公司机密文件进行加密,确保信息不会泄露。
2. 非对称加密算法:非对称加密算法也称为公钥加密算法,是指加密和解密使用不同的密钥。
常见的非对称加密算法有RSA、ECC等。
应用场景:(1) 数字签名:非对称加密算法可以用于生成数字签名,用于验证数据的完整性和真实性。
例如,在电子商务中,买家可以使用卖家的公钥对订单进行签名,确保订单在传输过程中不被篡改。
(2) 密钥交换:非对称加密算法可以用于安全地交换密钥。
例如,在网络通信中,可以使用非对称加密算法对会话密钥进行加密,并通过非安全信道将其发送给通信方,确保密钥只有合法的通信方可以得到。
3. 哈希算法:哈希算法是一种将任意长度的数据映射为固定长度散列值的算法。
常见的哈希算法有MD5、SHA-1、SHA-256等。
应用场景:(1) 数字指纹:哈希算法可以用于生成数据的唯一标识,用于鉴别数据的完整性。
例如,在文件传输过程中,发送方可以对文件进行哈希运算并将生成的哈希值发送给接收方,接收方可以通过对接收的文件再次进行哈希运算,并将结果与发送方的哈希值进行比对,以确保文件的完整性。
(2) 密码存储:哈希算法可以用于密码的存储。
由于哈希函数是单向的,无法从哈希值反推出原始密码,因此可以将用户的密码哈希存储在数据库中,提高密码的安全性。
AES加密模式详解AES(Advanced Encryption Standard)是一种对称加密算法,被广泛应用于保护数据的安全性。
AES加密模式是指在使用AES算法进行加密时,可以选择不同的模式来组织数据的分组和加密方式。
以下是常见的AES加密模式的详解。
1. ECB(Electronic Codebook)模式:ECB是最简单的AES加密模式,它将明文分成固定大小的块,每个块独立地进行加密。
同样的明文块将生成相同的密文块,因此ECB模式无法隐藏相同数据块的重复出现,容易受到密码分析攻击的影响。
由于缺乏随机性,ECB模式不适合加密大量数据或需要高度保密的数据。
2. CBC(Cipher Block Chaining)模式:CBC模式在加密过程中使用前一个数据块的密文作为当前数据块的输入,增加了随机性。
首先,需要一个初始向量(Initialization Vector,IV)来作为第一个数据块的输入。
然后,每个明文数据块与前一个密文数据块进行异或操作,再进行加密。
CBC模式可以隐藏数据的模式,且相同的明文块会得到不同的密文块,提高了安全性。
但CBC模式不适合并行加密和解密,因为每个数据块的加密都依赖于前一个数据块的密文。
3. CFB(Cipher FeedBack)模式:CFB模式将AES算法转换为一个自反反馈密码流模式。
首先,需要一个初始向量(IV)来作为第一个密钥流的输入。
然后,将明文与前一个密钥流进行异或操作,并将异或结果进行加密。
加密后的密文作为下一个密钥流的输入。
CFB模式可以实现流加密的效果,可以对任意长度的数据进行加密。
但是由于加密操作依赖于前一个密钥流的输出,CFB模式不适合实时数据流的加密。
4. OFB(Output FeedBack)模式:OFB模式将AES算法转换为一个输出反馈密码流模式。
首先,需要一个初始向量(IV)来作为第一个密钥流的输入。
然后,将初始向量进行加密,得到密钥流。
常⽤密钥算法⼀、数据加密/编码算法列表 常见⽤于保证安全的加密或编码算法如下: 1、常⽤密钥算法密钥算法⽤来对敏感数据、摘要、签名等信息进⾏加密,常⽤的密钥算法包括:DES(Data Encryption Standard):数据加密标准,速度较快,适⽤于加密⼤量数据的场合;3DES(Triple DES):是基于DES,对⼀块数据⽤三个不同的密钥进⾏三次加密,强度更⾼;RC2和 RC4:⽤变长密钥对⼤量数据进⾏加密,⽐ DES 快;IDEA(International Data Encryption Algorithm)国际数据加密算法,使⽤ 128 位密钥提供⾮常强的安全性;RSA:由 RSA 公司发明,是⼀个⽀持变长密钥的公共密钥算法,需要加密的⽂件快的长度也是可变的;DSA(Digital Signature Algorithm):数字签名算法,是⼀种标准的 DSS(数字签名标准);AES(Advanced Encryption Standard):⾼级加密标准,是下⼀代的加密算法标准,速度快,安全级别⾼,⽬前 AES 标准的⼀个实现是 Rijndael 算法;BLOWFISH,它使⽤变长的密钥,长度可达448位,运⾏速度很快;其它算法,如ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。
2、单向散列算法单向散列函数⼀般⽤于产⽣消息摘要,密钥加密等,常见的有:MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的⼀种单向散列算法,MD5被⼴泛使⽤,可以⽤来把不同长度的数据块进⾏暗码运算成⼀个128位的数值;SHA(Secure Hash Algorithm)这是⼀种较新的散列算法,可以对任意长度的数据运算⽣成⼀个160位的数值;MAC(Message Authentication Code):消息认证代码,是⼀种使⽤密钥的单向函数,可以⽤它们在系统上或⽤户之间认证⽂件或消息。
AES加密算法详解AES(Advanced Encryption Standard)是一种对称加密算法,被广泛用于保护数据的机密性和完整性。
它是目前被认为是最安全的加密算法之一、下面是对AES加密算法的详细解释。
AES算法采用了分组密码(Block Cipher)的方式进行加密和解密。
分组密码是将明文按照固定长度的块大小进行分组,然后对每个分组进行加密的算法。
AES的分组大小为128位(16个字节),即每次处理128位的数据块。
AES算法是一个迭代的加密算法,它将密钥扩展为一系列的轮密钥,然后通过数轮加密操作对明文进行加密。
AES算法共有10轮、12轮和14轮三种不同的变体,轮数的选择取决于密钥的长度。
最常用的是10轮AES-128算法。
每一轮都由四个操作组成:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。
字节替代(SubBytes)是对每个字节进行字节替代操作。
AES算法使用一个固定的替代表(S-Box),将当前的字节替换为S-Box中对应的字节。
这个S-Box是一个16×16数组,包含了一系列固定的替代规则。
行移位(ShiftRows)是对每一行进行循环移位操作。
第一行不变,第二行循环左移一位,第三行循环左移两位,第四行循环左移三位。
这样可以让数据块的字节在不同的行进行混合。
列混淆(MixColumns)是对每一列进行一种线性变换操作。
它将每一列的四个字节看作多项式的系数,并通过乘法和加法的运算,将每一列的四个字节进行混合。
轮密钥加(AddRoundKey)是将当前的数据块与当前轮的轮密钥进行异或操作。
轮密钥是通过密钥扩展算法生成的,每一轮使用的轮密钥都不同。
AES算法的加密和解密过程是对称的,解密的过程与加密的过程完全相同,只是使用的轮密钥的顺序相反。
在解密过程中,先对最后一轮加密操作的结果进行反操作,然后对每一轮的操作进行反操作。
计算机与软件工程学院课程设计说明书
课程名称:C++程序设计实训
课程代码:106086719
题目:简单加密程序设计
年级/专业/班:2013软工3班
学生姓名:刘晨晖
学号:3120130905324
开始时间:2015年11月02日完成时间:2015年11月18日课程设计成绩:
学习态度及平时成绩(30)技术水平与实际
能力(20)
创新(5)说明书撰写质量(45)
总分
(100)
指导教师签名:年月日
摘要 (1)
1引言 (2)
2系统分析 (5)
2.1功能需求 (12)
2.1.1总体要求 (14)
2.1.2本人所做模块 (15)
2.2数据需求 (16)
3详细设计与实现 (17)
3.1设计思路 (18)
3.2编码 (20)
3.3实现结果 (21)
4系统测试 (22)
4.1设计测试数据 (23)
4.2测试结果及分析 (25)
总结 (27)
致谢 (28)
参考文献 (29)
附录 (30)
设计学校的校园平面图,所含景点不少于10个。
以图中顶点表示学校各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。
为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
为来访客人提供图中任意景点相关信息的查询。
关键词:景点信息,最短路径,任意
1引言
1.1问题的提出
以前的操作系统等系统软件主要是由汇编语言编写的(包括UNIX操作系统在内)。
由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。
为了提高可读性和可移植性,最好改用高级语言,但一般高级语言难以实现汇编语言的某些功能。
人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。
于是,C语言就在这种情况下应运而生了。
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。
C++支持多种编程范式--面向对象编程、泛型编程和过程化编程。
最新正式标准C++于2014年8月18日公布。
[1]其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
1.2C++
C++一般被认为是C的超集合(Superset),但这并不严谨。
大部分的C代码可以很轻易的在C++中正确编译,但仍有少数差异,导致某些有效的C代码在C++中失效,或者在C++中有不同的行为。
最常见的差异之一是,C允许从void*隐式转换到其它的指针类型。
1.3C++发展过程
C++语言发展大概可以分为三个阶段:
第一阶段从80年代到1995年。
这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;
第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。
当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;
第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员
1.4任务与分析
任务是一个最短路径的查找问题,校园的各景点可以看成是一个图中的点,而路径则是一个图中的各条边,将校园景点和之间的路径看成是一个图就行了。
现实中路径是有长度的,所以应该是带权图,权值就是路径的长度。
2设计方案
1
2.1.1简单加密程序设计设计方案
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cout<<"please enter in";
cin>>s;//输入字符串
for(int i=0;i<s.length();i++)//遍历输入串的长度
{
if(s[i]>='A'&&s[i]<'X'||s[i]>='a'&&s[i]<'x')//处理A-Y与z-y s[i]+=3;
else if(s[i]=='X')//处理Z
s[i]='A';
else if(s[i]=='Y')//处理Z
s[i]='B';
else if(s[i]=='Z')//处理Z
s[i]='C';
else if(s[i]=='x')//处理Z
s[i]='a';
else if(s[i]=='y')//处理Z
s[i]='b';
else if(s[i]=='z')//处理z
s[i]='c';
}
cout<<s<<endl;//输出字符串
system("pause");
}
Rect.h
#pragma once
#ifndef RECT_H
#define RECT_H
namespace GongPengyi{
class Rect{
private:
float height;
float width;
public:
//constructor
Rect():height(10),width(10)
{
}
Rect(float height,float width)
:height(height),width(width)
{
}
float area(void)const
{
return height*width;
}
float perimeter(void)const
{
return(height+width)*2;
}
Rect&operator+=(const Rect&rhs){
height+=rhs.height;
width+=rhs.width;
return*this;
}
};
Rect&operator+(Rect&lhs,const Rect&rhs){ Rect tmp=lhs;
tmp+=rhs;
return tmp;
}
}
#endif
Main.cpp
#include<iostream>
#include"rect.h"
using namespace std;
using namespace GongPengyi;
#define show(x)cout<<"矩形"<<#x<<"的面积:"<<x.area()<<"周长:"<<x.perimeter()<<endl;
int main(int,char**){
Rect a(10,20);
Rect b;
show(a);
show(b);
Rect tmp;
tmp=a+b;
show(tmp);
system("pause");
}
参考文献
[1]李建学等.数据结构课程设计案例精编(用C/C++描述).清华大学出版.2007-2-1。