移动开发技术实验报告

移动开发技术实验报告
移动开发技术实验报告

移动开发技术

--------实验报告

学院:信息学部

专业:软件工程

班级:软工二班学号:

学生姓名:

指导教师:

项目名称:闹钟提醒备忘录

2019年12 月30 日

目录

第一部分:APP简介 (3)

(1)需求分析 (3)

(2)系统目标 (3)

(3)开发及运行环境 (3)

第二部分:开发技术 (4)

(1)SharedPrefenrences技术 (4)

(2)数据库 (12)

(3)CRUD操作 (13)

(4)时钟提醒 (14)

第三部分:功能介绍 (16)

(1)登录模块 (16)

(2)注册模块 (17)

(3)主界面模块 (17)

(4)新建备忘录模块 (18)

(5)删除备忘录模块 (19)

第四部分:遇到的问题和解决办法 (21)

(1)无法刷新UI (21)

(1)无法使用某些API (21)

第五部分:总结 (22)

第一部分:APP简介

(1)需求分析

随着时代的发展,我们每天需要处理的事务也呈现了爆炸式的增长。记住亲朋好友的生日并及时送上生日的祝福;记住上司布置的任务;记住几天后的出行车票时间等,这些纷繁的信息记忆是不是正在让您深陷其中?目前,手机上已经有了备忘录功能和闹钟功能,但二者之间并没有实现消息的互通(苹果手机用户可以设置事件的闹钟提醒,但是安卓用户却还没有使用这样的功能)。用户在备忘录中记录下需要设置时间提醒事件后,还需要再打开闹钟app,并设置闹钟提醒,这在无形中增加了用户的负担,并且产生了糟糕的用户体验。

现在,这些都不再是问题,在本次的课程设计中,使用我的软件,用户可以十分方便的新建备忘录,根据标题查找备忘录事件,删除已过期的备忘录并可以随意修改备忘录内容。除此之外,用户还可以为每条事件添加重要程度,并在主界面按重要程度展示所有的已建备忘录列表本软件致力于帮助用户时刻记录下生活中的重要信息并在设置的时间给用户发送提醒,让您不缺席生活中的重要时刻。

(2)系统目标

1,友好的操作界面和良好的人机互动。

2,软件的登录界面保证了信息的保密性。

3,随时对重要信息的记录并设置到时间提醒。

4,备忘录内容的修改,删除和查询。

5,也可将其用作记录本使用,代替原有的单一备忘录app。

6,系统可靠运行,安全有效。

(3)开发及运行环境

(1)开发工具:Android Studio

(2)系统环境:Windows 10家庭中文版

(3)开发语言:Java,xml

第二部分:开发技术

(1)SharedPrefenrences技术

在用户第一次进入软件时,可以注册个人账号,包括账号和密码;密码须二次输入同样的字符,否则无法注册成功;账号和密码使用SharedPrefenrence技术保存。保存用户的账号密码,属于用户的偏好参数,若使用数据库来存储这些数据,未免有些大材小用,此时SharedPreferences技术就派上用场。SharedPreferences使用键-值的形式来存储数据。在我们的实例中,账号为键,密码为值,具有唯一匹配性,我们只需要调用SharedPreferences的

getXxx(name), 就可以根据键获得对应的值。使用起来很方便!

登录界面源码:

package com.example.uilayouttest.Activity;

import android.content.Intent;

import android.content.SharedPreferences;

import android.content.pm.ActivityInfo;

import android.support.v7.app.ActionBar;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

import com.example.uilayouttest.Adapter.MD5Utils;

import com.example.uilayouttest.R;

public class LoginActivity extends AppCompatActivity {

private TextView tv_main_title;//标题

private TextView tv_back,tv_register,tv_find_psw;//返回键,显示的注册,找回密码

private Button btn_login;//登录按钮

private String userName,psw,spPsw;//获取的用户名,密码,加密密码

private EditText et_user_name,et_psw;//编辑框

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(https://www.360docs.net/doc/c112884842.html,yout.activity_login);

//设置此界面为竖屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

init();

ActionBar actionbar=getSupportActionBar();

if(actionbar!=null)

actionbar.hide();

}

//获取界面控件

private void init() {

//从main_title_bar中获取的id

tv_main_title=findViewById(https://www.360docs.net/doc/c112884842.html,_main_title);

tv_main_title.setText("登录");

tv_back=findViewById(https://www.360docs.net/doc/c112884842.html,_back);

//从activity_login.xml中获取的

tv_register=findViewById(https://www.360docs.net/doc/c112884842.html,_register);

tv_find_psw=findViewById(https://www.360docs.net/doc/c112884842.html,_find_psw);

btn_login=findViewById(R.id.btn_login);

et_user_name=findViewById(R.id.et_user_name);

et_psw=findViewById(R.id.et_psw);

//返回键的点击事件

tv_back.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//登录界面销毁

LoginActivity.this.finish();

}

});

//立即注册控件的点击事件

tv_register.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//为了跳转到注册界面,并实现注册功能

Intent intent=new

Intent(LoginActivity.this,RegisterActivity.class);

startActivityForResult(intent, 1);

}

});

//找回密码控件的点击事件

tv_find_psw.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//跳转到找回密码界面(此页面暂未创建)

}

});

//登录按钮的点击事件

btn_login.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//开始登录,获取用户名和密码getText().toString().trim();

userName=et_user_name.getText().toString().trim();

psw=et_psw.getText().toString().trim();

//对当前用户输入的密码进行MD5加密再进行比对判断, MD5Utils.md5( ); psw 进行加密判断是否一致

String md5Psw= MD5Utils.md5(psw);

// md5Psw ; spPsw 为根据从SharedPreferences中用户名读取密码

// 定义方法readPsw为了读取用户名,得到密码

spPsw=readPsw(userName);

// TextUtils.isEmpty

if(TextUtils.isEmpty(userName)){

Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();

return;

}else if(TextUtils.isEmpty(psw)){

Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();

return;

// md5Psw.equals(); 判断,输入的密码加密后,是否与保存在SharedPreferences中一致

}else if(md5Psw.equals(spPsw)){

//一致登录成功

Toast.makeText(LoginActivity.this, "登录成功",

Toast.LENGTH_SHORT).show();

//保存登录状态,在界面保存登录的用户名定义个方法saveLoginStatus boolean 状态, userName 用户名;

saveLoginStatus(true, userName);

//登录成功后关闭此页面进入主页

Intent data=new Intent();

//datad.putExtra( ); name , value ;

data.putExtra("isLogin",true);

//RESULT_OK为Activity系统常量,状态码为-1

// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值

setResult(RESULT_OK,data);

//销毁登录界面

LoginActivity.this.finish();

//跳转到主界面,登录成功的状态传递到MainActivity 中

startActivity(new Intent(LoginActivity.this, MainActivity.class));

return;

}else

if((spPsw!=null&&!TextUtils.isEmpty(spPsw)&&!md5Psw.equals(spPsw))){

Toast.makeText(LoginActivity.this, "输入的用户名和密码不一致", Toast.LENGTH_SHORT).show();

return;

}else{

Toast.makeText(LoginActivity.this, "此用户名不存在", Toast.LENGTH_SHORT).show();

}

}

});

}

/**

*从SharedPreferences中根据用户名读取密码

*/

private String readPsw(String userName){

//getSharedPreferences("loginInfo",MODE_PRIVATE);

//"loginInfo",mode_private; MODE_PRIVATE表示可以继续写入

SharedPreferences sp=getSharedPreferences("loginInfo",

MODE_PRIVATE);

//sp.getString() userName, "";

return sp.getString(userName , "");

}

/**

*保存登录状态和登录用户名到SharedPreferences中

*/

private void saveLoginStatus(boolean status,String userName){

//saveLoginStatus(true, userName);

//loginInfo表示文件名SharedPreferences

sp=getSharedPreferences("loginInfo", MODE_PRIVATE);

SharedPreferences sp=getSharedPreferences("loginInfo",

MODE_PRIVATE);

//获取编辑器

SharedPreferences.Editor editor=sp.edit();

//存入boolean类型的登录状态

editor.putBoolean("isLogin", status);

//存入登录状态时的用户名

editor.putString("loginUserName", userName);

//提交修改

https://www.360docs.net/doc/c112884842.html,mit();

}

/**

* 注册成功的数据返回至此

* @param requestCode 请求码

* @param resultCode 结果码

* @param data 数据

*/

@Override

//显示数据,onActivityResult

//startActivityForResult(intent, 1); 从注册界面中获取数据

//int requestCode , int resultCode , Intent data

// LoginActivity -> startActivityForResult -> onActivityResult();

protected void onActivityResult(int requestCode, int resultCode, Intent data) { //super.onActivityResult(requestCode, resultCode, data);

super.onActivityResult(requestCode, resultCode, data);

if(data!=null){

//是获取注册界面回传过来的用户名

// getExtra().getString("***");

String userName=data.getStringExtra("userName");

if(!TextUtils.isEmpty(userName)){

//设置用户名到et_user_name 控件

et_user_name.setText(userName);

//et_user_name控件的setSelection()方法来设置光标位置

et_user_name.setSelection(userName.length());

}

}

}

}

注册界面源码如下:

package com.example.uilayouttest.Activity;

import android.content.Intent;

import android.content.SharedPreferences;

import android.content.pm.ActivityInfo;

import android.graphics.Color;

import android.support.v7.app.ActionBar;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.RelativeLayout;

import android.widget.TextView;

import android.widget.Toast;

import com.example.uilayouttest.Adapter.MD5Utils;

import com.example.uilayouttest.R;

public class RegisterActivity extends AppCompatActivity {

private TextView tv_main_title;//标题

private TextView tv_back;//返回按钮

private Button btn_register;//注册按钮

//用户名,密码,再次输入的密码的控件

private EditText et_user_name,et_psw,et_psw_again;

//用户名,密码,再次输入的密码的控件的获取值

private String userName,psw,pswAgain;

//标题布局

private RelativeLayout rl_title_bar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//设置页面布局,注册界面

setContentView(https://www.360docs.net/doc/c112884842.html,yout.activity_register);

//设置此界面为竖屏

// ActionBar actionbar = getSupportActionBar();

// if (actionbar != null)

// actionbar.hide();

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

init();

}

private void init() {

//从main_title_bar.xml 页面布局中获取对应的UI控件

tv_main_title=findViewById(https://www.360docs.net/doc/c112884842.html,_main_title);

// tv_main_title.setText("注册");

tv_back=findViewById(https://www.360docs.net/doc/c112884842.html,_back);

//布局根元素

rl_title_bar=findViewById(R.id.title_bar);

// rl_title_bar.setBackgroundColor(Color.TRANSPARENT);

//从activity_register.xml 页面中获取对应的UI控件

btn_register=findViewById(R.id.btn_register);

et_user_name=findViewById(R.id.et_user_name);

et_psw=findViewById(R.id.et_psw);

et_psw_again=findViewById(R.id.et_psw_again);

Button btnback=findViewById(R.id.btn_backtologin);

btnback.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v) {

startActivity(new

Intent(RegisterActivity.this,LoginActivity.class));

}

});

// tv_back.setOnClickListener(new View.OnClickListener() {

// @Override

// public void onClick(View v) {

// //返回键

// RegisterActivity.this.finish();

// }

// });

//注册按钮

btn_register.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//获取输入在相应控件中的字符串

getEditString();

//判断输入框内容

if(TextUtils.isEmpty(userName)){

Toast.makeText(RegisterActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();

return;

}else if(TextUtils.isEmpty(psw)){

Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();

return;

}else if(TextUtils.isEmpty(pswAgain)){

Toast.makeText(RegisterActivity.this, "请再次输入密码", Toast.LENGTH_SHORT).show();

return;

}else if(!psw.equals(pswAgain)){

Toast.makeText(RegisterActivity.this, "输入两次的密码不一样", Toast.LENGTH_SHORT).show();

return;

/**

*从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名

*/

}else if(isExistUserName(userName)){

Toast.makeText(RegisterActivity.this, "此账户名已经存在", Toast.LENGTH_SHORT).show();

return;

}else{

Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();

//把账号、密码和账号标识保存到sp里面

/**

* 保存账号和密码到SharedPreferences中

*/

saveRegisterInfo(userName, psw);

//注册成功后把账号传递到LoginActivity.java中

// 返回值到loginActivity显示

Intent data = new Intent();

data.putExtra("userName", userName);

setResult(RESULT_OK, data);

//RESULT_OK为Activity系统常量,状态码为-1,

// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值

RegisterActivity.this.finish();

}

}

});

}

/**

* 获取控件中的字符串

*/

private void getEditString(){

userName=et_user_name.getText().toString().trim();

psw=et_psw.getText().toString().trim();

pswAgain=et_psw_again.getText().toString().trim();

}

/**

* 从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名

*/

private boolean isExistUserName(String userName){

boolean has_userName=false;

//mode_private SharedPreferences sp = getSharedPreferences( );

// "loginInfo", MODE_PRIVATE

SharedPreferences sp=getSharedPreferences("loginInfo",

MODE_PRIVATE);

//获取密码

String spPsw=sp.getString(userName, "");//传入用户名获取密码

//如果密码不为空则确实保存过这个用户名

if(!TextUtils.isEmpty(spPsw)) {

has_userName=true;

}

return has_userName;

}

/**

* 保存账号和密码到SharedPreferences中SharedPreferences

*/

private void saveRegisterInfo(String userName,String psw){

String md5Psw = MD5Utils.md5(psw);//把密码用MD5加密

//loginInfo表示文件名, mode_private SharedPreferences sp = getSharedPreferences( );

SharedPreferences sp=getSharedPreferences("loginInfo",

MODE_PRIVATE);

//获取编辑器,SharedPreferences.Editor editor -> sp.edit();

SharedPreferences.Editor editor=sp.edit();

//以用户名为key,密码为value保存在SharedPreferences中

//key,value,如键值对,editor.putString(用户名,密码);

editor.putString(userName, md5Psw);

//提交修改https://www.360docs.net/doc/c112884842.html,mit();

https://www.360docs.net/doc/c112884842.html,mit();

}

}

(2)数据库

本软件使用SQLite轻量级数据库,在创建数据库时,是通过使用SQLiteOpenHelper类的构造函数实现

代码如下:

public class DBOpenHelper extends SQLiteOpenHelper {

private static final String TAG = DBOpenHelper.class.getSimpleName();

private static final int VERSION = 1;

private static final String DB_NAME = "memo.db";

public DBOpenHelper() {

super(MemoApplication.getContext(), DB_NAME, null, VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

/*第一次初始化app,创建表结构*/

db.execSQL("CREATE TABLE IF NOT EXISTS " + ColumnContacts.EVENT_TABLE_NAME + "( "

+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +

ColumnContacts.EVENT_TITLE_COLUMN + " text, "

+ ColumnContacts.EVENT_CONTENT_COLUMN + " text, " + ColumnContacts.EVENT_CREATED_TIME_COLUMN + " datetime, " + ColumnContacts.EVENT_UPDATED_TIME_COLUMN + " datetime, " + ColumnContacts.EVENT_REMIND_TIME_COLUMN + " datetime, " + ColumnContacts.EVENT_IS_IMPORTANT_COLUMN + " INTEGER, " + ColumnContacts.EVENT_IS_CLOCKED + " INTEGER" + ")");

(3)CRUD操作

使用EventDao类实现添加,查询,删除等操作

代码如下:

1,查询操作:

public List findAll() {

//降序排列,按重要性和创建时间

String sql = "SELECT * FROM " + ColumnContacts.EVENT_TABLE_NAME + " ORDER BY " + ColumnContacts.EVENT_IS_IMPORTANT_COLUMN + " DESC, " + ColumnContacts.EVENT_CREATED_TIME_COLUMN + " DESC";

return mTemplate.query(sql, mCallback);

}

public List findAllWithNOClocked() {

String sql = "SELECT * FROM " + ColumnContacts.EVENT_TABLE_NAME + " WHERE " + ColumnContacts.EVENT_IS_CLOCKED + " = " +

Constants.EventClockFlag.NONE;

return mTemplate.query(sql, mCallback);

}

2,添加操作:

public int create(Event event) {

return (int) mTemplate.create(ColumnContacts.EVENT_TABLE_NAME, generateContentValues(event, false));

}

3,更新操作:

public int update(Event event) {

return mTemplate.update(ColumnContacts.EVENT_TABLE_NAME, generateContentValues(event, true), BaseColumns._ID + " = ?",

Integer.toString(event.getmId()));

}

4,删除操作

public int remove(List ids) {

StringBuilder whereConditions = new

StringBuilder(BaseColumns._ID + " IN(");

for (Integer id : ids) {

whereConditions.append(id).append(",");

}

whereConditions.deleteCharAt(whereConditions.length() -

1).append(")");

return mTemplate.remove(ColumnContacts.EVENT_TABLE_NAME, whereConditions.toString());

}

(4)时钟提醒

在退出软件后,为了让我们的提醒服务在后台保活,编写ClockService类在后台运行。

代码如下:

public class ClockService extends Service {

private static final String TAG = "ClockService";

public static final String EXTRA_EVENT_ID = "extra.event.id";

public static final String EXTRA_EVENT_REMIND_TIME =

"extra.event.remind.time";

public static final String EXTRA_EVENT = "extra.event";

private EventDao mEventDao = EventDao.getInstance();

public ClockService() {

Log.d(TAG, "ClockService: Constructor");

}

@Override

public IBinder onBind(Intent intent) {

throw new UnsupportedOperationException("Not yet implemented");

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

Log.d(TAG, "onStartCommand: onStartCommand");

WakeLockUtil.wakeUpAndUnlock();

postToClockActivity(getApplicationContext(), intent);

return super.onStartCommand(intent, flags, startId);

}

private void postToClockActivity(Context context, Intent intent) { Intent i = new Intent();

i.setClass(context, ClockActivity.class);

i.putExtra(EXTRA_EVENT_ID,

intent.getIntExtra(EXTRA_EVENT_ID, -1));

Event event =

mEventDao.findById(intent.getIntExtra(EXTRA_EVENT_ID, -1));

if (event == null) {

return;

}

i.putExtra(EXTRA_EVENT_REMIND_TIME,

intent.getStringExtra(EXTRA_EVENT_REMIND_TIME));

i.putExtra(EXTRA_EVENT, event);

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);

}

第三部分:功能介绍

(1)登录模块

为了保证用户的信息安全,在登录界面实现使用账号,密码的登录功能。存储技术使用了SharedPreference键值对实现持久性存储。在登录界面将输入的账号与密码与已注册的账号密码进行比对。若账号为空,则提示“请输入用户名”;若密码为空,则提示“请输入密码”;若账号与密码不匹配,则提示“请输入密码”;若账号密码完全匹配,则提示“登录成功”,并跳转到主界面。

(2)注册模块

用户第一次进入软件,可在登录界面选择“立即注册”,进入注册界面,输入自定义用户名,密码并再次输入密码,确保输入无误,点击注册按钮完成注册;若二次输入密码不一致,则提示“两次输入密码不一致”,并可以再次输入;注册成功自动跳转到登录界面。

(3)主界面模块

用户登录成功,,进入主界面,可以查看所有已建立的备忘录,并选择操作,包括新建备忘录;浏览所有已建立备忘录;查询指定备忘录;修改备忘录内容;批量删除备忘录等。

(4)新建备忘录模块

在主界面选择控件加号,进入新建备忘录界面。可选择以下内容输入:为该备忘录建立标题,并选择提醒时间,选择该备忘录是否是重要事件,最后在备注中输入事件的详细信息,点击确定,提示备忘录成功建立,并可在主界面查看。

(5)删除备忘录模块

在主界面点击垃圾桶按钮,进入删除备忘录功能,选择零个或多个备忘录,再次点击“删除”,提示删除成功。

用户界面设计实验报告(中南民族大学)

《用户界面设计》实验报告 学号: 姓名: 班级名称: 指导教师:李波 实验日期:

目录 Experiment 1: Evaluation Practices (1) Experiment 2: Design a graphic user interface (3) Experiment 3: Error Messages GUI (12) Experiment 4: Help Document (14)

Experiment 1: Evaluation Practices Use the blank provided to answer the questions. Answer the questions on a scale of 1 to 5, where 1 is a strong no, 5 is a strong yes, and 3 is neutral. If the question does not apply, use a 0.

Experiment 2: Design a graphic user interface Now, you can use the usability measurement to design a graphic user interface .First, you must select a system to finish sessions or tasks for users, so users’ requirements must be analyzed to define all functions you want to realize. Second, you must draw a graphic UI using the software tools, such as Microsoft visual studio, or Visio, or others. All functions must be appeared in this GUI include a main interface and all assistant interfaces. Finally, you must explain why and how you design these GUIs according to the usability measurement and the EIGTH GOLDEN RULES. The document format is described as follow. You can finish this work by PPT or word. 1. The system requirement The system requirement is described here. The main contents include the aims and what the users want to do. 随着信息时代的发展,计算机管理的应用越来越广泛,随着计算机的普及,就连调查问卷也慢慢的脱离了纸质化。对于一个比较大的公司而言,对其客户进行调查问卷是很有必要进行的,而由于客户的分布广,进行纸质的调查问卷不仅浪费财力,还浪费了物力,因此网上调查就避开这一缺点。因此,我设计了一个网上调查问卷系统。这个系统的用户有两类,一类是经销商,一类是经销商的客户,客户通过网上填写问卷,经销商则对客户的问卷进行回收,统计,分析,以做出相应的出售方案。 The aims 1)用户管理

移动通信实验报告

邮电大学 移动通信实验报告 班级: 专业: : 学号:

班序号: 一、实验目的 (2) 1、移动通信设备观察实验 (2) 2、网管操作实验 (3) 二、实验设备 (3) 三、实验容 (3) 1、TD_SCDMA系统认识 (3) 2、硬件认知 (3) 2.1移动通信设备 (3) 2.2 RNC设备认知 (4) 2.3 Node B设备(基站设备) (6) 2.4 LMT-B软件 (7) 2.5通过OMT创建基站 (8) 四、实验总结 (20) 一、实验目的 1、移动通信设备观察实验 1.1 RNC设备观察实验 a) 了解机柜结构 b) 了解RNC机框结构及单板布局 c) 了解RNC各种类型以及连接方式 1.2 基站设备硬件观察实验 a) 初步了解嵌入式通信设备组成 b) 认知大唐移动基站设备EMB5116的基本结构 c) 初步分析硬件功能设计

2、网管操作实验 a) 了解OMC系统的基本功能和操作 b) 掌握OMT如何创建基站 二、实验设备 TD‐SCDMA 移动通信设备一套(EMB5116基站+TDR3000+展示用板卡)电脑 三、实验容 1、TD_SCDMA系统认识 全称是时分同步的码分多址技术(英文对应Time Division-Synchronous Code Division Multiple Access)。 TD_SCDMA系统是时分双工的同步CDMA系统,它的设计参照了TDD(时分双工)在不成对的频带上的时域模式。运用TDSCDMA这一技术,通过灵活地改变上/下行链路的转换点就可以实现所有3G对称和非对称业务。合适的TDSCDMA时域操作模式可自行解决所有对称和非对称业务以及任何混合业务的上/下行链路资源分配的问题。 TD_SCDMA系统网络结构中的三个重要接口(Iu接口、Iub接口、Uu接口),认识了TD_SCDMA系统的物理层结构,熟悉了TD_SCDMA系统的六大关键技术以及其后续演进LTE。

北邮 通信网实验报告

北京邮电大学实验报告通信网理论基础实验报告 学院:信息与通信工程学院 班级:2013211124 学号: 姓名:

实验一 ErlangB公式计算器 一实验内容 编写Erlang B公式的图形界面计算器,实现给定任意两个变量求解第三个变量的功能: 1)给定到达的呼叫量a和中继线的数目s,求解系统的时间阻塞率B; 2)给定系统的时间阻塞率的要求B和到达的呼叫量a,求解中继线的数目s,以实现网络规划; 3)给定系统的时间阻塞率要求B以及中继线的数目s,判断该系统能支持的最大的呼叫量a。 二实验描述 1 实验思路 使用MA TLAB GUITOOL设计图形界面,通过单选按钮确定计算的变量,同时通过可编辑文本框输入其他两个已知变量的值,对于不同的变量,通过调用相应的函数进行求解并显示最终的结果。 2程序界面 3流程图 4主要的函数 符号规定如下: b(Blocking):阻塞率; a(BHT):到达呼叫量;

s(Lines):中继线数量。 1)已知到达呼叫量a及中继线数量s求阻塞率b 使用迭代算法提高程序效率 B s,a= a?B s?1,a s+a?B(s?1,a) 代码如下: function b = ErlangB_b(a,s) b =1; for i =1:s b = a * b /(i + a * b); end end 2)已知到达呼叫量a及阻塞率b求中继线数量s 考虑到s为正整数,因此采用数值逼近的方法。采用循环的方式,在每次循环中增加s的值,同时调用B s,a函数计算阻塞率并与已知阻塞率比较,当本次误差小于上次误差时,结束循环,得到s值。 代码如下: function s = ErlangB_s(a,b) s =1; Bs = ErlangB_b(a,s); err = abs(b-Bs); err_s = err; while(err_s <= err) err = err_s; s = s +1; Bs = ErlangB_b(a,s); err_s = abs(b - Bs); end s = s -1; end 3)已知阻塞率b及中继线数量s求到达呼叫量a 考虑到a为有理数,因此采用变步长逼近的方法。采用循环的方式,在每次循环中增加a的值(步长为s/2),同时调用B s,a函数计算阻塞率并与已知阻塞率比较,当本次误差小于预设阈值时,结束循环,得到a值。 代码如下: function a = ErlangB_a(b,s)

移动设备界面设计的论文

对移动界面设计的分析与展望移动界面,顾名思义,指的是手机、PDA等各式各样的移动设备的应用界面。随着各种移动设备的快速发展,移动应用界面设计也已成为人机交互技术的一个重要领域。由于移动界面的设计符合人机交互设计的一般规律,故可以利用人机交互设计的一般设计方法来进行移动界面的设计。 一、移动设备及交互方式 1、目前主要的移动终端设备种类包括手机、PDA以及各种特殊用途的移动设备如车载电脑等。其中,基于可移动性的考虑,手机与PDA是目前最常见的主流移动设备。 值得一提的是,移动网络带来各种新的应用服务,这些新的服务将整合语言、文字、图片以及多媒体等不同形态的信息传输,并且广泛的应用于生活中的每项需求,包括:移动广告、无线娱乐服务、移动购物、缴费等。而生活品质在这里更是代表了以更快速、更丰富和更贴近生活需求的服务影响着消费者。越来越多的消费者更多地依赖移动网络作为渠道的信息获取。所以,移动网络的发展就催生了移动WAP界面的设计的快速发展。而手机作为现在最主流的移动设备,各种针对手机的移动界面设计发展快速。 2、移动设备种类繁多,其相应的输入方式也相当复杂,特别是对于目前主要的移动设备形式------智能手机与掌上电脑而言,由于尺寸较小、接口较简单等特点使得传统的输入输出设备较难在移动界面中

使用。但是移动设备的主要输入输出方式应用是成熟的。 输入方式 移动设备的输入方式包括:键盘输入、笔输入和语音识别。键盘输入是传统计算机获取文本信息的最主要形式,手机等移动设备同样离不开键盘。笔输入一般包括一个触摸屏和输入笔,随着笔输入技术的日益成熟,该项技术在移动设备上得到了广泛的应用。而语音识别技术也是新一代人机交互中最重要的技术之一。 输出方式 移动设备的输出方式比较简单。主要是显示频幕和声音输出。 二、移动界面的设计原则 考虑到移动设备特别是掌上设备的自身特点,比如资源相对匮乏,移动设备的种类繁多以及连接方式复杂等特点,要遵循的移动界面设计原则包括:简单直观、个性化设计、易于检索、界面风格一致、避免不必要的文本输入、根据用户的要求使服务个性化、最大限度的避免用户出错、文本信息应当本地化。 三、移动界面要素设计 移动界面与一般的图形用户界面一样,包含了很多种类的设计要素,在设计时需要遵循一定的原则才能更好的适应移动界面用户的需要。 四、移动界面设计技术与工具 1、移动应用开发技术开发移动应用是一项复杂的任务,不仅需要考虑各种复杂的网络连接方式,还要考虑各种不同的硬件设备甚至不同的型号设备之间的差异,还要与现有的应用的体系尽可能的集成。

实验8MATLAB图形用户界面设计实验报告

实验8 MATLAB图形用户界面设计实验报告实验报告 课程名称:MATLAB应用成绩: 实验项目名称:MATLAB图形用户界面设计实验时间:11.6 指导教师(签名): 班级:XXXXX 姓名:XXXXX 学号:XXX 实验目的: 1. 熟悉MATLAB的菜单设计方法 2. 熟悉MATLAB的主要控件使用方法 3. 熟悉MATLAB的GUI设计流程 实验环境: MATLAB 7.1 实验内容及过程: 简单计算器的设计:在MATLAB GUI的实验环境中,通过MATLAB图形用户界面设计的方法,设计一个 简单的计算器,以实现简单数据的退出、清屏、删除、四则运算等基本功能。 实验过程、结果及分析:

计算器代码: function varargout = jsq(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 第 1 页共 6 页 'gui_OpeningFcn', @jsq_OpeningFcn, ... 'gui_OutputFcn', @jsq_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

移动应用开发-实验报告

实验一Android开发基础 实验时间:2018.3.16 实验地点:X501 一、实验目的 1. 掌握Android开发环境的搭建; 2. 了解Android SDK的安装、配置、使用; 3. 熟悉开发工具Android Studio的使用; 4. 了解创建项目并熟悉文件目录结构; 二、实验学时 2学时/次,共2学时 三、实验环境 Android Studio;JDK1.7;PC机 四、实验容和要求 1.Android Studio安装 (1) Android Studio的下载与安装 前提准备工作:安装JDK 并配置JDK 环境变量。 请使用传统的JAVA_HOME 环境变量名称。很多人会被提醒JVM 或者JDK 查找失败,几乎都是因为JDK 版本或者没有使用JAVA_HOME 这个环境变量名称的原因。 ①Android Studio可以从中文社区进行下载,网址为https://www.360docs.net/doc/c112884842.html,/。在浏览器中打开该网址,如图1-1所示。 图1-1 Android Studio官方 ②选择合适的平台,进行下载,如图1-2所示。

图1-2 Java platform(JDK) ③安装之前,要确定JDK版本必须是1.7或以上,否则安装之后会报错。双击Android Studio的安装文件,按照提示一步步安装,具体参考教材。不出意外的话,看到图1-3所示的界面,说明Android Studio已经安装成功了。 图1-3 Android Studio已经安装成功 2. 配置Android Studio 安装Android Studio完成之后,运行Android Studio。每一次安装,都会显示图1-4所示的这个界面,用以选择导入Android Studio的配置文件。 第一个选项:使用以前版本的配置文件夹。 第二个选项:导入某一个目录下的配置文件夹。 第三个选项:不导入配置文件夹。 如果你以前使用过Android Studio,可以选择到以前的版本。如果你是第一次使用,可以选择第三项。 图1-4 导入Android Studio配置文件

北邮通信原理实验 基于SYSTEMVIEW通信原理实验报告

北京邮电大学实验报告 题目:基于SYSTEMVIEW通信原理实验报告 班级:2013211124 专业:信息工程 姓名:曹爽 成绩:

目录 实验一:抽样定理 (3) 一、实验目的 (3) 二、实验要求 (3) 三、实验原理 (3) 四、实验步骤和结果 (3) 五、实验总结和讨论 (9) 实验二:验证奈奎斯特第一准则 (10) 一、实验目的 (10) 二、实验要求 (10) 三、实验原理 (10) 四、实验步骤和结果 (10) 五、实验总结和讨论 (19) 实验三:16QAM的调制与解调 (20) 一、实验目的 (20) 二、实验要求 (20) 三、实验原理 (20) 四、实验步骤和结果 (21) 五、实验总结和讨论 (33) 心得体会和实验建议 (34)

实验一:抽样定理 一、 实验目的 1. 掌握抽样定理。 2. 通过时域频域波形分析系统性能。 二、 实验要求 改变抽样速率观察信号波形的变化。 三、 实验原理 一个频率限制在0f 的时间连续信号()m t ,如果以0 12S T f 的间隔进行等间隔均匀抽样,则()m t 将被所得到的抽样值完全还原确定。 四、 实验步骤和结果 1. 按照图1.4.1所示连接电路,其中三个信号源设置频率值分别为10Hz 、15Hz 、20Hz ,如图1.4.2所示。 图1.4.1 连接框图

图1.4.2 信号源设置,其余两个频率值设置分别为15和20 2.由于三个信号源最高频率为20Hz,根据奈奎斯特抽样定理,最低抽样频率应 为40Hz,才能恢复出原信号,所以设置抽样脉冲为40Hz,如图1.4.3。 图1.4.3 抽样脉冲设置 3.之后设置低通滤波器,设置数字低通滤波器为巴特沃斯滤波器(其他类型的 低通滤波器也可以,影响不大),截止频率设置为信号源最高频率值20Hz,如图1.4.4。

移动界面设计论文

中北大学软件学院 人机交互论文 专业软件工程 课程名称人机交互 学号 姓名

移动界面之手机短信界面设计近年来,随着计算机网络与移动通信借助层出不穷的新技术得到了迅猛发展。互联网与移动通信更是作为迈向信息社会的两个重要标志,它们分别满足人们对信息资源的丰富性以及信息获取方式的灵活性与移动性的需求。随着互联网的应用已渗透到商务、购物、娱乐以及信息获取等日常生活、工作的各个领域,人们已经习惯于移动通讯方式,手机的出现更为人们的日常生活带来了极大的便利。 根据移动界面原则,本文介绍了手机短信界面的设计原则、过程以及可用性评估: 一、手机交互界面设计原则 手机用户界面设计的一个中心问题就是让手机用户界面达 到便于用户使用。 手机提供新功能、个性化服务的同时也增加了交互界面的复杂性,因此,手机视觉界面设计应遵循易识别、易理解、降低用户认知负担的设计原则。操作流程应简单、方便、高效。操作方式应符合人的心理和生理习惯。但是手机交互界面的设计也不能纯粹追求易用和高效率,同时要体现出情感化和人性化;其次,要注意细节的设计,让用户在细节之中体会到新功能、新技术的趣味性。在设计优秀的交互产品中发现,易用、高效与人性化、趣味性并不矛盾,比如, iPhone、iPod、android的交互界面设计,不仅高效易用,且操作的同时颇具趣味性。

手机是一种移动设备,交互界面的设计要考虑到手机的两大特征:移动性和便携性。由于手机大小的局限性,必须考虑到用户使用手机时空间的限制,不能在同一界面呆的时间太久,所以界面要体现简洁、易理解、使用户一目了然、提高操作效率的设计原则。对于用户常用的几个操作界面,要尽量简化,使用户操作更加方便快捷。总之,手机交换界面的设计要遵循易用性、易理解性、高效、人性化、情感化的设计原则。 二、移动界面开发工具 1、手机采用J2ME架构。Java ME 以往称作J2ME(Java Platform,Micro Edition),是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。J2ME 在设计其规格的时候,遵循着「对于各种不同的装置而造出一个单一的开发系统是没有意义的事」这个基本原则。于是 JAVA ME 先将所有的嵌入式装置大体上区分为两种 :一种是运算功能有限、电力供应也有限的嵌入式装置;另外一种则是运算能力相对较佳、并且在电力供应上相对比较充足的嵌入式装置。手机采用的是第一种装置。 2、手机操作系统采用嵌入式linux开发手机联盟(OHA)开发的Android平台。Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。 三、手机短信界面设计

智能移动终端软件开发实验报告

实验题目实验一:描述用户界面 实验地点502实验日期3-24机器号27 一、实验目的 学会写自己的第一个Android程序,从最简单的从模拟器上输出“Hello,world!”开始。 二、实验内容 1,先自己创建一个项目。 2.此时在窗口右边有一个“Activities”的项目,右击部署到模拟器上 三、实验步骤及结果 1, helloActivity.JAVA package net.lightwinner.app; import android.app.Activity; import android.os.Bundle; package net.lightwinner.app; import android.app.Activity; import android.os.Bundle; package net.lightwinner.app; package net.lightwinner.app;

import android.app.Activity; package net.lightwinner.app; import android.app.Activity; import android.os.Bundle; public class helloActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/c112884842.html,yout.main); } } 2.MAIN.JAVA 3.STRING Hello World, helloActivity! 我的第一个应用

Visual FoxPro 程序设计实验报告

VF程序设计实验报告 图书馆管理系统 专业: 学号: 姓名: 指导教师: 2010年12月31日

目录 第一部分系统概述--------------------------------2 第二部分系统功能模块设计------------------------2 第三部分系统数据库及表设计----------------------2 第四部分系统菜单设计----------------------------5 第五部分系统界面设计----------------------------6 第六部分系统相关程序代码-----------------------13 第七部分实验报告小结---------------------------22 第八部分参考资料-------------------------------22

一、系统概述 近年来,随着图书馆规模的不断扩大,图书数量相应的增加,有关图书的各种信息量也成倍增加,面对庞大的信息量,传统的人工管理户导致图书管理的混乱,人力与物力过多的浪费,图书管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理。因此,为了充分发挥了图书馆的功效,最大限度地为读者服务,必须制定一套合理、有效,规范和实用的图书馆管理系统,对图书资料进行集中统一的管理。 根据上述需要,我们建立本图书馆管理系统。 根据图书、读者和管理员三者之间的关系,本系统主要实现读者对图书的查询、个人信息的修改和管理员对读者、图书的管理。 本系统采用VF6.0作为开发工具。 二、系统功能模块设计 本系统可以完成一般图书馆关于图书查询、借阅及书库管理的主要功能。其中:图书查询模块可以查询所需要的图书;读者管理模块中,读者可以查看自己的信息,对登陆密码进行修改,管理员可以对读者进行添加和删除;图书管理模块中,管理员可以为读者进行图书的借阅和归还操作,以及对图书的信息进行修改,如加入新书、删除不能使用的图书和更新图书的信息;报表打印模块中,实现对需要的信息进行打印输出。系统结构下图所示。 三、数据库及表设计 经分析,图书馆管理系统主要涉及了学生、管理员和图书三部分。因此需要建立的实体就是学生、管理员和图书三个。 根据系统模块的设计,可以的到本系统需要建立的基本表为:读者信息表、

移动通信实验报告

实验一 m序列产生及特性分析实验 一、实验目得 1.了解m序列得性质与特点; 2。熟悉m序列得产生方法; 3.了解m序列得DSP或CPLD实现方法。 二、实验内容 1。熟悉m序列得产生方法; 2.测试m序列得波形; 三、实验原理 m序列就是最长线性反馈移存器序列得简称,就是伪随机序列得一种。它就是由带线性反馈得移存器产生得周期最长得一种序列。 m序列在一定得周期内具有自相关特性.它得自相关特性与白噪声得自相关特性相似。虽然它就是预先可知得,但性质上与随机序列具有相同得性质.比如:序列中“0”码与“1”码等抵及具有单峰自相关函数特性等。 五、实验步骤 1.观测现有得m序列。 打开移动实验箱电源,等待实验箱初始化完成.先按下“菜单”键,再按下数字键“1”,选择“一、伪随机序列”,出现得界面如下所示: ?再按下数字键“1"选择“1m序列产生”,则产生一个周期为15得m序列。 2。在测试点TP201测试输出得时钟,在测试点TP202测试输出得m序列。 1)在TP201观测时钟输出,在TP202观测产生得m序列波形。

图1-1 数据波形图

实验二 WALSH序列产生及特性分析实验 一.实验目得 1。了解Walsh序列得性质与特点; 2。熟悉Walsh序列得产生方法; 3.了解Walsh序列得DSP实现方法。 二.实验内容 1.熟悉Walsh序列得产生方法; 2.测试Walsh序列得波形; 三。实验原理 Walsh序列得基本概念 Walsh序列就是正交得扩频序列,就是根据Walsh函数集而产生.Walsh函数得取值为+1或者—1。图1-3—1展示了一个典型得8阶Walsh函数得波形W1。n阶Walsh函数表明在Walsh函数得周期T内,由n段Walsh函数组成.n阶得Walsh函数集有n个不同得Walsh函数,根据过零得次数,记为W0、W1、W2等等。 t 图2-1 Walsh函数 Walsh函数集得特点就是正交与归一化,正交就是同阶不同得Walsh函数相乘,在指定得区间积分,其结果为0;归一化就是两个相同得Walsh函数相乘,在指定得区间上积分,其平均值为1。 五、实验步骤 1。观测现有得Walsh序列波形 打开移动实验箱电源,等待实验箱初始化完成. 先按下“菜单"键,再按下数字键“1”,选择“一、伪随机序列”,出现得界面如下所示:

北邮微波实验报告整理版

北京邮电大学信息与通信工程学院 微波实验报告 班级:20112111xx 姓名:xxx 学号:20112103xx 指导老师:徐林娟 2014年6月

目录 实验二分支线匹配器 (1) 实验目的 (1) 实验原理 (1) 实验内容 (1) 实验步骤 (1) 单支节 (2) 双支节 (7) 实验三四分之一波长阻抗变换器 (12) 实验目的 (12) 实验原理 (12) 实验内容 (13) 实验步骤 (13) 纯电阻负载 (14) 复数负载 (19) 实验四功分器 (23) 实验目的 (23) 实验原理 (23) 实验内容 (24) 实验步骤 (24) 公分比为1.5 (25) 公分比为1(等功分器) (29) 心得体会 (32)

201121111x 班-xx 号-xx ——电磁场与微波技术实验报告 实验二 分支线匹配器 实验目的 1.熟悉支节匹配器的匹配原理 2.了解微带线的工作原理和实际应用 3.掌握Smith 图解法设计微带线匹配网络 实验原理 支节匹配器是在主传输线上并联适当的电纳(或者串联适当的电抗),用附加的反射来抵消主传输线上原来的反射波,以达到匹配的目的。 单支节匹配器,调谐时主要有两个可调参量:距离d 和由并联开路或短路短截线提供的电纳。匹配的基本思想是选择d ,使其在距离负载d 处向主线看去的导纳Y 是Y0+jB 形式。然后,此短截线的电纳选择为-jB ,根据该电纳值确定分支短截线的长度,这样就达到匹配条件。 双支节匹配器,通过增加一个支节,改进了单支节匹配器需要调节支节位置的不足,只需调节两个分支线长度,就能够达到匹配(但是双支节匹配不是对任意负载阻抗都能匹配的,即存在一个不能得到匹配的禁区)。 微带线是有介质εr (εr >1)和空气混合填充,基片上方是空气,导体带条和接地板之间是介质εr ,可以近似等效为均匀介质填充的传输线,等效介质电常数为 εe ,介于1和εr 之间,依赖于基片厚度H 和导体宽度W 。而微带线的特性阻抗与其等效介质电常数为εe 、基片厚度H 和导体宽度W 有关。 实验内容 已知:输入阻抗Z 75in ,负载阻抗Z (6435)l j ,特性阻抗0Z 75 ,介质基片 2.55r ,1H mm 。 假定负载在2GHz 时实现匹配,利用图解法设计微带线单支节和双支节匹配网络,假设双支节网络分支线与负载的距离114d ,两分支线之间的距离为21 8 d 。画出几种可能的电路图并且比较输入端反射系数幅度从1.8GHz 至2.2GHz 的变化。 实验步骤 1.根据已知计算出各参量,确定项目频率。 2.将归一化阻抗和负载阻抗所在位置分别标在Smith 圆上。 3.设计单枝节匹配网络,在图上确定分支线与负载的距离以及分支线的长度,根据给定的介质基片、特性阻抗和频率用TXLINE 计算微带线物理长度和宽度。此处应该注意电长度和实际长度的联系。 4.画出原理图,在用微带线画出基本的原理图时,注意还要把衬底添加到图中,将各部分的参数填入。注意微带 分支线处的不均匀性所引起的影响,选择适当的模型。 5.负载阻抗选择电阻和电感串联的形式,连接各端口,完成原理图,并且将项目的频率改为1.8—2.2GHz 。 6.添加矩形图,添加测量,点击分析,测量输入端的反射系数幅值。 7.同理设计双枝节匹配网络,重复上面的步骤。

老年人手机界面设计毕业论文设计

老吾老以及人之老 ——老年人手机设计 (2013届毕业生) 【内容提要】 孟子在《孟子·梁惠王上》中评论墨家的“兼爱非攻”时说:“老吾老以及人之老,幼吾幼以及人之幼”,其意是“在赡养孝敬自己的长辈时不应忘记其他与自己没有亲缘关系的老人;在抚养教育自己的小辈时不应忘记其他与自己没有血缘关系的小孩。” 老年人手机的设计,就是要将这样的“大爱”贯穿整个设计理念,一切从方便老人生活、方便老人使用的角度出发,让老年人手机成为所有老人的生活好伴侣和好帮手,让老人安享晚年平静、快乐、健康的幸福时光。 【关键词】 关爱老年人老年人手机功能简单操作便捷 目前市场上的老年人手机,并没有明确的概念和划分,一般用户会认为老年人使用的手机就是功能单一的普通手机,也不需要很多新的使用功能,就像普通的非智能手机甚至更古老的手机。这是由于对老年人的需求,以及对真正意义上的老年人手机了解不足造成的。 事实上,普通用户对于“老年人手机”的认识只有一点是正确的,那就是功能简单。我认为“老年人手机”绝对不是市场上的非智能手机这么简单,它需要针对老年人的特点进行全新的设计,使之更加具有实用性和方便性,成为老年人生活的不可或缺。 一、老年人使用手机的必要性 随着移动通讯技术的发展,手机成为人们生活的必需品,我国人口老龄化的加剧使得老年人手机市场逐渐得到社会的关注。 从上个世纪开始,全球已经逐渐趋向于老龄化。随着人口出生率的降低和寿命的提高,老龄人口在社会中的比例逐年上升,老龄问题已成为全球所关注的重大问题之一。据调查显示,

至2005年,中国大陆60岁以上人口达1.44亿,65岁以上约1亿多。随着空巢家庭和独居老人越来越多,外加补偿性消费心理的驱动,手机也逐渐成为老年人必备的与外界沟通的工具。可是,由于通讯业是近二十年才迅猛发展起来的,因此在移动电话方面专门为老年人设计的产品依然少见。 由于现在的手机集成了多种功能,导致其界面越来越复杂,操作也越来越困难。对于年轻人,功能齐全、色彩绚丽的手机可以丰富他们的生活。但对于老年人,这样的手机并不合适。 大三学习界面设计课时,老师组织我们参加“德赛关爱杯”老年人手机界面设计大赛。因此,我就老年人比较关心的几个问题制作了调查表. 我为这次针对老年人手机界面设计编写了调查表(后附),并在几个居民小区、菜市场、超市发放调查表100份。其中男性48人、女性52人,年龄在50岁以上。其中50~60岁20%,60~75岁75%,75岁以上5%。 通过针对这次老年人界面设计调查,我归纳为两方面: 一、通讯方面: 1.这些人群中经常使用手机的占67%、一般使用33%。经过这次的调查发现。我国现在将老 年人的年龄划定在60岁,基本上都是退休人员,离开了工作岗位,与外界的接触自然就会变少,但与外界进行信息交流的需要仍然存在,尤其是在信息技术如此发达的今天,老人的交际心理表现的更加强烈。

Java基础实验报告-图形用户界面设计

南京工程学院 实验报告 课程名称 JAVA基础 实验项目名称图形用户界面设计 实验学生班级 实验学生姓名 学号 同组学生姓名 实验时间 实验地点 实验成绩评定 指导教师签字年月日

一、实验目的和要求 1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。 2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。 3.熟悉在组件上绘图的方法。 二、实验题目 用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。 三、实验方法与步骤(需求分析、算法设计思路、流程图等) 算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:

因此,我设计了以下核心算法 public void actionPerformed(ActionEvent e) { if(e.getSource()==button_b) { double wage=Double.parseDouble((String)text_wage.getText()); double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500)

北邮《现代通信技术》实验报告一

现代通信技术实验报告 班级: 2012211110 学号: 2012210299 姓名:未可知

在学习现代通信技术实验课上,老师提到的一个词“通信人”警醒了我,尽管当初填报志愿时选择了通信工程最终也如愿以偿,进入大三,身边的同学忙着保研、考研、出国、找工作,似乎大家都为了分数在不懈奋斗。作为一个北邮通信工程的大三学生,我也不断地问自己想要学习的是什么,找寻真正感兴趣的是什么,通信这个行业如此之大,我到底适合什么。本学期,现代通信技术这本书让我了解到各种通信技术的发展和规划,也让我对“通信人”的工作有了更深刻的认识。 一、通信知识的储备 《现代通信技术》第一页指出,人与人之间通过听觉、视觉、嗅觉、触觉等感官,感知现实世界而获取信息,并通过通信来传递信息。所谓信息,是客观事物状态和运动特征的一种普遍形式,客观世界中大量地存在、产生和传递着以这些方式表示出来的各种各样的信息。信息的目的是用来“消除不可靠的因素”,它是物质运动规律总和。因此,我们通信人的任务就是利用有线、无线等形式来将信息从信源传递到信宿,在传输过程中保证通信的有效性和可靠性。 而具体来讲,要实现信息传递,通信网是必需的通信体系,其中通信网分层的结构形式需要不同的支撑技术,包括业务网技术,向用户提供电话、电报、数据、图像等各种电信业务的网络;介入与传送网技术,实现信息由一个点传递到另一个点或一些点的功能。对此,我们通信工程专业学习课程的安排让我们一步步打下基础,建立起知识储备。 知识树如下: 如知识树所述,通信工程课程体系可以大致分为一下6类基础:

数学基础:工科数学分析,线性代数,复变函数,概率论基础,随机过程; 电路基础:电路分析,模拟电子技术,数字逻辑电路,通信电子电路; 场与波基础:电磁场与电磁波,微波技术,射频与天线; 计算机应用能力:C 语言程序设计,微机原理与接口技术,计算机网络,数据结构,面向对象程序设计,实时嵌入式系统 信号处理类课程:信号与系统,信号处理,图像处理,DSP 原理及应用; 通信类课程:通信原理,现代通信技术,信息论基础,移动通信,光纤通信等。 从大一开始学习的工科数学分析,大学物理,大学计算机基础等课程为基础类课程,旨在培养我们的语言能力,数学基础,物理基础,计算机能力,然后逐步加大难度,细化课程,方向逐渐明朗详细。同时,课程中加入了各种实验,锻炼了我们的动手能力。 二、通信知识的小小应用 实验课上老师说过,以我们所学的知识已经可以制作简单通信的手机的草图了,我对此跃跃欲试。经过思考和调研,以下是我对于简单手机设计的原理框图和思考结果。 一部手机的结构包括接收机、发射机、中央控制模块、电源和人机界面部分,如下图 手机结构设计图 电路部分包括射频和逻辑音频电路部分,射频电路包括从天线到接收机的解调输出,与发射的I/O 调制到功率放大器输出的电路。其中,射频接收电路完成接收信号的滤波、信号放大、解调等功能;射频发射电路完成语音基带信号的调制、变频、功率放大等功能。要用到的超外差接收机、混频器、鉴相器等在《通信电子电路》书本中的知识。逻辑音频包括从接收解调到接收音频输出、送话器电路到发射I/O 调制器及逻辑电路部分的中央处理单元、数字语音处理及各种存储器电路。由核心控制模块CPU 、EEPROM 、 FLASH 、SRAM 等部分组成,一个基本 天线 接收机 发射机 频率合成 电源 逻 辑 音 频 人 机 交 互

UI设计论文

附件l:论文模版保密类别______ 编号________ 本科毕业论文 手机UI设计 系别 专业 班级 姓名 学号 指导教师 年月日 一、毕业作品基本信息

摘要 界面设计——在漫长的软件发展中,界面设计工作一直没有受到设计师得关注,其实软件界面设计是产品的重要买点。一个操作简洁美观的界面会给人带来舒适的视觉享受,拉近人与电脑的距离,为商家创造卖点,同时用户能够最直观的感受到视觉设计的魅力。 本文从UI的概念及发展谈起,谈UI设计的重要性。根据用户调查与市场分析进行手机UI设计。在了解用户使用习惯和确定用户群体后,从中得出结论并进行设计工作。 我的设计围绕着年青一代使用者,将手机的常规操作与游戏相结合,创新一种新颖的娱乐消费模式。让虚化的手机操作过程转化为游戏中所需要的材料,产生有价值的网络产品,使得手机操作变得更有趣味性,全面提升用户在使用手机时的认知,操作和主观感受等层面的体验。当用户在使用手机时不仅仅是在交流信息而是在体验一种全新的生活娱乐方式,从而给他们带来情感上的愉悦和满足。此设计区分于同类产品,希望能够把握用户的情感,使用户真正感受设计的魅力。 关键词:UI+GAME;界面设计;交互设计;人机交互;交互风格;虚拟现实网络、手机、UI、游戏 ABSTRACT This paper is carried out on the basis of the 211 project-Ssmi-physical simulation system for ship motion control (正文为Times New Roman l4号,行距l.25倍) …… …… Keywords:XXXXXX;XXXX;XXXXX (正文为Times New Roman l4号,行距l.25倍)

oracle设计实验报告材料

课程设计 课程题目:ORACLE应用系统设计设计题目:音像店信息管理系统 专业:计算机科学与技术 班级:计131 组员:李霆桑珠扎西虞洲 学号: 130761 130767 130762 日期: 2016-03-04 信息工程学院计算机科学与技术

目录 一.课程目的………………………………………………………. 二.题目要求……………………………………………………… 三.日期安排………………………………………………………. 四.组内分工……………………………………………………… 五.实验条件......................................................... ........................... 六.实验内容......................................................... ........................... (1)第一部分:Oracle管理技术……………………………………… 1.数据库管理…………………………………………………….. 2.角色和用户管理………………………………………………... 3.表和视图管理………………………………………………….. 4.索引和序列管理………………………………………………... 5.PL/SQL编程…………………………………………………… 6.使用游标、存储过程和触发器………………………………… 7.表空间管理……………………………………………………… 8.文件管理………………………………………………………… (2)第二部分:Oracle开发技术……………………………………….. ①数据库设计………………………………………………………………… ②界面设计.................................................... ③结果测试…………………………………………………………………… 七.问题及解决…………………………………………………….. 八.总结...............................................

移动通信 GSM实验报告

深圳大学实验报告 课程名称:移动通信 实验项目名称GSM模块配置/设备呼叫/设备短信收发学院:信息工程 专业:通信工程 指导教师: 报告人:学号:班级: 1 实验时间: 实验报告提交时间: 教务处制

实验目的与要求: GSM模块配置1. 了解GSM模块的特点; 2. 了解配置GSM模块的AT命令。GSM 设备短信收发1.了解GSM网络中短消息业务的组成结构;2. 了解GSM网络中短消息收发的过程; 3. 熟悉短消息的数据格式; 4. 熟悉GSM模块进行短信收发的AT命令。 GSM 设备呼叫1.了解GSM网络中话音呼叫的过程; 2. 熟悉用本移动实验箱作为主叫和被叫用户进行语音呼叫;3.熟悉GSM模块进行语音呼叫的AT命令 实验原理:

实验过程及内容: GSM模块配置:1、GSM模块测试(无需插入SIM卡)2、GSM通信速率设置(例:修改GSM模块速率为9600bps)3、GSM模块命令返回结果码数字或字符模式4、GSM模块命令结果码控制5、GSM模块命令回显模式6、保存设置7、版本信息GSM设备短信收发:1.收发短信的准备(1)在PC机上收发短信(2)设置GSM 模块命令返回结果码为字符模式;(3)设置短消息中心(4)设置短信存储区域2.用AT命令控制GSM接收短信过程如下(1)GSM模块接收短消息(2)用TEXT模式读取短消息(3)用PDU模式读取短消息(4)删除短消息3.用AT命令控制GSM 发送短信过程如下(1)用TEXT模式发送英文短消息(2)用PDU模式发送中文短消息4.用配套软件发送短信(中文,英文,中英文混合) GSM设备呼叫:(一)在移动实验箱上进行呼叫(二)在PC机上进行呼叫(1)主叫呼叫和挂机实验:(2)被叫接续实验:(3)GSM模块作为被叫,可以进行摘机和挂机

相关文档
最新文档