文档库 最新最全的文档下载
当前位置:文档库 › C#课程设计(打砖块)

C#课程设计(打砖块)

C#课程设计(打砖块)
C#课程设计(打砖块)

辽宁工业大学

C#.NET程序设计课程设计(报告)题目:打砖块游戏

院(系):软件学院

专业班级:计算机信息管理101班

学号: 101403009

学生姓名:姜洪亮

指导教师:胡峰

教师职称:助教

起止时间:2011.11.21至2011.12.02

程序设计专题(报告)任务及评语

目录

第1章程序设计专题目的与要求 (1)

1.1 程序设计目的 (1)

1.2 程序设计的实验环境 (1)

1.3 程序设计的预备知识 (1)

1.4 程序设计要求 (1)

第2章程序设计内容 (2)

2.1概要设计 (2)

2.2程序整体设计说明 (2)

2.3程序部分源代码及注释 (8)

2.4测试结果 (12)

第3章程序设计总结 (13)

参考文献 (14)

第1章程序设计目的与要求

1.1 程序设计目的

《C#.Net程序设计》是计算机科学与技术专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是软件技术专业学生学习完《C#.Net程序设计》课程后,进行的一次全面的综合训练,C#.Net 程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2 程序设计的实验环境

硬件要求能运行Windows xp操作系统的微机系统。C#.Net程序设计语言及相应的集成开发环境visual https://www.wendangku.net/doc/2c8054188.html,。

1.3 程序设计的预备知识

熟悉c#语言及visual https://www.wendangku.net/doc/2c8054188.html,集成开发环境。

1.4 程序设计要求

按程序设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握c#.net2003的基本技能和面向对象的概念和方法;了解windows编程。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

第2章程序设计内容

2.1程序设计题目

打砖块游戏:作为我们一款熟知的游戏我想大家都不陌生吧,就是通过挡板把小球挡回,不让小球落地,直到打光所有砖块为止,游戏过关进入更难得模式小球速度更快,砖块组成的图案发生改变,是一个很有趣味的小游戏。

2.2程序整体设计说明

2.2.1程序设计内容

1. 需求分析

本系统为一个用C#实现的为我们所熟悉的简单的打砖块游戏,该系统的具体功能如下:

1)能简便的开始游戏,游戏中的功能与日常我们所熟悉的游戏的功能一致 ,直到砖

块全部打光过关和在砖块打光之前机会用完游戏结束功能;

2)当游戏结束时会自动弹出消息框提示本关所获得得分数;

3)当过关时会出现提示图片,点击进入下一关,下一关的方块位置和所组成的形状

会发生改变

2 设计环境

本程序选择Visual Studio 2008作为实验环境。

3. 程序设计内容和思路

1)游戏设计游戏开始时,小球会停在挡板正中间,而且此时小球可以随着挡板左右

自由移动,当按下空格键小球弹出,并在程序设定的区域中不停碰撞反弹。

2)当小球碰撞到墙壁、挡板、和砖块的时候,均以相同的速度反弹,并且砖块被碰

撞后会以相同的速度反弹,并且当砖块被碰撞后会消失。

3)挡板可以左右移动以接住小球,若超过三次没有接住,则游戏结束,按退出键退

出,当所有砖块全部打光时则出现进入下一关的提示框,点击进入下一关。

2.2.1.1 程序中所用类说明

根据设计思路,可以为系统设计三个类,实现小球的类RussiaBlock继承Object

类,主窗体类MainForm类,设置窗体类SettingForm类。

using System;

using System.Collections.Generic;

using System.Text;

using System.Drawing;

namespace Arkanoid

{

class DisposeDAO

{

///

/// 处理球碰到砖块后弹的方向(上下)

///

/// 砖的X坐标

/// 砖的Y坐标

/// 砖的水平长度

/// 砖的高度

/// 球的X坐标

/// 球的Y坐标

/// 球的直径

/// 返回string类型值

public static string DisposeTopDown(int bx, int by, int bw, int bh, int qx, int qy, int qr)

{

string Yfangxiang = "";

int f = 0; //方向

if (Math.Abs(by - (qy + qr)) <= 2)

{

f = 1; //从上碰撞到球

}

else if (Math.Abs(qy - (by + bh)) <= 2)

{

f = 2; //从下碰撞到球

}

if (f == 1)

{

Yfangxiang = "YTop";

}

else if (f == 2)

{

Yfangxiang = "YDown";

}

return Yfangxiang;

}

///

/// 处理球碰到砖块后弹的方向(左右)

///

/// 砖的X坐标

/// 砖的Y坐标

/// 砖的水平长度

/// 砖的高度

/// 球的X坐标

/// 球的Y坐标

/// 球的直径

/// 返回string类型值

///

/// 处理球碰撞到砖块后的动作

///

/// 砖块的坐标

/// 球的X坐标

/// 球的Y坐标

/// 球的直径

/// 目前X方向

/// 目前Y方向

/// RreturnDataDbean类型值

public static ReturnDataBean DisposeBrick(Point[] point, int qx, int qy, int qr, string xfangxiang, string yfangxiang)

rn rdb;

}

}

}

2.2.2.程序窗体

2.2.2.1程序主界面

进入游戏时的主界面,可以选择开始、帮助和退出功能。

2.2.2.1程序主界面

2.2.2.2 游戏界面

游戏开始前的画面,显示游戏信息,分数、关卡、及生命次数。

2.2.2.2游戏界面

2.2.2.3帮助界面

帮助信息,是关于游戏如何开始,介绍游戏玩法,以及开发作者的游戏说明。

2.2.2.3帮助界面

2.2.2.4开始游戏

进入游戏之后,游戏开始画面,空格开始游戏,可以通过键盘的←、→来控制挡板的移动。

2.2.2.4开始游戏

2.2.2.5游戏结束

游戏结束画面,当你用完所有的生命时,会弹出此窗口,提示你所得分数,游戏结束,可退出。

2.2.2.5游戏结束

2.2.2.6游戏过关提示

当你打光所有砖块时,屏幕会出现此字样,提示你点击进入下一关,显示剩余生命值。

2.2.2.6游戏过关

2.2.3异常处理说明

退出命令。用户可直接退出程序。

注意,如果在游戏过程中鼠标点击别的地方,或关闭别的文件,此时游戏会继续运行,只要点击窗口则会继续进行。

2.2.4程序运行效果及存在的问题

2.2.4.1未处理问题

2.2.4.1未处理问题

2.3程序部分源代码及注释

2.3.1 RussiaBlock类

以下涉及的词语基本块指的是由四个小方块构成的实体,四个小方块指的是小正方形。方块与基本块同义。

1)构造函数,通过给定的参数:控件实例,左边界,底边界,小方块(一个基本块由4个小方块构成)单位象素,形状号,起始位置,颜色。

2)程序部分源代码及注释

using System.Collections.Generic;

using https://www.wendangku.net/doc/2c8054188.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;

namespace Arkanoid

{

public partial class GameCol1 : Form

{

public GameCol1()

{

InitializeComponent();

}

Point[] pointPic = new Point[50]; //封装pictureBox对象

string keySpace = ""; //是否按下空格键

string key = ""; //是否按下左右键

string xfangxiang = "XRight"; //X方向默认为右

string yfangxiang = "YTop"; //Y方向默认为上

int x = 4; //X坐标移动方向

int y = 4; //Y坐标移动方向

public static int count = 3; //剩余机会

int bw = 0; //砖块宽度

int bh = 0; //砖块高度

int qr = 0; //球的直径

Point dispoint = new Point(999, 999); //移动砖块到XY位置

public static int score = 0; //得分

int _count = -1;

int countB = 50;

ReturnDataBean rdb = new ReturnDataBean();

//控制球的移动timer事件

private void timer1_Tick(object sender, EventArgs e)

{

_count = -1; //击中的哪一个砖块

if (countB == 0)

{

keySpace = "Stop";

xfangxiang = "";

yfangxiang = "";

this.picNext.Location = new Point(12, 254);

}

//右上

if (keySpace == "Space" && xfangxiang == "XRight" && yfangxiang == "YTop") {

this.TopRight();

}

//左下

else if (keySpace == "Space" && xfangxiang == "XLeft" && yfangxiang == "YTop") {

this.TopLeft();

}

//左下

else if (keySpace == "Space" && xfangxiang == "XLeft" && yfangxiang == "YDown") {

this.DownLeft();

}

//右下

else if (keySpace == "Space" && xfangxiang == "XRight" && yfangxiang == "YDown") {

this.DownRight();

}

//判断是否击中球

if (_count >= 0 && _count < 50)

{

this.IsScore(_count);

}

}

//按下键盘键发生事件

private void GameCol1_KeyDown(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Left)

{

key = e.KeyCode.ToString();

}

if (e.KeyCode == Keys.Right)

{

key = e.KeyCode.ToString();

}

if (e.KeyCode == Keys.Space)

{

keySpace = e.KeyCode.ToString();

}

}

//释放键盘键发生事件

private void GameCol1_KeyUp(object sender, KeyEventArgs e)

{

key = "";

}

//单击退出键发生事件

private void lblClose_Click(object sender, EventArgs e)

{

GameMain.isLoginGame = false;

Program.bol = true;

this.Close();

}

private void lblClose_MouseEnter(object sender, EventArgs e)

{

this.lblClose.ForeColor = Color.Red;

}

private void lblClose_MouseLeave(object sender, EventArgs e)

{

this.lblClose.ForeColor = Color.Black;

}

private void goFeichuan_Tick(object sender, EventArgs e)

{

if (key == "Left")

{

Point Fpoint = this.picFeichuan.Location;

Point Qpoint = this.picQiu.Location;

if (this.picFeichuan.Location.X >= (this.picLeftborder.Location.X + 18)) {

Fpoint.X -= 10;

if (keySpace == "")

{

Qpoint.X -= 10;

}

}

this.picFeichuan.Location = Fpoint;

this.picQiu.Location = Qpoint;

}

else if (key == "Right")

{

Point Fpoint = this.picFeichuan.Location;

Point Qpoint = this.picQiu.Location;

if (this.picFeichuan.Location.X <= (this.picRightborder.Location.X - 97)) {

Fpoint.X += 10;

if (keySpace == "")

{

Qpoint.X += 10;

}

}

this.picFeichuan.Location = Fpoint;

this.picQiu.Location = Qpoint;

}

}

3)游戏结束代码

using System;

using System.Collections.Generic;

using https://www.wendangku.net/doc/2c8054188.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace Arkanoid

{

public partial class GameOver : Form

{

public GameOver()

{

InitializeComponent();

}

private void lblExit_Click(object sender, EventArgs e)

{

Application.Exit();

}

private void lblExit_MouseEnter(object sender, EventArgs e) {

this.lblExit.ForeColor = Color.Red;

}

private void lblExit_MouseLeave(object sender, EventArgs e) {

this.lblExit.ForeColor = Color.Black;

}

private void GameOver_Load(object sender, EventArgs e)

{

this.lblScore.Text = GameCol1.score.ToString();

}

private void label1_Click(object sender, EventArgs e)

{

}

}

}

2.4 测试结果

2.4.1 主窗体运行界面

编程完毕后,运行调试,主窗体界面,及游戏信息。

2.4.1主窗体运行界面

第3章程序设计总结

在期末的课程设计中,我选择的是设计一个游戏(打砖块),这对于我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程毕竟以前没有做过这类的课设,缺乏一定的经验,现在利用自己学到的知识设计并制作一个游戏,这本身就是一个知识转化为生产力的过程,所以我很兴奋,投入了很高的热情和努力

在具体设计和实施中,我感受到了一个程序与无到有的过程,对具体的设计步骤,思路,方法,技巧都有了进一步的了解,并且感受深刻。

在设计中我基本按照规范的方法和步骤进行,首先调查这个游戏,并查阅相关资料,然后确定设计方案,最后设计并制作,实施过程中我深刻的认识到认真做游戏的重要性。一开始由于不细心出现了错误,这方面我应该加强。在这次设计中我们两人一组,分工和相互协调很重要,我们扬长避短,各及所长和合作意识并有效地缩短开发时间。

通过这次的设计,我学到了很多,同时也学到了细心与耐心的培养。我想这在将来的工作或者社会“旅程”中都将起到很大的作用,同时也学会了如何与人相处,与他人配合,共同完成这份作业。

在此我要感谢我的任课老师以及我的指导老师,由衷的感谢你们!

参考文献

1.余仁才《C#课程设计教程》2001.5

2.罗飞《Visual C#编程实例精粹》 2002.3

3.郑敬东《C#程序设计教程》200

4.9

4.罗斌越飞等编著《Visual C# 2005编程实例精粹》 200

5.3

5.郑阿奇梁敬东主编《C#程序设计教程》2005.9

6.张家祥方凌江张贤坤何鑫等编著《C#范例解析》2006.5

7.段德亮,余健,张仁才编《C#课程设计案例精编》2004。5

8.刘洪成《C#高级教程》清华大学出版社2003

9.张祥张鑫《C#范例解析》2004.5

10.张凌江《C#范例解析》2004.5

11.孙永强等. Visual C#.NET入门与提高.北京:清华大学出版社. 2002

12.B-power工作室.C#网络程序设计. 北京: 中国铁道出版社. 2001

13.[美]Anders Hejlsberg,Scott Wiltamuth,Peter Golde著, 张晓坤谭立平车树良

译《C#编程语言详解》.北京:电子工业出版社.2004

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

C语言图形五子棋课程设计报告

北京师范大学C语言课程设计汇报 课题名称:游戏五子棋 指导老师:尹乾 课题组员:罗福莉赵帅帅何虹达院系:信息科学和技术 时间:20XX.3.15-20XX.4.20

摘要 五子棋是一个两人对弈纯策略型棋类游戏,应用C语言编写程序能够在计算机上实现二人对弈五子棋功效。二人对弈五子棋程序由欢迎界面显示、游戏界面生成、光标移动和落子、判定胜败、悔棋功效、提供音效等子程序组成;程序中应用了结构体、数组、全局变量、按键处理和图形编程等元素和语句。程序经过棋盘和棋子图像生成、二人移子和落子和判定胜败等功效实现,在计算机上实现了二人五子棋对弈。

目录 摘要-------------------------------------------------------------------------------------- 2 第1章:需求分析-------------------------------------------------------------------- 3 1.1五子棋背景-------------------------------------------------------------------- 3 1.2 五子棋需求分析和步骤设计 -------------------------------------------- 4 第2章:概要设计-------------------------------------------------------------------- 7 2.1 各类头文件和全局变量--------------------------------------------------- 7 2.2 画面显示模块---------------------------------------------------------------- 8 第3章:具体设计------------------------------------------------------------------ 11 3.1 玩家操作模块-------------------------------------------------------------- 11 3.2音效提供模块 -------------------------------------------------------------- 11 3.3 胜败判定模块-------------------------------------------------------------- 12 第4章:调试分析------------------------------------------------------------------ 13 4.1 图形模块 -------------------------------------------------------------------- 13 4.2 玩家操作模块-------------------------------------------------------------- 13 4.3 胜败判定模块-------------------------------------------------------------- 14 第5章:用户手册------------------------------------------------------------------ 14

UML课程设计在线考试系统

《UML建模技术课程设计》 课题名称: 专业: 班级: 学号: 姓名: 指导教师: 成绩: 第一章需求分析 1.1、系统的性能需求 为了保证考试系统能长期、稳定、安全、可靠、高效地运行,系统应满足以下的一些性能需求: ①系统处理的准确性和及时性:准确性和及时性是考试系统的必要性能。在系统设计和开发过程中,要充分考虑系统目前和将来可能承受的工作量,使系统的处理能力和响应时间能满足用户要求。 ②系统的开放和系统可扩充性:考试系统在开发过程中,应充分考虑以后的可扩充性。例如,系统要能够承载课程的题库、试卷库等来实现课程考试。题库、试卷库或单套试卷可以随时进行增加、删除和修改等维护。要求系统提供足够的手段进行功能的调整和扩充。可以实现简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 ③系统的易用性和易维护性:要求系统应该尽量使用用户熟悉的

术语和中文信息的界面。系统界面应友好易用,应有详细的系统使用说明,对一些容易出现的误操作应该有相应的提示以及处理办法。考试系统要具有易用性、友好性,系统安装方便、维护简单。 ④系统的安全性:充分考虑用户、题库、服务器等的安全。系统对系统不同等级的用户分别设置不同的权限。考试期间由于机器死机重新启动机器后,计时器应合理进行计时。考试期间由于机器原因需要更换考试用机,学生重新登录考试系统后应能继续做题,考试服务器应能及时保存学生的操作结果。 1.2、系统主要功能 系统主要功能包括学生管理、试卷管理、教师管理、学生在线考试等等,下面就系统的主要功能做简要分析: ①用户信息管理学生可以登录系统,登录以后可以参加考试和查询成绩。管理员可以添加、修改、删除学生和教师信息。教师登录后可以添加、修改、删除试题,并且可以不同类型题目组合试卷,也可以按照试卷专业或者试卷名称查询试卷。 ③在线考试学生登录以后出现学生信息包括学号、姓名、考试课程等,学生确认信息后开始考试,考试结束后需要提交试卷。 ④题库管理教师或者管理员可以在题库里面增加、修改、删除试卷。 ⑤成绩管理管理员可以查询学生的成绩,也可以删除学生的成绩,但是不能对学生的成绩做出修改。 1.3 功能模块需求分析 系统的用户包括考生用户、教师用户以及系统管理员用户。用

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

C课程设计五子棋

/*这是我们c++课程设计五子棋,我用了许多循环语句,可能比较繁碎, 不过仔细分析的话,还是挺简单的。如果有什么不懂的地方可以加我q 1570169994 */ #include #include #include // 这些是一些必要的头文件 #include #include using namespace std; #define M 15 //此处定义棋盘大小为15*15,自己视情况而定 typedef struct Node { int a; //这里定义的结点在悔棋时要用到 int b; struct Node *next; }node; class Qipan { //定义一个棋盘类,这个类里有实现不同功能的函数 public: int a,b,t; //棋子的坐标我们用a,b表示,t表示接收的输入信息 int player; //player为1时,代表绿方下棋,2代表红方 int name[M][M]; //棋盘用一个15*15的二维数组表示 void reset(); //此函数实现重置功能,即将棋盘上的棋子清零 void chess(); //此函数实现下棋功能,是非常重要的 void win(); //此函数实现判断功能,即每当一方落子后,都要调用此函数 void explain(); //此函数是解释说明的函数 void output(int count[]); //此函数输出赢的一方 void gotoxy(int x,int y) { HANDLE hout; //这是实现光标移动的函数,具体可以百度一下 COORD coord; //x,y即为棋子的坐标,和a,b一样 coord.X = x; //此函数是将当前光标移动到x,y坐标处 coord.Y = y; hout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hout,coord); } }; // main 函数 int main() { Qipan qipan; //定义一个棋盘对象 do { system("cls"); //清屏函数 cout<<"1.开始游戏 "<

java课程设计报告 标准化考试系统

甘肃政法学院计算机科学学院Java程序设计课程设计 题目标准化考试系统 计算机科学学院计算科学与技术专业11级专升本班 学号:201181210115 姓名:刘昆明 指导教师:李瑞生 成绩:____________ 完成时间:2011年 11月

目录 1.设计内容及要求 (1) 1.1 标准化考试系统的基本要求 (1) 1.2 需实现的主要功能 (1) 2.需求分析 (2) 2.1数据库设计 (2) 2.2服务器端和客户端的数据传输方式 (2) 2.3 服务器端功能设计 (2) 2.4客户端功能设计 (3) 3.总体设计 (4) 3.1 总体功能图 (4) 3.2 总体流程图 (6) 4.数据库设计 (7) 4.1 数据库及表结构的建立 (7) 4.2 JAVA 数据库的连接 (8) 5. 主要功能设计流程 (8) 5.1服务器端设计流程图 (8) 5.2客户端设计流程图 (9) 6.代码实现 (10) 6.1类之间关系图 (10) 6.2 运行效果图 (11) 6.3 程序打包发布过程 (17) 7. 总结与说明 (18) 8. 参考文献 (18)

标准化考试系统设计与实现 【摘要】:在现今知识爆炸的年代里,教学的质量和怎样提高教师的工作效率成了各大院校的首要任务。找题、选题和出卷就成为一项非常重要的工作。每学期教师都要为各类考试付出大量的精力和工作,尤其是一位教师教授多门学科的时候,工作量将成倍增加。因此开发此考试系统,对各专业课程的问卷进行整理入库,以便在需要的时候能够及时、方便、快速的对学生进行各级测试,从而使考试过程趋于简单化,减少教师在这方面的工作负担。 因此,使用现在的新技术,开发出适应新的需求的新系统刻不容缓。 四年的大学生活转瞬既逝,在这四年中,我系统的学习了计算机科学与技术专业的所有课程。深入的学习了各个科目的理论知识,对专业知识有了整体的掌握。在即将毕业之际,为了理论联系实际,检验自己的学习成果,我选择了这个题目作为课程设计。在此毕业设计的完成过程中,我严格遵循软件开发的过程,将理论知识与具体问题相结合。在应用程序开发中我一方面学习了软件编程思想,另一方面具体的运用了JAVA语言。体会了他的诸多功能和特色。熟悉了数据库应用程序的开发原理。确实达到了学校和辅导教师对我们应届毕业生的各种要求。 【关键词】:J2ME;标准化考试;设计与实现 1

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

课程设计-c语言设计-五子棋游戏 0528

课程设计-c语言设计-五子棋游戏

河南城建学院 测绘与城市空间信息系 测绘程序设计 题目: 五子棋游戏 班级: 0614112 人数: 3人 成员: 学号: 指导老师: 时间:2012年6月

目录 1课程设计报告-------------------2 1.1问题描述----------------------2 1.2 任务分工- - - - - - - - - - - - - - - 2 1.3需求分析---------------------------3 1.4概要设计-----------------------3 1.5详细设计-----------------------4 1.6调试分析---------------------5 2源程序---------------------6 3程序的说明文件-------------------12 4课设总结-----------------------13

1.课程设计报告 1.1问题描述 连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。 1.2 五子棋的背景 传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为15×15,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。 1.2 任务分工 组长:赵哲武 负责小组程序的输入和创新部分,分配任务,使工作衔接有序,以

在线考试系统课程设计

一、需求分析 计算机技术没有应用到考试上时,组织一次考试只是要经过五步:人工出 题,考生考试,人工阅卷,成绩评估和试卷分析,这是一项十分繁琐和容易出错的工作,教师的工作量非常的大。很明显,传统的考试方式已经不再适应现代考试的需要。如今,信息技术的迅猛发展,应用不断扩大,教学和虚拟大学等相继出现,这些应用正逐步深入到千家万户,人们迫切要求利用这些技术来进行在线考试,以减少教师的工作负担并提高工作效率,同时提高考试的质量,从而使考试更趋于公正,客观,更加激发学生的兴趣。例如,目前许多国际著名的计算机公司所举办的各种认证考试绝大部分是采用这种形式。 二、数据库设计 1, 概念模型设计(E —R 图) 用户信息 是否已经登录 用户姓名 用户账号 用户密码 是否参加了考试 用户类型 试题题库 选项C 选项D 选项E 选项F 选项B 选项A 试题类型 试题编号 试题答案 试题题目

学生考试试卷 试卷类型 题库中的编号 题目在试卷中的编号 题目答案 选项A 选项C 选项B 选项D 选项E 考生答案 学生成绩 考生编号 考生成绩 选择题成绩 判断题成绩 填空题成绩 系统参数 考试时间 参数编号 选项F

2、E-R图转为逻辑模型的方法及过程 在sql中创建一个新的数据库CET6,以E—R图中的实体的名称创建表。设计表时,以该E—R图中的属性为列名,根据实际情况确定其数据类型和长度,在必须唯一的列名处设计主键。在sql中一共建立七个表来实现CET6模拟考试系统应用程序数据的连接。其中,UserType表示数据类型,0表示学生,1表示管理员。UserId表示用户账号,UserName表示用户姓名,UserPsw表示用户密码。HaveIn,HaveTest分别表示用户是否登录和参加考试。TypeId,TypeName分别表示试题类型和试题类型名。XZT_BL,XZT_FZ分别表示选择题的分值和比例。判断题和填空题类推。StudentId表示考生考号,TopicId、PaperTopId分别表示试题在题库和试卷中的编号。TopicName、TopicAnswer表示试题题目和答案。 3、逻辑模型 TB_User(用户信息表) TB_TestType(试题类型表) TB_Param(系统参数表) TB_StuTest(学生考试试卷表) TB_Grade(学生分数表)

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

c语言程序设计五子棋

伊犁师范学院高级语言课程设计报告 学院:电子与信息工程学院 学生姓名: 学号: 专业届别: 指导教师: 完成时间:

五子棋游戏 1 设计目的及要求 目的: (1)学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步巩固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。 (2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的程序设计. (3)掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。 (4)运用所学的知识了解五子棋游戏的制作结构,将所学的知识运用于实践中。 要求: (1)独自设计、编制、调试出一款五子棋游戏。 (2)要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C语言中的各种语句、结构。(如其中需要注意全局变量和局部变量的申明,数组的使用等)(3)五子棋游戏要求能够进入欢迎界面,当有五颗相同颜色的棋子连续连成五颗,就胜出。 任务: 五子棋是一种传统的棋盘游戏,是我国古代传统的黑白棋种之一发展于日本,流行于欧洲任务内容就是设计一款老少皆宜、能够锻炼个人策略谋划能力棋。有助于孩子开发智力,或者闲暇时打发时间。原则: (1)系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。 (2)可靠性。可靠性是指系统抵御外界干扰的能力及外界干扰时的恢复能力。

(3)规范性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量避免不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。 2 开发工具 C语言 3 应用平台 Windows xp 4 功能设计 游戏分析: 五子棋是两人之间的竞技游戏,该五子棋程序基本上实现了五子棋游戏的功能,有双方下棋之前的欢迎界面及下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,就没有设置悔棋的相关模块。 游戏介绍: 该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进行游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标则会在棋盘上显示棋子,(若是输入的坐标超出棋盘或者该位子已经有子则会提示玩家重新输入坐标位子),若输入则退出游戏。 4.1 算法设计 程序说明: 五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15*15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各方向上连成一线时,则该方获胜。 程序要求: 按照程序说明编写五子棋程序,要求可以进行双人之间的游戏。程序输出: 输出棋盘、棋子,并能够进行相应的操作。

java在线考试系统课程设计_

目录 第一章引言 (2) 1.1 目的 (2) 1.2 名词解释 (3) 1.3 参考资料 (3) 1.4 文档结构 (3) 第2章远景 (4) 2.1 项目概述 (4) 2.1.1 项目功能结构 (4) 2.1.2 功能摘要 (7) 2.1.3 用户特点 (8) 2.1.4 业务模型 (8) 第3章需求分析 (8) 3.1 功能需求 (8) 3.1.1 系统管理 (8) 3.1.2 题库管理 (8) 3.1.3 组卷管理 (9) 3.1.4 试卷管理 (9) 3.1.5 在线考试 (9) 3.1.6 批卷 (9) 3.1.7 信息统计 (9) 3.2 非功能需求 (9) 3.2.1 访问控制 (9) 第4章体系结构 (10) 4.1 逻辑视图 (10) 4.2 流程视图............................................ 错误!未定义书签。 4.3 数据库结构.......................................... 错误!未定义书签。第5章设计实现 .. (11) 5.1 5.1系统管理 (11) 5.2 5.2试题题型........................................ 错误!未定义书签。 5.2.1 单选题........................................ 错误!未定义书签。 5.2.2 多选题........................................ 错误!未定义书签。 5.2.3 判断题........................................ 错误!未定义书签。 5.2.4 填空题........................................ 错误!未定义书签。 5.2.5 问答题........................................ 错误!未定义书签。 5.3 试卷管理............................................ 错误!未定义书签。 5.4 组卷管理............................................ 错误!未定义书签。

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

五子棋优秀教案1-5[1]

五子棋兴趣小组活动教案 第一课时认识五子棋(一) 学习目标: 1、认识五子棋棋盘,知道棋盘是有横竖各15条平行线交叉组成及棋盘上的4星1天元; 2、认识五子棋棋子,知道五子棋棋子是黑白225枚子,黑113枚子,白112枚子。 学会五子棋执棋方式。 3.了解五子棋的历史及比赛的计时制。 重点、难点: 认识五子棋棋盘,知道棋盘是有横竖各15条平行线交叉组成及棋盘上的4星1天元;认识五子棋棋子,知道五子棋棋子是黑白225枚子,黑113枚子,白112枚子;学会五子棋执棋方式。 一、谈话导入。 1、同学们,课前老师让你们收集并了解有关五子棋的资料,那谁愿意把自己收集到的知识讲给大家听? 2、学生汇报所收集的资料。 3、通过资料的收集,我们了解了许多五子棋的知识。 二、新课 1、五子棋的历史 五子棋是我们中国发明的,距离现在已经有四千多年的历史了 2、认识五子棋棋盘。出示图1

第二课时认识五子棋(二) (1)生观察棋盘,发现问题,提出质疑。 (2)通过其他学生的已有知识解决问题,师补充小结:棋盘由纵横各15条等距离、垂直交叉的平行线构成,形成225个交叉点。以对局开始时的黑方为准,棋盘上的纵行线从下向上用阿拉伯数字1—15 标记(注:QQ棋盘上的数字则从上向下标记),横行线从左到右用英文字母A--O标记,其中H8点为天元;D4、D12、L12、L4四点为星。 3、认识棋子。 (1)师演示,生直观:棋子由黑白两种颜色组成。师补充:共有225个棋子,与交叉点的个数相同;其中黑棋113个,白棋112个,不过平时下棋棋子少些也是可以的。 (2)正确的执棋方式。 师演示:是食指的指甲与中指的指肚儿夹住棋子。棋子落在 棋盘的交叉点上,落下后不能移动。 生执棋练习:先从自己的棋盒里拿棋,放到棋盘上的交叉点上。然后同桌之间比赛,看谁拿的快,放的准。 4.了解五子棋比赛计时制 (一)比赛时限 比赛时限可分每方30分钟到5小时不等,但一般要求一天内必须结束。有些比赛受条件限制,也可采用双方共用时限的方法,时限时间约是单方时限的双倍。双方共用时限到时后,可用限时走棋(几分钟之内走完若干手棋)或到时读秒的后续手段,直到该局结束。读秒时限,多采用1分钟制,凡一着棋用时不足1分钟,可不计时间,到1分钟则判负。 (二)迟到时限 比赛前,组织者都会规定迟到时限,一般为15分钟,每场比赛迟到时限一到,未到场的棋手均按弃权判负。

java在线考试系统课程设计

目录 第一章引言.............................................. 1.1目的 ............................................... 1.2名词解释 ........................................... 1.3参考资料 ........................................... 1.4文档结构 ...........................................第2章 ............................................................................................... 远景 2.1项目概述 ........................................... 2.1.1................................................................... 项目功能结构 2.1.2........................................................................... 功能摘要 2.1. 3........................................................................... 用户特点 2.1.4........................................................................... 业务模型第3章 ........................................................................................ 需求分析 3.1功能需求 ........................................... 3.1.1........................................................................... 系统管理 3.1.2........................................................................... 题库管理 3.1.3........................................................................... 组卷管理 3.1. 4........................................................................... 试卷管理 3.1.5........................................................................... 在线考试 3.1.6.................................................................................. 批卷

五子棋课程设计实验报告

西南交通大学 程序语言综合课程设计 五子棋游戏 课程《程序语言综合课程设计》 学院信息科学与技术学 专业软件工程 姓名 学号 20119050 日期 2016年月日

目录 第一章课程设计的目的和要求 (3) 1.1 课程设计的目的 (3) 1.2 课程设计的要求 (3) 1.3 课程设计的实验环境 (3) 第二章功能描述 (4) 第三章总体设计 (5) 3.1 功能模块设计 (5) 3.1.1 任务执行流程图 (5) 3.1.2 下棋函数流程图 (6) 3.2 数据结构设计 (7) 3.2.1 定义结构体 (7) 3.2.2 定义数组 (7) 3.2.3 全局变量 (7) 3.3 函数功能描述 (7) 第四章程序实现 (8) 4.1源码分析 (8) 4.2运行结果及界面介绍 (22) 第五章后记 (27)

第一章课程设计的目的和要求 1.1 课程设计的目的 1.加深对C语言数据类型,运算,语句结构及其程序设计的基本方法理解和掌握; 2.熟练掌握流程图的绘制、程序设计文档的书写; 3.通过编写一个完整的程序,一方面可以检查我们这学期的学习情况,为以后的学习打下坚实的基础; 4.熟悉C语言游戏编程,掌握五子棋游戏开发的基本原理,从而为以后的程序开发奠定基础。 1.2 课程设计的要求 1、编写程序代码,调试所写程序使其能够正确运行; 2、能进行基本的五子棋操作,有图形界面,能够用键盘操作; 3、能够实现悔棋、存档和读档等附加功能 1.3 课程设计的实验环境 该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下: 硬件:Cpu:2.1GHZ,内存,2GB,硬盘:320GB,操作系统:windows xp 软件环境:安装VC++6.0

在线考试系统设计与开发(课程设计)

课程设计 题目:在线考试系统设计与开发

1 引言 现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即出卷、考生考试、阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分繁琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,从而提高了考试的质量,使考试更趋于公证、客观、激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。 为了适应新形势的发展,目前国内有很多公司团体研究开发了基于Web的考试系统。而我们知道网络应用软件运行的模式主要有二类:Client/Server模式、Browser/Server模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展而应运而生的一种技术,在这种模式下,客户端需要一个浏览器,服务器端是Web Server ,而Web Server是与数据库和应用服务器的紧密结合,可见,这种模式是瘦客户端,即对客户端的要求不高.如今,很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。然而,随着技术的发展,更先进的模式纷纷被提出并时兴起来,其中J2EE就是比较成熟的一种。 2 在线考试系统构架 2.1 在线考试系统一般需求分析 在线考试系统应具有以下要求: 1)由于考试对应的是特定的对象,所以系统需要经过有效的身份验证才可以登陆。并且系统需要有可以管理会话的功能。以便在考试过程中全程跟踪考试状态。 2)系统的权限一般分为两种:管理员和学生。不同的身份使用不同的权限和功能。 3)管理员需要对试题和考生进行有效的管理,负责试题的录入及更新和修改,对试题的分类,每次考试前,需要对试场环境和考生状态进行考前初始化工作。要注意的是,鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。 4)系统要有良好的试卷上传和回收功能,确保信息传送的正确性。 5)系统要有一个友善的界面,确保考生考试的顺利进行。 6)因为试卷中的主观题需要老师批改,可能需要一段时间才能查询到成绩。但如果试卷是由客观题型组成的,考生就可以在考试结束后查询到自己的成绩了。 7)系统提供对考生成绩的统计和查询等管理功能。 8)系统应具有良好的安全性管理。

相关文档
相关文档 最新文档