当前位置:文档之家› (完整版)《贪吃蛇游戏课程设计》报告

(完整版)《贪吃蛇游戏课程设计》报告

(完整版)《贪吃蛇游戏课程设计》报告
(完整版)《贪吃蛇游戏课程设计》报告

贪吃蛇游戏程序设计

一、课程设计任务

贪吃蛇小游戏程序设计

二、设计要求

通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。

(1).收集资料,分析课题,分解问题,形成总体设计思路;

(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;

(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;

(4).完成课程设计报告,并进行答辩

三、需求分析

3.1、程序功能

贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

3.2、设计思想

程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇

的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。

3.3、流程图

四、设计的具体实现

(1)函数定义

函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用

#define N 200

#define M 200

#include"graphics.h"

#include

#include

#include

#include

#include

#include

#include

#define LEFT 97//A

#define RIGHT 100//D

#define DOWN 115//S

#define UP 119//W

#define Esc 0x011b

int i,key;

int score=0;

int gamespeed=250;//游戏速度可根据实际情况自行调整

struct Food {

int x;//食物的横坐标

int y;//食物的纵坐标

int yes;//判断是否要出现食物的变量}food;//食物的结构体

struct Snake

{

int x[M];

int y[M];

int node;//蛇的节数

int direction;//蛇的移动方向

int life;//蛇的生命,0表示活着,1表示死亡

}snake;

void Init();//图形驱动

void Close();//图形结束

void DrawK();//开始画面

void GamePlay();//玩游戏的具体过程void GameOver();//游戏结束

void PrScore();//输出成绩

(2)主函数main( )

主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序

void main()//主函数

{

Init();//图形驱动

DrawK();//开始画面

GamePlay();//玩游戏的具体过程

Close();//图形结束

}

void Init()//图形驱动

{

int gd=DETECT,gm;

initgraph(&gd,&gm," ");/*此处为turboc的路径,读者可以根据自己的电脑而改*/ cleardevice();

}

(3)画界面函数DrawK( )

主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。

void DrawK()//开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙{

setbkcolor(GREEN);

setcolor(LIGHTRED);

setlinestyle(0,0,5);//设置线型

for(i=50;i<=600;i+=10)//画围墙

{

rectangle(i,40,i+10,49);//上边

rectangle(i,451,i+10,460);//下边

}

for(i=40;i<=450;i+=10)

{

rectangle(50,i,59,i+10);//左边

rectangle(601,i,610,i+10);//右边

}

}

(4)游戏具体过程函数GamePlay()

这是游戏的主要组成部分,他采用将前一节的坐标赋给后一节,用背景颜色将最后节去除,当蛇头的坐标与食物的坐标相等时,表示食物被吃掉了。

void GamePlay()//玩游戏的具体过程

{

rand();//随机数发生器

food.yes=1;//1表示需要出现新食物,0表示已经存在食物

snake.life=0;//蛇活着

snake.direction=1;//方向往右

snake.x[0]=100;snake.y[0]=100;//舌头坐标

snake.x[1]=110;snake.y[1]=100 ;

snake.node=2;//蛇的节数

PrScore();//输出分数

while(1)//可重复玩游戏,按ESC键结束

{

while(!kbhit())//在没有按键的情况下,蛇自己移动身体

{

if(food.yes==1)//需要出现新食物

{

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x%10!=0)//食物随即出现后必须让食物能够在整格内,这样才能让蛇迟到

food.x++;

while(food.y%10!=0)

food.y++;

food.yes=0;//画面上有食物了

}

if(food.yes==0)//画面上有食物就要显示

{

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food.y-10);

}

for(i=snake.node-1;i>0;i--)//蛇的每个环节往前移动,也就是贪吃蛇的关键算法

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

switch(snake.direction)//1,2,3,4表示上下左右四个方向,通过这个判断

来移动蛇头

{

case 1:

snake.x[0]+=10;break;

case 2:

snake.x[0]-=10;break;

case 3:

snake.y[0]-=10;break;

case 4:

snake.y[0]+=10;break;

}

for(i=3;i

{

if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])

{

GameOver();//显示失败

snake.life=1;

break;

}

}

if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455)//蛇是否撞到墙壁

{

GameOver();//本次游戏结束

snake.life=1;//蛇死

}

if(snake.life==1)//以上两种判断以后,如果蛇死就跳出内循环,重新开始break;

if(snake.x[0]==food.x&&snake.y[0]==food.y)//吃到食物以后

{

setcolor(0);//把画面上的食物去掉

rectangle(food.x,food.y,food.x+10,food.y-10);

snake.x[snake.node]=-20;

snake.y[snake.node]=-20;//新的一节先放在看不见得位置,下次循环就取前一节的位置

snake.node++;//蛇的身体长一节

food.yes=1;

score+=10;

PrScore();//输出新的得分

}

setcolor(WHITE);//画出蛇

for(i=0;i

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);

Sleep(gamespeed);

setcolor(0);//用黑色去除蛇的最后一节

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1 ]+10,snake.y[snake.node-1]-10);

}

if(snake.life==1)//如果蛇死就跳出循环

break;

key=getchar();//接受案件

if(key==Esc)//按ESC键退出

break;

else if(key==UP&&snake.direction!=4)

snake.direction=3;

else if(key==RIGHT&&snake.direction!=2)

snake.direction=1;

else if(key==LEFT&&snake.direction!=1)

snake.direction=2;

else if(key==DOWN&&snake.direction!=3)

snake.direction=4;

}//endwhile(1)

}

(5)游戏结束函数GameOver()

游戏结束,清除屏幕,输出分数,显示游戏结束信息。

void GameOver()//游戏结束

{

PrScore();

setcolor(RED);

outtextxy(100,100,"我会回来的!!!!!");

getch();

}

void PrScore()//输出成绩

{

char str[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

sprintf(str,"score:%d",score);

outtextxy(55,20,str);

}

void Close()//图形结束

{

getch();

closegraph();

}

五、调试及解决方法

可以按照程序运行的错误提示对原程序进行修改,在调试过程中有时也会遇到不懂的问题,我去图书馆或上网查阅一些资料或者是向老师请教也解决了对源程序一一修改直到运行成功。

六、测试结果

七、设计心得体会

在设计这个程序中我主要学会了如何运用以下有关C语言和C++的知识

1)函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序

十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增

加了程序的可读性。

2)分析函数先从main()函数入手。Main()函数是C++源程序编译时的开始,

从main()函数开始读函数可将其他函数的功能理解得更透彻。

3)在做程序的时候先列框架,将这个程序所要达到的目的(功能)分析出

来,选择正确的数据结构然后在将程序模块化,按照模块编写函数更加简单合理。

4)我还了解了很多的库函数的作用,如字符串函数中有很多对字符串进行

处理的函数,起功能我都有所了解。

5)学会了有关头文件的使用方法,及系统调配问题的解决方法等。

6)了解到了注释的重要性。

八、附录

1、参考文献:

谭浩强,《C++程序设计》清华大学出版社

郭翠英,《C语言课程设计案例精编》,中国水利水电出版社,2004.3

李丽娟,《C语言程序设计教程》人民邮电出版社

林华聪,《C语言程序设计思想与实践》冶金工业出版社

2、源代码

#define M 200

#include"graphics.h" #include #include

#include #include #include

#include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W

#define Esc 0x011b int i,key;

int score=0;

int gamespeed=250;//游戏速度可根据实际情况自行调整

struct Food

{

int x;//食物的横坐标

int y;//食物的纵坐标

int yes;//判断是否要出现食物的变量

}food;//食物的结构体

struct Snake

{

int x[M];

int y[M];

int node;//蛇的节数

int direction;//蛇的移动方向

int life;//蛇的生命,0表示活着,1表示死亡

}snake;

void Init();//图形驱动

void Close();//图形结束

void DrawK();//开始画面

void GamePlay();//玩游戏的具体过程

void GameOver();//游戏结束

void PrScore();//输出成绩

void main()//主函数

{

Init();//图形驱动

DrawK();//开始画面

Close();//图形结束

}

void Init()//图形驱动

{

int gd=DETECT,gm;

initgraph(&gd,&gm," ");/*此处为turboc 的路径,读者可以根据自己的电脑而改*/ cleardevice();

}

void DrawK()//开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙

{

setbkcolor(GREEN);

setcolor(LIGHTRED);

setlinestyle(0,0,5);//设置线型

for(i=50;i<=600;i+=10)//画围墙

{

rectangle(i,40,i+10,49);//上边

rectangle(i,451,i+10,460);//下边}

for(i=40;i<=450;i+=10)

{

rectangle(50,i,59,i+10);//左边

rectangle(601,i,610,i+10);//右边}

}

void GamePlay()//玩游戏的具体过程

rand();//随机数发生器

food.yes=1;//1表示需要出现新食物,0表示已经存在食物

snake.life=0;//蛇活着

snake.direction=1;//方向往右

snake.x[0]=100;snake.y[0]=100;//舌头坐标

snake.x[1]=110;snake.y[1]=100 ;

snake.node=2;//蛇的节数

PrScore();//输出分数

while(1)//可重复玩游戏,按ESC键结束

{

while(!kbhit())//在没有按键的情况下,蛇自己移动身体

{

if(food.yes==1)//需要出现新食物

{

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x%10!=0)//食物随即出现后必须让食物能够在整格内,这样才能让蛇迟到

food.x++;

while(food.y%10!=0)

food.y++;

food.yes=0;//画面上有食物

}

if(food.yes==0)//画面上有食物就要显示

{

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food .y-10);

}

for(i=snake.node-1;i>0;i--)//蛇的每个环节往前移动,也就是贪吃蛇的关键算法

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

switch(snake.direction)//1,2,3,4表示上下左右四个方向,通过这个判断来移动蛇头

{

case 1:

snake.x[0]+=10;break;

case 2:

snake.x[0]-=10;break;

case 3:

snake.y[0]-=10;break;

case 4:

}

for(i=3;i

{

if(snake.x[i]==snake.x[0]&&snake.y[i]= =snake.y[0])

{

GameOver();//显示失败

snake.life=1;

break;

}

}

if(snake.x[0]<55||snake.x[0]>595||snak e.y[0]<55||snake.y[0]>455)//蛇是否撞到墙壁

{

GameOver();//本次游戏结束

snake.life=1;//蛇死

}

if(snake.life==1)//以上两种判断以后,如果蛇死就跳出内循环,重新开始

break;

if(snake.x[0]==food.x&&snake.y[0]==foo d.y)//吃到食物以后

setcolor(0);//把画面上的食物去掉

rectangle(food.x,food.y,food.x+10,food .y-10);

snake.x[snake.node]=-20;

snake.y[snake.node]=-20;//新的一节先放在看不见得位置,下次循环就取前一节的位置

snake.node++;//蛇的身体长一节

food.yes=1;

score+=10;

PrScore();//输出新的得分

}

setcolor(WHITE);//画出蛇

for(i=0;i

rectangle(snake.x[i],snake.y[i],snake. x[i]+10,snake.y[i]-10);

Sleep(gamespeed);

setcolor(0);//用黑色去除蛇的最后一节

rectangle(snake.x[snake.node-1],snake. y[snake.node-1],snake.x[snake.node-1]+10,s nake.y[snake.node-1]-10);

if(snake.life==1)//如果蛇死就跳出循环

break;

key=getchar();//接受案件

if(key==Esc)//按ESC键退出

break;

else

if(key==UP&&snake.direction!=4)

snake.direction=3;

else

if(key==RIGHT&&snake.direction!=2)

snake.direction=1;

else

if(key==LEFT&&snake.direction!=1)

snake.direction=2;

else

if(key==DOWN&&snake.direction!=3)

snake.direction=4;

}//endwhile(1)

}

void GameOver()//游戏结束

{

cleardevice();

PrScore();

setcolor(RED);

outtextxy(100,100,"我会回来的!!!!!");

getch(); void PrScore()//输出成绩

{

char str[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

sprintf(str,"score:%d",score);

outtextxy(55,20,str);

}

void Close()//图形结束

{

getch();

closegraph();

}

数据结构课程设计报告(完整版)[1]

第二题:电梯模拟 1、需求分析: 模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。九个楼层由下至上依次称为地下层、第一层、第二层、……第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。 乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。 模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如:有人进出时,电梯每隔40t测试一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均需要25t;如果电梯在某层静止时间超过300t,则驶回1层侯命。 而题目的最终要求输出时: 按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。 2、设计 2.1设计思想: (1)数据结构设计 本题中的电梯的变化,是一个动态变化的过程,要在动态过程中实现 正常跳转,首先要确定各种跳转的状态,因而这里我使用枚举类型来 表示电梯的各种状态的: enum {up,down,stop,home}State(home); 同时初始化最初状态为电梯在本垒层。而在电梯的运行过程中对于乘 客来说,显然有一个进入电梯与出电梯的队列,因而在这里我是用的 链表来实现这个过程的,同时用结构体来保存该乘客的信息: typedef struct passage { int now;//乘客当前所在的位置 int dis;//乘客的目地地 int wait;//最长的等待的时间 int waitnow;//已经等待的时间 struct passage *next; }Passage; 虽然电梯中的状态是由枚举类型来实现的,但是在整个程序的运行过 程中,我还是为电梯设置了一个结构体类型,以便保存更多的信息: typedef struct lift { int count_C;//计数电梯已到达的层数 int count_A;//系统的总时间计数器记得必须初始化为0 int flag_in[High];//九个楼层有无请求的标志哪个楼层如果有请 求该标志置1 int num;//等待队列中的人数记得要进行初始化为0 int people;//电梯中人数

手机APP测试报告模板【完整版】

招标手机APP测试总结报告

目录 1.测试概述 (1) 1.1.编写目的 (1) 1.2.测试范围 (1) 2.测试计划执行情况 (1) 2.1.测试类型 (1) 2.2.测试环境与配置 (2) 2.3.测试人员 (3) 2.4.测试问题总结 (3) 3.测试总结 (3) 3.1.测试用例执行结果 (3) 3.2. 安全测试 (6) 3.2.1. 软件权限 (6) 3.2.2. 安装与卸载安全性 (7) 3.2.2. 数据安全性 (7) 3.2.3. 通讯安全性 (9) 3.2.4. 人机接口安全性 (9) 3.3. 安装、卸载测试 (10) 3.3.1. 安装 (10) 3.3.2. 卸载 (10) 3.4. UI测试 (11) 3.4.1. 导航测试 (11) 3.4.2. 图形测试 (11) 3.4.3. 内容测试 (12)

3.5. 功能测试 (12) 3.5.1. 运行 (12) 3.5.2. 注册 (12) 3.5.3. 登录 (13) 3.5.4. 注销 (13) 3.5.5. 应用的前后台切换 (14) 3.5.6. 免登入 (14) 3.5.7. 数据更新 (15) 3.5.8. 离线浏览 (15) 3.5.9. APP更新 (16) 3.5.10. 时间测试 (16) 3.5.11. 性能测试 (16) 3.5.12. 交叉性事件测试 (16) 3.6. 兼容测试 (17) 3.7. 用户体验测试 (18) 4.测试结果 (18)

1.测试概述 1.1.编写目的 本测试报告为招标手机APP的测试报告,目的在于总结测试阶段的测试情况以及分析测试结果,描述系统是否符合用户需求,是否已达到用户预期的功能目标,并对测试质量进行分析。 测试报告参考文档提供给用户、测试人员、开发人员、项目管理者、其他管理人员和需要阅读本报告的高层经理阅读。 1.2.测试范围 测试主要根据用户需求说明书和软件需求规格说明书以及相应的文档进行系统测试,包括功能测试、性能测试、安全性和访问控制测试、用户界面测试以及兼容性测试等,而单元测试和集成测试由开发人员来执行。 主要功能包括:用户登录、我的项目、推荐项目订阅、行业资讯、我的收藏、意见反馈、我的CA锁。 2.测试计划执行情况 2.1.测试类型

课程设计实验报告

竭诚为您提供优质文档/双击可除 课程设计实验报告 篇一:课程设计(综合实验)报告格式 课程设计报告 (20XX--20XX年度第一学期) 名称:题目:院系:班级:学号:学生姓名:指导教师:设计周数: 成绩:日期:《软件设计与实践》课程设计计算机系软件设计与实践教学组 20XX年1月14 日 《软件设计与实践》课程设计 任务书 一、目的与要求 1.了解网络爬虫的架构和工作原理,实现网络爬虫的基本框架;2.开发平台采用JDK1.60eclipse集成开发环境。 二、主要内容 1.了解网络爬虫的构架,熟悉网页抓取的整个流程。

2.学习宽度优先和深度优先算法,实现宽度crawler应用程序的编写、调试和运行。 3.学习主题爬行及内容分析技术。 4.实现网络爬虫的基本框架。 三、进度计划 四、设计成果要求 1.要求按时按量完成所规定的实验内容; 2.界面设计要求友好、灵活、易操作、通用性强、具有实用性; 3.基本掌握所采用的开发平台。五、考核方式 平时成绩+验收+实验报告。 学生姓名:于兴隆指导教师:王蓝婧20XX年1月2日 一、课程设计的目的与要求1.目的: 1.1掌握crawler的工作原理及实现方法;1.2了解爬虫架构; 1.3熟悉网页抓取的整个流程及操作步骤; 1.4掌握宽度优先,深度优先算法,并实现宽度crawler 应用程序的编写、调试和运行;1.5掌握主题爬行及内容分析技术;1.6实现一个最基础的主题爬虫的过程;1.7理解pageRank算法,并编程验证;二、设计正文 网络爬虫研究与应用 [摘要]:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验设计了简单的基于宽度

课程设计报告【模板】

模拟电子技术课程设计报告设计题目:直流稳压电源设计 专业电子信息科学与技术 班级电信092 学号 200916022230 学生姓名夏惜 指导教师王瑞 设计时间2010-2011学年上学期 教师评分 2010年月日

昆明理工大学津桥学院模拟电子技术课程设计 目录 1.概述 (2) 1.1直流稳压电源设计目的 (2) 1.2课程设计的组成部分 (2) 2.直流稳压电源设计的内容 (4) 2.1变压电路设计 (4) 2.2整流电路设计 (4) 2.3滤波电路设计 (8) 2.4稳压电路设计 (9) 2.5总电路设计 (10) 3.总结 (12) 3.1所遇到的问题,你是怎样解决这些问题的12 3.3体会收获及建议 (12) 3.4参考资料(书、论文、网络资料) (13) 4.教师评语 (13) 5.成绩 (13)

昆明理工大学津桥学院模拟电子技术课程设计 1.概述 电源是各种电子、电器设备工作的动力,是自动化不可或缺的组成部分,直流稳压电源是应用极为广泛的一种电源。直流稳压电源是常用的电子设备,它能保证在电网电压波动或负载发生变化时,输出稳定的电压。一个低纹波、高精度的稳压源在仪器仪表、工业控制及测量领域中有着重要的实际应用价值。 直流稳压电源通常由变压器、整流电路、滤波电路、稳压控制电路所组成,具有体积小,重量轻,性能稳定可等优点,电压从零起连续可调,可串联或关联使用,直流输出纹波小,稳定度高,稳压稳流自动转换、限流式过短路保护和自动恢复功能,是大专院校、工业企业、科研单位及电子维修人员理想的直流稳压电源。适用于电子仪器设备、电器维修、实验室、电解电镀、测试、测量设备、工厂电器设备配套使用。几乎所有的电子设备都需要有稳压的电压供给,才能使其处于良好的工作状态。家用电器中的电视机、音响、电脑尤其是这样。电网电压时高时低,电子设备本身耗供电造成不稳定因家。解决这个不稳定因素的办法是在电子设备的前端进行稳压。 直流稳压电源广泛应用于国防、科研、大专院校、实验室、工矿企业、电解、电镀、充电设备等的直流供电。 1.1直流稳压电源设计目的 (1)、学习直流稳压电源的设计方法; (2)、研究直流稳压电源的设计方案; (3)、掌握直流稳压电源的稳压系数和内阻测试方法。 1.2课程设计的组成部分 1.2.1 设计原理

哈希表实验报告完整版

实验报告 姓名:学号: 1.实验题目 针对某个集体中人名设计一个哈希表,使得平均查找长度不超过R,并完成相应的建表和查表程序。 基本要求:假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用线性探测再散列法或链地址法处理冲突。 2.需求分析 本演示程序用VC编写,完成哈希函数用除留余数法构造,用线性探测再散列法或链地址法处理冲突。 输出形式:地址,关键字,收索长度,H(key),拼音 3.概要设计 typedef struct NAME typedef struct hterm void InitNameList() void CreateHashList() void FindList() void Display() int main() 4.详细设计 #include #include #include

#define HASH_LEN 50 #define M 47 #define NAME_NO 8 typedef struct NAME { char *py; //名字的拼音 int k; //拼音所对应的整数}NAME; NAME NameList[HASH_LEN]; typedef struct hterm //哈希表{ char *py; //名字的拼音 int k; //拼音所对应的整数int si; //查找长度 }HASH; HASH HashList[HASH_LEN]; void InitNameList() { NameList[0].py="houxinming"; NameList[1].py="abc"; NameList[2].py="defdgf"; NameList[3].py="zhangrji"; NameList[4].py="jiaxin"; NameList[5].py="xiaokai"; NameList[6].py="liupeng"; NameList[7].py="shenyonghai";

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.doczj.com/doc/672945193.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

城市轨道交通课程设计报告(很齐全,很完整的课程设计)

轨道交通课程设计报告 指导老师:江苏大学武晓辉老师 一、项目背景及镇江市轨道交通建设必要性 镇江市位于北纬31°37′~32°19′,东经118°58′~119°58′,地处长江三角洲地区的东端,江苏省的西南部,北临长江,与扬州市、泰州市隔江相望;东、南与常州市相接;西邻南京市。镇江市域总面积3847平方公里,总体规划定位城市性质为国家历史文化名城,长江三角洲重要的港口、风景旅游城市和区域中心城市之一。 2005年,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求。镇江市为江苏省辖地级市,现辖京口、润州、丹徒三区,代管句容、丹阳、扬中三市。另有国家级经济技术开发区-镇江新区行使市辖区经济、社会管理权限。镇江全市总面积3848平方公里,人口311万人,市区户籍人口103.3万人市,市区常住人口122.37万人,人民政府驻润州区南徐大道68号。 内部城市空间结构调整:2005年,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成

为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求,建设轨道交通是未来城市规划的必然结果。 城市化发展水平规划: 近期(2000-2010):城市化水平达到:55% 城镇人口162万 中期(2010-2020):城市化水平达到:60% 城镇人口184万 远期(2020-2050):城市化水平达到:70% 城镇人口231万城市等级规模规划: 中期:形成1个大城市,1个中等城市,2个小城市和38个小城镇的等级结构。 远期:形成1个特大城市,2个中等城市,1个小城市和27个小城镇的等级结构。 镇江位于南京都市圈核心层,是一座新兴工业城。镇江拥有2个国家级开发区、6个省级开发区、5个国家级高新技术产业基地,镇江市的经济发展水平居江苏省中等偏上水平。2013年实现国内生产总值2927.09亿元,完成公共财政预算收入245.52亿元,城镇居民人均可支配收入32977元,农民人均纯收入16258元,增长18.1%,;人均GDP73947元,居江苏省第5名。“三次产业”分别实现增加值129.06亿元、1549.4亿元、1248.63亿元,同比分别增长3.1%、12.5%和12.3%。

数据结构课程设计--哈希表实验报告

福建工程学院 课程设计 课程:算法与数据结构 题目:哈希表 专业:网络工程 班级:xxxxxx班 座号:xxxxxxxxxxxx 姓名:xxxxxxx 2011年12 月31 日 实验题目:哈希表 一、要解决的问题 针对同班同学信息设计一个通讯录,学生信息有姓名,学号,电话号码等。以学生姓名为关键字设计哈希表,并完成相应的建表和查表程序。 基本要求:姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。 运行的环境:Microsoft Visual C++ 6.0 二、算法基本思想描述 设计一个哈希表(哈希表内的元素为自定义的结构体)用来存放待填入的30个人名,人名为中国姓名的汉语拼音形式,用除留余数法构造哈希函数,用线性探查法解决哈希冲突。建立哈希表并且将其显示出来。通过要查找的关键字用哈希函数计算出相应的地址来查找人名。通过循环语句调用数组中保存的数据来显示哈希表。 三、设计 1、数据结构的设计和说明 (1)结构体的定义 typedef struct //记录 { NA name; NA xuehao; NA tel; }Record;

{ Record *elem[HASHSIZE]; //数据元素存储基址 int count; //当前数据元素个数 int size; //当前容量 }HashTable; 哈希表元素的定义,包含数据元素存储基址、数据元素个数、当前容量。 2、关键算法的设计 (1)姓名的折叠处理 long fold(NA s) //人名的折叠处理 { char *p; long sum=0; NA ss; strcpy(ss,s); //复制字符串,不改变原字符串的大小写 strupr(ss); //将字符串ss转换为大写形式 p=ss; while(*p!='\0') sum+=*p++; printf("\nsum====================%d",sum); return sum; } (2)建立哈希表 1、用除留余数法构建哈希函数 2、用线性探测再散列法处理冲突 int Hash1(NA str) //哈希函数 { long n; int m; n=fold(str); //先将用户名进行折叠处理 m=n%HASHSIZE; //折叠处理后的数,用除留余数法构造哈希函数 return m; //并返回模值 }Status collision(int p,int c) //冲突处理函数,采用二次探测再散列法解决冲突{ int i,q; i=c/2+1; while(i=0) return q; else i=c/2+1; } else{ q=(p-i*i)%HASHSIZE; c++;

测试报告模板(标准版)

. 文档编号:CIECC-EP-TP-0B3 [项目名称测试报告(标准版)] [V1.0( 版本号)] 拟制人______________________ 审核人______________________

批准人______________________ [2010 年9 月9 日] 中国国际电子商务中心 China International Electronic Commerce Center

变更历史记录 日期版本说明作者审核批准2010-09-09 1.0 首次建立项目测试报告(标准版)模 文建东 板

目录 [项目名称测试报告(标准版)] 0 [V1.0( 版本号)] 0 [2010 年9 月9 日] (1) 第1 章简介 (5) 1.1 目的 (5) 1.2 范围 (5) 1.3 名词解释 (5) 1.4 参考资料 (5) 第2 章测试简介 (6) 2.1 测试日期 (6) 2.2 测试地点 (6) 2.3 人员 (6) 2.4 测试环境 (6) 2.5 数据库 (7) 2.6 测试项 (7) 第3 章测试结果与分析 (7) 3.1 对问题报告进行统计分析 (7) 3.2 遗留问题列表 (10) 第4 章简要总结测试的结果 (10) 第5 章各测试类型测试结论 (11)

5.1 功能测试 (12) 5.2 用户界面测试 (12) 5.3 性能测试 (12) 5.4 配置测试 (12) 5.5 安全性测试 (12) 5.6 数据和数据库完整性测试 (13) 5.7 故障转移和恢复测试 (13) 5.8 业务周期测试 (13) 5.9 可靠性测试 (13) 5.10 病毒测试 (13) 5.11 文档测试 (13) 第6 章软件需求测试结论 (14) 第7 章建议的措施 (14) 第8 章追踪记录表格 (14) 8.1 需求—用例对应表(测试覆盖) (14) 8.2 用例—需求对应表(需求覆盖) (14)

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

城市轨道交通课程设计报告很齐全很完整的课程设计

城市轨道交通课程设计报告很齐全很完整的课程设计

轨道交通课程设计报告 指导老师:江苏大学武晓辉老师 一、项目背景及镇江市轨道交通建设必要性 镇江市位于北纬31°37′~32°19′,东经118°58′~119°58′,地处长江三角洲地区的东端,江苏省的西南部,北临长江,与扬州市、泰州市隔江相望;东、南与常州市相接;西邻南京市。镇江市域总面积3847平方公里,总体规划定位城市性质为国家历史文化名城,长江三角洲重要的港口、风景旅游城市和区域中心城市之一。 ,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求。镇江市为江苏省辖地级市,现辖京口、润州、丹徒三区,代管句容、丹阳、扬中三市。另有国家级经济技术开发区-镇江新区行使市辖区经济、社会管理权限。镇江全市总面积3848平方公里,人口311万人, 市区户籍人口103.3万人市, 市区常住人口122.37万人,人民政府驻润州区南徐大道68号。

内部城市空间结构调整:,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求,建设轨道交通是未来城市规划的必然结果。 城市化发展水平规划: 近期( - ):城市化水平达到:55% 城镇人口162万 中期( -2020):城市化水平达到:60% 城镇人口184万 远期(2020-2050):城市化水平达到:70% 城镇人口231万 城市等级规模规划: 中期:形成1个大城市,1个中等城市,2个小城市和38个小城镇的等级结构。 远期:形成1个特大城市,2个中等城市,1个小城市和27个小城镇的等级结构。 镇江位于南京都市圈核心层,是一座新兴工业城。镇江拥有2个国家级开发区、6个省级开发区、5个国家级高新技术产业基地,镇江市的经济发展水平居江苏省中等偏上水平。实现国内生产总值2927.09亿元,完成公共财政预算收入245.52亿元,城镇居民人均可支配收入32977元,农民人均纯收入16258元,增长18.1%,;人均GDP73947元,居江苏省第5名。“三次产业”分

哈希表实验报告

数据结构实验报告四——哈希表查找名字(字符串) 实验题目:哈希表查找名字(字符串) 实验目标: 输入一组名字(至少50个),将其保存并利用哈希表查找。输出哈希查找冲突次数,哈希表负载因子、查找命中率。 数据结构: 哈希表与数组(二维)。二维数组用于静态顺序存储名字(字符串),哈希表采用开放定址法,用于存储名字(字符串)对应得关键字并实现对名字(字符串)得查找。 需要得操作有: 1、关键字求取(主函数中两次出现,未单独编为函数) 关键字key=abs(字符串首位ASCII码值-第二位ASCII码值+第([]+1)位ASCII码值-最后一位ASCII码值-倒数第二位ASCII码值)*字符串长度(abs为求整数绝对值得函数)。 2、处理关键字得哈希函数(Hash) 利用平方取中法求关键值key在哈希表中得位置。公式add=(key*key)%1000/LENGTH(a dd为key在哈希表中得地址)。 int Hash(intkey) { ?return((key*key)/1000%LENGTH); } 3、处理哈希表中冲突得函数(Collision) 利用线性探测再散列处理冲突,利用全局变量count统计冲突次数。 int Collision(intkey,int Hashtable[]) { inti; for(i=1;i<=LENGTH;i++) { ??if(Hashtable[(Hash(key)+i)%LENGTH]==-1) ?return((Hash(key)+i)%LENGTH); ??count++; } } 4、哈希表初始化(InitHash) void InitHash(int Hashtable[]) { inti; for(i=0;i<LENGTH;i++) ??Hashtable[i]=-1; } 5、向哈希表中插入关键字(InsertHash) void InsertHash(int key,int Hashtable[]) { int add;

计算机组成原理课程设计实验报告书

计算机组成原理课程设计报告 班级:姓名:学号: 完成时间: 一、课程设计目的 1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系; 2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念; 3.培养综合实践及独立分析、解决问题的能力。 二、课程设计的任务 针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。 三、课程设计使用的设备(环境) 1.硬件 ● COP2000实验仪 ● PC机 2.软件 ● COP2000仿真软件 四、课程设计的具体内容(步骤) 1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点: 1)指令系统特点与设计 模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。 指令系统包括以下七类:

2)模型机寻址方式

3)指令格式 该模型机微指令系统的特点(包括其微指令格式的说明等): 2)微指令设置说明

数据结构课程设计报告约瑟夫环完整版

******************* 实践教学 ******************* 兰州理工大学 软件职业技术学院 2011年春季学期 算法与数据结构课程设计 题目:约瑟夫环 专业班级: 姓名: 学号: 指导教师: 成绩:

摘要 约瑟夫环问题是典型的线性表的应用实例,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用MICROSOFT公司的Microsoft Visual C++6.0开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键词:单循环链表;c语言;约瑟夫环;

序言 数据结构是研究数据元素之间的逻辑关系的一门课程,以及数据元素及其关系在计算机中的存储表示和对这些数据所施加的运算。该课程设计的目的是通过课程设计的综合训练,培养分析和编程等实际动手能力,系统掌握数据结构这门课程的主要内容。 本次课程设计的内容是用单循环链表模拟约瑟夫环问题,循环链表是一种首尾相接链表,其特点是无须增加存储容量,仅对表的链接方式稍作改变,使表处理更加灵活,约瑟夫环问题就是用单循环链表处理的一个实际应用。通过这个设计实例,了解单链表和单循环链表的相同与不同之处,进一步加深对链表结构类型及链表操作的理解。 通过该课程设计,能运用所学知识,能上机解决一些实际问题,了解并初步掌握设计、实现较大程序的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。

数据结构课程设计--哈希表实验报告

福建工程学院课程设计 课程:算法与数据结构 题目:哈希表 专业:网络工程 班级:xxxxxx班 座号:xxxxxxxxxxxx 姓名:xxxxxxx 2011年12 月31 日

实验题目:哈希表 一、要解决的问题 针对同班同学信息设计一个通讯录,学生信息有姓名,学号,电话号码等。以学生姓名为关键字设计哈希表,并完成相应的建表和查表程序。 基本要求:姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。 运行的环境:Microsoft Visual C++ 6.0 二、算法基本思想描述 设计一个哈希表(哈希表内的元素为自定义的结构体)用来存放待填入的30个人名,人名为中国姓名的汉语拼音形式,用除留余数法构造哈希函数,用线性探查法解决哈希冲突。建立哈希表并且将其显示出来。通过要查找的关键字用哈希函数计算出相应的地址来查找人名。通过循环语句调用数组中保存的数据来显示哈希表。 三、设计 1、数据结构的设计和说明 (1)结构体的定义 typedef struct //记录 { NA name; NA xuehao; NA tel; }Record; 录入信息结构体的定义,包含姓名,学号,电话号码。 typedef struct //哈希表 { Record *elem[HASHSIZE]; //数据元素存储基址 int count; //当前数据元素个数 int size; //当前容量 }HashTable; 哈希表元素的定义,包含数据元素存储基址、数据元素个数、当前容量。 2、关键算法的设计 (1)姓名的折叠处理

课程设计报告完整电子版模板

武汉东湖学院计算机科学学院课程设计报告 课程名称:数据库原理课程设计 题目: 专业班级: 学号: 学生姓名: 指导教师:谭玲丽 2016 年 5 月 12 日

课程设计任务书 (由指导教师填写) 课程名称:数据库原理课程设计 设计题目: 专业:计算机科学班级: 完成时间:2016.5.12-2016.6.14 指导教师:谭玲丽专业负责人:

课程设计成绩评价表 指导教师:年月日

数据库原理课程设计 目录 1 需求分析............................................................................................................... n 1.1 需求概述 ................................................................................................... n 1.2 功能简介 ................................................................................................... n 2 数据库概念结构设计 .......................................................................................... n 2.1 确定联系集.......................................................................................................... n 2.2 局部E-R图 .......................................................................................................... n 2.3总E-R图 ............................................................................................................... n 3 数据库逻辑结构设计阶段 ......................................................................................... n 3.1关系模式的转换................................................................................................... n 3.2模式求精(规范化过程)................................................................................... n 4 数据库物理设计........................................................................................................... n 4.1数据库物理结构................................................................................................... n 4.2数据表存放位置、系统配置............................................................................... n 5 数据库的实施和维护 .................................................................................................. n 5.1 定义...................................................................................................................... n 5.1.1 数据库的定义 ........................................................................................... n 5.1.2 表的定义 ................................................................................................... n 5.2 数据操作.............................................................................................................. n 5.2.1 单表查询 ................................................................................................... n 5.2.2 连接查询 ................................................................................................... n 5.2.3 操作结果集查询 ....................................................................................... n 5.2.4 嵌套查询 ................................................................................................... n 5.3 数据库更新操作.................................................................................................. n 5.3.1 插入数据 ................................................................................................... n 5.3.2 修改数据 ................................................................................................... n 5.3.3 删除数据 ................................................................................................... n 5.4 为数据库建立索引.............................................................................................. n 5.4.1 索引的建立 ............................................................................................... n 5.4.2 索引的删除 ............................................................................................... n 5.5 数据库的安全性(自主存取控制)........................................................................ n 5.5.1 登录帐户管理 ........................................................................................... n 5.5.2 用户权限管理 ........................................................................................... n 5.6 数据库的完整性.................................................................................................. n 5.6.1 实体完整性定义 ....................................................................................... n 5.6.2 参照完整性定义 ....................................................................................... n 5.6.2 用户自定义完整性定义 ........................................................................... n 5.6.3 触发器定义 .............................................................................................. n 5.7自定义函数.......................................................................................................... n 5.8存储过程的定义.................................................................................................. n 5.9事务的定义.......................................................................................................... n 6 总结................................................................................................................................. n 参考文献 ............................................................................................................................ n

相关主题
文本预览
相关文档 最新文档