资源描述
沈 阳 工 程 学 院
信 息 学 院
C语言程序设计实践
课 程 设 计
设计题目: 俄罗斯方块游戏
系 别 班级
学生姓名
学 号
指导教师 职称 副教授/讲师
起止日期: 2016年12月16日起——至 2011年01月06日止
沈 阳 工 程 学 院 信 息 学 院
C语言程序设计实践 课程设计成绩评定表
系(部): 物联网工程系 班级: 学生姓名:
指 导 教 师 评 审 意 见
评价内容
具 体 要 求
权重
评 分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以8)
分
加权分合计
指 导 教 师 签 名:
年 月 日
评 阅 教 师 评 审 意 见
评价内容
具 体 要 求
权重
评 分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以4)
分
加权分合计
评 阅 教 师 签 名:
年 月 日
答 辩 小 组 评 审 意 见
评价内容
具 体 要 求
权重
评 分
加权分
学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.5
5
4
3
2
答 辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.5
5
4
3
2
答辩小组评审成绩
(加权分合计乘以8)
分
加权分合计
答辩小组教师签名:
年 月 日
课 程 设 计 总 评 成 绩
分
沈 阳 工 程 学 院 信 息 学 院
C语言程序设计实践 课程设计成绩评定表
系(部): 班级: 学生姓名:
指 导 教 师 评 审 意 见
评价内容
具 体 要 求
权重
评 分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以8)
分
加权分合计
指 导 教 师 签 名:
年 月 日
评 阅 教 师 评 审 意 见
评价内容
具 体 要 求
权重
评 分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以4)
分
加权分合计
评 阅 教 师 签 名:
年 月 日
答 辩 小 组 评 审 意 见
评价内容
具 体 要 求
权重
评 分
加权分
学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.5
5
4
3
2
答 辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.5
5
4
3
2
答辩小组评审成绩
(加权分合计乘以8)
分
加权分合计
答辩小组教师签名:
年 月 日
课 程 设 计 总 评 成 绩
分
沈阳工程学院信息学院
《C语言程序设计实践》
课程设计任务书
课程设计题目: 俄罗斯方块游戏
系 别 班级
学生姓名
学 号
指导教师 职称 副教授、讲师
课程设计进行地点: 实训楼F六楼机房
任 务 下 达 时 间: 2016年 12 月 14 日
起止日期:2016年12月16日起——至2016年01月06日止
系主任 2016年 12 月 09 日批准
一、 课程设计的原始资料及依据
查阅有关资料,进一步理解面向对象程序设计的思想,并编写一个简单的应用程序系统。通过本设计可以加深理解使用结构化程序设计思想开发一个系统的方法,提高分析问题、解决问题和实际动手的能力。
二、课程设计主要内容及要求
设计内容:
1. 游戏信息:俄罗斯方块,四种方块,可以移动;
2. 游戏功能;方块的形状变化,满行消减等功能
3. 可分别添加、删除、查询;
4. 有能力的需要保存。
设计要求:
1. 要求利用结构化的方法完成系统的设计;
2. 要求在设计的过程中建立清晰度层次结构;
3. 设计功能满足要求、易于操作的友好界面;
4. 界面中需有菜单;
5. 在系统的设计中,至少要建立5个以上独立函数;
6. 要求操作简单,用户界面友好。
7. 运行程序,检查结果是否和理论值一致。
8. 在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。
三、对课程设计说明书撰写内容、格式、字数的要求
1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。
2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。
4.课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
5.课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
四、设计完成后应提交成果的种类、数量、质量等方面的要求
1.完成“任务书”中指定的功能,运行结果正确。
2.课程设计说明书。
五、时间进度安排
顺序
阶段日期
计 划 完 成 内 容
备注
1
第1天
进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤
2
第2天
需求分析
3
第3天
概要设计
4
第4-5天
详细设计
5
第5—8天
编码、调试
6
第9-10天
程序答辩,撰写课程设计报告
六、主要参考资料(文献)
[1]谭浩强.《C程序设计》(第三版).北京: 清华大学出版社.2006
[2]陈天洲.《C语言高级程序设计》. 北京:人民邮电出版社.2002
[3]杨旭.《C语言程序设计案例教程》.北京: 人民邮电出版社.2005
[4]郭翠英.《程序设计案例经典》.中国水利电力出版社.2004
[5]谭浩强.《程序设计基础》.北京:清华大学出版社.2004
[6]张翔.《C语言函数大全》 电子工业出版社.2005
[7]王为青.《C语言高级编程及实例剖析》.北京:人民邮电出版社.2008.02
[8]徐慧.《C语言实例解析精粹》.北京:人民邮电出版社.2006.04
[9]姚大鹏 栾好利 张翼英 等编著.《C语言程序设计教程习题与上机实训指导》.中国水利水电出版社.2005
2
课 程 设 计 任 务 分 工
组长姓名
题目
俄罗斯方块游戏
项目组成员
个人任务描述
自我评定
程序的注释以及材料编写
良好
函数的查找与调用
良好
沈阳工程学院课程设计报告 目 录
目 录
第1章 绪 论 1
1.1开发背景及其开发意义 1
1.2需求分析 1
第2章 系统开发环境 2
2.1开发环境描述 2
2.1.2系统总体功能设计 2
2.1.3操作设计 2
2.1.4 系统说明(帮助)功能 4
2.2模块实现的功能 4
第3章 系统分析 6
3.1算法分析 6
3.1.1定义方块的数据结构 6
3.2程序流程图 6
第4章 系统实现与调试 8
4.1调试过程:错误信息和解决方法 8
4.2系统运行的结果 8
结 论 25
致 谢 26
参考文献 27
I
沈阳工程学院课程设计报告 第1章 绪论
第1章 绪 论
1.1开发背景及其开发意义
在现代信息高速发展的时代,电子游戏已经成为人们生活中不可缺少的一部分,也是老少皆宜的娱乐方式。在电子科技还不是很发达的中国,游戏的发展还是受到技术的限制,随着游戏行业的迅速发展,游戏研发称为国家科技和经济上重大的突破方向。
掌上游戏机和电视游戏机在80年代和90年代风靡一时,此时由苏联人阿列克谢·帕基特诺夫制作的俄罗斯方块在掌上游戏机和电视游戏机上流行,其造成的轰动和经济价值成为游戏史上的大事。俄罗斯方块是一个老少皆宜的小游戏,它实现由四个正方形的色块组成,然后存储于一个数组的四个元素中,计算机随机产生七种不同类型的方块,根据计算机时钟控制他在一定的时间不停地产生,用户根据键盘的四个方向近些年向左、向右、向上、向下,翻转操作。然后程序根据这七种方块折叠成各种不同的类型。基于Windows的游戏设计方式很多,如基于Java的跨平台设计,基于.net平台的设计,基于JAVA的设计由于运行在虚拟机上运行,效率比较低;而.net的设计通用性不是很好,为了避免这些缺点,本文采用EVC在ARM平台上进行设计来完成俄罗斯方块游戏。
1.2需求分析
俄罗斯方块是一个比较简单的游戏。它游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转,如果某一行被方块充满了,那就将些行消掉;而当窗口中无法再容纳下落的方块时,就宣告游戏的结束。游戏的需求分析如下:
界面设计需求:
(1) 实验功能需求虽需要的按钮
(2) 显示积分和等级的文本
(3) 下一个方块下落提示界面,需要用不同的颜色表示
(4) 游戏运行界面
功能需求:
(1) 实现各种方块的生产,包括形状和颜色等信息;
(2) 实现各个方块的上下左右移动和旋转的功能(鼠标操作和键盘操作)。
(3) 实现消行的功能;
(4) 实现得分的统计功能;
(5) 实现开始,暂停,结束等功能;
1
沈阳工程学院课程设计报告 第2章
第2章 系统开发环境
2.1开发环境描述
俄罗斯方块游戏软件基于ARM的wince5.0平台,利用PXA270RP实验箱模拟仿真器,利用evc编程来具体实现,在实验箱的触摸屏上进行游戏。
嵌入式系统作为芯片和软件的集成体,在科学研究、工业控制、军事技术、医疗卫生、消费电子等方面有着普遍的应用,此软件基于ARM处理器和windows CE 的研究平台,windows CE是由优先级的多任务操作系统它允许多重功能、进程,在相同的时间系统中运行Windowns CE 支持最大的32位同步进程,微软Windowns CE被设计成针对小型设备的通用操作系统,它可以通过设计一层位于内核和硬件之间代码来设定硬件平台。嵌入式工具包包括设备驱动器(DDK)和软件开发包(SDK),DDK提供了关于写驱动器的附加文本,SDK提供库、头文件、样本代码、文本以允许,开发者对基于Windowns CE的平台进行写操作,Windowns CE提供了相同的程序界面,以用来为其他的视窗操作系统开发功能。
2.1.2系统总体功能设计
首先需要对俄罗斯方块的设计和功能需求进行详细的了解和分析,一个具有功能完全满足基本需要的系统需要包括以下几个功能模块。如图2-1所示是俄罗斯方块总体设计功能图。
2.1.3操作设计
操作设计包括:
①游戏开始结束暂停操作设计:在游戏界面上有开始、结束、暂停按钮,用鼠标操作,选择是否要进入游戏。
②方块形状转换操作:
良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。如表2-1-1所示俄罗斯方块定位点设置表
俄罗斯方块定位点设置,以黑色点为(0,0)坐标
状态 类型
1
2
3
4
1
z
z
z
z
zzzz
2
zz
zz
3
z
zzz
z
zz
z
zzz
z
z
zz
z
4
z
zzz
zz
z
z
zzz
z
z
z
zz
5
z
zzz
z
z
zz
zzz
z
zzz
z
6
zz
zz
z
zz
z
7
zz
zz
z
z
z
z
表2-1-1 俄罗斯方块方块形状图
键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。
③消行操作:
当方块落到游戏界面最底部并且铺满最后一行,就能消去所在这一行,积分增加100分,而积分增加到一定数值时,玩家等级增加。
④积分等级记录设计:
随着玩家对游戏的熟悉程度,对游戏的掌握程度,当玩家进行操作所消的行数越多,积分增加得越多,玩家等级也随之增加。
2.1.4 系统说明(帮助)功能
在此功能中需要完成的功能有:提供给用户系统使用的的详细说明和玩家如何玩游戏的详细说明,以便玩家熟练的操作此游戏。
使用说明:俄罗斯方块的基本规则是移动(向左、向右、下移),旋转和摆放游戏自动的输出的各种方块,使之排列成完整的一行或者多行并且消除得分,由于上手简单,老少皆宜,从而家喻户晓,风靡世界。
游戏帮助:打开游戏时,点击“开始”按钮就可以开始游戏了,游戏过程中可以点击“左”“右”“下”“转换”按钮对随机出现的方块进行操作,使之排列成整行从而得分;得分越高,等级越高,方块下降的速度也会随着等级的增加而加快。
2.2模块实现的功能
(1) 绘图刷新模块:在此模块中可以绘制新的方块模型
void trsInit() //定义空类型:转换为二进制{
{
int sp[8][4] = {{15,4369},{23,785,116,547},{71,275,113,802},
{39,305,114,562},{54,561},{99,306},{51,51},{-1}};//方块形状
int *p, i, j, b;
for (p = sp[0]; *p >= 0; ++p) if ( *p == 0 ) *p = p[-2];
gt.pool = >._pool[4];//我们需要在原来的pool的界外用-1值填充,以便后面做碰撞检测减少不必要的代码
for (j = 0; j < 7; ++j)
for (i = 0; i < 4; ++i)
for (b = 0; b < 16; ++b)
gt.tmap[j+1][i][b] = (sp[j][i] & 1) * (j + 1),//记录形状的数组
sp[j][i] >>= 1;
memset(gt._pool, -1, sizeof(gt._pool));//替换并返回
for (i = 0; i < 10; ++i)//i < 10决定了游戏池的宽度为10
memset(>.pool[i], 0, sizeof(int[21]));//就是初始化pool,sizeof(int[21])决定了游戏池的高度是20
return ;//memset也是为了免写二重循环
}
(2) 开始结束暂停按钮的操作功能:实现对游戏的控制
if (k == 'S' || k == 's' || gt.t < 0)//判断下落键的按下,和是否到时间强制下落
{
if (trsCopy(gt.tmap[gt.s][gt.st], gt.x, gt.y+1, 0))++gt.y,gt.t=50;
else {
trsCopy(gt.tmap[gt.s][gt.st], gt.x, gt.y, 1);
for (--y; y > 0; --y)//开始是消行计算
{
for (x = 0; gt.pool[x][y] > 0; ++x);
if (gt.pool[x][y] < 0)
for (k = y++; k > 0; --k)
for (x = 0; gt.pool[x][0] >= 0; ++x)
gt.pool[x][k] = gt.pool[x][k-1];
} return 1;//如果是1就继续循环
}
(3) 方块的旋转操作:按向上的键就会使方块的旋转
else if (k == 'W' || k == 'w')
{
if (trsCopy(gt.tmap[gt.s][(gt.st+1) % 4], gt.x, gt.y, 0))
gt.st = (gt.st+1) % 4;
}
5
沈阳工程学院课程设计报告 第3章
第3章 系统分析
一、 系统的详细设计与实现
3.1算法分析
3.1.1定义方块的数据结构
对于方块在某一瞬间的位置的标识,我们采用了4*2的小数组标识出来,即用4个存储单位空间存储当前下坠物的每一个字块的位置,也就是说,用4个存储空间存储当前下坠唔的每一个字块的位置进行标识,而每一个存储空间的大小就是一个点的坐标值(x,y),二每个方块按照从左到右的方式进行编号,并且在编号的过程中对于同一列的方块实行从上带下进行编号,如图所示3-1:
图3-1示例
方块的表示方法:即四个小方块的坐标设定,其中一个方块是原点,坐标为(0,0);右侧方块坐标(1,0);下面的方块坐标(0,1),以此类推。
3.2程序流程图
如下图3-2所示,为程序流程图:
图3-2 程序流程图
13
沈阳工程学院课程设计报告 第4章
第4章 系统实现与调试
一、 系统实现与调试
4.1调试过程:错误信息和解决方法
开发俄罗斯方块程序中,要解决的技术难题如下:
⑴ 错误信息:C:\Users\qingxue\Desktop \brick\brick.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'.
解决方法:C:\WINCE500\OTHERS\MFC\INCLUDE路径添加到Microsoft eMbedded Visual C++ 4.0中ToolsàOptionsàDirectoriesàinclude files下即可。
⑵ 错误信息:LINK : fatal error LNK1104: cannot open file 'mfcs42d.lib'
解决方法:C:\WINCE500\OTHERS\MFC\LIB\X86路径添加到Microsoft eMbedded Visual C++ 4.0中ToolsàOptionsàDirectoriesàLibrary files下即可。
⑶ 下落时,如果确定方块是否可以下落,即是否已经落到“地”if(GameState==RUNNING)
{ if(Isbottom())//如果未到底
{ RefreshBricks();//刷新
for(int i=0;i<4;i++)
CurrentBrick[i].x++;//方块下降X增加
}
else //如果到底了
{ IsGameOver();
CanEraseALine();//消去一行
DrawNextBrick();//绘制下一个方块以提示
GenerateABrick();//生成新的方块
Number[0]=Number[1];
CreateNumber();//获取随机的数据
}
myDraw();
}
4.2系统运行的结果
(1) 游戏开始:点击游戏界面上的开始按钮,玩家就可以进行游戏的一系列操作。如图4-2所示
图4-2游戏开始运行界面
(2) 方块转换及下一个方块提示:点击界面上转换按钮或者按键盘上向上的按钮,都会使当前方块变换形式。如图4-1和4-2所示为方块形状转变前后的情形。
图4-1方块变换前视图
图4-2方块变后前视图
(3) 消行及积分累加等级变化操作:当当方块落到游戏界面最底部并且铺满最后一行,就能消去所在这一行,积分增加100分,而积分每增加500时,玩家等级增加1。如下图所示为消行前后游戏运行图以及积分等级变化图:
图4-4 消行前游戏运行图
图4-5 消行后游戏运行图
(4) 游戏结束:当方块累计顶到游戏运行界面上方边缘的时候,就结束游戏。
图4-8游戏结束图
二、 程序代码
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
char gcText[] = " 1LJTSZ#";
struct tetris {
int _pool[16][32], (*pool)[32], tmap[8][4][16];
int x, y, s, st, t;
}gt;
void trsInit() {
int sp[8][4] = {{15,4369},{23,785,116,547},{71,275,113,802},
{39,305,114,562},{54,561},{99,306},{51,51},{-1}};
int *p, i, j, b;
for (p = sp[0]; *p >= 0; ++p) if ( *p == 0 ) *p = p[-2];
gt.pool = >._pool[4];
for (j = 0; j < 7; ++j)
for (i = 0; i < 4; ++i)
for (b = 0; b < 16; ++b)
gt.tmap[j+1][i][b] = (sp[j][i] & 1) * (j + 1),
sp[j][i] >>= 1;
memset(gt._pool, -1, sizeof(gt._pool));
for (i = 0; i < 10; ++i)
memset(>.pool[i], 0, sizeof(int[21]));
return ;
}
int trsCopy(int sp[], int x, int y, int c) {
int i, cx, cy;
for (i = 0; i < 16; ++i) if (sp[i]) {
cx = x + (i & 3), cy = y + (i >> 2);
if (gt.pool[cx][cy])
if (c == 2) gt.pool[cx][cy] = 0; else return 0;
if (c==1) gt.pool[cx][cy] = sp[i];
}
return 1;
}
int trsScene() {
int x, y = 0;
COORD pos = {0};
gt.s = rand() % 7 + 1, gt.st = gt.t = 0;
gt.x = 3, gt.y = 0;
for (--gt.t; ; Sleep(1), --gt.t) {
int k = 0;
while (kbhit()) {
k = getch();
if (k == 27) return 0;
if (k == 'A' || k == 'a') {
if (trsCopy(gt.tmap[gt.s][gt.st], gt.x-1, gt.y, 0)) --gt.x;
} else if (k == 'D' || k == 'd') {
if (trsCopy(gt.tmap[gt.s][gt.st], gt.x+1, gt.y, 0)) ++gt.x;
} else if (k == 'W' || k == 'w') {
if (trsCopy(gt.tmap[gt.s][(gt.st+1) % 4], gt.x, gt.y, 0))
gt.st = (gt.st+1) % 4;
}
}
if (k == 'S' || k == 's' || gt.t < 0) {
if (trsCopy(gt.tmap[gt.s][gt.st], gt.x, gt.y+1, 0))++gt.y,gt.t=50;
else {
trsCopy(gt.tmap[gt.s][gt.st], gt.x, gt.y, 1);
for (--y; y > 0; --y) {
for (x = 0; gt.pool[x][y] > 0; ++x);
if (gt.pool[x][y] < 0)
for (k = y++; k > 0; --k)
for (x = 0; gt.pool[x][0] >= 0; ++x)
gt.pool[x][k] = gt.pool[x][k-1];
}
return 1;
}
}
trsCopy(gt.tmap[gt.s][gt.st], gt.x, gt.y, 1);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
for (y = 1; gt.pool[0][y] >= 0; ++y,putchar(10)) {
for (x = 0; gt.pool[x][0] >= 0; ++x) {
putchar(gcText[gt.pool[x][y]]);
}
}
trsCopy(gt.tmap[gt.s][gt.st], gt.x, gt.y, 2);
}
}
int main() {
srand((unsigned)time(NULL));
for (trsInit(); trsScene(); );
return 0;
}}
沈阳工程学院课程设计报告 结 论
结 论
在系统分析阶段,针对俄罗斯方块游戏,初步地定下了要实现的功能,并将整个游戏分成若干个部分,逐步解决过程中遇到的每一个问题,最终实现所想要的效果。
此程序的用户界面已基本实现了俄罗斯方块游戏的一些基本的控制操作,但由于时间和能力有限,程序难免存在许多不足之处,很多功能还没有完全实现。
若要实现游戏的扩展,设计出更加具有可玩性和好玩性的俄罗斯方块游戏,就要靠以后更多和更深入的学习,对此程序进行进一步的完善。
希望改善好的程序能够良好运行,能够达到所期望的成果。小游戏不只是一种消磨时间的游戏,也是一种陶冶情操的新方式。
通过小游戏,我们能够愉悦自己的身心。但是沉迷游戏上瘾,本游戏只能起到一个消磨时间的作用,在我们无事可做的时候可以打开程序玩几把,来打发这无聊的时光。
14
沈阳工程学院课程设计报告 致 谢
致 谢
15
沈阳工程学院课程设计 参考文献
参考文献
① 《EVC高级编程及其应用开发》 王兵 李存斌 陈鹏 等编著 中国水利水电出版社
② 《270RP_wince实验指导书》
③ 《嵌入式WinCE系统开发》实验指导书 张小进
④ 《Visual J++实战演练》 胡少波 编著 康创 策划 人民邮电出版社2000年8月
16
展开阅读全文