暑期实习报告范文

时间:2024.4.20

学 生 实 习 报 告

实 习 名 称      毕 业 实 习       

            

           计算机科学与技术  

班       级     M08计算机嵌入式  

学 生 姓 名            

学       号      

实 习 地 点  无锡软通动力埃卡内基培训基地

指 导 教 师      

实习起止时间:   20## 年7月 3 日至 20##年 7月29日

 金陵科技学院教务处制

实习报告

前言

从目前的游戏市场来看,以互联网为平台的互动社交型游戏越来越受广大玩家的欢迎,如享誉全球的暴雪神作《World of Warcraft》(中文音译:魔兽世界)等等,他们影响了一代游戏人的价值观。而每一个成功的网络游戏背后,都有一个优秀的网络游戏设计团队为之费尽心力。

越爱越多的IT人才意识到这些契机,游戏设计开发团队也如雨后春笋一般崛起,于是就产生了竞争,而竞争则是市场优胜劣汰的最大表现方式。

我组成员六人,却是抱着试一试的态度来尝试这次设计,一方面锻炼自己,一方面又追求着能够超越自我。

我们所设计的网络游戏《The Lost》(中文音译:迷失的位面),它基于传统题材——迷宫,但又加入了网络元素,集益智与休闲为一体,将成为绝大多数人的最佳选择。

一、   实习目的

1、掌握嵌入式微处理器的结构与原理

2、掌握一个嵌入式Linux操作系统

3、熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。

二、   实习时间

20##年07月05号~07月29号,具体安排如下表:

三、实习地点

无锡市埃卡内基培训学院

四、实习单位和部门

实习单位:无锡软通动力公司

实习部门:无锡软通动力公司

五、实习内容

1、虚拟机下的linux的安装

目前PC机上的虚拟机软件有:VMWare、Virtual PC。

(1)VMWare的安装与配置

首先,要安装VMware 软件必须要有相应的安装程序,用户可下载程序vmware-workstation,然后就可以按步安装。

(2)在VMware中安装Linux,New—>Virtual Machine…->选择“custom”下一步->下一步,出现的界面中选择安装路径,必须注意待安装盘有足够的空间。因为后面安装的RedHat系统是桌面版本,它对内存还是有一定的要求,在机器内存较大的情况下,尽可能给RedHat多分配一些内存,此处分配的内存是256MB。下面可以选择默认选择,最后单击”Close”,此时虚拟机已经建立起来了。

接下来光盘配置使用我们下载的RedHat是iso文件,单击OK按钮。下面就可以启动安装RedHat系统了。首先进行语言的选择,选择中文,并单击前进按钮。接下来选择时区,此处选择上海时区,单击前进按钮。在进行用户帐户和主机命名设置时,我用“zxy”作为登录名且同时作为这台计算机的名称。安装向导的最后一步将用户安装过程中所做过的配置信息再次反馈给用户,确认信息。最后点击“安装”即可。

2学习linux常用命令

1)cd【目录】: 切换到指定的目录,可以是相对路径或者是绝对路径。绝对路径是以“ / ”开头,从目录的最顶层开始列出目录路径。相对路径不用“ / ”开头,只列出当前工作目录以下的目录路径。

2)ls【选项】【文件目录列表】:显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。

3)mkdir【选项】 路径: “路径”可以是一系列,此时若路径中的目录不存在,则系统自动创建那些不存在的目录。

4)Pwd:显示的是当前工作目录的绝对路径。

5)cp【选项】源文件  目标文件或目标目录

6)mv【选项】 文件列表  目录

7)rm【选项】 文件列表:可从文件系统中删除文件及整个目录。

8)cat【选项】文件列表:用来将几个文件的内容相连接,并显示到终端上。

9)Clear:清除屏幕上的信息。

10)kill进程号:删除执行中的进程。

11)tar [选项] 文件或者目录:文件打包解包。

12)ifconfig网络接口【选项】【地址】:配置网络接口的地址、网络掩码等。

13)gcc[选项]要编译的文件  [选项]  [目标文件]:编译可执行文件。

3绘制迷宫

//游戏界面边框初始位置(使用不敏感的按钮控件模拟边界)

    用FIXED控件来固定边框的位置  

    gtk_fixed_put() //固定控件的位置

 //游戏横向障碍的位置

     用FIXED控件来固定横向障碍的位置

     gtk_fixed_put () //固定控件的位置

//游戏纵向障碍的位置

      用FIXED控件来固定横向障碍的位置

     gtk_fixed_put ()//固定控件的位置

 //游戏终点位置

     gtk_fixed_put ()//固定控件的位置

//游戏横向障碍尺寸

    用 gtk_widget_set_size_request() //固定控件的尺寸大小

//游戏纵向障碍尺寸

用gtk_widget_set_size_request () //固定控件的尺寸大小

//游戏界面人物初始位置

     game_x = 10;

     game_y = 10;

     gtk_fixed_put( GTK_FIXED(fixed), people, game_x, game_y );//用FIXED控件固定任务初始位置。

4、用户登录与注册

注册功能的实现

服务器端主函数main()定义初始的用户列表、接收客户端注册请求、发送反馈和保存新用户信息

//接收客户端信息

    bzero( id, sizeof(id) );

    if ( recv( newsockfd, id, sizeof(id), 0 ) < 0 )

    {

       perror("recv");

       exit(1);

    }

//发送反馈信息

    send( newsockfd, “OK”, sizeof(“OK”), 0)

客户端注册函数int cb_reg_reg( GtkWidget *widget, gpointer data )发送用户注册请求、接收服务器端反馈

//向服务器发送注册请求

   strcpy( buff, "reg" );

   if ( send( sockfd, buff, sizeof(buff), 0 ) < 0 )

   {

        perror("send");

        exit(1);

   }

//接收服务器端的反馈信息

    recv( newsockfd, id, sizeof(id), 0 )

客户端还要对2次输入的密码做一致性的判断

若2次密码不一致,弹出密码不一致的提示,否则发送信息

最后对服务器发来的反馈做出提示

弹出注册成功、用户已存在的窗口提示

登录功能的实现

服务器端主函数main()定义初始的用户列表、接收客户端登录请求、分析客户端请求类型、发送反馈

接收、发送的代码与注册类似

使用  if ( !(strcmp( id, “login” )) )  来判断是登录请求还是注册请求

客户端登录函数int cb_login( GtkWidget *widget, gpointer data )发送用户登录请求、接收服务器端反馈

使用一个计数器total来记录服务器端的反馈

若total=0则提示用户未注册

若total=1则提示用户密码错误

若total=2则提示用登录成功并隐藏登录界面、打开游戏界面

5人物移动与障碍

//实现该功能的思路及伪代码

用FIXED控件来固定和移动人物的位置

gtk_fixed_put()   //固定控件的位置

gtk_fied_move()  //移动控件的位置

用game_x,game_y表示人物的移动坐标

通过键盘捕捉回调函数“key_press_event”实现窗口对方键的捕捉

//键盘控制回调

g_signal_connect(G_OBJECT(game_window),"key_press_event",G_CALLBACK(cb_game_key), NULL );

移动时改变X,Y坐标每次30

game_x  += 30;  //X坐标右移30

//移动的实现:例如向上走时

switch(event->keyval)

    {

       case GDK_Up:

           game_y -= 30;//Y坐标上移30

           gtk_fixed_move( GTK_FIXED(fixed), people, game_x, game_y );

           break;

    }

//障碍的实现

用对X,Y的限制来表示障碍的存在

例如:向上走时

if ( ( game_y == 40 )&&( game_x >= 280 )&&( game_x < 370 ) )

break;

如果人物在Y坐标40上时X的坐标为280到370之间,则不允许

向上移动

伪代码如下面所示:

gboolean cb_game_key( GtkWidget *widget, GdkEventKey *event,

gpointer data )

{

switch(event->keyval)

    {

       case GDK_Up:

       if ( game_y == 10 ) break;

       如果上面有墙则break;

       game_y -= 30;//Y坐标上移30;

      人物移动到相应的Y轴;

       Break;

     }

}

6界面制作

//登录窗口建立

    login_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title( GTK_WINDOW(login_window), "The Lost!" );

    gtk_window_set_default_size( GTK_WINDOW(login_window), 300, 200 );

//注册窗口建立

    reg_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title( GTK_WINDOW(reg_window), "注册你的帐号" );

    gtk_window_set_default_size( GTK_WINDOW(reg_window), 300, 250 );

//注册成功窗口建立

    reg_ok_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    gtk_window_set_default_size( GTK_WINDOW(reg_ok_window), 200, 100 );

//游戏窗口建立

    game_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title( GTK_WINDOW(game_window), "欢迎来个The Lost迷失的位面" );

    gtk_window_set_default_size( GTK_WINDOW(game_window), 470, 390 );

7回调函数

使用g_signal_connect()函数实现点击按钮触发回调函调

例如登录成功后打开游戏界面:

//回调语句

g_signal_connect( G_OBJECT(login), "clicked",

G_CALLBACK(cb_login), NULL );

//登录函数

int cb_login( GtkWidget *widget, gpointer data )

{

                gtk_widget_hide(login_window);

                gtk_widget_show_all(game_window);

8、总体程序设计

使用Socket编写服务器端和客户端的链接

服务器端                      客户端

Socket()                  Socket()

    ↓              ↓

Bind()        Bind()

    ↓              ↓

Listen()

    ↓         Connect()

Accpet()

    ↓               ↓

Close()

将各个组员的成果整合到程序中,实现最终的编写和调试。

编写一个服务器端源代码srv.c,一个客户端源代码lost.c,并制作一个Makefile。

Makefile中编译gtk需要使用特殊参数,整合在Makefile中:

CFLAGS = `pkg-config --cflags ${LIBS}` -g -Wall

LDFLAGS = `pkg-config --libs ${LIBS}` -g –Wall

${CC} -o savedid savedid.o ${LDFLAGS}

${CC} -c $< ${CFLAGS}

程序的调试和编译

最终剩余一些指针类型的警告,并不影响运行

最终实现功能:

登录:初始用户登录、注册用户登录、用户不存在提示、密码不正确提示

注册:新用户注册、注册成功提示、用户存在提示、密码不一致提示

人物移动:方向键控制移动、有障碍则不能通过

胜利:到达终点弹出胜利提示

9、设计总结

为了完成本次网络游戏设计项目,我们全组成员都投入了百分之二百的热情,并将项目分成了若干块,每人都有自己的任务,而我的任务则是关于编码的含义注释以及最终的文档构造。

首先,在参与设计的过程中,每一步编码的中文注释是必不可少,为了让其他人能明确了解某一步在整个编码程序中的作用,而又不过与冗长,编码注释务必简洁,使一个从未接触到项目设计的人都能够一目了然。

当注释完成之后,整个PPT文档语言的组织也是重中之重,它不仅要反映我们所设计的项目能产生的作用效果,更要体现全组在设计过程中的思想理念。

为了完成本次网络游戏设计项目,我们全组成员都投入了百分之二百的热情,并将项目分成了若干块,每人都有自己的任务,而我的任务则是关于编码的含义注释以及最终的文档构造。

首先,在参与设计的过程中,每一步编码的中文注释是必不可少,为了让其他人能明确了解某一步在整个编码程序中的作用,而又不过与冗长,编码注释务必简洁,使一个从未接触到项目设计的人都能够一目了然。

当注释完成之后,整个PPT文档语言的组织也是重中之重,它不仅要反映我们所设计的项目能产生的作用效果,更要体现全组在设计过程中的思想理念。

10、测试结果及发现

通过初次的测试,发现程序在点右上角“X”关闭的时候会出现问题。当点“X”闭关时,会导致下次无法调用“X”掉的窗口。后来给“X”键关闭添加退出程序回调函数,使得点“X”之后直接退出程序。

在对系统进行压力测试后,发现系统反应良好,没有出现崩溃和网络延迟等现象。

六、实习总结

在项目设计中,我们的任务是开发一个迷宫网络游戏,在整个设计过程中我们认真完成了各个功能的详细设计,尽量去实现模块间的协调和整个系统的完整性、可靠性,达到为顾客提供比较全面的服务的目的。

我们从需求分析,概要设计,详细设计,代码编写一步步进行设计。最终,软件基本上实现的迷宫游戏的功能,实现了登录注册,移动,障碍,但也存在很多的缺点和漏洞,如果可以设计更多的关卡和元素,会让整个游戏的可玩性上升一个档次。

通过该系统的研制,使得我对计算机有了一种新的体验:追求实用才是学好计算机的关键。任何一门技术都要以能够解决实际工作中出现的问题为依据和评判优劣的基本依据。

更多相关推荐:
20xx暑假实习报告范文

20xx暑假实习报告范文炎炎七月,一个偶然的机会给了我一份实习工作。从7月12号开始,我与另外十二位志同道合的同学来到了佛山市观达投资管理有限公司,开启了我们为期三个星期的实习生涯。虽然只是短短的三周,但是通过…

大学生电视台暑期实习报告范文

大学生电视台暑期实习报告范文大学生电视台暑期实习报告8-221:53:30当我第一次踏进广东电视台《生存大挑战》办公室的门时,根本没有想到,在之后的两个月,我会在这里收获一段快乐而难忘的时光。我不仅从同事们身上…

20xx年大学生暑期社会实践报告范文5篇

社会实践范文一这个暑假我参加了某某镇20xx年大学生社会实践的活动时间飞逝很快一个月的社会实践活动就结束了在这一个月里我学到了很多东西在许多方面也有所提高例如在交际能力上我比以前开朗了更加主动的去认识朋友跟同学...

20xx大学生暑假社会实践报告范文8篇

20xx年暑期社会实践报告范文8篇20xx年暑期社会实践报告范文大一220xx大学生暑假社会实践报告英语培训420xx年大学生暑假社会实践报告促销生活620xx年大学生暑期社会实习报告酒店服务员820xx大学生...

暑期社会实践报告范文(大一)

暑期社会实践报告范文(大一)白驹过隙,一转眼,我们已迎来了大学的第一个暑假,这也就意味着再等到新学期开始我们可就是学长学姐了,让我不得不再次感慨时间飞逝,是啊,去年的这个时候我们还是一个刚刚毕业的高中生而已,准…

20xx年暑假实习报告范文1500字

20xx年暑假实习报告范文1500字20xx年暑假实习报告范文1500字一实习目的任务通过设计院的实习了解建筑师的基本工作程序工作方法职业素质要求毕业后能更好适应市场的发展和社会的要求同时也是检验学生在校的学习...

20xx暑假实习报告范文

20xx暑假实习报告范文第1篇大学生暑假文化公司实习报告一实习目的将学习的理论知识运用于实践当中反过来还能检验书本上理论的正确性有利于融会贯通同时也能开拓视野完善自己的知识结构达到锻炼能力的目的让我们对本专业知...

大学生暑假实习报告3000字范文 四篇

大学生暑假实习报告3000字范文四篇大学生暑假实习报告3000字一quot努力不一定成功放弃一定失败quot我暑假在社会上漂泊后有深刻的认识暑假我独自一个人来到外地的辛朋那找份工作挣取些钱可开始的几天找工作让我...

大学生暑期实习报告范文

大学生暑期实习报告范文根本没有想到在之后的两个月我会在这里收获一段快乐而难忘的时光我不仅从同事们身上学到很多东西和他们成为朋友更重要的是我在实习过程中拿到了开启通往社会之路大门的六把钥匙第一把钥匙真诚你可以伪装...

暑期实习报告范文

学生实习报告实习名称毕业实习院部名称龙蟠学院专业计算机科学与技术班级M08计算机嵌入式学生姓名学号实习地点无锡软通动力埃卡内基培训基地指导教师实习起止时间:20##年7月3日至20##年7月29日金陵科技学院教…

大学生暑假社会实践报告范文

20xx年暑期社会实践报告范文大一120xx大学生暑假社会实践报告英语培训420xx年大学生暑假社会实践报告促销生活620xx年大学生暑期社会实习报告酒店服务员820xx大学生暑期社会实践报告范文经营生意102...

暑期外贸实习报告范文

暑期实习报告姓名专业班级学号指导教师关于在武汉XX商贸有限公司重庆分公司摘要本报告主要记录了本人在武汉XX商贸有限公司重庆分公司从事英文网站编辑岗位期间的实习情况本文分为四个部分第一部分是实习目的主要内容是为什...

暑期实习报告范文(52篇)