1、 软软 件件 学学 院院 课程设计课程设计报告书报告书 课程名称课程名称 计算机网络编程课程设计计算机网络编程课程设计 设计题目设计题目 猜数游戏猜数游戏 专业班级专业班级 学学 号号 姓姓 名名 指导教师指导教师 2011 年年 12 月月 目录 1 设计时间 . 1 2 设计目的 . 1 3 设计任务 . 1 4 设计内容 . 1 4.1 实验内容 . 1 4.2 算法原理 . 2 4.3 设计思路 .2 4.4 设计过程3 4.4.1 猜数游戏客户端程序3 4.4.2 猜数游戏服务器端程序6 4.4.3 程序框图.12 5 总结与展望 13 1 1 设计时间设计时间 2011 年 12
2、月 13 日2011 年 12 月 20 日 2 2 设计目的设计目的 (1)加深对计算机网络的基本概念和原理,以及网络编程接口 Socket 概念及编程原 理的理解; (2)提高学生网络应用与编程的能力。学生在七个设计题目中选择一个,提高其分 析与解决问题的能力,为大型网络编程打下坚实基础; (3)通过撰写课程设计报告,锻炼学生的逻辑组织和语言表达能力; (4)培养学生理论运用于实践的综合应用和设计创新能力。 3 3 设计任务设计任务 (1)设计完成与网络应用相关题目的网络应用软件; (2)调试运行之后,要求边演示边解释设计的思想、过程及采用的方法; (3)完成课程设计报告。 4 4 设计内
3、容设计内容 4.1 实验内容 软件名:猜数游戏(分服务器端和客户端两部分) 功能:游戏后台运行一个服务器软件,游戏者通过客户端程序登陆后,服务器随机产 生一个 1100 之间的随机数供游戏者猜,游戏者从客户端输入一个数值,如果该数比设 定的数大,软件提示: “大了” ,如果小,软件提示“小了” ,若相等返回“猜对了,你共 猜了*次” 。服务器同时记录并维护一个游戏玩家的 TOP10 排行榜,供玩家查询。 描述: 服务器端:接收客户端的命令请求并提供相应的服务。 客户端:完成游戏人机界界面的设计,以命令的方式向服务器请求服务,并显示相应 的提示。主要的命令有: 1CONNECT IP 地址 端口
4、号 指定游戏服务器的 IP 地址和端口号,连接到服务器。 响应:连接成功/失败。 2LOGIN 用户名 用户登录,报告服务器玩家的名字。 响应:成功/失败。 3GUESS 数字 猜数。 响应:大了/小了/对了。 4LISTTOP10 请求显示 TOP10 排行榜。 响应:显示 TOP10 排行榜。 5EXIT 退出游戏。 4.2 算法原理 客户端通过点击登录连接到服务器端,发送的数据是String类型的,需要将String类转 换成Int类之后才能与服务器端产生的随机数进行比较(不同类型间无法比较)。在服务器 端利用方法创建int ccc=new int4;即ccc整形数组将接收的String
5、类型数据转换成整形数 据后所存放数组。 ccc0 = Convert.ToInt32(talkString.ToString(); 方法表示将转换类型后的 数据转存到ccc0中即将String到Int的转换。使用if (number0 ccc0)语句进行比较,输 出的语句如:“你输入的数大了”即message = “输入的数大了“;赋值给message然后利用 user.bw.Write(message+“ 操作次数为”+i);将结果送给客户端。服务器在MainForm类下 public int number = new int4;建立数组来存放服务器端自动生成的随机数,随机数用 Random rand = new Random();类方法实例化一个rand对象,通过调用.Next()方法来创建随 机数即 number0 = rand.Next(1, 100);产生的随机数为1100之间。 当服务器接受来自客户 端的数据之后,通过比较之后返回给客户端信息告知客户端的猜测结果。 4.3 设计思路 客户端程序:在客户端首先登录到服务器端,在客户端会自动创建一个 UserSher+数 字用户连接到服务器端,当连接成功后会收到来自服务器端的信息:“游戏开始,请输入 数据”表示游戏已经开始。客户端通过向服务器端发送 String 类型的数据通过流套接在服 务器端进行比较,每