设计通讯录管理系统

2024-08-22

设计通讯录管理系统(精选8篇)

1.设计通讯录管理系统 篇一

import java.io.*;import java.util.*;public class LittleProgram {

static boolean isDelete = true;

static boolean isFind = true;

public static void main(String [] args)//主方法,程序从这里开始运行

throws IOException,NumberNotFoundException

{

int choice=-1;

do{

LittleProgram lp = new LittleProgram();

System.out.println();

System.out.println(“t

#”);

System.out.println();

System.out.println(“tt通訊錄管理系统”);

System.out.println(“t

请用号码插入,查找,修改,删除数据”);

System.out.println();

System.out.println(“t

#n”);

System.out.print(“1.增加号码:n”+

“2.查找号码:n”+

“3.删除号码:n”+ “4.清除所有号码:n”+ “5.把号码全部打印到屏幕n”+ “6.把通讯录按号码排序n”+

“7.修改号码n”+

“8.统计通码讯录的总人数n”+

“9.关于作者n”+

“0.退出程序.n” +

“输入:”);

BufferedReader in =

//从终

new BufferedReader(//端接

new InputStreamReader(System.in));//收数

String inputLine = in.readLine();

//字选

choice= Integer.valueOf(inputLine).intValue();//项;

switch(choice)

{

case 1: {//1.增加号码

String str = lp.inputData();

lp.addData(str);

System.out.println(“增加号码成功.”);

timeOut(1);

}break;

case 2: {//2.查找号码

long find = 0;

System.out.print(“请输入你要查找的号码:”);

BufferedReader inn =

new BufferedReader(new InputStreamReader(System.in));

String inputLi = inn.readLine();

find = Integer.valueOf(inputLi).longValue();

lp.findData(find);

timeOut(2);

}break;

case 3: {//3.删除号码

long deleteNumber = 0;

System.out.print(“请输入你想删除号码:”);

BufferedReader bf =

new BufferedReader(new InputStreamReader(System.in));

String inputL = bf.readLine();

deleteNumber = Integer.valueOf(inputL).longValue();

lp.deleteData(deleteNumber);

if(isDelete)

System.out.println(“删除号码成功!”);

timeOut(1);

}break;

case 4: {

lp.clearData();//4.清除所有号码

timeOut(1);

}break;

case 5: {

print();//5.把号码全部打印到屏幕

timeOut(2);

}break;

case 6: {

lp.numSort();//6.把号码按号码排序

System.out.println(“按照号码从小到大排序成功!n”+

“排序后:n”);

print();

timeOut(2);

}break;

case 7: {

lp.rewrite();//7.修改号码

timeOut(2);

}break;

case 8: {

int count = lp.count();

System.out.println(“共有”+count+“个号码记录.”);

timeOut(2);

}break;

case 9: {

System.out.print(“tt李雪萍n”+

“tt安徽理工大學理學院n”+

“ttQQ:1154646392n”);

timeOut(4);

}break;

}}while(choice!= 0);

System.out.println(“Bye!^-^”);

System.exit(0);

}

public String inputData()//从终端接收数据的方法,返回字符串

throws IOException,NumberFormatException

{

System.out.print(“请依次输入 :号码 姓名 地址 生日n” +

“每项数据请用空格隔开:”);

String all = “";

try{

BufferedReader in =

//从终

new BufferedReader(//端接

new InputStreamReader(System.in));

//收数

String inputLine = in.readLine();

//据

StringTokenizer str =

new StringTokenizer(inputLine,” “);//接收的数据用空格隔开,这个类用来提取每个字符串

long num = Integer.valueOf(str.nextToken()).longValue();//号码

String name =(String)str.nextToken();

//姓名

String add =(String)str.nextToken();

// 地址

String birth =(String)str.nextToken();//出生年月

all = String.valueOf(num)+” , “+

name +” , “+

add +” , “+

String.valueOf(birth);//把所有的数据用” , “隔开然后在连起来放进字符串all

}catch(IOException e){}

catch(NumberFormatException e){}

return all;//返回字符串all

}

public void addData(String str)//增加号码的方法

throws IOException

{

String s1 =”“,s2=”“ ,s3= ”“;

File file = new File(”c:data.txt“);

if(file.exists())//如果文件data.txt存在 {

try{

BufferedReader in =

new BufferedReader(new FileReader(file));

while((s1=in.readLine())!=null)

s2+=s1+”n“;//把文件中的每行数据全部放进一个字符串s2

s2+=str+”n“;

//再把s2于形参str相连放进s2

BufferedReader in2 =

//把字符

new BufferedReader(//串s2也

new StringReader(s2));

//就是原

PrintWriter out =

//文件+

new PrintWriter(//形参str(新输入的一行数据)

new BufferedWriter(//重新写进data.txt

new FileWriter(file)));

//覆盖原来的数据

while((s3=in2.readLine())!= null)

{

out.println(s3);

}

out.close();

//System.out.println(”write data true.“);

}catch(IOException e){}

}else{

System.err.println(”File “data” Missing!“);

}

}

public void clearData()//清除data.txt的所有数据的方法

throws IOException

{

File file = new File(”c:data.txt“);

if(file.exists())//如果文件在{

try{

PrintWriter out =

new PrintWriter(new BufferedWriter(new FileWriter(file)));

out.print(”“);//在文件data.txt里写进一个空字符,所以清除了原来的内容

out.close();//关闭文件

System.out.println(”clear data true!“);

}catch(IOException e){}

}else{

System.err.println(”File “data” Missing!“);

}

}

public void deleteData(long deleteNumber)//删除某条号码数据

throws IOException,FileNotFoundException

{

isDelete = true;

try{

DataMap mp = new DataMap();//生成一个自己编写的容器

long j=0;

String s1=”“,s2=”“,s3=”“;

BufferedReader in =

new BufferedReader(new FileReader(”c:data.txt“));

while((s1=in.readLine())!=null)

{

j=numberTokenizer(s1);

mp.put(j,s1);

}

try{

if(mp.containsKey(String.valueOf(deleteNumber).toString()))

{

mp.remove(deleteNumber);

}else

throw new NumberNotFoundException();

Collection c = mp.values();

Iterator iter = c.iterator();

while(iter.hasNext())

{

s1 =(String)iter.next();

s3 +=s1+”n“;

}

BufferedReader in2 =

new BufferedReader(new StringReader(s3));

PrintWriter out =

new PrintWriter(new BufferedWriter(new FileWriter(”c:data.txt“)));

//System.out.println(”delete No“+deleteNumber);

while((s1 = in2.readLine())!=null)

{

out.println(s1);

} out.close();}catch(NumberNotFoundException e){

isDelete = false;

System.out.println(deleteNumber+” no found :(“);

}

}catch(IOException e){}

}

public long numberTokenizer(String s)

throws IOException

{

StringTokenizer st =

new StringTokenizer(s,” “);

return Integer.valueOf((st.nextToken())).longValue();

}

public void findData(long find)//查找数据

throws IOException,NumberNotFoundException

{

isFind = true;

String s = ”“,findString =”“;long i;DataMap dm = new DataMap();BufferedReader in =

new BufferedReader(new FileReader(”c:data.txt“));

while((s=in.readLine())!=null)

{

i=numberTokenizer(s);

dm.put(i,s);

}

//in.close();

try{

if(dm.containsKey(String.valueOf(find).toString()))

{

findString = dm.get(find);

System.out.println(”学号“+find+”学生的资料是:“);

System.out.println(findString);

}else

throw new NumberNotFoundException();

}catch(NumberNotFoundException e){

System.out.println(find+” no found :(“);

isFind = false;

}

}

public static void print()//读取文本文件把数据打印到终端的方法

throws IOException

{

try{

BufferedReader in =

new BufferedReader(new FileReader(”c:data.txt“));

String read = ”“;

while((read = in.readLine())!=null)

System.out.println(read);

}catch(IOException e){}

}

public static void timeOut(double sec)//停顿短暂时间的一个方法完全可以不要这个功能

{

double seconds = sec;

long t = System.currentTimeMillis()+(int)(seconds*1000);

while((System.currentTimeMillis())

;

}

public void numSort()//按学号排序

throws IOException

{

long i = 0;

String s = ”“;

try{

DataArrayList dal = new DataArrayList();

BufferedReader in =

new BufferedReader(new FileReader(”c:data.txt“));

while((s=in.readLine())!=null)

{

i=numberTokenizer(s);

dal.add(i);

}

Collections.sort(dal);

DataMap dm = new DataMap();

BufferedReader in2 =

new BufferedReader(new FileReader(”c:data.txt“));

while((s=in2.readLine())!=null)

{

i=numberTokenizer(s);

dm.put(i,s);

}

PrintWriter out =

new PrintWriter(new BufferedWriter(new FileWriter(”c:data.txt“)));

Iterator it = dal.iterator();

long temp = 0;

String tempStr = ”“;

while(it.hasNext())

{

temp = Integer.valueOf((String)it.next()).longValue();

tempStr = dm.get(temp);

out.println(tempStr);

}

out.close();

}catch(IOException e){}

}

public void rewrite()

throws IOException,NumberNotFoundException

{

try{

System.out.print(”请输入你要修改的学生号码:“);

BufferedReader in =

new BufferedReader(new InputStreamReader(System.in));

String inputLine = in.readLine();

long num = Integer.valueOf(inputLine).longValue();

findData(num);

if(isFind)

{ deleteData(num);System.out.print(”请重新输入该号码:“);String str = inputData();

addData(str);

System.out.println(”rewrite true!“);

}

}catch(IOException e){}

catch(NumberNotFoundException e){}

}

public int count()

throws IOException

{

DataArrayList dal = new DataArrayList();

try{

String s = ”“;

long i =0;

BufferedReader in =

new BufferedReader(new FileReader(”c:data.txt“));

while((s=in.readLine())!=null)

{

i=numberTokenizer(s);

dal.add(i);

}

}catch(IOException e){}

return dal.size();

} } /* *

* @author RangWei * TODO 这是个写的一个容器,继承公共类HashMap * 大概的功能就相当一个数组

*

*/ class DataMap extends HashMap//一个存储数据的Map

{

public void put(long i,String str)//把学号和数据放进这个Map

{

//以后一个学号(key)对应的是一个人的数据(value)

put(String.valueOf(i).toString(),str);

}

public void remove(long i)//接收学号,然后删除学号(key)和它对应的数据(value)

{

remove(String.valueOf(i).toString().toString());

}

public String get(long i)//接收一个学号,然后返回这个key对应的value

{

String s = String.valueOf(i).toString();

if(!containsKey(s))

{

System.err.println(”Not found Key: "+s);

}

return(String)get(s);

} } /*

*

* @author RangWei * * TODO 这个类继承ArrayList * 用来按数字排序,在用号码排序时要用到它

*

*/ class DataArrayList extends ArrayList {

public void add(long num)

{

String numToString = String.valueOf(num).toString();

add(numToString);

} } /* *

* @author RangWei * * TODO 增加的一个Exception,主要是在文件里没有要找

* 的号码就抛出

*

*/ class NumberNotFoundException extends Exception {

public NumberNotFoundException()

{} }

2.设计通讯录管理系统 篇二

一、开发环境和开发语言的确定

本系统是面向普通个人用户开发的, 要求开发出来的软件绝大部分人都能使用和操作。因此, 需要选用面向对象的程序设计语言。Visual Basic 6.0是功能强大、图形界面丰富的面向对象的程序设计语言, 其开发出来的系统具有界面简单易学, 易操作, 通用性强等优点。因此, 针对本系统软件的需求和特点, 选择以下方案构建系统:选择Visual Studio 6.0作为软件开发工具, Access为服务平台及其后台数据库。

二、系统功能分析

传统的信息管理方式不仅效率低, 可靠性、安全性和保密性也无法满足要求, 而且数据统计时间滞后。而普通的通讯录管理系统存在以下问题: (1) 只能提供个人使用, 缺乏信息的沟通与共享。 (2) 管理方式单一。 (3) 检索速度慢, 不能快速地进行查找筛选。 (4) 缺乏数据备份, 一旦丢失便无处可寻。

因此, 高效的通讯录管理系统需要具备以下几项功能: (1) 用户权限的管理, 一般用户只能对通讯录的信息进行查询, 只有管理者才能进行更新, 提高系统的安全性和可靠性。 (2) 具备模糊查询模块, 提高查找的效率, 方便快捷。 (3) 具备精确查找功能, 并对资料进行合理有效的分类, 方便用户查询。 (4) 设置备忘提醒模块, 增加记事、闹铃、好友生日提醒、纪念日提醒等各种人性化的功能。 (5) 增加系统维护模块, 定期对数据进行备份。

三、系统总体分析

1. 系统架构分析。根据通讯录管理系统的特点, 将整个系统的模块划分如图1所示:

登入模块:在进入系统之前, 要进行身份确认, 只有用户名和用户密码都相符的用户方可进入本系统。为了防止不合法用户对通讯录管理系统数据的察看和修改, 本系统把用户分为两个级别:普通用户和管理员用户。管理员用户不仅拥有对通讯录系统信息的查询、修改权限, 还对用户的使用权限进行控制, 可以设定用户名、密码和其权限, 可以对通讯录的信息进行增加、删除、修改等操作。普通用户只能对通讯录信息进行查询、打印, 进行增加、删除、修改等操作。

单人资料管理模块:对通讯录中的每个成员的详细信息进行添加、删除、修改。

模糊查询模块:可以根据某一项信息对联系人的具体信息进行快速精确地查询, 节约了时间, 大大提高了查询的效率。

全体资料模块:对联系人资料的整合和分类管理。

用户注册模块:注册管理新用户。

系统维护模块:可以对用户的权限等进行管理, 定期对数据进行备份。

备忘提醒模块:具有备忘提醒的功能, 对备忘事项、好友生日、纪念日等重要事件进行提醒。

2. 系统E-R图。

系统的E-R图如图2所示, 其实体及其属性有: (1) 用户注册表 (编号, 姓名, 密码, 权限) 。 (2) 通讯个人资料表 (编号, 姓名, 通讯地址, QQ, 邮箱, 手机, 电话) 。

3. 系统流程说明。

(1) 用户输入用户名和密码, 系统判断用户名和密码是否正确。 (2) 如果不正确, 则返回用户登录界面要求用户重新输入。 (3) 如果系统判断输入的用户名和密码是正确的, 则系统继续判断输入的用户名权限。 (4) 如果是系统管理员, 用户可以对系统的以下模块进行操作;即个人资料模块、全体资料模块、模糊查询模块以及系统管理模块。 (5) 如果是普通用户, 用户只可以对人资料模块、全体资料模块、模糊查询模块进行操作。

四、总结

通讯录管理系统为每一个用户提供充足的信息和快捷的查询手段, 大大方便用户管理通讯录, 而且有着手工管理所无法比拟的优点, 如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率, 也促进用户对通讯录的科学化、正规化管理。

摘要:随着科学技术的不断发展, 计算机应用日渐成熟。作为计算机应用的一部分, 通讯录管理系统是每一个用户管理日常通讯录的重要工具。本文首先明确了通讯录管理系统的开发环境和设计语言, 接着简单分析了系统的功能, 最后详细说明了系统的总体设计。

关键词:通讯录系统,管理信息系统,模糊查询

参考文献

[1]周佩德.《数据库原理及应用》.电子工业出版社, 2008

[2]刘长毅.软件开发技术基础[M].北京:科技出版社, 2006

3.设计通讯录管理系统 篇三

关键词:近场通讯 安卓系统 设计

中图分类号:TP393 文献标志码:A 文章编号:1672-3791(2014)11(b)-0050-01

近场通讯技术是2002年被开发出来的一项无线通讯技术,并且在欧洲电脑厂商协会、国际电工委员会和国际标准化组织等被接受为标准。近场通讯有这更为短的通讯距离,软件与硬件的实现会更为简单,电子设备可以更加快速的连接要进行交换的信息。

1 近场无线通讯的应用模式

进厂无线通讯模式是在十几厘米范围之内对无线数据进行传输的一种技术。它是由互联网技术、非接触式识别技术发展而来的,可以在单一的芯片上,它实现了非接触智能卡同设备的点对点通信、非接触式的读卡器能力。在通信当中使用点对点的时候,根据设备在整个连接中的角色,我们会对设备进行命名,实现主动发起连接功能的设备我们称为发起设备。另外一种设备就被看做目标设备。目标设备和发起设备同时都支持两种通信方式,也就是被动和主动。在主动的通信模式里,两种设备都是要经过自身的射频场才能进行通信活动。在被动的通信模式里,设备在工作时有很少的耗电量,节能省电。有三种应用模式在NFC中,其一就是读写模式,这种设备完全可以当做阅读器,是符合18092、15693与ISO/IEC14443等规范的智能卡进行读写。其二是智能卡模式,在这种模式下,设备可以模拟智能卡功能也能模仿读写器以此来进行交互。目前仅支持IEC/ISO18092规范。三是点对点的模式,支持该设备之间的通信,见图1。

2 近场无线通讯技术中的连接、传输问题

在NFCIP-1的标准中我们对于编码、帧结构、调制机制、传输速率和射频接口等进行了规定,另外还对初始化过程、传输协议和冲突检测等有规定,支持三种传输速率。

2.1 帧结构

不同传输速率存在不同的幀结构,例如在106 kb/s的速率中有三种帧结构,即短帧、标准帧和检测帧。

2.2 冲突检测

冲突检测就是要避免干扰正在通信的设备与此频段所使用电子设备,标准中对于相关设备也进行了规定,就是在初始化之后,要先检查设备周围的射频场,只有外部没有出现射频场的时候才能有下一步的操作计划。

2.3 初始化的过程

NFC设备的默认状态就是我们所指的目标状态,目标设备不能产生射频场,设备由一些应用程序所控制,从目标状态切换到发起的状态,这些设备如果到了发起状态就可以开始进行冲突检测,需要注意的是,外部的射频场只有在消失之后才能将自己的磁场激活,而应用程序要对通信模式、传输速度进行确定以后才能建立连接的传输数据。

2.4 传输过程

传输协议有三个主要步骤,即协议激活、协议关闭和数据交换。协议激活的主要目的就是要在发起设备、目标设备间进行参数选择和属性请求等问题的。数据交换的协议子啊工作形式上是半双工的,利用数据块来对传输活动进行控制,其中就包括错误处理机制。数据的交换协议关于多点激活的属性,允许发起设备在同一时间段可以激活多个射频场中的目标设备,如此一来,发起的设备就能够对多个目标设备进行通信作用,多个目标设备就能够进行快速精准的切换,节省很多时间,摒弃了传统的释放一个目标之后采取激活下一个。完成数据交换的过程后,发起设备就会开始执行协议关闭的程序,包含撤销选中连接与释放连接。

3 近场无线通讯的数据交换的标准

数据交换的格式标准已经被相关部门制定,这个标准就是在NFCIP-1标准之上而发展起来的,是可以用来支持应用层数据的交换活动的。NDEF里对于信息交换的消息封装格式也进行了定义,这种格式就是轻量级的二进制格式,是可以在任意类型、任意大小的应用层数据库封装到一个简单的消息结构中。NDEF消息有很多记录顺序,这些记录本身并不含有搜索的一些信息,但记录间的序列关系已经在消息串行化结构里凸显出来。

4 安卓应用程序记录

在安卓4.0中引入的应用程序记录提供了NFC标签,启动了应用程序有确定性。AAR在NDEF内部的嵌入记录程序。将一个AAR填进NDEF消息的记录中,由于安卓会根据AAR来进行NDEF消息的搜索。一旦它能够寻找到一个ARR,那么它就会在内部包名来对程序进行启动。一旦该应用程序不在当前的设备之上,那么一般就会开启Google Play下载。如果NFC的标签中有ARR,那么NFC标签调度系统就会有所调节。

5 结语

当前近场无线通讯技术还处在一个比较小的范围内使用中,但是毫无疑问,在移动通信发展迅速的今天,在安卓系统中使用近场无线通讯技术已经是大势所趋,在当前的发展过程中,支持的该技术的硬件产品是非常少的,价格也没有进入到一个相对合理的范围之内。各项规范与设计都仍有待完善,尤其是在应用程序的开发方面更需要大力支持。此外,该技术若要实现更大规模的发展普及还需要面临一些难题,这就需要我们更加努力探索。

参考文献

[1] 夏文栋,林凯.融合NFC的3G智能卡系统[J].计算机工程,2011(2).

[2] 黄晖,庄文雅.基于近场通信的手机支付解决方案[J].硅谷,2010(18).

[3] 刘浩.基于NFC技术的近场通信应用探索[J].中国无线电,2010(12).

4.通讯录详细设计说明书 篇四

详细设计说明书

组员:

1210431107

孟磊(项目组长)1210431119

张静 1210431039

左依婷 1210431041

王庆喜 1210431075

杨江峰

12级计算机软件一班

目录

1.引言

1.1编写目的 1.2 背景 1.3 定义

1.4 参考材料

2.程序系统的结构 2.1 运行环境 2.2 系统组织结构

3.程序主要模块设计说明 3.1 程序描述

3.2 主要功能模块设计 3.3 性能 3.4 输入输出 3.5 算法 3.6 流程逻辑 3.7 接口 3.8 存储分配 3.9 注释设计 3.10 测试设计 3.11 限制条件

3.12 尚未解决的问题

1引言

1.1编写目的

本文档将对通讯录系统软件开发的详细设计进行描述,本文档的读者是项目策划、设计和评审人员。

1.2背景

本项目作为《软件文档写作》课程的训练项目提出,将学生分成若干项目开发小组进行管理。希望学生通过通讯录系统软件设计开发,了解软件文档的相关标准和编写原则,训练并掌握软件各类文档写作的技巧,同时提高学生使用Java开发应用程序的能力。

本项目的名称:通讯录管理系统 本项目的提出者:指导老师 本项目的开发者:本小组 项目需求方:日常管理 用户:管理员

1.3定义

通讯录管理系统名称

1.4参考资料

《开发要求说明》. 《软件需求说明书》。《概要设计说明书》。

2程序系统的结构

2.1运行环境

(1)设备

硬件最低要求:CPU PⅢ 以上PC服务器,内存32MB以上,硬盘15MB以上。

(2)支持软件

操作系统:Windows 98,Windows NT、Windows 2000、Windows XP,Windows Server 2003等能

3程序主要模块设计说明

3.1 程序描述

给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如 是常驻内存还是非常驻?是否子程序?是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发处理等)。

3.2 主要功能模块设计

(1)打开通讯录系统显示欢迎界面: 具体实现函数

(2)菜单处理函数管理程序的用户界面操作,用户通过提示选择想要进行的操作:具体实现函数

(3)本模块主要完成对已有输入的通讯信息进行显示浏览,浏览同时可以进行修改、删除等操作。

(4)在通讯录查询模块中,用户可以通过查询尽快找到希望查找的联系人,查询支持模糊查询,可以匹配多个字段;给出查询记录的信息;如果查询的信息不存在,输出提示信息。

(5)根据系统的输入要求添加各项信息,每次可以添加一个或多个新的记录,新增的记录可以不存入原文件中,也可以指定文件追加内容;能给出新添加记录的信息;添加后提示添加是否成功。

(6)根据特定信息选择所要删除的对象

(7)修改记录:具体实现函数

保存记录:具体函数实现

读取记录:具体实现函数

清空当前记录:具体实现函数

3.3 性能

满足个人使用的需求(记录量控制在1000项内)。对前面提到的运行环境要求不应存困难。本软件采用可视化界面,用户通过单击界面上的相关按钮就可以完成各项操作。一般操作的响应时间应在1~2秒内,对软磁盘和打印机的操作也应在可接受的时间内完成。查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到。因为通常的ISCDS规模在几十到几百项记录,以查全率为标准所带来的对查准率的影响并不大。

3.4 输人输出项

数据名称:联系人姓名、联系人邮箱、联系人电话

数据类型:char,数据格式:例Lily,Note@gm.com,123321;

3.5 算法

本程序没有采取特殊的算法

3.6 流程逻辑

用户(1)浏览功能(2)查询信息用户登录是否是管理员Y进入管理员管理N权限级别根据级别不同提供给不同的服务 该流程图表示通讯录系统的逻辑流程,用户可以直接浏览和查询通讯录简单信息,也可以先登录,如果是管理员则具有管理权限,可进入管理员的管理页面;如果不是管理员,则判断用户权限级别,根据用户的权限级别提供不同的服务。

3.7 接口

部分用户接口视图

3.8 存储分配

无特殊要求

3.9 注释设计

①加在程序单元首部,说明本程序的作用。②对程序中的变量代表的意思、范围进行注释。③对程序中的函数或过程所起的作用进行注释。具体注释见类图部分。

3.10 测试计划

(1)界面测试

主要包括以下几个方面内容:

a.页面在窗口中的现实是否正确,美观(在调整浏览器窗口大小时,屏幕刷新是否正确,表样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等,连接的形式,位置是否易于理解等。

b.站定地图和导航条位置是否合理,是否可以导航,是否覅和用户要求。

c.页面元素基本功能是否实现,容错性是否存在,页面元素外形,是否现实正确。

测试技术:结合兼容性测试对不同分辨率下页面现实效果,如果有影响则提出解决方案,可以结合数据定义文档查看表单项的内容,长度等信息。界面测试要素:符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性。

(2)功能测试

测试分为白盒测试和黑盒测试。

白盒测试是指跟踪代码以人工检查追踪的方式查找BUG。

黑盒测试是指使用者对代码不可见,直接使用系统,把出现的异常记录下来,整理成测试报告,主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,考虑正确性,可用性,边界条件,性能,压力测试。多用户情况考虑压力测试工具,建议压力和性能结合起来进行,可以查看CPU使用率,内存占用情况,还可以模拟大量数据输入,对硬盘的影响等信息。其中压力测试包括错误恢复错误处理,页面数据验证,包括突然间断电,输入脏数据等。兼容性,不同浏览器,不同应用程序版本在实现功能时的表现,不同的上网方式。

本系统在最后阶段经过了测试,主要是黑盒测试,由于系统模块并不十分复杂,在继承测试的过程中出现的问题并不多,相对而言比较顺利。

3.11 限制条件

说明本程序运行中所受到的限制条件。

3.12 尚未解决的问题

5.即时通讯 教学设计 篇五

(科目:信息技术)

执教教师:摆世强 2008年6月5日

即时通讯软件 教学设计

教学目标: 1.了解即时通讯软件的定义

2.学会使用一款即时通讯软件 教学重难点:

1.对于一款即时通讯软的灵活应用。教学过程: 教学过程

一、情景导入

展示课件:本课件主要展示各种各样的即时通讯软件,然后选择其中一款导入课题。

老师:亲爱的同学们,刚才你看了这些图片,你们用过哪些即时通讯软件呢?

学生:踊跃举手发言

老师:这么多同学举手,我该听谁的意见呢。这样吧,老师有个办法,我们一起在一款名叫飞秋即时通讯软件里面进行交流。

讲述新课

即时通讯软件的定义、内容扩展。教师演示

师问:那么怎么样获得对方的账号或呢称呢? 生答: 师:在网上要增强自我保护意识,问怎么样更好的保护自己呢??

生答:总结回答,如不要轻易把姓名、家庭住址、电话号码等有关个人身份的信息及个人照片留给他人。以免身心受到伤害。

试一试:

1、设置个人“身份验证”的方法

2、如保把不友善的“好友”拖到“黑名单”

三、收发信息:

通过发送文字实现与对方的实时交流以,是即时通讯的基本功能

师问:文字交流有好何益处? 生答:-------实践过程:让学生自已动手操作,然后演示交流 第一步:登录飞秋,从在线“好友“中选择联系人。第二步:双击“好友“头象,进入对话窗口

第三步:以对话输入窗口中输入要发送给对方的文字,单击“发送”按钮,文字在即时传送给对方的同时,也出现在上方的对话显示窗口中,同样,对方发送过来的文字也会出现在对话显示窗口中。

师问:如果对方不在线,会怎么样啊??

生答:发送的信息会暂时由服务器保存,待“好友”上线时再转发给他。教师巡堂查看学生操作情况,提醒学生在聊天室要注意使用文明健康的语言。并要特别强调网络上很多东西是虚拟的,我们应加强自我保护意识,不要沉迷于网络交友、网络聊天等。

三、授课完毕,课程总结 本节课主要讲了三个知识点:

1.了解即时通讯软件飞秋 的基本功能和使用方法; 3.学会使用飞秋软件进行交流。

四、总结

即时通讯软件说课稿

教材简析 自备

说教学目标: 1.知识目标

了解即时通讯软件的定义 学会使用一款即时通讯软件 2.能力目标

能熟练使用即时通讯软件发表意见,探讨交流,解决问题。3.情感目标

让学生体会网络给我们的生活方式带来的巨大改变,激发学生热爱信息技术的情感。增强网络是非观能力。说教学重点 即时通讯软的使用 飞秋软件的的使用; 网络道德。说教学难点

即时通讯软件(飞秋软件)的掌握 网络道德。学情分析

本课是面向五年级下期的学生,对学习、生活等各方面都有自己的看法,网络为学生发表和交流自己的意见提供了一个平台,学生参与的积极性肯定很高,同时很多同学已有了自己的QQ号,对QQ的使用也很熟悉,也很喜欢聊天。所以本课是一节操作性很强的课,内容丰富有趣的课,学生动手操作欲望强烈。但五年级学生毕竟是小学生,对事物的看法相对幼稚,是非观不强,自制力也比较差。故在本课教学过程中,用一款名为飞秋的局域网即时通讯软件代替QQ作为交流的工具。

要特别注意引导学生的兴趣和操作欲望。在培养学生发表意见、交流意见时,教师要特别对学生进行网络道德教育。说教学方法

情景导入法、任务驱动法、引导讲解法。所用课时 1课时。教学环境 校机房。教学过程

二、情景导入

展示课件:本课件主要展示各种各样的即时通讯软件,然后选择其中一款导入课题。

老师:亲爱的同学们,刚才你看了这些图片,你们用过哪些即时通讯软件呢?

学生:踊跃举手发言 老师:这么多同学举手,我该听谁的意见呢。这样吧,老师有个办法,我们一起在一款名叫飞秋即时通讯软件里面进行交流。

讲述新课

即时通讯软件的定义、内容扩展。教师演示

师问:那么怎么样获得对方的账号或呢称呢? 生答:

师:在网上要增强自我保护意识,问怎么样更好的保护自己呢??

生答:总结回答,如不要轻易把姓名、家庭住址、电话号码等有关个人身份的信息及个人照片留给他人。以免身心受到伤害。

试一试:

1、设置个人“身份验证”的方法

2、如保把不友善的“好友”拖到“黑名单”

三、收发信息:

通过发送文字实现与对方的实时交流以,是即时通讯的基本功能

师问:文字交流有好何益处? 生答:-------实践过程:让学生自已动手操作,然后演示交流 第一步:登录飞秋,从在线“好友“中选择联系人。第二步:双击“好友“头象,进入对话窗口

第三步:以对话输入窗口中输入要发送给对方的文字,单击“发送”按钮,文字在即时传送给对方的同时,也出现在上方的对话显示窗口中,同样,对方发送过来的文字也会出现在对话显示窗口中。

师问:如果对方不在线,会怎么样啊??

生答:发送的信息会暂时由服务器保存,待“好友”上线时再转发给他。

教师巡堂查看学生操作情况,提醒学生在聊天室要注意使用文明健康的语言。并要特别强调网络上很多东西是虚拟的,我们应加强自我保护意识,不要沉迷于网络交友、网络聊天等。

三、授课完毕,课程总结 本节课主要讲了三个知识点:

1.了解即时通讯软件飞秋 的基本功能和使用方法; 3.学会使用飞秋软件进行交流。

四、布置作业

1.在飞秋软件上跟老师交流学习心得。

五、教学反思

1.对于通讯和电脑知识学生较感兴趣,因此课堂气氛比较活跃,学生能根据我设计的内容及时的做出回应。在操作中也能及时完成,能做到对电脑知识的自主探究,我也给了他们自主发挥的空间。完成了本课的教学任务。

6.毕业设计动员大会通讯稿 篇六

为了有效落实教师教育学院大三学生的毕业论文设计工作,确保论文选题等相关事宜如期实施。10月16日下午,在我学校B108教室,我系隆重举办了毕业论文设计动员大会。全体论文指导老师、辅导员及系毕业班同学等参加了此次大会,大会由陈蕾老师主持。

大会伊始,陈蕾做重要讲话。她首先向大家简要介绍了毕业设计的相关内容及情况,并特别指出毕业设计的重要性。因为毕业设计不仅关系着每位同学的毕业情况,更是对同学们大学几年所学知识的检验与试练。陈老师强调,大家一定要给予足够的重视,认真完成毕业设计的全部内容。她希望同学们处理好毕业设计与实习工作的关系,并希望大家保质保量完成毕业设计。

随后,她指出,只有将自己所学的理论知识和实践应用充分结合起来,做好自己的毕业设计,才能更好的走向社会,面对市场。接着,陈蕾老师向同学们详细介绍了毕业设计的流程,论文的书写格式,开题答辩的规则及时间等。并希望同学们按照要求撰写论文,严格遵守论文的格式和标准,且同指导老师做好联系,为论文答辩及中期检查和评阅认真做好准备。

会中,陈蕾老师依次解答了毕业设计中的几个重要问题。她希望同学们遇到问题务必要向指导老师请教,认真完成自己的毕业设计。

大会最后,陈蕾老师总结性发言,她建议同学们认真对待,合理、有效的选择好自己的论文题目。随后,陈蕾老师为大家总结了两点内容:(1)认真参考自己的综合课程设计,根据自身具体情况综合考虑,合理选择;(2)学会与老师沟通,结合自己所掌握的知识,扬长避短,弄清自己的意向,最终选择适合自己的方式。此外,老师强调,学生由指导老师管理和负责,学生应与指导老师沟通协调好毕业论文设计的进程和毕业实习的安排。所有学生不可脱离指导老师的管理范围,要兼顾好自己的毕业设计和以后的工作。最后,陈老师祝大家都能顺利完成自己毕业论文。

此次毕业设计动员大会旨在为同学们提供专业指导,促进同学们的毕业设计进程,为同学们更好的毕业和就业做铺垫。同时,让大家更加合理有效的选择毕业设计题目。

教师教育学院分团委

7.设计通讯录管理系统 篇七

无线通信不需要铺设有线电缆,因此投入少,组网方便、快捷,而且通信速度不断提高,目前应用日益广泛。在工业控制领域,传感器与控制器之间的通信已经出现无线化的趋势,即无线传感器网络。此外,在一些按照成组方式组织的大型加工车间,设备的综合调度也有采用无线通信的趋势。简单的无线通信常采用射频无线模块实现,系统的架构一般如图1所示。PC计算机通过RS232串行通信接口将命令传送到无线通信模块,该模块将命令通过无线电波发射到空中,其他处于接收状态的无线通信模块捕获该命令后,在通过RS232或其他接口传送到传感器、执行器、机床等设备。信息的反向传送过程与此类似。

实际应用系统一般需要在PC机上开发管理系统,用于实现操作及通信过程管理,管理系统必须具有RS232通信管理模块,并实现特定的通信协议。

Visual Basic是Mcrosoft公司多年前推出的系列高级语言开发平台之一,以其实用、方便、快捷、功能全面、开发周期短而被许多编程人员尤其是初学者所青睐。Visual Basic中的大量控件设计完善、与微软自己的操作系统平台结合完美,为快速开发应用软件提供了极大的方便。控件中设置了丰富的属性、方法、事件,为正确、合理地使用这些控件提供了方便条件,此外VB也支持直接调用系统API中的函数。本文以一个简单的无线通信系统为例,简要介绍在VB平台下开发无线通信系统的有关问题,并着重讨论如何通过RS232接口实现PC计算机与无线通信模块的有关问题。

2 Visual Basic实现无线通讯的基础知识

利用Visual Basic实现无线通讯是以串口通讯为基础的,在Visual Basic中开发串口通讯程序主要有两种方法。

其一是利用Visual Basic自身提供的控件在VB的控件工具箱中,提供了一个串行通信控件MSComm,该控件提供了一个事件OnComm,可以用于截取串口的任何消息,并且转入事件处理程序,在获得通信时发生的时候和错误的时候将被触发,触发之后根据存有最近的事件或错误的数值代码的CommEvent属性来进行判断和了解通信的状况;不同的事件处理过程则一般采用SELECT CASE.......END SELECT进行处理。

其二是利用Windows API应用程序接口。Windows API主要提供了三个动态连接库(KERNEL.EXE、USER.EXE、GDI.EXE),其中KERNEL.EXE主要包括一些底层操作函数,对应一些关于资源管理、任务、内存的操作;USER.EXE则包含了与Windows管理有关的函数,如通信、光标、插入符、计时器等等以及绝大多数非显示函数;GDI.EXE为图形设备接口库,主要内容为与设备输出有关的函数。和串口通信有关系的函数BuilidCommDCB、ClearCommBreak、SetCommBreak、FlushComm、GetCommError、GetCommState、WriteComm、ReadComm、SetCommState、CloseComm等等都保存在Windowssystem子目录下的USER.EXE动态连接库中,在调用之前需要在全局变量定义处声明API通信函数、定义常量。

无线通讯的过程中,通常容易受到空间噪声的干扰,因此无论发送端还是接收端都需要做相应的处理,例如添加包头识别码,当传输命令发送后下位机就以打包的方式传输数据,每一个包均包括包头识别码和包尾识别码,利用包头识别码识别包头,用包尾识别码识别包尾,如果识别码有错误则该次传输的结果按照不正常的数据进行处理。

无线通讯的过程中数据比较多的时候正确的传输往往需要时间的限制,往往包括两方面。其一是下位机存储容量往往有限,因此其存储的数据往往不会很多,需要定期清除;其二来源于客户的需求,客户往往需要按照时间查找和分析不同的数据,因而收发双方往往需要确定发送时间和接收时间;在某些场合下甚至需要间隔一段时间来收发数据。对于第一个方面只要在Visual Basic编写的程序中添加定期删除数据的程序;对于第二方面则可以在接收端控制时间,只在符合条件的时间获取数据即可。

此外在传输的过程中,上位机与下位机之间需要规定合理的协议,包括传输的代码是ASCII码还是BCD码,波特率、奇偶校验位、数据位、停止位的设置情况等等,同时还需要约定包的长度、包内数据的含义等等。

3 利用Visual Basic实现无线通讯

在Visual Basic开发串口通讯的方式中,使用串行通讯控件MSCOMM的方法简单、方便、实用,因此被广泛使用,在无线通讯中同样可以使用MSCOMM控件来实现相应的功能。

在Visual Basic编程中,可以通过CommPort设置端口号即数据的来源;然后利用Setting属性设定端口的波特率、奇偶校验位、数据位、停止位;利用InputMode属性确定Input属性取回数据的格式;利用PortOpen打开串口;利用Comm Event属性检验数据,利用Input属性获得数据,并在恰当的时候设置InBufferSize、InBuffer Count属性和Inputlen属性。

无线通讯通常通过三种方式进行,分别是查询方式、事件驱动方式和事件驱动转查询方式,其中查询方式方便可靠,可以利用协议或者时钟进入或者退出该方式,在实践中建议使用定时器控件来实现该方式;事件驱动方式对于定长通讯比较有效,可以通过事件的方式进行操作;事件驱动转查询方式则结合了前两者的优势于一身,有效地利用了资源。

在具体应用的时候,首先要对端口进行初始化,即设定波特率、校验位、数据位和停止位,设定串口、每次从输入缓冲区读入的数据量、缓冲区的大小,并清空输入缓冲区和输出缓冲区,再打开串口。

对于无线通讯的接收部分,如果使用MSCOMM控件,首先需要对接收的状况进行分析,根据该控件Comm Event属性的常数来确定是否接收正确,该控件常见的Comm Event属性常数及其含义如下:

1)comEvSend:其值为1,发送缓冲区中的字符数少于STHreshold指定的值。

2)comEvReceive:其值为2,在接收缓冲区中收到RTHreshold个字符,这个事件将持续产生,直到利用INPUT属性从接收缓冲区中移除数据.

3)comEvCTS:其值为3,Clear To Send线的状态发生变化

4)comEvEOF:其值为7,收到文件结束(ASCII字符为26)字符

5)comEventBreak:其值为1001,接受到一个中断信号

6)comEventFrame:其值为1004,硬件检测到帧错误

7)comEventRxOver:其值为1008,接收缓冲区溢出,即接收缓冲区中已没有剩余空间接收新的数据。

8)comEventRxParity:其值为1009,奇偶校验错误

9)comEventTxFull:其值为1010,发送缓冲区已满

当接收确认正确以后,需要判断数据的接收状态,即进行数据的分析。在数据的分析过程中,需要确认包头识别码和包尾识别码,接收到包头识别码后需要进一步地对接收到的数据进行检查以确定数据的正确性。确认正确性之后则根据通讯双方的协议来逐步分析出所传输数据的含义。需要注意的有三点,其一因为接收是循环接收,则在无法确定接收次数的时候使用Do循环比较方便,而在能够确认接收次数的时候使用For…Next循环比较方便。其二当需要间隔一定时间接收数据的时候,可以适当加重定时器控件的重要性。其三当通讯双方的协议每次传输的数据量是固定值的时候接收端较为容易处理些

在接收的过程中,需要设置RTSEnable属性的值并且做出适当的延时,这也是利用Visual Basic编写无线通讯和有线通讯中的区别之一,这里需要注意的是延时的长短和使用的计算机有关,因此往往需要通过具体的测试确定。

4 结论

利用Visual Basic容易实现无线通信模块的控制,但是必须根据所选无线模块的型号科学规划合理有效的通信协议,既保证实现所需要的功能,有不应影响通信效率。

参考文献

[1]力创科技.LQ9200无线通讯模块(B型)使用[S].力创科技公司.

[2]苏全,李崇贵.基于无线通信模块的GPRS MODEM的研制与应用[J].微计算机信息,2005,21(10X):2-5.

8.设计通讯录管理系统 篇八

【关键词】FPGA;串口通讯;RS-232-C通讯协议

【中图分类号】$972.7+6 【文献标识码】A 【文章编号】1672-5158(2012)09-0151-01

1、串口通讯

串口通信(Serial Communication),是指外设和计算机问,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要.这里所说的通信是指计算机与外界的信息交换。因此,通信既包括计算机与外部设备之间,也包括计算机和计算N2_问的信息交换。由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。对于那些与计算机相距不远的人一机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口。由于串口通讯的只能一位一位的特殊性,因此在我们实际操作过程难免会遇到并行数据数据的传输问题,如果设计不好,很容易造成传输数据的不准确。本文提出一种基于FPGA的并行数据传输的串口通讯控制器的设计,很好的解决了这一问题,能够顺利、准确的完成数据通讯任务。

2、RS-232-0通讯协议

RS-232-C標准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(recommended standard)代表推荐标准,232是标识号,c代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIA RSl422A、EIA RS-423A、EIA RS-485。这里只介绍EIARS-232C(简称232,RS232)。例如,目前在IBMPC机上的COMl、COM2接口,就是RS-232-C接口。

最为简单且常用的RS-232C连接方法就是3线连接法,即地、接收数据和发送数据3脚相连。这是因为收、发数据是时分的,二者不会同时传输。RS-232-C的串行总线在空闲的时候保持为逻辑“1”状态,即串行连接线的电平为-3--15V。当需要传输一个字符时,会发送一个逻辑为“o”的起始位,表示开始发送书库:之后就逐个发送数据位、奇偶校验位和停止位(逻辑1),每一次传输1个字符(可以设成5-8个比特)。由于任意两字字符对应瞬间的时间间隔是可变的,因此也成为异步格式。在RS-232-C协议中,可以设置数据的传输速率。除此之外,字符的位宽、奇偶校验位、停止位都可以被设置。字符可以为设置成5-8比特,奇偶校验位可以被除去;停止位为可以设置为1位、2位甚至1.5位。目前,大部分的处理器都集成了支持RS-232-C的通用异步收发器,辅助处理器和串行设备之间的通讯。这也为我们后续对于串口通讯控制器提供了有利条件。

3、并行数据的串口通讯控制器的设计

一般的串口通讯控制器的顶层模块是有三个子模块实现的,包括波特率发生器、接收模块以及发送模块。为了满足并行数据传输的需要,我们在原有控制器的基础上增加了一个模块:发送控制模块。这个模块的作用就是将数据进行处理、排队、等待数据传输,最终完成数据传输任务。改进串口控制器其结构如图所示:

发送模块的发送任务是由状态机完成的,其主要分为一下几部分:空闲状态、起始状态、等待状态、数据移位状态、发送截lL状态。当复位信号有效或者发送任务已经完成的时候,发送模块就处于空闲状态,等待发送指令(tx cmd)的到来,此时tx ready为高电平,表示随时可以接受外部的发送指令。当tx cmd有效时,发送模块进入起始状态,同时拉低tx ready,表明发送模块正在处于工作状态,并拉低比特线txd,给出起始位,然后跳转到等待状态。在等待状态,保持所有信号值不变,判断8个有效数据比特是否发送完毕,如果发送完毕跳转到发送停止状态,否则跳转至数据位移状态。在数据位移状态,发送模块将下一个要发送的数据移动到发送端口上,然后直接跳转至等待状态。最后进入发送截止状态,完成后自动进入空闲状态,并且将tx teady拉高,数据发送完成。

接收模块的接收任务也是由状态机完成的,其主要分为以下几部分:空闲状态、数据采样状态、检验停止位状态。空闲状态,用于检测接受数据链上的起始信号。系统复位以后,接受模块就处于这一状态,一直检测rxd数据是否从1变为O,一旦检测到起始位,立刻进入数据采样状态,采集有效数据。在此状态下,rx ready信号的值为1.数据采样状态,在此状态下,接受模块连续采样数据,直到接受完8个数据比特后,直接进入检测停止位。在此状态下,rx_ready信号的值为o。检测停止位,为了使接受模块的使用范围更广,本程序在这一状态等待一段时间后,直接跳转至空闲状态。

发送控制模块的任务也是由状态机完成的,分为以下几个部分:空闲状态、数据排队状态、等待状态、停止状态。空闲状态,用于检测接受模块是否接受到相应的传输数据命令。若接到传输命令,则进入数据排队状态。数据排队状态就是将所需要传输的并行数据每8位一组,传递到发送模块,然后进入等待状态。等待状态就是等待送入发送模块的数据发送完成,完成后,再进入数据排队状态,继续发送数据,直到数据发送完毕。停止状态就是数据发送完毕,这时控制模块直接进入空闲状态,等待下次数据传输。

波特率发生器就是一个时钟产生装置,根据不同的波特率,设置产生不同的时钟。由于设计比较简单,这里不复赘述。

4、设计验证

我们对上述思路设计进行了验证。我们向串口发送相应的指令(F),串口发送回我们相应的数据(数据等间隔,且间隔中间全是零)。结果截图如下:

上一篇:万圣节经典的空间说说下一篇:南京工业大学考研复习经验