嵌入式系统设计.docx
- 文档编号:6581491
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:66
- 大小:1.41MB
嵌入式系统设计.docx
《嵌入式系统设计.docx》由会员分享,可在线阅读,更多相关《嵌入式系统设计.docx(66页珍藏版)》请在冰豆网上搜索。
嵌入式系统设计
嵌入式系统软件设计
专业:
计算机科学与技术专业
班级:
计科1班
学号:
1245713131
姓名:
张迎
一、实验一
1.实验内容:
学习QT,进行嵌入式系统界面设计,自学QT,并利用QT设计一个计算器,能实现简单的加减乘除运算。
2.QT安装过程:
在命令行输入如下指令:
1)安装g++。
2)检查g++是否安装
3)编译中间会用到。
4)修改软件权限并执行软件。
5)安装必要库文件。
6)安装完成。
3.项目名称:
zyCalculator
4.源程序:
calculator.h
#ifndefCALCULATOR_H
#defineCALCULATOR_H
#include
#include
#include
#include
classCalculator:
publicQDialog
{
Q_OBJECT
protected:
QLineEdit*lineEditor;
QPushButton*button_0;
QPushButton*button_1;
QPushButton*button_2;
QPushButton*button_3;
QPushButton*button_4;
QPushButton*button_5;
QPushButton*button_6;
QPushButton*button_7;
QPushButton*button_8;
QPushButton*button_9;
QPushButton*button_ce;
QPushButton*button_jia;
QPushButton*button_jian;
QPushButton*button_cheng;
QPushButton*button_chu;
QPushButton*button__;
QPushButton*button_dengyu;
intnum1,num2,result;//标记第一个数,第二个数和结果
boolzhenghao;//数字前面的正负号
intmark;//标记是第一个还是第二个数字
charfuhao;//运算符号
QStringS;//显示的字符串
public:
Calculator(QWidget*parent=0);
~Calculator();
privateslots:
voidbutton_0_clicked();
voidbutton_1_clicked();
voidbutton_2_clicked();
voidbutton_3_clicked();
voidbutton_4_clicked();
voidbutton_5_clicked();
voidbutton_6_clicked();
voidbutton_7_clicked();
voidbutton_8_clicked();
voidbutton_9_clicked();
voidbutton_ce_clicked();
voidbutton_jia_clicked();
voidbutton_jian_clicked();
voidbutton_cheng_clicked();
voidbutton_chu_clicked();
voidbutton__clicked();
voidbutton_dengyu_clicked();
};
#endif//CALCULATOR_H
calculator.cpp
#include
#include
#include
#include
#include
#include"calculator.h"
Calculator:
:
Calculator(QWidget*parent)
:
QDialog(parent)
{
num1=0;
num2=0;
result=0;
zhenghao=true;
mark=1;
lineEditor=newQLineEdit("0");//
S="";
button_0=newQPushButton("0");
button_1=newQPushButton("1");
button_2=newQPushButton("2");
button_3=newQPushButton("3");
button_4=newQPushButton("4");
button_5=newQPushButton("5");
button_6=newQPushButton("6");
button_7=newQPushButton("7");
button_8=newQPushButton("8");
button_9=newQPushButton("9");
button_ce=newQPushButton("CE");
button_cheng=newQPushButton("*");
button_jia=newQPushButton("+");
button_jian=newQPushButton("-");
button_chu=newQPushButton("/");
button__=newQPushButton("+/-");
button_dengyu=newQPushButton("=");
QHBoxLayout*Hl1=newQHBoxLayout;
QHBoxLayout*Hl2=newQHBoxLayout;
QHBoxLayout*Hl3=newQHBoxLayout;
QHBoxLayout*Hl4=newQHBoxLayout;
QHBoxLayout*Hl5=newQHBoxLayout;
Hl1->addWidget(lineEditor);
Hl1->addWidget(button_ce);
Hl2->addWidget(button_1);
Hl2->addWidget(button_2);
Hl2->addWidget(button_3);
Hl2->addWidget(button_jia);
Hl3->addWidget(button_4);
Hl3->addWidget(button_5);
Hl3->addWidget(button_6);
Hl3->addWidget(button_jian);
Hl4->addWidget(button_7);
Hl4->addWidget(button_8);
Hl4->addWidget(button_9);
Hl4->addWidget(button_cheng);
Hl5->addWidget(button__);
Hl5->addWidget(button_0);
Hl5->addWidget(button_dengyu);
Hl5->addWidget(button_chu);
QVBoxLayout*V1=newQVBoxLayout;
V1->addLayout(Hl1);
V1->addLayout(Hl2);
V1->addLayout(Hl3);
V1->addLayout(Hl4);
V1->addLayout(Hl5);
connect(button_0,SIGNAL(clicked()),this,SLOT(button_0_clicked()));
connect(button_1,SIGNAL(clicked()),this,SLOT(button_1_clicked()));
connect(button_2,SIGNAL(clicked()),this,SLOT(button_2_clicked()));
connect(button_3,SIGNAL(clicked()),this,SLOT(button_3_clicked()));
connect(button_4,SIGNAL(clicked()),this,SLOT(button_4_clicked()));
connect(button_5,SIGNAL(clicked()),this,SLOT(button_5_clicked()));
connect(button_6,SIGNAL(clicked()),this,SLOT(button_6_clicked()));
connect(button_7,SIGNAL(clicked()),this,SLOT(button_7_clicked()));
connect(button_8,SIGNAL(clicked()),this,SLOT(button_8_clicked()));
connect(button_9,SIGNAL(clicked()),this,SLOT(button_9_clicked()));
connect(button_jia,SIGNAL(clicked()),this,SLOT(button_jia_clicked()));
connect(button_jian,SIGNAL(clicked()),this,SLOT(button_jian_clicked()));
connect(button_cheng,SIGNAL(clicked()),this,SLOT(button_cheng_clicked()));
connect(button_chu,SIGNAL(clicked()),this,SLOT(button_chu_clicked()));
connect(button_dengyu,SIGNAL(clicked()),this,SLOT(button_dengyu_clicked()));
connect(button_ce,SIGNAL(clicked()),this,SLOT(button_ce_clicked()));
connect(button__,SIGNAL(clicked()),this,SLOT(button__clicked()));
setLayout(V1);
}
Calculator:
:
~Calculator()
{
}
voidCalculator:
:
button_0_clicked()
{
S+="0";
lineEditor->setText(S);
if(mark==1){
num1=num1*10+0;
}else{
num2=num2*10;
}
}
voidCalculator:
:
button_1_clicked(){
S+="1";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+1;
}else{
num1=num1*10-1;
}
}else{
if(zhenghao){
num2=num2*10+1;
}else{
num2=num2*10-1;
}
}
}
voidCalculator:
:
button_2_clicked(){
S+="2";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+2;
}else{
num1=num1*10-2;
}
}else{
if(zhenghao){
num2=num2*10+2;
}else{
num2=num2*10-2;
}
}
}
voidCalculator:
:
button_3_clicked(){
S+="3";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+3;
}else{
num1=num1*10-3;
}
}else{
if(zhenghao){
num2=num2*10+3;
}else{
num2=num2*10-3;
}
}
}
voidCalculator:
:
button_4_clicked(){
S+="4";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+4;
}else{
num1=num1*10-4;
}
}else{
if(zhenghao){
num2=num2*10+4;
}else{
num2=num2*10-4;
}
}
}
voidCalculator:
:
button_5_clicked(){
S+="5";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+5;
}else{
num1=num1*10-5;
}
}else{
if(zhenghao){
num2=num2*10+5;
}else{
num2=num2*10-5;
}
}
}
voidCalculator:
:
button_6_clicked(){
S+="6";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+6;
}else{
num1=num1*10-6;
}
}else{
if(zhenghao){
num2=num2*10+6;
}else{
num2=num2*10-6;
}
}
}
voidCalculator:
:
button_7_clicked(){
S+="7";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+7;
}else{
num1=num1*10-7;
}
}else{
if(zhenghao){
num2=num2*10+7;
}else{
num2=num2*10-7;
}
}
}
voidCalculator:
:
button_8_clicked(){
S+="8";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+8;
}else{
num1=num1*10-8;
}
}else{
if(zhenghao){
num2=num2*10+8;
}else{
num2=num2*10-8;
}
}
}
voidCalculator:
:
button_9_clicked(){
S+="9";
lineEditor->setText(S);
if(mark==1){
if(zhenghao){
num1=num1*10+9;
}else{
num1=num1*10-9;
}
}else{
if(zhenghao){
num2=num2*10+9;
}else{
num2=num2*10-9;
}
}
}
voidCalculator:
:
button_jia_clicked(){
S+="+";
lineEditor->setText(S);
zhenghao=true;
fuhao='+';
mark=2;
}
voidCalculator:
:
button_jian_clicked(){
S+="-";
lineEditor->setText(S);
zhenghao=true;
fuhao='-';
mark=2;
}
voidCalculator:
:
button_cheng_clicked(){
S+="*";
lineEditor->setText(S);
zhenghao=true;
fuhao='*';
mark=2;
}
voidCalculator:
:
button_chu_clicked(){
S+="/";
lineEditor->setText(S);
zhenghao=true;
fuhao='/';
mark=2;
}
voidCalculator:
:
button__clicked(){
S+="-";
lineEditor->setText(S);
zhenghao=false;
}
voidCalculator:
:
button_dengyu_clicked(){
S+="=";
//lineEditor->setText(S);
switch(fuhao){
case'+':
result=num1+num2;break;
case'-':
result=num1-num2;break;
case'*':
result=num1*num2;break;
case'/':
if(num2)result=num1/num2;break;
}
inti=0;
intresult1=result;
while(result1){
i++;
result1/=10;
}
for(;i;i--){
S+=(result/(int)pow(10,i-1)+'0');
result%=(int)pow(10,i-1);
}
lineEditor->setText(S);
zhenghao=true;
num1=num2=0;
mark=1;
S="";
}
voidCalculator:
:
button_ce_clicked()
{
zhenghao=false;
S="";
lineEditor->setText("0");
num1=num2=0;
mark=1;
}
main.cpp
#include"calculator.h"
#include
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
Calculatorw;
w.show();
returna.exec();
}
5.计算器工程测试:
a)执行加法
b)执行减法
c)执行乘法
d)执行除法
二、实验二
1.实验内容:
根据目前应用较多的Android系统,自己搭建Android开发环境,并利用模拟器自行设计应用例程。
2.搭建java开发环境步骤:
1)下载jdk-7u79-linux-i586
2)直接解压到/home/zhangying目录下:
3)设置JDK环境变量:
4)在profile文件中增加以下内容:
5)保存退出,输入以下命令使之立即生效。
然后注销或者重启系统。
这边还可以用另一种方法:
在.bashrc在增加以下内容:
然后保存退出,然后输入下面的命令来使之生效:
6)但是执行java–version时又出现了问题。
解决方法:
7)javac时又出现了问题:
解决方法:
3.搭建android开发环境步骤:
1)从网上下载adt-bundle-linux-x86-20131030.
2)直接解压到/home/zhangying目录下:
3)右击adt-bundle-linux-x86-20131030\eclipse下的eclipse,选择创建链接,则得到一个快捷方式。
4)把“到eclipse的链接”移动到桌面,或者拖到桌面。
然后重命名。
5)下面,为这个快捷方式添加图标。
右击这个快捷方式,属性,然后点击图标按钮。
6)最后:
7)新建android项目,发现项目无法生成R.java文件导致项目出错。
解决方案:
◆此类问题解决方法总结:
在Ubuntu系统中,打开eclipse中的android工程,发现工程不能自动生成R.java。
原因如下:
1.ADT安装不正确,和SDK不匹配
解决方法:
都下载最新的版本,或者重新下载ADT
2.没有clean后重新build
解决方法:
取消自动编译,clean后手动build工程
3.androidsdk中可执行文件权限不正确。
解决方法:
检查androidsdk中的可执行文件权限,确认所有的都有可执行权限
#sudochmoda+xsdk/*-R
4.丢失R.java的解决方法:
第1种方法:
右击工程->选择AndroidTools->选择FixProjectProperties
第2种方法:
右击工程->选择Properties->选择Android->Apply
运行android项目时出现以下问题:
DescriptionResourcePathLocationType
Errorgeneratingfinalarchive:
Failedtocreatekey:
Cannotrunprogram"/home/zhangying/jdk1.7.0_79/jre/bin/keytool":
error=13,权限不够
JAVA_HOMEissetto:
/home/zhangying/jdk1.7.0_79/jre
Updateitifnecessary,ormanuallyexecutethefollowingcommand:
/home/zhangying/jdk1.7.0_79/jre/bin/keytool-genkey-aliasAndroidDebugKey-keyalgRSA-dname"CN=AndroidDebug,O=Android,C=US"-validity10950-keypassandroid-keystore/home/zhangying/.android/debug.keystore-storepassandroidFirstAndroidUnknownAndroidPackagingProblem
解决方法:
4.项目名称:
Weather
5.源程序:
ISmsDao.java主要代码
packagecom.example.weather;
importjava.util.List;
importcom.zy.bean.Sms;
importcom.zy.bean.Weather;
publicinterfaceIS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计