实训报告 教 学 院 计算机
课程名称 计算机应用与开发 专 业 计算机应用技术 班 级 12应用技术班 姓 名 冯军
2014 年 9 月 20 日
1
目录1
目录 ................................................................................................................................................................. 2
一.整体介绍 ................................................................................................................................................. 3
1.1游戏公会的简单介绍: .................................................................................................................. 3
1.2游戏公会的现状 .............................................................................................................................. 3
1.3 游戏公会的意义: ......................................................................................................................... 4
1.4公会特征 .......................................................................................................................................... 4
1.5公会分析 .......................................................................................................................................... 5
二 具体设计 ................................................................................................................................................... 6
2.1数据库的简单介绍 .......................................................................................................................... 6
2.2程序中的类以及对类的理解。 ...................................................................................................... 6
三.项目测试与调试 ..................................................................................................................................... 7
3.公会创建过程: ................................................................................................................................. 7
四.实训总结 ............................................................................................................................................... 15
五 参考文献 ................................................................................................................................................. 16
2
一.整体介绍
1.1游戏公会的简单介绍:
游戏公会就是游戏玩家的集合,即所有玩家集中在一起,了解最新的各种游戏,交流各种玩游戏的体会和经验。她不依附于某款具体游戏,拥有游戏外的交流手段,拥有网站或BBS、歪歪频道、QQ群等,有特定的名称与标识,有严格的规章纪律及权责划分,以玩游戏为主要目的聚集起来的人群。比较模糊的是不依附于某款具体游戏的前提,以传奇和RO为例,游戏中规模大的行会/家族也不少,尽管没有集体尝试公会形成期以外的其它游戏,但成员相当稳定。
最早的工会是以各行业形成的企事业团体,为了保证工人的利益,经过政府认可形成的组织体系,需要缴纳会费等,当出现了问题,例如拖欠工资,受到不合理待遇等可以通过工会来进行联系相关部门进行调解,并有丰富多彩的活动等举办,丰富民众生活。 而游戏公会的产生是网络群体,在《MUD游戏》文字游戏被引入中国大陆后,而后的万王之王、魔剑、由网络十字军的玩家团体正式将游戏工会(公会)以长期存在的玩家群体定义为一个名词,逐渐被网络群体认可。实际上是互联网游戏网络游戏玩家群体的总称,一般以同一个前缀来命名,俗称“马甲”,例如:“十字军网游公会”“蔷薇骑士团”"天上人游戏公会"“SoU灵魂公会”“神话公会”“Tn网络社团”"Song歌者网游公会"“冥月网游公会”等,后来因为更多的游戏和活动形式出现,逐渐出现了娱乐性质公会,网页游戏公会群体。例如“Allstar全明星娱乐公会”(也有称会所),“smile娱乐公会”“80娱乐公会”等都是比较知名的公会。
1.2游戏公会的现状
游戏公会也就是多玩家游戏,即玩游戏的人的集合。目前正在迅猛发展期,网站以简单的页面风格、全面的游戏资料、高水准的编辑为重要组成部分,已成为游戏玩家首要选择的游戏资讯专业门户之一。截至08年10月,多玩游戏网全站日均总浏览量(Page View)达5000万,独立IP达到500万,拥有1500万用户,在ALEXA全球网站排名中位列600强、中国网站50强、中文游戏网站NO1!
目前,多玩游戏网的访问者主要是以年轻一代具有消费能力的个人用户以及大量游戏公会的会员及会长,他们平均在多玩浏览10个以上的页面,符合粘性网站的标准; 3
每个用户在多玩会停留30分钟以上,用与资讯以及和朋友交流;共有10万个以上公会团体的加入,成为多玩游戏网最核心的竞争力,其中每天发贴的公会占75%左右,为活跃公会。
多玩游戏网迄今已建立了超过200个网游专区,涵盖了目前国内几乎所有网游;专注每年新产生的5-10款优质游戏,例如魔兽世界,武林外传,彩虹岛,激战,诛仙,梦想世界,卓越之剑等专区,都是目前国内最好的玩家专区,数一数二 这是多玩新专区的基调;多玩在网游专区上,使用自己独立研发的CMS和蜘蛛,能最快和最准确的获取新信息,确保更新速度。
1.3 游戏公会的意义:
1、公会作为一个游戏内的组织结构,它能吸引大量的个体用户进入,成为公会用户,提高游戏内用户的粘性。
2、公会是建立在游戏内的互动团体,公会用户之间的互动性也远高于普通的个体用户。
3、作为一个用户基数庞大的组织,任何一款游戏如果在宣传开始的同时,就将针对用户群设计在公会群体上的话,那么效果远比针对普通个体用户的更好,更有效率。
4.公会的存在,对于游戏来说也是非常重要的一个存在,因为一款游戏里如果公会多了,因为公会用户有普通个体用户无法取代的优势。
1.4公会特征
1、形成于游戏,以玩游戏为主要目的;
2、成员具有相当的稳定性;
3、在某些游戏价值观和道德取向上达成一定的认识;
4、拥有游戏外的交流手段,如TS或QQ群或BBS/网站;
5、有特定的名称与标识,区别于其它玩家群体;
6、有清晰的组织结构、权责划分及规章纪律;
7、是一个涵盖互动交流、信息沟通、情感抒发的综合性平台。
成员规模、公会名望和领军人物是三个关键因素。
4
1.5公会分析
这些特征组合起来就形成了游戏玩家公会的基本定义:形成于游戏中、以玩游戏为主要目的,核心成员稳定,具有统一的游戏价值观或取向,有清晰的组织结构、权责划分及规章纪律,并拥有至少一种独立于游戏外的交流手段,有特定名称或标识的游戏玩家交流平台。
游戏公会是网络游戏中的一个团队,是希望通过网络游戏来吸收更多的成员,并且通过大量成员的合作来更好的享受到游戏的内容与乐趣,有很多游戏公会希望可以找带一盈利的方式,使公会建立一个类似公司的运作体制,而这一切又是依托游戏为基础的。 网络游戏是公会赖以存在、发展、壮大的一个基础平台,一个公会只有附属于一款游戏中,作为基础的出发点才能不断的吸收更多的成员,以壮大自己的队伍。另外,还得依靠网络游戏作为平台,来巩固自己的势力与地位,取得一个长久发展的通路或道路,最后从一款网络游戏发展到两款,甚至发展到更多网络游戏中去。
而游戏运营商,运营着一款游戏,那么就必然会有公会用户的存在,既然已经存在了,其实完全可以善待这些用户,通过公会用户的口碑宣传与吸引更多公会入驻来创造游戏的盈利,完全不必轻视或对公会用户抱着一个不认可的态度。
5
二 具体设计
2.1数据库的简单介绍 此系统数据库为SQL Server 2005数据库,创建了tb_game数据库,并且创建了两个表,分别是tb_user和tb_note.分别存储游戏号、游戏名字、游戏日志的账号、游戏的内容、游戏日志的数据。
tb_user记录了id,name,pwd信息。
tb_note记录了id,name,cotent,date信息。
2.2程序中的类以及对类的理解。 程序包含的9个类:
NoteDao类是添加日志信息、删除日志信息、修改日志信息、查看日志列表所有信息。 UserDao类是添加用户、用户登录验证。
RegisterServlet类是用户注册的数据。
LoginServlet类是用户登录的数据。
AddNoteServlet类是添加日志的界面。可以添加记录游戏工会的事件。
ListNoteServlet类是日志列表的清单。
AlterNoteServlet类是改变日志的数据,可以修改日志的内容。
DeleteNoteServlet类是删除游戏日志的数据。可以删除没有用的日志。
DBmanager类是连接数据库。
6
三.项目测试与调试
3.公会创建过程: 创建RegisterServlet类,用于游戏公会的注册,使得注册的人有一个属于自己的帐号和名字,便于在公会中交流。代码如下:
public class RegisterServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String userName = request.getParameter("userName");
String password = request.getParameter("password");
UserDTO user = new UserDTO(0,userName, password);
String tips = null;
boolean flag = new UserDAO().insertUser(user);
if(flag){
request.setAttribute("tips", "用户名后密码不能为空");
request.getRequestDispatcher("register.jsp").forward(request, response);
}
request.getRequestDispatcher("login.jsp").forward(request,
response);
}
}
7
游戏公会注册的运行界面如下:
创建一个LoginServlet类,用来游戏公会的成员登录。执行代码如下:
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String userName = request.getParameter("userName");
String password = request.getParameter("password");
UserDTO user = new UserDTO(0,userName, password);
String tips = null;
boolean flag = new UserDAO().check(userName);
if(flag){
8
request.setAttribute("tips", "用户名不存在");
request.getRequestDispatcher("").forward(request, response); }
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
游戏公会登录的界面如下:
创建一个NoteDao的类,用来添加日志信息、删除删除日志信息、修改日志信息、查看日志列表所有信息、根据日志的ID查看用户列表信息。具体代码如下: public class NoteDAO {
private Connection conn;
private Statement st;
private PreparedStatement ps;
private ResultSet rs;
//添加日志信息
public boolean insert(NoteDTO note) {
boolean flag = false;
try {
String sql="insert into
(note_name,note_content,note_date) values (?,?,?)";
conn = DBmanager.getConn();
ps = conn.prepareStatement(sql);
ps.setString(1, note.getNoteName());
tb_note 9
} ps.setString(2, note.getNotecontent()); ps.setDate(3, (Date) note.getDate()); flag = !ps.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { DBmanager.close(null, ps, conn); } return flag; //删除日志信息 public boolean delete(int noteId) { boolean flag = false; try { String sql = "delete from tb_note where note_id=?"; conn = DBmanager.getConn(); ps = conn.prepareStatement(sql); ps.setInt(1, noteId); flag = !ps.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { DBmanager.close(null, ps, conn); } return flag; }
// 修改日志信息
public boolean update(int noteId) {
boolean flag = false;
try {
String sql = "update tb_note set note_name,note_content,note_date where note_id=?";
} conn = DBmanager.getConn(); ps = conn.prepareStatement(sql); ps.setInt(1, noteId); flag = !ps.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { DBmanager.close(null, ps, conn); } return false;
10
// 查看日志列表的所有信息 public List<NoteDTO> listnote() { List<NoteDTO> list = new ArrayList<NoteDTO>(); try { String sql = "select * from tb_note"; } conn = DBmanager.getConn(); st = conn.createStatement(); rs = st.executeQuery(sql); while (rs.next()) { int noteId = rs.getInt("note_id"); String noteName = rs.getString("note_name"); String notecontent = rs.getString("note_content"); Date date = rs.getDate("note_date"); NoteDTO u = new NoteDTO(noteId, noteName, notecontent,date); list.add(u); } } catch (SQLException e) { e.printStackTrace(); } finally { DBmanager.close(rs, st, conn); } return list; // 根据日志的ID查看用户列表信息 public NoteDTO query(int noteId) { NoteDTO u = null; try { String sql = "select * from tb_users where user_id=?"; conn = DBmanager.getConn(); ps = conn.prepareStatement(sql); ps.setInt(1, noteId); rs = ps.executeQuery(); if (rs.next()) { String noteName = rs.getString("note_name"); String notecontent = rs.getString("note_content"); Date date = rs.getDate("note_date"); u = new NoteDTO(noteId, noteName, notecontent,date); } } catch (SQLException e) { e.printStackTrace(); } finally { DBmanager.close(rs, ps, conn); } return u; 11
} }
再创建UserDAo类,用来存储用户的添加和用户登录验证。代码如下:
public class UserDAO {
private Connection conn;
private Statement st;
private PreparedStatement ps;
private ResultSet rs;
//添加用户
public boolean insertUser(UserDTO user) {
boolean flag = false;
try {
String sql = "insert into tb_users (user_name,user_pwd) values (?,?)";
conn = DBmanager.getConn();
ps = conn.prepareStatement(sql);
ps.setString(0, user.getUserName());
ps.setString(1, user.getPassword());
flag = !ps.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBmanager.close(null, ps, conn);
}
return flag;
}
//用户登陆验证 public boolean check(String userName){ boolean flag = false; try { String sql = "select * from where user_name=?"; conn = DBmanager.getConn(); ps = conn.prepareStatement(sql); ps.setString(0, userName); flag = !ps.execute(); } catch (SQLException e) { e.printStackTrace(); }finally{ DBmanager.close(null, ps, conn); } return false; 12
}
}
创建AddNoteServlet,主要功能是添加日志类,主要代码如下:
public class AddNoteServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String noteName = request.getParameter("noteName");
String notecontent = request.getParameter("noteContent");
String date = request.getParameter("date");
Date d = null;
try {
d = new SimpleDateFormat("yyyy-MM-dd").parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
NoteDTO note = new NoteDTO(0, noteName, notecontent, d);
String tips = null;
boolean flag = new NoteDAO().insert(note);
if(flag){
request.setAttribute("tips", "");
}
request.getRequestDispatcher("index.jsp").forward(request,
response);
}
}
创建DeleteNoteServlet类,用来删除日志。主要代码如下:
public class DeleteNoteServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
13
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("noteID");
int noteID = Integer.parseInt(id);
boolean flag = new NoteDAO().delete(noteID);
String tips = null;
if(flag){
request.setAttribute("tips", "删除失败"); }else{
request.setAttribute("tips", "删除成功");
}
List<NoteDTO> list = new NoteDAO().listnote();
request.setAttribute("tips", tips);
request.setAttribute("list", list);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
创建
public classextends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<NoteDTO> list = new NoteDAO().listnote();
request.setAttribute("list", list);
request.getRequestDispatcher("listnote.jsp").forward(request, response);
}
}
14
四.实训总结
通过十几天的Java培训,让我对Java有了深一层次的了解,首先感谢学校给了我这次实习的机会。在做这个课程设计的时候,刚开始感觉自己无从下手,不知道该怎么开始,很茫然。最终利用网络资源和查阅图书馆的书籍,在老师和同学的指导和讨论下,经过一段时间终于完成了这个设计。当程序运行结束看到弹出的计算器的界面时,到很欣慰,虽然只是一个小小的东西,但却是自己起步的成就,从中学到了很多书本知识不能体现的东西,对JAVA的学习有了一定的兴趣。也通过这次的程序设计感觉到自己平时对于编程实际操作的贫乏,没有把书本上的知识真正的掌握牢固 ,同时也非常感谢老师精细耐心的教导,她上课的方式使我很容易接受。
在这三周我学到了J2SE、J2EE和J2ME.J2EE:桌面应用程序,分别介绍了Java的概述、特点、技术构架、语法等等。J2EE:Web应用程序,主要介绍HTML/CSS、JavaScript、JSP/Servlet等等。J2ME:手机应用程序,3G--Android、SDK 安卓的应用程序。
通过系统的学习Java,让我不仅有了一定的基础,更让我学到了好多学习Java的方法,“工欲善其事,必先利其器”。因此学习一个好的学习方法比知识更重要。刚一开始学习的时候老师对我们就很严格,全班学生都在很认真的敲着代码,这也给我们后期的学习奠定了一定的基础。有人说学习一个新的东西像单调递增的指数函数,刚开始的时候很难,似乎没有什么收获,并且很枯燥、乏味、艰难。但过了这个时间段就会像指数函数直线上升。这个时候你会觉得学什么会什么,以前错误连篇的代码,如今基本没有了。
以前上课的时候,只是学到了零碎的知识点,从来没有做过项目,当老师演示她的成果时,那个时候我多么期待自己也会做出那么美的效果,在老师的带领下,我们终于做出了属于自己的游戏公会,这里有前期老师的指导和后期组员的认真配合,做出一个属于共同的项目。
能亲手做出自己在网页上看到的东西,真的很开心,很满足。
15
五 参考文献
[1] Eric. Java编程思想[M]. 第4版. 机械工业出版社, 机械工业出版社.
[2] 杜波依斯. MySQL技术内幕[M]. 第4版. 人民邮电出版社, 20xx年07月.
[3] 林信良. JSP & Servlet学习笔记[M]. 清华大学出版社, 20xx年05月.
[4] 张峋, 杨三成. 关键技术:JSP与JDBC应用详解[M].中国铁道出版社, 20xx年1月.
[5] 张银鹤. 点石成金:JSP+Ajax网站开发典型实例[M].电子工业出版社, 20xx年01月.
[6] Weiss, MA. 数据结构与算法分析:java语言描述[M]. 第2版. 机械工业出版社, 20xx年01月.
[7] Metsker S J. Java设计模式[M]. 第2版. 电子工业出版社, 20xx年09月.
[8] 孙卫琴. Tomcat与Java Web开发技术详解[M]. 第2版. 电子工业出版社, 20xx年01月
16