实训报告_实训报告样本

其他范文 时间:2020-02-27 18:33:51 收藏本文下载本文
【www.daodoc.com - 其他范文】

实训报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“实训报告样本”。

实验题目:双色球彩票选号器MySSQ

电子0903班 覃济灿 学号:20084737

一、实验目的1、熟悉linux环境的使用

2、熟练linux下嵌入式Qte环境搭建

3、熟悉嵌入式qtopia桌面应用软件开发的一般步骤

4、有效结合实训所学的c语言小程序

5、对ftp等方式的掌握及运用

6、了解开发板的基本操作

二、实验说明

实验所需的linux环境:Fedora Core10;

实验所用的交叉编译器:EABI-4.3.3_EmbedSky_20100610.tar.bz2; 实验所用的QT/embedded版本:qtopia-2.2.0.tar.bz2; 本次实验所有操作均在root权限下进行。

三、实验要求

1、能在开发板上通过tftp完成下载应用程序到开发板中。

2、能独立编写MySSQ的核心代码

3、MySSQ能随机产生n组双色球号码,n可以人为指定。

四、实验步骤

1、开发环境的搭建:

1.1、安装minicom并测试minicom是否能正常连接并查看开发板的调试信息

1.2、安装嵌入式交叉编译器:

解压:#tar-jxvfEABI-4.3.3_EmbedSky_20100610.tar.bz2-C / 编辑环境配置文件,增加交叉编译器的路径:

if [ “$EUID” = “0” ];then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmunge /opt/EmbedSky/4.3.3/bin else pathmunge /opt/EmbedSky/4.3.3/bin

pathmunge /usr/local/sbin after pathmunge /usr/sbin after pathmunge /sbin after fi 加载刚才修改的配置:#source /etc/profile 测试刚刚交叉编译器是否可用:#arm-linux-gcc 1.3、安装qtopia开发环境

#tar-jxvf Qte_20100601.tar.bz2-C / # cd /opt/EmbedSky/Qte/ # source./setARM_QpeEnv # source /etc/profile # echo $QTDIR(检查环境配置是否到位。)#./arm-qtopia-2.2.0-konqueror_build

(开始编译qtopia开发环境)

2、制作一个MySSQ 2.1、建立工程目录 2.2、建立界面文件

2.3、将界面转换成源代码文件(#vim ui2.cpp)#!/bin/bash $QTDIR/bin/uic-o MySSQ.h MySSQ.ui $QTDIR/bin/uic-o MySSQ.cpp-impl MySSQ.h MySSQ.ui $QTDIR/bin/moc MySSQ.h-o moc_MySSQ.cpp 给这个脚本增加可执行权限:#chmod u+x ui2cpp 执行脚本。

2.4、编辑main.cpp(#vim main.cpp)#include “MySSQ.h” #include #include QTOPIA_ADD_APPLICATION(“MySSQ”,MySSQ)QTOPIA_MAIN 2.5、生成工程文件

#progen 显示如下 TEMPLATE = app CONFIG HEADERS = qt warn_on release = MySSQ.h

SOURCES = MySSQ.cpp = MySSQ.ui main.cpp INTERFACES #progen –o MySSQ.pro 生成工程文件

#vi MySSQ.pro 修改工程文件(修改部分用红色标记)TEMPLATE = app CONFIG = qtopia warn_on release HEADERS = MySSQ.h SOURCES = MySSQ.cpp main.cpp INTERFACES = MySSQ.ui 2.6、生成Makefile并修改 #tmake-o Makefile MySSQ.pro #vim Makefile 内容如下

# Makefile for building MySSQ # Generated by tmake at 15:28, 2012/06/19 # Project: MySSQ # Template: app

Compiler, tools and options CC = arm-linux-gcc CXX = arm-linux-g++ CFLAGS =-pipe-Wall-W-O2-DNO_DEBUG CXXFLAGS=-pipe-DQWS-fno-exceptions-fno-rtti-Wall-W-O2-DNO_DEBUG INCPATH =-I$(QTDIR)/include-I$(QPEDIR)/include LINK = arm-linux-g++ LFLAGS =

LIBS = $(SUBLIBS)-L$(QPEDIR)/lib-L$(QTDIR)/lib-lm-lqpe-lqtopia-lqte MOC = $(QTDIR)/bin/moc

UIC TAR = $(QTDIR)/bin/uic = tar-cf GZIP = gzip-9f

Files HEADERS = MySSQ.h SOURCES = MySSQ.cpp main.cpp main.o MySSQ.h MySSQ.cpp OBJECTS = MySSQ.o INTERFACES = MySSQ.ui UICDECLS = UICIMPLS = SRCMOC = moc_MySSQ.cpp OBJMOC = moc_MySSQ.o DIST = TARGET = MySSQ INTERFACE_DECL_PATH =.Implicit rules.SUFFIXES:.cpp.cxx.cc.C.c.cpp.o:

$(CXX)-c $(CXXFLAGS)$(INCPATH)-o $@ $

Build rules all: $(TARGET)$(TARGET): $(UICDECLS)$(OBJECTS)$(OBJMOC)$(LINK)$(LFLAGS)-o $(TARGET)$(OBJECTS)$(OBJMOC)$(LIBS)moc: $(SRCMOC)tmake: Makefile

Makefile: MySSQ.pro

tmake MySSQ.pro-o Makefile $(TAR)MySSQ.tar MySSQ.pro $(SOURCES)$(HEADERS)$(INTERFACES)$(GZIP)MySSQ.tar-rm-f $(OBJECTS)$(OBJMOC)$(SRCMOC)$(UICIMPLS)$(UICDECLS)-rm-f *~ core dist: $(DIST)clean: $(TARGET)

Sub-libraries ###### Combined headers

Compile MySSQ.o: MySSQ.cpp

/opt/EmbedSky/Qte/arm-qtopia-2.2.0/qtopia/include/qtopia/qpeappliMySSQ.h: MySSQ.ui

$(UIC)MySSQ.ui-o $(INTERFACE_DECL_PATH)/MySSQ.h $(UIC)MySSQ.ui-i MySSQ.h-o MySSQ.cpp MySSQ.h MySSQ.cpp: MySSQ.ui moc_MySSQ.o: moc_MySSQ.cpp moc_MySSQ.cpp: MySSQ.h $(MOC)MySSQ.h-o moc_MySSQ.cpp 2.7、编译(make)

2.8、下载MySSQ到开发板测试

把文件拷贝到/tftpboot/目录下。在开发板上用tftp-g-r MySSQ 192.168.X.X 下载MySSQ到开发板上。然后先chmod增加可执行权限,最后执行./MySSQ测试

2.9、修改源文件,增加双色球选号功能 cation.h

MySSQ.h MySSQ.ui MySSQ.h main.o: main.cpp

修改MySSQ.cpp源文件:

/**************************************************************************** ** Form implementation generated from reading ui file 'MySSQ.ui' ** ** Created: Tue Jun 19 18:04:29 2012 ** by: The User Interface Compiler(uic)** ** WARNING!All changes made in this file will be lost!****************************************************************************/ #include “MySSQ.h”

#include #include #include #include #include #include #include

#include #include #include /* * Constructs a MySSQ which is a child of 'parent', with the * name 'name' and widget flags set to 'f' */ MySSQ::MySSQ(QWidget* parent, const char* name, WFlags fl): QWidget(parent, name, fl){ if(!name)setName(“MySSQ”);

resize(234, 312);setMaximumSize(QSize(240, 320));setCaption(tr(“MySSQ”));

TextLabel1 = new QLabel(this, “TextLabel1”);TextLabel1->setGeometry(QRect(0, 0, 231, 171));TextLabel1->setText(tr(“”));

TextLabel2 = new QLabel(this, “TextLabel2”);TextLabel2->setGeometry(QRect(0, 190, 121, 31));TextLabel2->setText(tr(“How Many to set :”));

LineEdit1 = new QLineEdit(this, “LineEdit1”);LineEdit1->setGeometry(QRect(130, 191, 101, 30));

PushButton1 = new QPushButton(this, “PushButton1”);PushButton1->setGeometry(QRect(30, 240, 161, 41));PushButton1->setText(tr(“OK”));

srand(time(NULL));

// signals and slots connections connect(} /* * Destroys the object and frees any allocated resources */ MySSQ::~MySSQ(){ // no need to delete child widgets, Qt does it all for us }

void MySSQ::Creatnumber()

PushButton1,SIGNAL(clicked()),this, SLOT(MakeNumber()));

{ int count=0;//产生多少组号码

count=strtemp.toInt();if(count>11)//如果数值大于11,返回。{ TextLabel1->setText(tr(“Too many numbers,nit must little than 11n”));

return;}

while(count--)//循环产生count组号码并排序后显示到控件上

{

for(i=0;i

} hongqiu[i]=rand()%33+1;for(j=0;j

} if(hongqiu[i]==hongqiu[j]){

}

i--;break;QString strtemp=LineEdit1->text();//从Line edit上的到countint hongqiu[6]={0};//存储6和红球 int lanqiu=0;//篮球号码 int i=0;//循环计数用 int j=0;//循环计数

QString Number=“”;// 用于把数组当成字符串显示到Edit控件上

for(i=0;i

{

for(j=0;j

{

if(hongqiu[j]>hongqiu[j+1])

{

hongqiu[j]=hongqiu[j]^hongqiu[j+1];

hongqiu[j+1]=hongqiu[j]^hongqiu[j+1];

hongqiu[j]=hongqiu[j]^hongqiu[j+1];

}

}

}

lanqiu=rand()%16+1;QString sztemp=“”;

sztemp.sprintf(“%02d %02d

%02d

%02d

%02d

hongqiu[1],hongqiu[2],hongqiu[3],hongqiu[4],hongqiu[5], lanqiu);Number+=sztemp;TextLabel1->setText(Number);//显示到控件上去 } qWarning(”MySSQ:: Creatnumber(): Not implementeace C }

2.10、重新编译并下载测试 #make 下载到开发板中的/opt/Qtopia/bin中启动测试 2.11、制作桌面图片和启动器 #vim MySSQ.desktop

%02d |%02dn“,hongqiu[0],内容如下: [Desktop Entry] Version=1.0 Name=MySSQ Comment=My Program Exec=MySSQ Icon=MySSQ Type=Application 将32X32的png格式的图片重命名为MySSQ.png并拷贝到与MySSQ.desktop相同的目录中来。

2.12、最终完成下载测试

#cp MySSQ MySSQ.png MySSQ.desktop /tftpboot/ 这三个文件应该分别下载到: MySSQ----->/opt/Qtopia/bin MySSQ.png--->/opt/Qtopia/pics/ MySSQ.desktop--->/opt/Qtopia/apps/Application/

在开发板上 [root@FriendlyARM /]# cd /opt/Qtopia/bin # tftp-g-r MySSQ 192.168.1.X #chmod u+x MySSQ #cd /opt/Qtopia/pics #tftp-g-r MySSQ.png 192.168.1.X #cd /opt/Qtopia/apps/Application/ #tftp 192.168.1.X #reboot 重启后就能看到桌面图标。点击即可测试了。

-g

-r

MySSQ.desktop

五、实验结果

六、总结体会

通过约十天的实训,我对Linux操作系统有了更深一步的了解,并且进一步熟悉了Linux的各种操作和应用。对于C和C++语言程序的编写也有了新的认识。也了解Linux环境下嵌入式软件系统的设计开发。

实训中,我们首先是了解嵌入式系统及其应用和发展前景,了解Linux系统并且学习Linux的基本命令和操作。如ls、vi、mkdir、gcc等。通过实训,对

Linux我逐渐从不懂到了解再到熟悉。对于C和C++语言进行的基本实训,由于之前已经学习过这两门语言,学习相当于复习。不过所谓“温故而知新”,在“复习”过程中,对于程序设计的思想思路方面还是有不少的收获:这个过程中我知道了实现相应的功能时要考虑设计程序执行效率,知道了程序的可维护性其实也很重要。实训的后期我们开始学习应用开发的环境搭建。学习起来比较困难,值得庆幸的是到最后我终于能完成应用开发板的环境搭建了。让人可惜的是实训的时间过于短促,在我们能完成开发板的环境搭建时,留给我们使用开发板上进行相关的实验的时间只剩下一天了。在匆匆地在开发板上完成一次烧录bootloader、内核、文件系统后,还没来得及再作进一步的学习,我们的实训就结束了。

实训期间的一个关于职业规划的讲座,让我第一次深刻地思考自己的职业未来;让我更清楚地了解自己。通过实训,让我更加清晰的明白自己长处,明白自己的兴趣。也让我确定自己的职业方向。

而通过做这次实验,之前实训所学到知识得到了一次应用,让我更熟悉Linux,也更一步了解嵌入式的软件开发要领。

下载实训报告word格式文档
下载实训报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文