图书管理系统

前言

随着21世纪的到来,计算机技术的发展更加迅猛,在各行各业的应用更加广泛,面对日新月异的新技术、新方法,我们必需对现有计算机课程的设置和教学内容进行调整,以适应技术进步和市场变化的需求,使学生所学到的东西是市场上最学要的。

    微软的.NET是一种开发平台,C#是微软特别为.NET平台设计的一种现代变语言,.NET有着广阔的应用前景,.NET的应用必将对整个计算机产业产生重要而深刻的影响。.NET不但改变了开发应用程序的方式和思维方式,而且使开发人员能创建出各种全新的应用程序,大幅度提高软件生产率。未来.NET将无处不在。

    C#是一种简单、现代、面向对象且类型安全的编程语言,C#语言从C和C++语言演化而来,C#同时具备应用程序快速开发(RAD)语言的高效率和C++固有的强大能力。同时它吸收了Java语言的特点和精华,熟悉Java的人就觉得它很像Java,比尔盖茨曾说过:“Java是最卓越的程序设计语言!”,不过从C#诞生的那一时刻起,这以成为过去。C#时微软将Java集成到.NET中的产物,它是整个.NET平台的基础,是未来主流的编程语言。    


目  录

一、引言

二、需求分析

2.1 系统需求

三、总体设计

3.1 基本设计概念和处理流程

3.2 模块设计

四、数据库设计

4.1数据库的逻辑设计

4.2数据库的配置

五、详细设计

5.1 用户登录模块的设计与实现

5.2 主页面模块的设计与实现

5.3 更改密码模块的设计与实现

5.4添加书签模块的设计与实现

5.5图书搜索模块的设计与实现

六、系统维护和改进

6.1 运行维护

6.2 系统的改进与提高

 代码

 

结束语

参考文献


图书管理系统的设计和实现

一、引言

1.1 背景

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

图书管理系统(电子阅览室)主要提供网上的电子图书阅览平台,读者可以通过该系统阅览丰富的电子资源。在图书管理系统中,读者可以方便地对书目进行检索和阅览,足不出户便可尽览群书。图书管理系统主要提供网上的图书阅览平台。

电子阅览室可提供24小时的在线服务,最大限度的利用了当前互联网的各种优势,使得您无论身在何处,只要能接入互联网就可以享受到它所提供的方便,快捷的服务。它既具有传统图书馆的大部分功能,像图书的查阅及阅览,又新增了基于现有网络技术的许多实用的功能,像用户注册,书签,书评等。它充分的利用了互联网资源,使商家和用户都能从中获得益处。

1.2 目标

1.对图书资源进行分类,发布到网上,以供读者阅读。

2.为读者提供图书检索功能;

3.读者能方便地阅览电子图书;

4. 读者能方便地建立书签;

5. 读者能对书目进行评论;

6. 对读者的用户名、密码及权限进行管理。


二、需求分析

2.1 系统需求

随着互联网的爆炸性发展,人们越来越习惯于利用网络来实现所需的服务,网络已深深影响到人们生活的各个方面。另外,传统的图书馆不能满足一部分现代人的需要,而电子阅览室,由于其不受时间与空间的限制同时又具有传统图书馆的大部分功能,能够满足各类用户的常规与特殊需求,而且其方便快捷,实现技术又比较成熟,因此受到当代人的喜爱。

该系统主要分为两部分:读者部分和管理部分。为了方便读者查找自己感兴趣的主题进行阅读,要将图书按照内容进行分类。读者可以按照类别进行查找,逐级浏览。如果读者明确知道某本书的书名、作者等相关信息,图书搜索功能就很有用处了。有的读者会经常访问某些书目,或者是读者对某本书没有看完准备以后继续完成阅读,这时读者就要把以后还需要阅读的书目做上书签,以后便能方便的进行阅读了。他人对书的评价能够帮助我们选择阅读的对象。本系统的书评功能为读者提供发表意见的平台,以得到读者对书的评价和反馈。以上是个各为读者服务的功能。除此之外,本系统还可对用户的账号和书目的阅读权限进行管理。管理员需要给用户分配用户名和密码,及设定用户的级别。同时,还需要给图书资源也分级,以确定哪些级别的用户可以阅读。  

2.2 功能需求

图书管理系统主要提供网上的电子图书阅览平台,读者可以通过该系统阅读丰富的电子图书资源。对于本系统,我们需要实现以下一些基本功能:

1 图书分类浏览为了方便读者查找书目,将书目按照内容进行分类。这样读者就能很方便的找到自己感兴趣的主题进行阅读。

2 图书搜索设定多种搜索条件,按条件搜索符合读者要求的图书。如果读者知道某本书的书名、作者等相关信息,利用图书搜索功能就很方便了。

3 书签功能定义书签,方便读者中断后继续阅读。部分读者可能会定期的访问某些书目;又或者有的读者阅读某本书的时候没有看完,打算以后继续完成阅读,在这样的情况下,书签功能就会给读者带来很大的便利。

4 书评功能读者可提交对书的评价。书评能够帮助读者更好选择阅读对象,了解图书内容,对读者阅读图书有很大的帮助。 

5 权限管理权限管理包括两部分内容:对用户帐号的管理和对书目阅读权限的管理。管理员需要给用户分配用户名和密码,同时设定用户的级别。同时,管理员还需要给阅读资源也分级,以确定哪些级别的用户可以阅读。


三、总体设计

3.1 基本设计概念和处理流程 

互联网技术的飞速发展,ASP技术的灵活、易用、功能Dreamweaver、microsoftFrontpage、VBScript等设计工具的方便实用,以及数据库技术的发展给本系统的设计和实现提供了技术上的支持。本系统在数据库技术方面有如下优点:

开发统一,传统的数据库一般用VB,VC等开发,这些开发工具各有各的标准和方法,不是和开发WEB数据库应用,Web数据库的开发使用统一的HTML,任何人开发的数据库都有符合这个标准。

图1  “图书信息管理系统”系统主模块功能图

3.2 模块设计

1. 用户登录模块:填写已分配的用户名称,填写正确的密码,进入主控制页面。

2. 图书查询模块:图书分类,按类型逐级显示。

3. 图书搜索模块:提供多种查询条件,可按需要进行查询。

4. 管理员模块显示书评列表和一条书评内容,添加书评。

5. 图书入库模块:为喜爱的图书投票,显示投票结果,选出认为最值得一看的图书。

6. 权限管理模块:分配用户名和密码,设定用户的级别。同时,还要给图书资源进行分级,以确定哪些级别的用户可以阅读。


四、数据库设计

4.1数据库的逻辑设计

由于本电子商务系统没有海量数据的存储问题,其数据一般不是很多,所以没有必要选用像Oracle这样的数据库:另外,现今的各种主页空间很少有支持Oracle的,而支持Access的较多。另外现阶段尚处于演示阶段,对安全性要求不是很高,Access足可以胜任,所以我们选用了Microsoft Access 2000。

数据通信接口采用ODBC(Open Database Connectivity,开放数据库互连)。ODBC是微软开发的一套读取数据库的解决方案,它的目的是将所有对数据库的底层操作全部隐藏在ODBC的驱动程序内核里。对于程序员来说,只要构建了一个指向数据库的连接,就可以采用统一的应用程序编程接口(Application Program Interface)实现对数据库的读写。目前ODBC驱动已经提供了对大多数常见类型数据库的支持,包括dBase,Informix,Access,SQL Server和Oracle等。也包括了对其它类型的数据库的支持,如文本,Excel电子表格等的支持。

根据系统功能设计的要求以及功能模块的划分,对于系统信息数据库,可以列出以下数据项和数据结构:

1.名称:用户信息表

表名称标识:UserInfo

2.名称:书目信息表

表名称标识:BookCategoryInfo

3.名称:书目类别表

表名称标识:BookInfo

4.名称:书评信息表

表名称标识:OrderInfo

5.名称:书签信息表

表名称标识:StuInfo

6.名称:书目表

5.名称:访问次数表

4.2数据库的配置

一个真正的、完整的站点是离不开数据库的。ODBC为应用程序提供了一种标准方法来操作相关的数据库:管理器根据数据源提供的数据库的位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

按如下步骤可以建立一个新的系统数据源。

首先,运行项目,输入用户ID和密码,单击“登录”按钮。如下图12所示。

                          <图12>

出现“河南工院 图书管理系统”对话框中。如下图13所示。

                          <图13>

在“河南工院 图书管理系统”对话框中,单击“系统”—>“退出”按钮,即可退出。单击“查询”—>“图书查询”如下图14所示。

                            <图14>

在“图书查询”对话框中,可按查询条件查询,如下图15所示。

                     <图15>

在“图书查询”对话框中,可按查询条件,输入“西游记”即可查询,如下图16所示。

                    <图16>

在“河南工院 图书管理系统”对话框中,单击“图书”—>“图书借阅”如下图17所示。

<图17>

在“河南工院 图书管理系统”对话框中,单击“查询”—>“图书归还”如下图18所示。

<图18>

在“河南工院 图书管理系统”对话框中,单击“查询”—>“新书入库”如下图19所示。

<图19>

在“河南工院 图书管理系统”对话框中,单击“管理”—>“查看管理员”如下图20所示。

<图20>

在“河南工院 图书管理系统”对话框中,单击“管理”—>“添加管理员”如下图21所示。

<图21>

在“河南工院 图书管理系统”对话框中,单击“管理”—>“查看管理员”如下图20所示。

               


五、详细设计

整个系统除了用户登录外,主要有用户登录模块、 图书查询模块、图书搜索模块、管理员模块、图书入库模块和权限管理模块六个模块。通过本系统,读者可以方便的对书目进行检索和阅览,足不出户就可尽览群书。

5.1 用户登录模块的设计与实现

1. 登录模块的IPO图

功能:本模块主要用于对用户身份进行鉴别。用户通过表单提供用户名和密码信息,系统根据用户提供的登录信息对用户进行身份查询鉴别。如果身份合法,则将用户导向系统的主页面并记录用户的相关信息,留待以后的系统页面使用。

输入:用户名、密码

处理:

  1. 输入用户的登录信息

在页面提供的表单出输入用户的用户名和密码信息,点击“登录”按钮提交表单信息到身份验证页面。或点击“重填”按钮,重新输入。

  1. 从form表单获取输入数据。

当用户单击“登录”按钮后,登录信息由form表单提交到logon.asp进行处理。

  1. 用户身份进行验证。

连接数据库,打开用户数据表usertype,检验用户登录信息。以输入数据“用户名”为查询条件创建数据集查看输入用户名是否存在。如果存在,继续检验输入的密码是否正确。密码和用户名都正确,则进入图书馆主页面frame.asp;如果用户名不存在或密码不正确,则给出登录失败的提示框,并返回首页重新登录。

输出:图书馆主页面

2.图书馆登录页面图如下图所示

图15  图书管理系统登录页面图

5.2 主页面模块的设计与实现

本系统的主页面使用了框架结构。使用框架(frames)结构设计的HTML文件,能够将整个窗口分成几个独立的小窗口,每个窗口可以分别载入不同的文件。框架的主要优点是独立显示内容,能直观的分开内容。可以在一个框架中定义链接,在另一个框架中显示内容或触发操作,而不必从重设计整个屏幕。

主页模块的设计

1. 主页模块

功能:主页面中显示推荐书目和新书书目的书目、作者、访问次数和简单介绍等相关信息。通过书名超链接文本,就可以阅读到图书内容。

输入:点击书名的超链接文本

处理:

  1. 构造页面格式。

使用HTML语言的TABLE表格标签构造页面表单,构造放置各个字段及字段值的表单,美化页面。

  1. 连接数据库。

与数据库创建链接,使用SQL语言在数据库中选取符合条件的记录。在符合条件的记录中选取相关字段值组成记录集。显示在页面的相应位置中。

  1. 创建超链接文本。

将书名设置为超链接文本。用户点击想要阅读的图书的书名,程序就会将页面导向readbook.asp页面。在readbook.asp页面中,用户就可以看到图书的详细内容。

输出:用户要求的页面

2.模块所使用的数据表

使用SQL语言在数据库中选取新书书目表newbook中的条目编号id、新书信息description字段及书目信息表bookdetail中的书目编号bookid、书目名称name、作者author和阅读次数times共六个字段值组成记录集。在记录集中选取符合新书书目表中的新书书目编号bookid字段值与书目信息表中的书目编号bookid的字段值相同的记录,创建记录集RS。

5.3 更改密码模块的设计与实现

1.更改密码模块的IPO图

功能:留言查看页面如图7-23所示,在主页面的上部分中的top.asp页面中,点击“更改密码”,就会调用javascript脚本语言,生成一个窗口。用户在生成的窗口中输入新的密码,提交后程序会将数据表中的密码进行修改。

输入:点击更改密码的超链接文本。

(1)  构造页面格式。

使用HTML语言的TABLE表格标签构造页面表单,构造放置各个字段及字段值的表单,美化页面。

(2)  判断合法性

对session对象中的用户名字段值进行判断,判断用户的登录是否合法。如果不合法,显示要求重新登录的提示语,重新登录。

(3)  输入新密码。

在页面的相应位置填入用户的旧密码、新密码,在重新输入一次新密码,以确保输入无误。然后提交到pass_action.asp页面进行处理。

5.4添加书签模块的设计与实现

1. 添加书签模块的IPO图

功能:在各种表格和表单构成的add_bookmark.asp页面中的适当位置输入用户选择的书签图标、书签的详细内容等信息后,提交到add_action.asp页面进行将一条新记录插入数据表的操作。

输入:新增加的书签信息的用户选择的表情图标和书签的详细内容。

处理:

  1. 构造页面格式。

应用表格进行页面布局,相应的字段名称后使用多行文本框或单选框表单组件,构成书签信息输入页面。

  1. 判断合法性。

在连接数据库之前,首先判断用户是否在阅读某一本书。然后判断要添加书签的书目是否存在。

  1. 连接数据库。

以上一页提交的图书的编号为条件选取数据表中的记录创建记录集,将记录中的用户名、书名和作者等信息显示在相应位置。

  1. 输入书签。

在相应表单元素中选取书签标图,输入书签的详细内容。提交到add_action.asp页面进行处理。

  1. 插入操作。

获取相关信息,在add_action.asp页面中打开数据库,使用recordset对象的insert into方法向书签信息表bookmark插入一条新记录。


5.5图书搜索模块的设计与实现

1. 书目搜索模块的IPO图

功能:搜索方式分为3种:通过书名、作者和十大热门来进行查询。查出的结果显示在名字为 searchresult的窗口中。用户可通过以上各查询方式,方便的查询自己想要阅读的书目。

输入:选择一种查询方式,输入查询条件。

处理:

  1. 构造页面格式。

使用HTML语言的TABLE表格标签构造页面表单。本模块使用了框架结构。单行文本框和单选框来确定查询条件。

  1. 查询条件。

在三种查询方式中选择一种作为读者的查询方式。然后在单行文本框中输入查询条件。

  1. 查询结果。

连接数据库,在相应的数据表中选取符合查询条件的记录。将查询结果显示在下面的窗口中。
、系统维护和改进

6.1 运行维护

本网站的维护主要包括以下内容:

1.权限维护

管理员需要对用户的用户名、密码和权限进行维护,给每位读者分配享用的用户名和密码,确定阅读级别。

2.书目管理

书目需要经常进行更新,在书目信息表中更改、增加各相应的数据信息。

3.书目类别管理

书目的更新操作,引起书目类别信息表的更改,管理员就需要及时调整书目类别。

6.2 系统的改进与提高

由于各种原因,本系统有许多缺点。针对本系统的一些缺点,在二期开发时主要在以下方面进行改进:

1、 加强后台管理页面的建设

本系统只是面向用户,对书目的管理只靠人工在后台操作,费时又费力。加强后台管理系统的建设,各项操作由程序执行,方便、准确,又节省人工。

 2、图书查询页面功能应该加强

例如:图书查询功能可以加入查询条件,方便读者查看符合要求的图书。

  3、各模块之间的联系比较混乱。


七 代码

7.1登录代码(Login)

namespace BookInfoM

{

    public partial class Login : Form

    {

        public static string[] LuserID;

        private int Logintimes=0;

        public Login()

        {

            InitializeComponent();

        }

        private void Login_Load(object sender, EventArgs e)

        {

            combUserID.Text = "";

            txtPassWord.Text = "";

        }

        private void btnLogin_Click(object sender, EventArgs e)

        {

            if (this.Text.Trim() != "")

            {

                if (txtPassWord.Text != "")

                {

                  SqlCommand command = CustomDataProvide.GetCommand(

"select * from UserInfo where UserID='" + combUserID.Text.Trim() +

"'and Password='" + txtPassWord.Text.Trim() + "'");

                    SqlDataReader dr;

                    try

                    {

                        command.Connection.Open();

                        dr = command.ExecuteReader();

                        dr.Read();

                        if (dr.HasRows)

                        {

                            Logintimes = 0;

                            Main main = new Main();

                            Main.LoginUser.UserID = dr.GetString(0);

                            Main.LoginUser .UserName  = dr.GetString(1);

                            Main.LoginUser .Password = dr.GetString(2);

                            Main.LoginUser .Isadmin = dr.GetBoolean(3);

                            Main.LoginUser.Day = (Week )dr.GetInt32(4);

                            this.Hide();

                            main.Show();

                            dr.Close();

                            command.Connection.Close();

                            command.Dispose();  }

                        else

                        {   Logintimes++;

                            if (Logintimes == 3)

                            {  MessageBox.Show("对不起,你登录的次数

已经超过三次!", "警告!");

                                Application.Exit();

                            }

                     if (BookInfoM.ClassCodes.DataValidate.IDExist("select

 UserID from UserInfo where UserID='" + combUserID.Text.Trim().ToString()

+ "'") == true)

                         {   MessageBox.Show("密码不正确", "警告!");

                                txtPassWord.Text = "";   }

                            else

                          {  MessageBox.Show("此用户ID不存在,请查

证后登录", "提示");

                                combUserID.Text = "";

                                txtPassWord.Text = "";

                            }   }   }

                    catch (Exception ex)

                    {

                        MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

                    }    }

                else

                {  MessageBox.Show("密码不能为空", "提示");  }   }

            else

            {   MessageBox.Show("用户ID不能为空", "提示");  }   }

        private void btnExit_Click(object sender, EventArgs e)

        {

                if (MessageBox.Show("你确认要退出该程序吗?",

"提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

 == DialogResult.Yes)

                Application.Exit();

        }    }    }

7.2主界面代码(Main)

namespace BookInfoM

{

    public partial class Main : Form

    {

        public Main()

        {

            InitializeComponent();

        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Application.Exit();    }

        private void 查询管理员ToolStripMenuItem_Click(object sender, Event

Args e)

        {  UserManag.ViewAdmin view = new BookInfoM.UserManag.

ViewAdmin();

            view.Show();   }

        private void 注销ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Login flogin = new Login();

            flogin.Show();

            this.Close();    }

        private void 添加管理员ToolStripMenuItem_Click(object sender,

EventArgs e)

        {   AddAdmin addadmin = new AddAdmin();

            addadmin.Show();    }

        private void 修改管理员ToolStripMenuItem_Click(object sender,

 EventArgs e)

        {   ModAdmin modadmin = new ModAdmin();

            modadmin.Show();  }

        private void 图书查询ToolStripMenuItem_Click(object sender,

 EventArgs e)

        {   SearchBook SeachB = new SearchBook();

            SeachB.Show();   }

        private void 图书借阅ToolStripMenuItem_Click(object sender,

EventArgs e)

        {   LendBook LendB = new LendBook();

            LendB.Show();     }

        private void 图书送还ToolStripMenuItem_Click(object sender,

EventArgs e)

        {   ReturnBook ReturnB = new ReturnBook();

            ReturnB.Show();    }

        private void 删除管理员ToolStripMenuItem_Click(object sender,

 EventArgs e)

        {   ModAdmin modadmin = new ModAdmin();

            modadmin.Show();

        }

        private void 库存查询ToolStripMenuItem_Click(object sender,

EventArgs e)

        {   SearchBook SeachB = new SearchBook();

            SeachB.Show();   }

        private void 新书入库ToolStripMenuItem_Click(object sender,

EventArgs e)

        {   BookWarehousing BookW = new BookWarehousing();

            BookW.Show();  }

        private void 帮助ToolStripMenuItem_Click(object sender,

EventArgs e)

        {   HalpWord HalpW = new HalpWord();

            HalpW.Show();

  }   

 }   

}

7.3图书查询代码(ViewAdmin)

namespace BookInfoM.UserManag

{

    public partial class ViewAdmin : Form

    {

        public ViewAdmin()

        {

            InitializeComponent();

        }

        private void ViewAdmin_Load(object sender, EventArgs e)

        {  txtUserID.Text = BookInfoM.Main.LoginUser.UserID;

            txtUserName.Text = Main.LoginUser.UserName;

            txtPassword.Text = "*******";

            txtAdmin.Text = Main.LoginUser.Admin;

            txtWorkday.Text = Main.LoginUser.Day.ToString();

        }

        private void btnExit_Click(object sender, EventArgs e)

        {

            this.Close();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            ModAdmin modadmin = new ModAdmin();

            modadmin.Show();

        }

    }

}


总 结

经过几周的学习琢磨,顺利的结束了此次课程设计。期间查阅了大量技术资料,学习到了许多新的知识。在这次课程设计的过程中,受到了许多同学和老师的帮助,特别对刘洪破老师、范顺垚同学和王圆同学表示感谢!

C#是一门功能十分强大的语言,在课程设计的过程中,从一些书籍及网络资源中看到许多实现程序功能的方法,由于个人精力及时间的限制,没有及时应用到课程设计中,在今后的学习开发过程中将会试着使用一些更好的实现功能的方法,提高程序的运行效率和正确性。

在这次课程设计的过程中,也反映出了许多问题,比较突出的是对一些基础知识掌握的不够牢靠,在使用的时候不能够灵活运用。在以后的学习生活中,会注意对基础只是的记忆理解,避免“模糊记忆” 。提高编写程序的效率。

如果有同学也希望学习C#这门语言的话,建议多看下Microsoft官方配套Studio .NET 2005出版的MSDN帮助文档,里面对几乎所有的类及空间的使用都做了比较经典的讲解,无论是初学者还是资深程序员都是最直接的参考学习资料。

在我个人学习C#的过程中,也总结了一些经验及对软件设计的看法,如果有同学需要交流的话,可以加我QQ:764846521.

最后,在新年来临之际,祝各位老师同学新年快乐,万事如意!


结束语

本次毕业设计完成了图书采购系统的设计。该系统使用Microsoft公司开发的管理系统的应用程序。在编写这个系统中遇到诸多困难,但都一一解决,并有很大的收获。

通过这次毕业设计,我深深的体会到自己所学的知识还不够,有许多方面还需要自己进一步的学习,以便使自己在今后的工作当中能够有出色的表现。

系统的设计过程中,我收集许多关于这一块的资料,并征集老师与同学比较好的意见,在汇总整理之后,经过系统的分析,最终在规定的时间内,完成此系统的每个模块的设计。

图书采购系统虽然已经完成,但是限于时间和水平,所以有些地方还不够完善。今后还需要不断的完善,以求尽善尽美。


参考文献

[1] Karli Watson,ChristianNagel编著.齐立波译.C#入门经典(第3版).北京:清华大学出版社,2006年;

[2] Christian Nagel,Bill Evjen,Jay Glynn编著.李敏波译.C#高级编程(第4版).北京:清华大学出版社,2006年;

[3] Harvey M. Deitel编著.须得译.C#大学教程.北京:电子工业出版社,2004年;

[4] 欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦.北京:电子工业出版社,2006年;

[5] 易向东,陈蓓,万英编著.C#程序员开发指南.北京:北京希望电子出版社,2006年;

[6] 王华杰,黄山著编著.精通C#数据库编程.北京:北京科学出版社,2003年;

[7] Kouresh Ardestani编著.张哲译.高效掌握ADO.NET.北京:清华大学出版社,2003年;

[8] 微软公司著.熊盛新,许志庆,李钦译.Visual C# .NET语言参考手册.北京:清华大学出版社,2002年。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值