《游戏系统设计一》游戏任务系统太复杂,带你一步一步实现

 

目录

        1、任务的分类.

2、基础数据的定义

3、系统的设计

4、show me the fuck code !

1.任务进度定义:

2.定义任务类型枚举

3.定义任务模块枚举

4.定义任务处理器的抽象类

5.实现主线任务处理类

6.在服务器启动的时候将所有的处理器加入到map

7.服务器启动后加载基础数据,将对应的任务注册到对应的处理器

8.通知任务系统做检测

5、总结


前言:一直在写Java 方面的,今天写一写游戏设计方面的 一任务系统。任务系统是每个任务的标配,不管是普通的小游戏,还是大型的端游,手游,没了任务系统的游戏是不完整的。任务系统是游戏的驱动,是玩家的目标,有了目标才会有追求,正常完成任务都会获得奖励,有糖吃,开心。

  任务其实本身就是一种“激励制度”,接受任务-进行挑战-完成奖励,这个过程中的每一个环节,都是对玩家游戏的激励,所以任务在其中就起着这样的这样的作用。对于玩家自身来说,从心理学上,完成任务是对自己挑战的肯定,会大大增加玩家游戏的满足感,即使没有顺利完成某一项任务,玩家感受到到了任务的难度,也会激起自己的挑战欲望和探索心理,进一步提升了游戏性。

1、任务的分类.

任务的需求就不多说了,先说下之前的SLG 游戏的任务类型。

根据任务类型分为 主线任务,支线任务,公会任务,势力任务,每日任务,还有各种不同的功能根据需求的任务类型

根据进度类型分为 累计型进度,递减型进度,达到型进度,激活型任务进度,自定义类型进度等等。

任务是游戏里比较复杂的系统,所以设计的时候应该尽可能的方便扩展,在增加任务的时候能简单的配置出来。

总结下设计原则:尽可能的解决问题,如果特殊需求可以有接口简单可以实现。

让我们操练起来吧!

2、基础数据的定义

配置是基础数据,是策划配置的,因此最简单的配置就是

任务id 一 任务达成条件一奖励

任务id 是测试自己创建唯一的id,任务达成条件是在游戏内任务的判断条件,当达到条件的时候发给玩家奖励。

3、系统的设计

根据任务的需求,我们对任务进行拆分。

根据进度类型进行拆分:

4、show me the fuck code !

对任务拆分之后,现在得想办法实现我们的任务系统了。

首先先解决任务进度定义的问题:

1.任务进度定义:

 
package org.pdool.task;

import com.google.common.base.Joiner;

public enum TaskProgress {
  /**
    * 格式:x_n
    * 专指完成某一任务几次(完成一次扣一次)
    * eq:送花{n}次
    */
  PROGRESS_TYPE1 {
      @Override
      public String checkProgress(int roleId, String config, String current, Object paramArr) {
          String configId = config.split("_")[0];
          Object[] ext = (Object[]) paramArr;
          String param = ext[0].toString();
          long var = Long.parseLong(param);
          int needNum = Integer.parseInt(current.split("_")[1]);
          if (needNum > var) {
              return "";
          }
          return Joiner.on("_").join(configId, needNum - var);
      }
  },
  ;

  /**
    * 检测任务进度
    * @param roleId 玩家id
    * @param config 配置的任务条件
    * @param current 当前的任务进度
    * @param param 传进的参数
    * @return 当前的任务进度
    */
  public abstract String checkProgress(int roleId, String config, String current, Object param);
}

2.定义任务类型枚举

 
/**
* @author 香菜
*/
public enum TaskTypeEnum {
  // 1:送花 eg:1_100
  SEND_FLOWER_1(TaskProgressEnum.PROGRESS_TYPE1, "1"),
  ;

  // 任务进度处理类型
  private TaskProgressEnum progressType;
  // 任务事件激活类型
  private String taskType;

  TaskTypeEnum(TaskProgressEnum taskType, String actType) {
      this.progressType = taskType;
      this.taskType = actType;
  }

  public TaskProgressEnum getProgressType() {
      return progressType;
  }

  public String getTaskType() {
      return taskType;
  }
}

策划可以配置的任务就是 1_100  表示 送花100 次则完成任务。

3.定义任务模块枚举

举个例子,我们的创角七日任务,在服务器启动的时候加载就加载基础数据,并且注册到每日任务的处理器上,这样在有任务过来的,就不会分配到其他的任务上,因此我们实现一个处理器的抽象类,一个任务类型枚举。


/**
* @author 香菜
*/
public enum TaskHandlerEnum {
  // 主线任务
  MAIN_TASK(1),
  // 日常任务
  DAILY_TASK(2),
  ;
  private int type;
  public int getType() {
      return type;
  }
  private TaskHandlerEnum(int type) {
      this.type = (byte) type;
  }
}

4.定义任务处理器的抽象类

至少得三个方法,一个构造函数,一个handle方法,一个注册方法。


/**
* @author 香菜
*/
public abstract class AbsTaskHandler {
  public TaskHandlerEnum handlerEnum;
  private Map<TaskTypeEnum, Set<Integer>> canHandMap = Maps.newHashMap();
  public AbsTaskHandler(TaskHandlerEnum handlerEnum) {
      this.handlerEnum = handlerEnum;
  }
  /**
    * 注册任务到处理器
    * @param taskType
    * @param taskId
    */
  protected void registerTask(TaskTypeEnum taskType, int taskId) {
      Set<Integer> taskIdSet = canHandMap.computeIfAbsent(taskType, k -> Sets.newHashSet());
      taskIdSet.add(taskId);
  }

  /**
    * 每种任务类型单独实现
    * @param roleId
    * @param paramMap
    */
  protected abstract void handle(int roleId, Map<TaskTypeEnum, Object> paramMap);
}

5.实现主线任务处理类


import java.util.Map;

public class MainTaskHandler extends AbsTaskHandler {
  public MainTaskHandler(TaskHandlerEnum handlerEnum) {
      super(handlerEnum);
  }

  @Override
  protected void handle(int roleId, Map<TaskTypeEnum, Object> paramMap) {
      // do what you want
  }
}

6.在服务器启动的时候将所有的处理器加入到map

Map<TaskHandlerEnum ,AbsTaskHandler>  handlerMap

7.服务器启动后加载基础数据,将对应的任务注册到对应的处理器

registTaskToHanlder(TaskHandlerEnum,TaskType,TaskId)

8.通知任务系统做检测

sendMsgToTask(TaskType,param)

遍历所有的处理器,能处理这个这个任务,则处理,不能处理则过

5、总结

 由于任务系统的复杂性,设计上必然有一些挑战,但是这种系统如果理解了,也都是套路的问题,做的久了自然而然就会了,并且可以根据需求自由的调整,理解最重要。

 基本的介绍了任务系统的设计实现,后面一些没有做具体的展示,大家可以自己发挥,如果觉得有困难,并且又感兴趣的小伙伴可以联系我。或者你有其他的更好的设计我们可以一起交流。坚持写不容易,希望能获得大家的支持,点赞,转发 三连,谢谢。

  • 73
    点赞
  • 194
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论
系统运行环境: 1.硬件配置 CPU: Pentium III 600以上; 内存:128M以上。 2.软件环境 Windows 98以上操作系统; MS SQL Server 2000; Viual Studio.Net 2003; MS Access 2000及以上。 系统配置环境: 1.运行Viual Studio.Net。 2.依次单击【文件】|【新建】|【空白解决方案】,打开新建项目对话框, 在【项目类型】中选择【Visual Studio解决方案】,填写合适的名称和位置, 单击确定按钮,建立一个空白解决方案。 3.在【解决方案资源管理器】中,右击建立的解决方案,单击【添加】 |【新建项目】,打开添加新项目对话框,在左侧的【项目类型】中选择 【Visual C#项目】,在右侧的【模板】中选择【Windows应用程序】,填写合 适的名称,单击确定按钮,就建立了一个新的项目。 数据库配置环境: 本书中数据库分为两种:SQL Server 和 MS Access。 1.Access数据库操作方便,配置简单,只需要把数据库文件放置到bin 目录下的Debug文件夹下即可。 2.SQL Server数据库配置相对复杂一点,打开SQL Server企业管理器,单 击控制台前面的加号按钮,直到出现数据库,然后在数据库上单击鼠标右键, 从弹出式菜单选择【所有任务】|【附加数据库】,然后单击【...】按钮, 选择本章源代码中的DataBase文件夹下的RentManage.mdf文件,其他采用默认 设置,然后单击【确定】按钮。 3.以Access数据库的连接为例。首先在VS.net的工具箱的【数据】项中选择 OleDbConnection,选择所建立的数据库连接oleDbConnection1,在他的属性中 选择ConnectionString的新建连接,在数据库链接属性对话框的【提供程序】 选择项中选择【Microsoft OLE DB Provider for ODBC Drivers】,然后单击 【下一步】,在【连接】选择项中的【选择或输入服务器名称】下拉框中选择 【MS Access Database】,在【输入要使用的初始目录中】填写你所创建的数 据库所在的目录。最后单击【确定】按钮。
学生课程成绩查询管理信息系统分析与设计 目 录 一、引言 1.1 系统设计参考模型 ………………………………………………………………1 1.2 系统设计目标 ……………………………………………………………………1 1.3 系统总体设计思想(软件工程方法) …………………………………………1 二、系统分析 2.1 组织结构与功能分析 …………………………………………………………4 2.2 业务流程分析(以"管理信息系统"子课程为例)……………………………4 2.3 数据分布结构及功能分析 ………………………………………………………5 2.3.1 第一层:基础数据及基础数据库分析 …………………………………5 2.3.2 第二层:业务流程数据及业务流程数据库分析 ………………………5 2.3.3 第三层:报表中心数据(综合数据报表)分析 ………………………5 三、系统设计 3.1 进入界面设计 …………………………………………………………………5 3.2 主界面设计 ……………………………………………………………………6 3.3 数据三层分布与数据库设计 ………………………………………6 3.3.1 基础数据库——"学生资料表"及EE~R图……………………………7 3.3.2 业务流程数据库——"平时成绩表"及EE~R图………………………9 3.3.3 报表中心数据库设计——学生实验报告优良率汇总表及EE~R图……10 3.3.4 面向对象数据库设计方法 ………………………………………………12 3.4 系统维护子系统设计 ……………………………………………………………13 3.5 HIPO模块层次结构设计(画图) ……………………………………………13 3.6 代码设计 ………………………………………………………………………14 3.7 菜单式功能查询导航子系统设计 ………………………………………14 四、系统实施 4.1面向对象的流程设计 ……………………………………………………16 4.2运行结果 …………………………………………………………………32 五、a:确定角色(主键、外键) b:确定标准组件或模块 六、实施程序方法 1)手工编程 2)计算机辅助编程 3)购买源代码组件 一、引 言 1.1 系统设计参考模型——速达3000 Pro 由于考虑到要安全、高效的管理,我们选择了优秀的管理信息系统软件——速300 0 Pro 作为此次课程设计的参考模型。 该软件是国首家使用业务导航图形化界面来实现进销存、财务管理和人事工资管理 一体化功能的优秀软件,界面图文并茂,生动形象,简单易用;数据结构与数据库 设计简单清晰;把复杂的业务流程设计归结为编制相关表格或相关数据库设计的简 单过程。 1.2 系统设计目标 为了彻底解决了长期困扰教学信息化工作当中安全性、可靠性的问题;为了使管 理人员可以随时看到更新的数据,极大地提高信息传递的速度;为了管理者再也不必 为聘用专门的操作人员来给众多教师编辑学生成绩资料而殚精竭虑,在此,我设计了 学生课程成绩查询管理信息系统,使得各个使用者在操作上,从此变得那么从容简单 ,省时又省心。 1.3 系统总体设计思想(软件工程方法) 本系统是以原型法和面向对象的开发方法为主,以结构分析法和计算机辅助系统工程 法为辅,并实现了这四种软件开发方法的有机结合。 原型分析法的基本思想是:首先初步了解用户需求,寻找一个优秀的软件原型,通过强 有力的软件环境支持,逐步完善和改进系统,直到用户满意为止。 面向对象的组件设计方法的基本思路就是:任何复杂事物(系统)都是由对象(相 对固定的组件)组成的,而每种对象都有各自的部状态(角色、属性、特征)和运动 规律(改变属性的操作方法,如各种外部和各种下拉按钮)。 结构法,又称生命周期法,是一种最常用且有效的信息系统开发方法,它将整个系统开 发过程分为系统规划、系统分析、系统设计系统实施四个阶段,并先定好每个阶段 的任务,再按系统的策略和准则完成相应阶段的任务。 计算机辅助系统工程法CASE,从方法论的角度看,计算机辅助开发并不是一门真正意 义上的方法,它是对整个开发过程进行支持的一种技术。 所以在软件系统开发设计时,应该正确划分子系统,然后再设计业务流程、表单组件和 进行互联封装。下面我们来看看系统的总体设计: 二、系统分析 2.1 组织结构与功能分析 组织结构图是一反映组织部各组织部门之间隶属关系的树状结构图。组织结构分析 是系统功能分析中最简单的一步,对进一步详细调查和分析组织的业务功能有一定 的指导和帮助作用。 图2-1 商学院组织结构图 通常,在分析组织情况时,还应画出其业务功能一览表。这样做可以是人们在了解组织 结构的同时,对依附于组织结构的各项业务功能也有一个
管理信息系统系统设计 管理信息系统系统设计全文共15页,当前为第1页。管理信息系统系统设计全文共15页,当前为第1页。管理信息系统系统设计 管理信息系统系统设计全文共15页,当前为第1页。 管理信息系统系统设计全文共15页,当前为第1页。 第一节 系统设计概述 一、系统设计概念 系统设计是指根据系统分析阶段所确定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案。即建立新系统的物理模型。 系统设计是开发管理信息系统的第二个阶段,系统设计的目标是在保证实现逻辑模型的基础上,尽可能提高系统的各项指标,即系统的工作效率、可靠性、工作质量、经济性等。 系统设计通常可分为两个阶段进行,首先是总体设计,其任务设计系统的框架和概貌,并向用户单位和领导部门作详细报告并认可,在此基础上进行第二阶段:详细设计,这两部分工作是互相联系的,需要交叉进行,本章将这两个部分内容结合起来进行介绍。 二、系统设计原则 管理信息系统开发是一项系统工程,为了保证系统的质量,设计人员必须遵守共同的设计原则。 1、系统系统是作为统一整体而存在的,因此,在系统设计中,要从整个系统的角度进行考虑,系统的代码要统一,设计规范要标准,传递语言要尽可能一致,对系统的数据采集要做到数出一处、全局共享,使一次输入得到多次利用。 2、灵活性 为保持系统的长久生命力,要求系统具有很强的环境适应性,为此,系统应具有较好的开放性和结构的可变性。在系统设计中,应尽量采用模块化结构,提高各模块的独立性,尽可能减少模块间的数据耦合,使各子系统间的数据依赖减至最低限度。这样,既便于模块的修改,又便于增加新的内容,提高系统适应环境变化的能力。 3、可靠性 管理信息系统系统设计全文共15页,当前为第2页。管理信息系统系统设计全文共15页,当前为第2页。可靠性是指系统抵御外界干扰的能力及受外界干扰时的恢复能力。一个成功的管理信息系统必须具有较高的可靠性,如安全保密性、检错及纠错能力、抗病毒能力等。 管理信息系统系统设计全文共15页,当前为第2页。 管理信息系统系统设计全文共15页,当前为第2页。 4、经济性 经济性指在满足系统需求的前提下,尽可能减小系统的开销。一方面,在硬件投资上不能盲目追求技术上的先进,而应以满足应用需要为前提;另一方面,系统设计中应尽量避免不必要的复杂化,各模块应尽量简洁,以便缩短处理流程、减少处理费用。 三、系统设计内容 1、总体设计 总体设计主要是指在系统分析的基础上,对整个系统的划分(子系统)、机器设备(包括软、硬设备)的配置、数据的存贮规律以及整个系统实现规划等方面进行合理的安排。 (1)系统模块结构设计 系统模块结构设计任务是划分子系统,然后确定子系统的模块结构,并画出模块结构图。 在这个过程中必须考虑几个问题:如何将一个系统划分成多个子系统;每个子系统如何划分成多个模块;如何确定子系统之间、模块之间传送的数据及其调用关系;如何评价并改进模块结构的质量。 (2)计算机物理系统配置方案设计 在进行总体设计时,还要进行计算机物理系统的具体配置方案的设计,要解决计算机软硬件系统的配置、通信网络系统的配置、机房设备的配置等问题。计算机物理系统的具体配置方案要经过用户单位和领导部门的同意才可进行实施。 2、详细设计 详细设计主要包括处理过程设计、代码设计、界面设计、数据库设计、输入输出设计等。一般来说,处理过程设计要确定每个模块内部的详细执行过程、局部数据组织、控制流、每一步的具体加工要求等。处理过程模块详细设计的难度已不大,关键是用一种合适的方式来描述每个模块的执行过程,常用的有流程图、问题分析图、过程设计语言等。 管理信息系统系统设计全文共15页,当前为第3页。管理信息系统系统设计全文共15页,当前为第3页。3、编写系统设计说明书 管理信息系统系统设计全文共15页,当前为第3页。 管理信息系统系统设计全文共15页,当前为第3页。 系统设计阶段的结果是系统设计说明书,它主要由模块结构图、模块说明书和其它详细设计的内容组成。 四、系统设计的工具 1、模块结构图 模块是组成目标系统逻辑模型和物理模型的基本单位,它的特点是可以组合、分解和更换。模块结构图是用于描述系统模块结构的图形工具,它不仅描述了系统的子系统结构与分层的模块结构,还清楚地表示了每个模块的功能,而且直观地反映了块内联系和块间联系等特性。 一个模块应具备以下四个要素: (1)输入和输出 (2)处理功能 (3)内部数据 (4)程序代码 前两个要素是模块的外部特性,即反映了模块的外貌。后两个要素是模块的内部特性。在结构化设计中,主要考虑的是模块的外部特性,其内部特性只做必要了解,具体的实现将在系统实施阶段完成。 2、信息系统流程图 系统流程
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 操作系统课设项目基于Android的电梯调度源码+课程报告.zip 项目说明 1.项目核心代码路径为main/java/com/com/example/myapplication/MainActivity 已经将核心代码单独放到一级目录下 2.第二个elevator文件为apk文件,传到手机上下载即可,个人建议电脑qq传到手机qq上,在手机qq上点击即可下载,提示有风险时无视风险即可(本app纯静态的,没有隐私泄露风险风险提示是因为需要复杂的安全准则) ## 项目文档 详细见项目说明文档 1.外部调度算法 1.1发生条件:当有人在某个楼层按下向上或向下的按钮时,即发出外部请求,进行电梯外部请求调度 1.2算法具体流程 1.2.1:首先选定发出请求的层数,以及请求的方向向上还是向下,再遍历list列表中存储的所有电梯对象,计算每部电梯的当前楼层和发出请求的楼层之间的差值,再计算出差值后,进行下一步分析 1.2.2:首先判断有没有空闲的电梯可以运行,假如存在空闲的电梯且该电梯对应的相应调度池中没有与发出请求楼层方向相反的调度,则选中该电梯 1.2.3:其次若电梯正在运行中,分两种情况讨论,首先时电梯有上升任务,且当前楼层发出的请求为上升,且电梯并未相应下降请求,则先加入待选;其次电梯正在执行下降任务,且当前请求为下降任务,且电梯未响应上升请求,则先加入待选 1.2.4:对1.2.3中选中的电梯进行判断,判断条件为发出请求的楼层数和选中电梯楼层之间的关系,假如电梯正在上升,则需满足当前电梯层数小于发出请求电梯的层数;假如电梯正在下降,则需要满足当前电梯层数大于发出请求电梯的层数,假如不满足则进行下一步 1.2.5:假如电梯正好处于暂停状态,且发出请求楼层和电梯当前处于同一楼层,则直接选中该电梯 1.2.6:假如找到合适的电梯,则将该任务写入对应电梯的目标楼层中,并将其加入等待队列,再检查等待队列中是否有该任务,若有的话,将其状态改为完成状态;若未找到合适的电梯,则将该任务加入到等待队列中 1.2.7:在遍历所有电梯时,每找到一部合适电梯,将距离distance改为该电梯楼层数到发出请求电梯楼层数的绝对数差值,后面合适的电梯若小于这个差值,说明该电梯距离发出请求楼层距离更近,从而保证了距离最短的调度算法 2.内部调度算法 内部调度算法比较简单,每次电梯内部按钮被按下后,将电梯内部楼层对应状态设为true即可,若当前电梯状态为free即起步状态,则相应改变电梯的上行下行状态,楼层状态则展示为open状态 3.具体调度过程 3.1:利用时间控件,每隔1s检查电梯状态,首先更新楼层信息,假如当前电梯的状态为向上,则电梯对应楼层加一,假设电梯状态为向下,则电梯对应楼层减一 3.2:其次进行状态转移过程,假设此刻电梯状态为暂停,表示当前处于停靠状态,检查是否需要继续,遍历对应电梯的所有楼层,查看是否存在下降或上升请求,再查看是否满足了电梯的外部请求,假设满足外部请求,即电梯停靠再之前发出请求的楼层,则将其移除向下请求的处理队列中,并更新标签状况 3.3最后进行电梯运行情况的状态转移,假电梯只有上升请求,则更改电梯的状态为上升;假如电梯只有下降请求,则更改电梯的状态为下降,假如电梯当前请求为上升且有上升楼层,则电梯继续上升,假如电梯当前请求状态为下降且有下降楼层,则继续下降,若无上升和下降楼层则电梯为释放状态 3.4假设电梯当前并非停靠状态,则需要检查电梯所处当前楼层是否需要停靠,假设电梯的目标楼层中含有当前楼层,则需要将当前状态改为pause进行停靠 3.5对于等待队列的调度,同样采用时间控件,每0.5s进行一次调度,尝试为调度池内的目标楼层分配电梯,假设分配成功则将其从调度池内移除 4.具体开关门实现 对于开关门的实现,首先设置两个button,分别代表开门和关门事件,并分别绑定相应的点击相应函数 4.1开门 在点击关门按钮时,首先检查电梯是否处于pause状态,当电梯处于pause状态时,才能够进行下一步的开门操作,当前电梯假如处于pause状态,首先暂停两秒,并利用lock_door变量对当前选中电梯上锁,即不能执行其他操作(实质为堵塞相应电梯对应的timer控件正常执行),在两秒后再将lock_door变量对应当前电梯key值设为true,表示电梯可以正常工作 4.2关门 在点击开
光盘内容及其使用说明 _________________________________________________________________ 系统运行环境: 1.硬件配置 CPU: Pentium III 600以上; 内存:128M以上。 2.软件环境 Windows 98以上操作系统; MS SQL Server 2000; Viual Studio.Net 2003; MS Access 2000及以上。 _________________________________________________________________ 目录、内容及使用方法: 1.本光盘提供了书中所有案例的源代码,分别位于相应章节的文件夹下。 2.系统运行所需的数据库文件也位于相应章节的文件夹下。 3.数据库的设置方法请参看配套书籍各章的“数据库连接”小节。 4.所有的程序在Windows XP、MS SQL Server2000或MS Access2003和 Viual Studio.Net 2003环境下调试运行。 _________________________________________________________________ 系统配置环境: 1.运行Viual Studio.Net。 2.依次单击【文件】|【新建】|【空白解决方案】,打开新建项目对话框, 在【项目类型】中选择【Visual Studio解决方案】,填写合适的名称和位置, 单击确定按钮,建立一个空白解决方案。 3.在【解决方案资源管理器】中,右击建立的解决方案,单击【添加】 |【新建项目】,打开添加新项目对话框,在左侧的【项目类型】中选择 【Visual C#项目】,在右侧的【模板】中选择【Windows应用程序】,填写合 适的名称,单击确定按钮,就建立了一个新的项目。 _________________________________________________________________ 数据库配置环境: 本书中数据库分为两种:SQL Server 和 MS Access。 1.Access数据库操作方便,配置简单,只需要把数据库文件放置到bin 目录下的Debug文件夹下即可。 2.SQL Server数据库配置相对复杂一点,打开SQL Server企业管理器,单 击控制台前面的加号按钮,直到出现数据库,然后在数据库上单击鼠标右键, 从弹出式菜单选择【所有任务】|【附加数据库】,然后单击【...】按钮, 选择本章源代码中的DataBase文件夹下的RentManage.mdf文件,其他采用默认 设置,然后单击【确定】按钮。 3.以Access数据库的连接为例。首先在VS.net的工具箱的【数据】项中选择 OleDbConnection,选择所建立的数据库连接oleDbConnection1,在他的属性中 选择ConnectionString的新建连接,在数据库链接属性对话框的【提供程序】 选择项中选择【Microsoft OLE DB Provider for ODBC Drivers】,然后单击 【下一步】,在【连接】选择项中的【选择或输入服务器名称】下拉框中选择 【MS Access Database】,在【输入要使用的初始目录中】填写你所创建的数 据库所在的目录。最后单击【确定】按钮。 _________________________________________________________________ 注意事项: 1.建议读者将光盘中的所有文件备份,在硬盘上运行。 2.在练习过程中,希望读者每做完一部分工作就存盘,这样可以避免因 意外而导致数据大量丢失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

香菜+

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

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

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

打赏作者

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

抵扣说明:

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

余额充值