您好,欢迎光临有路网!
零点起飞学C#
QQ咨询:
有路璐璐:

零点起飞学C#

  • 作者:杨佩璐
  • 出版社:清华大学出版社
  • ISBN:9787302317449
  • 出版日期:2013年07月01日
  • 页数:366
  • 定价:¥55.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    杨佩璐编著的《零点起飞学C#》结合大量实例和实战案例,由浅入深、循序渐进地介绍C#程序设计的相关知识,尤其对面向对象的程序设计和一些难点做了**介绍。本书特意提供了典型习题及教学PPT,以方便教学。另外,本书提供了大量的配套教学视频,还赠送了13个典型模块与3个项目开发的源代码及教学视频,以帮助读者更好地学习。这些视频和本书代码一起收录于配书光盘中。
    本书共分4篇。第1篇为基础语法,介绍了Visual Studio
    2010开发环境的搭建、C#基本概念、类型、变量、表达式和运算符、语句、命名空间、类、结构和数组等。第2篇为面向对象技术深入,介绍了接口、委托和事件、异常处理、泛型、分部类型和可空类型、赋值、迭代器、匿名方法、扩展方法、Lambda表达式和查询表达式等。第3篇为C#应用技术,介绍了字符串处理、日期和时间处理、I/O流、目录和文件处理、Windows窗体编程、使用GDI+绘图,以及.NET
    数据访问等。第4篇为项目案例实战,介绍了图书管理系统、P2P聊天工具、我的校内网等系统的开发过程,因为篇幅所限,《零点起飞学C#》适合C#入门
    文章节选
    第5章 表达式和运���符
    计算机的核心功能就是运算。为了让计算机完成对应的工作,编程语言将常见的运算都预先设定好,并使用相应的符号表示。这些符号就是运算符。将这些符号和我们要处理的数据结合起来,就构成了表达式。本章将详细讲解C#中的各种运算符和表达式。
    5.1 运算的*小单位——表达式
    表达式是一个由操作数(operand)和运算符(operator)构成的序列。运算符指定操作数的运算规则,即指示对表达式中的操作数进行什么样的运算。本节将详细介绍表达式。
    5.1.1 表达式分类
    在C#语言中,根据操作数的类型可以把表达式分为以下9种类别,如表5.1所示。
    表5.1 C#中的操作数表
    操作数类型
    运 算

    每一个值都有关联的类型
    变量
    每一个变量都有关联的类型。如果该变量定义了相关的类型,则称该变量为已声明类型的变量
    命名空间
    C#程序是利用命名空间组织起来的
    类型
    指定变量数据的存储方式和操作方法
    方法组
    表示一组方法,并可以通过实例调用方法组中的方法
    属性访问
    每个属性访问都有关联的类型,即该属性的类型
    事件访问
    每个事件访问都有关联的类型,即该事件的类型
    索引器访问
    每个索引器访问都有关联的类型,即该索引器的元素类型
    Nothing
    出现在调用一个具有void返回类型的方法时

    下面介绍两个特殊的表达式:this和new。它们隐藏了操作符,都有其特殊的作用。使用this关键字可以限定名称相同的成员,new关键字作为new运算符时可以创建对象等。
    5.1.2 this关键字
    this关键字可以用来引用类的当前实例。this关键字存在3种常用用法:限定名称相同的成员、将对象本身作为参数和声明索引器。下面介绍this的**种用法,后面两种用法会在相应章节介绍。
    限定名称相同的成员是指在某一个类中,如果某一个成员的名称和其他对象(如参数等)的名称相同,那么可以通过this关键字限定该成员。
    【示例5-1】下面创建一个名称为Program的类,并声明了一个名称为i的私有成员。

    01 using System;
    02 namespace 示例5_1
    03 {
    04 class Program
    05 {
    06 private int
    i;
    07 public
    Program(int i)
    08 {
    09
    this.i =
    i;
    //将i参数的值赋值给Program类的私有成员i
    10 }
    11 static void
    Main(string[] args)
    12 {
    13
    Program p = new Program(123);
    14
    Console.WriteLine("i="+p.i);
    15
    Console.ReadLine();
    16 }
    17 }
    18 }
    ?注意:在Program(int
    i)函数中,Program类的i成员的名称和i参数的名称相同,为了区分这两个对象,则需要使用this关键字来限定Program类的i成员。因此,this.i表示Program类的i成员。
    分析:在“this.i =
    i;”语句中,this.i表示Program类的私有成员i,i(“=”的右边表达式)表示i参数。因此,“this.i =
    i;”语句将i参数的值赋值给Program类的私有成员i。运行结果如图5.1所示。
    图5.1 this示例
    5.1.3 new关键字
    new关键字有3种用法,分别是作为new运算符、new修饰符和new约束。本节只介绍new作为运算符的用法,其他两种用法在相应章节继续学习。当new关键字作为new运算符时,它可以用来创建对象和调用构造函数、创建匿名类型的实例、调用值类型的默认构造函数等。
    【示例5-2】下面使用new运算符创建一个类型为object的对象o。

    object obj = new
    object();
    //new运算符创建object类的对象obj
    ?注意:当new运算符创建类型的一个新实例时,但并非为该实例动态分配内存。对于值类型的实例而言,一般不需要分配该实例表示的变量之外的内存(值类型的实例本身会占用一定的内存)。因此,在使用new运算符创建值类型的实例时,是不会发生动态分配内存。
    5.2 运算的核心——运算符
    运算符是表达式很重要的一部分,它指示对表达式中的操作数进行什么样的运算,如+、–、*、/、%等。根据运算符所需操作数的个数,可以把运算符分为一元运算符、二元运算符和三元运算符。本节将介绍有关运算符的知识。
    5.2.1 算术运算符
    算术运算是基本的数学运算。它包括加、减、乘、除。在C#中,分别使用+、–、*、/表示。同时,C#还使用%表示不常用的求余运算。它们的基本语法格式如下:

    left expression operator right expression

    left expression和right
    expression分别表示左操作数和右操作数,operator表示运算符,可以为*、/、%、+和–。
    【示例5-3】下面使用+运算符计算i和j两个操作数(均为int类型)的和,结果保存为result变量。运行结果如图5.2所示。

    01 using System;
    02 namespace 示例5_3
    03 {
    04 class Program
    05 {
    06 static void
    Main(string[] args)
    07 {
    08
    int i=10, j=10;
    09
    int result = i + j;
    //使用+运算符计算变量i和j的和
    10
    Console.WriteLine("result="+result );
    11
    Console.ReadLine();
    12 }
    13 }
    14 }

    图5.2 +运算符示例
    如果左、右操作数的类型相同,则它们的运算结果的类型和操作数的类型相同。当运算结果超出了该类型表示的范围时,如果使用了checked运算符,则引发System.OverflowException异常。如果使用了unchecked运算符,则不引发异常,但是其结果类型范围外的任何有效高序位都被放弃。
    对于+运算符而言,如果其一个或两个操作数为string类型时,则+运算符执行字符串串联操作,而不是简单的算术运算。
    【示例5-4】下面使用+运算符s1和s2(均为string类型)字符串串联起来,并保存为s3变量。

    01 using System;
    02 namespace 示例5_4
    03 {
    04 class Program
    05 {
    06 static void
    Main(string[] args)
    07 {
    08
    string s1 = "abc";
    09
    string s2 = "def";
    10
    string s3 = s1 +
    s2;
    //使用+运算符将两个字符串串起来
    11
    Console.WriteLine("s3="+s3);
    12
    Console.ReadLine();
    13 }
    14 }
    15 }

    分析:s3变量的值为abcdef字符串。运行结果如图5.3所示。
    图5.3 +运算符执行字符串串联操作示例
    5.2.2 自增、自减运算符
    自增、自减运算符都属于一元运算符,执行对操作数进行加1或者减1的操作。本节将详细介绍自增、自减运算符的使用方法。
    1.++运算符
    ++运算符又称为增量运算符,其作用是对操作数进行加1。将++运算符放在操作数的左边,称该运算符为前缀增量运算符。否则,称为后缀增量运算符。语法如下:

    ++ expression

    或者

    expression ++

    expression表示操作数。“++
    expression”表达式首先计算expression的值,然后将其值增1,并作为该表达式的结果。“expression
    ++”表达式首先计算expression的值,并作为该表达式的结果,然后将expression的值增1。
    【示例5-5】下面使用++运算符分别计算i变量的前缀增量和后缀增量的值,结果分别保存为j和k变量。

    01 using System;
    02 namespace 示例5_5
    03 {
    04 class Program
    05 {
    06 static void
    Main(string[] args)
    07 {
    08
    int i = 10;
    09
    int j =
    ++i;
    //i先进行自加运算,将结果保存在变量j中
    10
    int k =
    i++;
    //i先将值赋给变量k,再进行自加运算
    11
    Console.WriteLine("i="+i+",j="+j+",k="+k);
    12
    Console.ReadLine();
    13 }
    14 }
    15 }

    分析:“++i”表达式执行之后,i变量的值为11,并作为该表达式的值。因此,j变量的值为11。“k =
    i++”表达式首先获取i变量的值,并赋值给k变量,这时,k变量的值为11,然后再将i变量的值增1,因此i变量的值为12。*终,i、j和k变量的值分别为12、11和11。运行结果如图5.4所示。
    图5.4 使用++运算符示例
    2.– –运算符
    – –运算符又称为减量运算符,其作用是对操作数进行减1。将–
    –运算符放在操作数的左边,称该运算符为前缀减量运算符。否则,称为后缀减量运算符。语法如下:

    -- expression

    或者

    expression--

    expression表示操作数。“– –
    expression”表达式首先计算expression的值,然后将其值减1,并作为该表达式的结果。“expression –
    –”表达式首先计算expression的值,并作为该表达式的结果,然后将expression的值减1。
    【示例5-6】下面使用– –运算符分别计算i变量的前缀减量和后缀减量的值,结果分别保存为j和k变量。
    目录
    第1篇 基础语法
    第1章 C#入门基础( 教学视频:40分钟)
    1.1 C#概述
    1.1.1 C#的发展
    1.1.2 .NET框架
    1.1.3 C#开发工具
    1.2 搭建Visual Studio 2010开发环境
    1.2.1 安装Microsoft Visual Studio 2010
    1.2.2 配置集成开发环境(IDE)
    1.2.3 熟悉集成开发环境
    1.3 创建**个控制台应用程序
    1.3.1 创建Sample_1控制台应用程序
    1.3.2 解决方案资源管理器
    1.3.3 Program.cs文件
    1.3.4 AssemblyInfo.cs文件
    1.3.5 运行应用程序
    1.4 创建**个Windows窗体应用程序
    1.4.1 创建Sample Windows窗体应用程序
    1.4.2 解决方案资源管理器
    1.4.3 相关文件简介
    1.4.4 运行应用程序
    1.5 小结
    1.6 习题
    第2章 C#基本概念( 教学视频:18分钟)
    2.1 创建Hello World应用程序
    2.1.1 创建hello.txt文本文件
    2.1.2 创建HelloWorld类
    2.1.3 添加Print()方法
    2.1.4 添加Main()方法
    2.1.5 调用Print()方法
    2.1.6 引入System命名空间
    2.1.7 整理Hello World应用程序的代码
    2.2 编译和运行Hello World应用程序
    2.3 C#程序的概念扩展
    2.4 小结
    2.5 习题
    第3章 类型( 教学视频:47分钟)
    3.1 什么是类型
    3.2 值类型
    3.2.1 值类型的基础——System.ValueType类型
    3.2.2 整数类型
    3.2.3 浮点型
    3.2.4 decimal类型
    3.2.5 bool类型
    3.2.6 枚举类型
    3.2.7 结构类型
    3.3 引用类型
    3.3.1 类类型
    3.3.2 对象类型
    3.3.3 字符串类型
    3.3.4 数组类型
    3.3.5 接口类型
    3.3.6 委托类型
    3.4 装箱和拆箱
    3.4.1 装箱
    3.4.2 拆箱
    3.5 小结
    3.6 习题
    第4章 变量( 教学视频:45分钟)
    4.1 什么是变量
    4.2 变量的类型
    4.2.1 静态变量
    4.2.2 实例变量
    4.2.3 局部变量
    4.2.4 值参数
    4.2.5 引用参数
    4.2.6 输出参数
    4.2.7 数组元素
    4.3 对变量赋值
    4.4 变量转换
    4.4.1 隐式转换
    4.4.2 显式转换
    4.5 小结
    4.6 习题
    第5章 表达式和运算符( 教学视频:59分钟)
    5.1 运算的*小单位——表达式
    5.1.1 表达式分类
    5.1.2 this关键字
    5.1.3 new关键字
    5.2 运算的核心——运算符
    5.2.1 算术运算符
    5.2.2 自增、自减运算符
    5.2.3 逻辑运算符
    5.2.4 条件运算符
    5.2.5 条件逻辑运算符
    5.2.6 移位运算符
    5.2.7 关系运算符
    5.2.8 赋值运算符
    5.2.9 运算优先级
    5.2.10 类型转换
    5.3 小结
    5.4 习题
    第6章 程序*小单位——语句( 教学视频:70分钟)
    6.1 什么是语句
    6.2 基本语句
    6.2.1 没有功能的语句——空语句
    6.2.2 标记语句
    6.2.3 表达式语句
    6.2.4 声明语句
    6.2.5 块
    6.3 选择语句
    6.3.1 如果…就…——if语句
    6.3.2 当…就…——switch语句
    6.4 迭代语句
    6.4.1 for语句
    6.4.2 foreach语句
    6.4.3 while语句
    6.4.4 do语句
    6.5 跳转语句
    6.5.1 跳出语句break
    6.5.2 继续下一次循环语句continue
    6.5.3 返回语句return
    6.5.4 抛出语句throw
    6.6 其他语句
    6.6.1 try语句
    6.6.2 using语句
    6.6.3 lock语句
    6.6.4 checked和unchecked语句
    6.7 小结
    6.8 习题
    第7章 命名空间( 教学视频:27分钟)
    7.1 什么是命名空间
    7.2 声明命名空间
    7.3 .(点号)运算符
    7.4 ::(双冒号)运算符
    7.5 using指令
    7.5.1 导入命名空间
    7.5.2 创建命名空间或类型别名
    7.6 .NET Framework常用命名空间
    7.7 小结
    7.8 习题
    第8章 类( 教学视频:81分钟)
    8.1 什么是类
    8.1.1 声明类
    8.1.2 设置类的访问权限
    8.1.3 继承类
    8.1.4 类、对象和实例化
    8.2 类的组成
    8.2.1 常量
    8.2.2 字段
    8.2.3 方法
    8.2.4 属性
    8.2.5 索引器
    8.2.6 构造函数
    8.2.7 析构函数
    8.2.8 事件
    8.3 小结
    8.4 习题
    第9章 结构( 教学视频:15分钟)
    9.1 结构概述
    9.2 结构成员
    9.3 结构和类的区别
    9.3.1 继承
    9.3.2 this保留字
    9.3.3 构造函数
    9.4 小结
    9.5 习题
    第10章 数组( 教学视频:11分钟)
    10.1 使用数组
    10.1.1 数组的基准——维度数
    10.1.2 声明数组
    10.1.3 实例化数组
    10.1.4 初始化数组
    10.1.5 遍历数组
    10.2 数组的类型
    10.2.1 一维数组
    10.2.2 二维数组
    10.2.3 多维数组
    10.2.4 交错数组
    10.3 静态数组System.Array
    10.3.1 常用属性概览
    10.3.2 常用方法概览
    10.3.3 获取数组长度
    10.3.4 获取元素的值
    10.3.5 设置元素的值
    10.3.6 获取元素的索引
    10.3.7 排序数组
    10.3.8 反转数组
    10.4 动态数组System.ArrayList
    10.4.1 常用属性概览
    10.4.2 常用方法概览
    10.4.3 添加元素
    10.4.4 移除元素
    10.5 小结
    10.6 习题
    第2篇 面向对象技术深入
    第11章 接口( 教学视频:35分钟)
    11.1 使用接口
    11.1.1 声明接口
    11.1.2 设定接口的访问权限
    11.1.3 继承接口
    11.2 接口的组成
    11.2.1 属性
    11.2.2 索引器
    11.2.3 方法
    11.2.4 事件
    11.3 实现接口
    11.3.1 实现属性
    11.3.2 实现索引器
    11.3.3 实现方法
    11.3.4 实现事件
    11.4 抽象类和接口
    11.5 小结
    11.6 习题
    第12章 委托和事件( 教学视频:33分钟)
    12.1 使用委托
    12.1.1 声明委托
    12.1.2 向委托注册方法
    12.1.3 实例化委托
    12.1.4 构建委托的方法列表
    12.1.5 调用委托
    12.2 使用事件
    12.2.1 声明事件
    12.2.2 注册事件
    12.2.3 移除事件
    12.2.4 调用事件
    12.3 小结
    12.4 习题
    第13章 异常处理( 教学视频:21分钟)
    13.1 什么是异常
    13.1.1 导致异常的原因
    13.1.2 捕捉异常——try语句
    13.1.3 异常处理流程
    13.2 异常的基类System.Exception
    13.3 常用异常类
    13.4 小结
    13.5 习题
    第14章 泛型( 教学视频:29分钟)
    14.1 什么是泛型
    14.1.1 类型形参
    14.1.2 设置类型形参的约束
    14.1.3 声明泛型类
    14.1.4 泛型类的成员
    14.1.5 泛型类的静态字段
    14.2 泛型方法
    14.2.1 声明泛型方法
    14.2.2 调用泛型方法
    14.2.3 通过委托调用泛型方法
    14.2.4 虚泛型方法
    14.3 小结
    14.4 习题
    第15章 分部类型和可空类型( 教学视频:27分钟)
    15.1 使用分部类型
    15.1.1 声明分部类
    15.1.2 声明分部结构
    15.1.3 声明分部接口
    15.1.4 处理同名成员
    15.1.5 处理基接口
    15.2 使用可空类型
    15.2.1 HasValue和Value属性
    15.2.2 GetValueOrDefault()方法
    15.2.3 bool?类型
    15.3 小结
    15.4 习题
    第16章 赋值( 教学视频:36分钟)
    16.1 使用隐型局部变量
    16.1.1 声明隐型局部变量
    16.1.2 使用隐型局部变量
    16.2 使用对象初始化器
    16.3 使用集合初始化器
    16.4 使用匿名类型
    16.5 使用匿名数组
    16.6 小结
    16.7 习题
    第17章 迭代器、匿名方法和扩展方法( 教学视频:33分钟)
    17.1 使用迭代器
    17.1.1 创建非泛型迭代器
    17.1.2 创建泛型迭代器
    17.1.3 使用IEnumerator和IEnumerator接口
    17.2 使用匿名方法
    17.2.1 创建匿名方法
    17.2.2 将匿名方法作为参数传递
    17.3 使用扩展方法
    17.3.1 声明扩展方法
    17.3.2 导入扩展方法
    17.3.3 调用扩展方法
    17.4 小结
    17.5 习题
    第18章 Lambda表达式和查询表达式( 教学视频:62分钟)
    18.1 使用Lambda表达式
    18.1.1 输入参数
    18.1.2 表达式或语句块
    18.2 查询表达式
    18.2.1 from子句
    18.2.2 select子句
    18.2.3 where子句
    18.2.4 let子句
    18.2.5 orderby子句
    18.2.6 group子句
    18.2.7 into子句
    18.2.8 join子句
    18.3 小结
    18.4 习题
    第3篇 C#应用技术
    第19章 字符串处理( 教学视频:78分钟)
    19.1 String和StringBuilder类
    19.1.1 String类
    19.1.2 StringBuilder类
    19.2 使用不变字符串
    19.2.1 插入字符串
    19.2.2 移除字符串
    19.2.3 替换字符串
    19.2.4 联接字符串
    19.2.5 分隔字符串
    19.2.6 填充字符串
    19.2.7 查找字符串
    19.2.8 获取子串
    19.2.9 格式化字符串
    19.3 使用可变字符串
    19.3.1 插入字符串
    19.3.2 追加字符串
    19.3.3 移除字符串
    19.3.4 替换字符串
    19.3.5 复制字符串
    19.4 小结
    19.5 习题
    第20章 日期和时间处理( 教学视频:36分钟)
    20.1 DateTime结构
    20.1.1 字段
    20.1.2 属性
    20.1.3 方法
    20.2 TimeSpan结构
    20.2.1 字段
    20.2.2 属性
    20.2.3 方法
    20.3 使用日期和时间
    20.3.1 格式化
    20.3.2 计算时间差
    20.3.3 追加时间
    20.4 小结
    20.5 习题
    第21章 I/O流、目录和文件处理( 教学视频:76分钟)
    21.1 I/O流
    21.1.1 文件流
    21.1.2 内存流
    21.2 操作文件
    21.2.1 File类概览
    21.2.2 FileInfo类概览
    21.2.3 创建文件
    21.2.4 写入文件
    21.2.5 读取文件
    21.2.6 移动文件
    21.2.7 删除文件
    21.3 操作目录
    21.3.1 Directory类概览
    21.3.2 DirectoryInfo类概览
    21.3.3 创建目录
    21.3.4 删除目录
    21.3.5 移动目录
    21.3.6 遍历目录
    21.4 小结
    21.5 习题
    第22章 Windows窗体编程( 教学视频:76分钟)
    22.1 什么是Windows窗体应用程序
    22.1.1 创建Windows窗体应用程序
    22.1.2 应用程序起始点
    22.1.3 配置程序集信息
    22.2 常见控件
    22.2.1 标签控件
    22.2.2 图片框控件
    22.2.3 文本框和富文本框
    22.2.4 按钮控件
    22.2.5 单项按钮和复选框
    22.3 MainForm窗体设计
    22.3.1 配置窗体属性
    22.3.2 添加控件
    22.3.3 创建等待对话框
    22.3.4 添加窗体事件
    22.4 使用对话框
    22.4.1 颜色对话框
    22.4.2 字体对话框
    22.4.3 打开文件对话框
    22.4.4 保存文件对话框
    22.4.5 目录浏览对话框
    22.4.6 对话框窗体
    22.5 容器
    22.5.1 面板
    22.5.2 组合框
    22.5.3 TabControl控件
    22.5.4 容器窗体
    22.6 数据网格视图控件
    22.7 使用菜单和工具栏
    22.7.1 使用菜单
    22.7.2 使用工具栏
    22.7.3 使用上下文菜单
    22.8 运行应用程序
    22.9 小结
    22.10 习题
    第23章 使用GDI+绘图( 教学视频:89分钟)
    23.1 GDI+的构成
    23.1.1 Graphics类
    23.1.2 点和区域
    23.1.3 颜色
    23.1.4 刷
    23.1.5 画笔
    23.1.6 字体
    23.2 绘制线条、形状和文本
    23.2.1 创建Chapter23窗体应用程序
    23.2.2 Paint事件
    23.2.3 绘制直线
    23.2.4 绘制折线
    23.2.5 绘制曲线
    23.2.6 绘制虚线
    23.2.7 绘制矩形
    23.2.8 绘制三角形
    23.2.9 绘制多边形
    23.2.10 绘制椭圆
    23.2.11 绘制饼状图
    23.2.12 绘制文本
    23.3 小结
    23.6 习题
    第24章 操作数据库( 教学视频:91分钟)
    24.1 什么是ADO.NET
    24.1.1 ADO.NET组成结构
    24.1.2 ADO.NET基本对象
    24.2 操作SQL Server数据库
    24.2.1 创建Chapter24窗体应用程序
    24.2.2 创建Data24数据库
    24.2.3 连接数据库
    24.2.4 读取数据
    24.2.5 插入数据
    24.2.6 修改数据
    24.2.7 删除数据
    24.2.8 使用DataGridView控件显示数据
    24.2.9 使用ListView控件显示数据
    24.2.10 使用TreeView控件显示数据
    24.3 小结
    24.4 习题
    第4篇 项目案例实战
    第25章 图书管理系统
    25.1 系统总体设计
    25.1.1 系统功能设计
    25.1.2 图书管理系统组成
    25.1.3 数据库设计
    25.1.4 数据库实体类设计
    25.1.5 应用程序主入口
    25.1.6 应用程序全局变量
    25.2 管理员模块
    25.2.1 管理员登录
    25.2.2 主窗口
    25.2.3 分类管理
    25.2.4 书籍管理
    25.2.5 借阅书籍
    25.3 学生和老师模块
    25.3.1 学生或老师登录
    25.3.2 主窗口
    25.3.3 归还书籍
    25.3.4 查看书籍信息
    25.3.5 浏览书籍
    25.3.6 借阅书籍
    25.4 小结
    第26章 P2P聊天工具
    26.1 系统总体设计
    26.1.1 系统功能设计
    26.1.2 P2P聊天工具组成
    26.2 P2P聊天工具类库实现
    26.2.1 MainClass类
    26.2.2 ViewMessage类
    26.3 P2P聊天工具聊天窗口
    26.4 小结
    第27章 我的校内网
    27.1 系统总体设计
    27.1.1 系统功能设计
    27.1.2 校内网组成
    27.1.3 数据库设计
    27.1.4 数据库实体类设计
    27.1.5 标题模块
    27.1.6 配置文件Web.config
    27.2 常用功能模块实现
    27.2.1 登录页面
    27.2.2 主页面
    27.2.3 我的好友
    27.2.4 添加好友
    27.2.5 我的相册
    27.2.6 上传照片
    27.2.7 我的日志
    27.2.8 添加日志
    27.3 小结

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外