成绩:
《信息资源检索与利用》
课程实习报告
目录
1.课题名称:......................................................................................... - 1 -
2.课题含义:......................................................................................... - 1 -
3.检索结果............................................................................................ - 1 -
3.1西安石油大学图书馆书目检索系统............................................. - 1 -
3.2方正apabi电子图书..................................................................... - 2 -
3.3超星汇雅电子图书........................................................................ - 2 -
3.4读秀学术搜索............................................................................... - 3 -
3.5中国知网《中国学术期刊全文数据库》..................................... - 3 -
3.6中国知网《中国优秀硕士学位论文数据库》.............................. - 3 -
3.7《中国专利数据库》..................................................................... - 4 -
3.8美国《工程索引》........................................................................ - 4 -
3.9 Springer全文电子期刊数据库..................................................... - 5 -
3.10 Emerald全文电子期刊数据库.................................................... - 6 -
4.检索心得............................................................................................ - 6 -
(该部分可自动生成,请在报告做完后用鼠标在具体的目录列表部分点右键选择更新域,这样页码就可变为自己的实际页码)
1.课题名称:
要求:结合自己的专业,选择一个即将要检索的课题名称,包括中文形式和英文形式。
2.课题含义:
要求:对要检索的课题内涵和主旨含义进行分析以便了解课题内容;可以采取试检,预检或初检的方式预先检索1-3篇文章进行阅读和学习;字数约50字~200字,注意一定要用自己的课题内容替换蓝色文字部分。
本课题主要研究是地面即成岩石在外力作用下,经过风化、搬运、沉积固结等沉积而成,即“沉积岩”。因此本检索拟采用以下关键词,检索入口选择“题名”字段或“关键词”字段,匹配方式采用“模糊匹配”,多个检索词之间采用“逻辑与”操作。
中文关键词:沉积岩 沉积相
英文关键词:characteristics sedimentary rocks
3.检索结果
3.1西安石油大学图书馆书目检索系统
地址:http://202.200.87.32:1080/
要求:在题名(书名)中检索所列关键词有关的图书三种,按格式完成下表。
3.2方正apabi电子图书
地址:http://202.200.87.12/Usp/apabi_usp/?pid=dlib.index
要求:在高级检索中,按题名(书名)检索所列关键词有关的图书三种,要求检索20##年之后的图书,并按格式完成下表。
3.3超星汇雅电子图书
地址:http://202.200.87.13:8080/pubindex.jsp
要求:在高级检索中,按题名(书名)检索所列关键词有关的图书三种,要求检索20##年之后的图书,并按格式完成下表。
3.4读秀学术搜索
地址:http://www.duxiu.com
要求:在“图书”中按“题名或书名”检索所列关键词有关的图书三种,按格式完成下表。
3.5中国知网《中国学术期刊全文数据库》
地址:http://epub.cnki.net/kns/brief/result.aspx?dbPrefix=CJFQ
要求:在关键词中检索所列关键词有关的期刊论文一篇,按格式完成下表。
3.6中国知网《中国优秀硕士学位论文数据库》
地址:http://epub.cnki.net/KNS/brief/result.aspx?dbprefix=CMFD
要求:在主题中检索所列关键词有关的硕士学位论文一篇,按格式完成下表。
3.7《中国专利数据库》
地址:http://epub.sipo.gov.cn/gjcx.jsp
要求:在“专利名称”中检索所列关键词有关的专利文献一篇,按格式完成下表。
3.8美国《工程索引》
地址:http://www.engineeringvillage.com/
要求:用Quick Search方式在题名(title)中检索所列关键词有关的期刊论文一篇,按格式完成下表。注意(1)在LIMIT TO中把默认的“all document types”改为“journal article”,限定文献类型为期刊;(2)检索词必需为英文形式。
3.9 Springer全文电子期刊数据库
地址:http://www.springerlink.com/
要求:检索所列关键词有关的期刊论文一篇,按格式完成下表。步骤:(1)在检索框中输入英文检索词,点击搜索按钮进行检索;(2)精检检索结果,在网页左栏的“Refine Your Search”里的“Content Type”中,用鼠标点击Article,在这些结果中任选一篇点击文章名称,然后完成下表。
3.10 Emerald全文电子期刊数据库
地址:http://www.emeraldinsight.com/
要求:检索所列关键词有关的期刊论文一篇,按格式完成下表。步骤:在检索框中输入英文检索词,点击搜索按钮进行检索,然后在这些结果中任选一篇点击文章名称,然后完成下表。
4.检索心得
通过本次检索在大三上期近八个周信息检索课程的学习过程中,学到了不少有关书刊、论文等各种文献的检索方法,这对于一个大学生来 说非常重要,因为现代社会已经是一个信息时代,那么在信息时代我们手中重要的情 报就是信息,提到信息那么信息的获取就是首要课题,网络的发展已使信息渗入到这 大千世界的每一个角落, “秀才不出门,便知天下事” ,确实如此,但是,不能科学有 效的去检索信息,那网络的发展就毫无意义。现在许多年轻的学生从很早就接触电脑接触网络,但他们对于信息的搜索却又是那样的迷茫,好多包括现在都已经上了大学的同学, 他们在检索重要的有关学习的资料或书籍的时候往往找到的是一些乱七八糟的东西。所以,我感觉在大学开设信息检索这门课程非常必要。 当然我在学习的过程中也在图书馆的各种数据库中实践了不少, 发现这个系统确 实很强大、很有用。在中工呆了一年了,以前还从未注意,校网上有一个如此强大的 搜索引擎。以前有想看书时,在百度或者其他网站上检索,但效果不佳,大部分书都 需付费才能看到或是下载,但校网不一样,免费阅读、免费下载,而且资源庞大,我 个人认为这一点对于我们是很有益的。 最后是我对信息检索课程的一些拙见,还望老师您能考虑,这一点也是我最想说的,虽然老师您在课堂上 讲述了图书馆馆藏的多种图书分类法,但真正到了图书馆要找一本书还是不太容易, 比如说有一次我在图书馆南四楼找一本海明威的《老人与海》 ,花了近一个小时,感觉图书馆的书大的类别分的很清楚,但具体到某一类书时摆放得还是有点乱。
第二篇:教学实习报告_班级姓名1
天津农学院
计算机科学与信息工程系 《Windows应用程序设计》 教学实习报告
实习名称: MFC贪吃蛇小游戏 专 业: 班 级: 学 号: 姓 名: 指导教师: 成 绩:
二0一二年 十 月
目 录
1 教学实习的内容 ....................................... 1
2 教学实习的目的 ....................................... 2
3 教学实习的要求 ....................................... 3
4 教学实习设计步骤 ..................................... 2
5 总结与体会 .......................................... 11
1 教学实习的内容
本实习内容是基于MFC开发出一个具有完整功能的Windows应用程序系统,验证基于框架编成的思想并体会其优势所在。
贪食蛇游戏设计基于VC++6.0/MFC中单文档模式。MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,使得游戏的开发更加方便快捷。 在设计开发贪食蛇游戏小游戏的过程中,主要研究和实现解决以下几方面问题:
1.蛇长度的增加:当蛇吃到一个水果后,蛇的长度加一,对应于程序中的存储空间也会增加。
2.水果和毒果产生的时间及数量的控制:当水果被吃掉后,要从主程序界面上消失。
3.游戏结束的判定:当蛇的头部和身体或者墙壁碰撞的时候,游戏结束。
4.游戏保存:游戏中可以随时保存,再次打开游戏可以读取保存过的记录。保存的时候,需要把蛇和水果毒果的相关信息都保存到文件。保存需要使用VC++提供的文件操作功能。
2 教学实习的目的
完成《Windows应用程序设计》的课堂教学后,通过本次专业实习,力图使学生对所学本课程的知识进一步消化、理解。本次实习除了强化学生系统全面地掌握本课程的知识外,还引导学生把相关的专业知识融会贯通起来,从而提高学生综合运用知识的能力和实际解决问题的能力。本实习要求学生,熟练掌握基于MFC框架编程的基本方法;熟练掌握MFC类库中常用类的成员及用法;能够借助MSDN帮助文档,自行解决在程序开发过程中遇到的各种问题;能够按照实习要求,与他人协作开发出一个具有完整功能的软件系统。
3 教学实习的要求
利用Visual C++ 6.0及MSDN开发文档,提交一份基于MFC的具有完整功能的Windows应用程序系统。由于Visual C++采用的框架是MFC,而MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,从而有力地保证了程序的良好的可调试性。
4 教学实习设计步骤
1.该贪食蛇游戏设计可以通过两种方式开始游戏,一种直接开始,另一种是从上次保存的记录开始游戏。游戏开始,利用方向键控制屏幕上蛇的移动,吃掉随机刷新的屏幕上的水果。蛇在移动过程中不得触碰墙壁与虫子,否则游戏判输且退出游戏。下图为贪食蛇游戏的流程图:
2.经过对游戏中可见性物体的分析,贪食蛇游戏设计归结为两个类CSnake类和BackGround类。
(1)Csnake类包含了所有对于蛇的操作,比如移动、吃水果和死亡等。该类中还封装了蛇的结构信息及游戏算法。在这个类中,重点设计的是蛇的移动。为了使程序占用更少内存且速度更快,需要设计蛇的结构和蛇的移动算法。在速度于内存之间取得一个平衡。蛇移动的算法是根据蛇的结构来设计的,不同的结构设计决定了算法的不相同。
CSnake类的定义:
(2)BackGround类提供了蛇移动的场景。背景的刷新、食物的随即产生、虫子的产生和墙的会中都封装在这个类中。
图像处理技术:在贪食蛇游戏设计中所用的图像处理技术主要有双缓冲技术和透明处理技术。
BackGround类的定义:
3.代码实现
// 随机放置食物
void Snake::setFood()
{
srand(time(NULL));
m_Food.x = rand() % ROW;
m_Food.y = rand() % COL;
// 产生随机位置
while((m_SnakeMap[m_Food.y][m_Food.x]) || (m_Head == m_Food)) // 判断食物位置是否与蛇身重合
// 若重合则重新生成新的位置
{
m_Food.x = rand() % ROW;
m_Food.y = rand() % COL;
}
}
// 初始化数据
void Snake::initData()
{
m_gameStart = true; //游戏开始
m_gameEnd = false;
int i = 0;
int k = 0;
for( i = 0; i < ROW; i++)
{
for( k = 0; k <COL; k++)
{
m_SnakeMap[i][k] = 0;
// 初始化贪吃蛇运动区域
}
}
// 初始化贪吃蛇的运动方向
m_SnakeMap[0][0] = RIGHT;
m_SnakeMap[0][1] = RIGHT;
// 初始化蛇头位置
m_Head.x = 2;
m_Head.y = 0;
// 初始化蛇尾
m_Tail.x = 0;
m_Tail.y = 0;
// 随机放置食物
setFood();
// 初始化蛇的运动方向
m_Dir = RIGHT;
}
// 贪食蛇的移动函数
bool Snake::move(const int &dir)
{
switch(dir)
{
case RIGHT:
// 方向向右m_SnakeMap[m_Head.y][m_Head.x] = RIGHT;
m_Head.x++;
break;
case LEFT:
m_SnakeMap[m_Head.y][m_Head.x] = LEFT;
m_Head.x--;
break;
case UP:
m_SnakeMap[m_Head.y][m_Head.x] = UP;
m_Head.y--;
break;
case DOWN:
m_SnakeMap[m_Head.y][m_Head.x] = DOWN;
m_Head.y++;
break;
default:
break;
}
if(m_SnakeMap[m_Head.y][m_Head.x] || m_Head.x >= ROW || m_Head.x < 0 || m_Head.y < 0 || m_Head.y >= COL)
{
// 蛇头碰壁或者与蛇身重叠,死// 亡
m_gameEnd = true;
return false;
}
if(m_Head == m_Food)
{
// 吃到食物
m_Head = m_Food;
setFood();
return true;
}
else
{
int temp = m_SnakeMap[m_Tail.y][m_Tail.x];
m_SnakeMap[m_Tail.y][m_Tail.x] = 0;
switch(temp)
{
case LEFT:
m_Tail.x--;
break;
case RIGHT:
m_Tail.x++;
break;
case UP:
m_Tail.y--;
break;
case DOWN:
m_Tail.y++;
break;
default:
break;
}
return true;
}
}
// 方向键控制蛇的运动方向
void CSnake1Dlg::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) {
// TODO: 在此添加消息处理程序代码和/或调用默认值
switch(nChar)
{
// 按↑键
case VK_UP:
if(SnakeApp.m_Dir == UP || SnakeApp.m_Dir == DOWN) return; KillTimer(1);
//if(!SnakeApp.move(UP)) break;
SnakeApp.m_Dir = UP;
SetTimer(1, SnakeApp.m_Time, NULL);
break;
case VK_DOWN:
// 按↓键
if(SnakeApp.m_Dir == UP || SnakeApp.m_Dir == DOWN) return; KillTimer(1);
//if(!SnakeApp.move(DOWN)) break;
SnakeApp.m_Dir = DOWN;
SetTimer(1, SnakeApp.m_Time, NULL);
break;
case VK_RIGHT:
// 按→键
if(SnakeApp.m_Dir == LEFT|| SnakeApp.m_Dir == RIGHT) return; KillTimer(1);
//if(!SnakeApp.move(RIGHT)) break;
SnakeApp.m_Dir = RIGHT;
SetTimer(1, SnakeApp.m_Time, NULL);
break;
case VK_LEFT:
// 按←键
if(SnakeApp.m_Dir == LEFT|| SnakeApp.m_Dir == RIGHT) return; KillTimer(1);
//if(!SnakeApp.move(LEFT)) break;
SnakeApp.m_Dir = LEFT;
SetTimer(1, SnakeApp.m_Time, NULL);
break;
default:break;
}
CDialog::OnKeyUp(nChar, nRepCnt, nFlags);
}
// 窗口重绘函数,收到WM_PAINT消息重绘窗口
void CSnake1Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
CClientDC dc(this);
// 画出蛇运动的矩形区域
dc.Rectangle(50,50,450,450);
// 三个不同颜色的画刷
CBrush brush(RGB(255,0,0));
CBrush brush1(RGB(0,255,0));
CBrush brush2(RGB(0,0,255));
CBrush brush3(RGB(0,255,255));
dc.FillRect(CRect(50,50,450,450),&brush3);
if(SnakeApp.m_gameStart)
{
if(SnakeApp.m_gameEnd)
{
// 游戏结束
MessageBox("很遗憾,游戏结束!!","GameOver",0);
return ;
}
if(SnakeApp.m_gameEnd == false)
{
CBrush *pOldBrush;
pOldBrush = dc.SelectObject(&m_Bsh[0]);
int xLeftTop, yLeftTop;
for (int i=0; i< ROW; ++i)
{
for (int j=0; j< COL; ++j)
{
if (SnakeApp.m_SnakeMap[i][j])
{
// 画出蛇身,绘为红色
xLeftTop = 51+j*20;
yLeftTop = 51+i*20;
dc.Rectangle(xLeftTop, yLeftTop, xLeftTop+19, yLeftTop+19); dc.FillRect(CRect(xLeftTop, yLeftTop, xLeftTop+19, yLeftTop+19),&brush);
}
} }
// brush = brush(RGB(0,255,0));
// 画出蛇头,绘为绿色
xLeftTop = 51+SnakeApp.m_Head.x*20;
yLeftTop = 51+SnakeApp.m_Head.y*20;
}}}dc.Rectangle(xLeftTop, yLeftTop, xLeftTop+19, yLeftTop+19); dc.FillRect(CRect(xLeftTop, yLeftTop, xLeftTop+19, yLeftTop+19),&brush1); // 画出食物,绘为蓝色 xLeftTop = 51+SnakeApp.m_Food.x*20; yLeftTop = 51+SnakeApp.m_Food.y*20; dc.Rectangle(xLeftTop, yLeftTop, xLeftTop+19, yLeftTop+19); dc.FillRect(CRect(xLeftTop, yLeftTop, xLeftTop+19, yLeftTop+19),&brush2);
4.运行结果
初始界面
游戏运行时界面
游戏结束
5. 总结与体会
本次实习,我们选择了通过运用MFC程序设计来编写一个贪食蛇的程序。
在系统开发过程中,不仅用到了MFC编程技术,还用到了GDI编程等知识。在完
成能力拓展训练的过程中还是遇到了许多问题。尤其是对于MFC不是很熟悉,
在进行程序设计的过程中遇到了许多问题。还有我们还在程序设计的过程中碰到
了如何让蛇身隔在每个给定的时间间隔内移动一个的问题,这也是通过和同学讨
论解决的。所以这次实习不仅让我们巩固了知识,还学到了许多上课没了解的内
容,同时训练锻炼了我的动手能力。通过完成贪食蛇游戏的程序设计,增加了我
的实际编程经验。提高了我独立解决问题的能力。
参考文献:
[1]孙鑫.余安萍编著.VC++深入详解.北京.电子工业出版社.2007.11
[2]谭浩强.C++程序设计.北京.清华大学出版社.2004.06
[3]刘春辉.徐建飞编著.Visual C++程序设计学习笔记.北京.电子工业出版社.2008.05
[4]Charles Petzold著.Windows 程序设计(第五版).北京.北京大学出版社.1999.03
[5]Maria Petrou Panagiota Bosdogianni:《数字图像处理疑难解析》,机械工业出版社
[6]高守传、姚颂田:《Visual C++实践与提高-数字图像处理与工程应用篇》中国铁道出版社
[7]姚敏等:《数字图像处理》机械工业出版社,2006.1
[8][美]Charles Petzold:《Windows程序设计[M]》,北京大学出版社,2002.4
[9]明日科技:《Visual C++程序开发范例宝典》人民邮电出版社,2007.7
[10]左飞、万晋森、刘航:《Visual C++数字图像处理开发入门与编程实践》电子工业出版社