文档库 最新最全的文档下载
当前位置:文档库 › 手机通讯录模拟(1)

手机通讯录模拟(1)

手机通讯录模拟(1)
手机通讯录模拟(1)

手机通讯录模拟(1)

手机通讯录模拟(1)

目录

摘要 (2)

1.绪论 (2)

2. 系统分析 (2)

2.1 功能需求 (2)

2.2数据需求 (2)

2.3 性能需求 (2)

3. 总体设计 (3)

3.1流程图 (3)

3.2源程序 (4)

4. 详细设计 (20)

4.1 主界面 (20)

4.2添加功能... (21)

4.3修改功能: .. (21)

4.4拨号功能: .. (22)

4.5保存功能... (22)

5. 调试与测试 (22)

6. 结论 (23)

结束语 (24)

参考文献 (24)

附录1-用户手册 (24)

附录2-源程序 (26)

摘要

本程序在安全性方面相对比较突出。为避免程序实现一部分功能即结束,我们采用了用一个子函数代替主函数,子函数调用自身的方法。同时在出现功能选择的地方,为防止出现意外的死循环,我们功能选择参数一律使用string类型。在保存提取数据方面,我们严格按照有变动即存储,存储完立即提取到内存的规则,有效遏止了数据意外丢失或调用不及时等情况的发生。

本程序共使用了9个子函数分别来实现不同功能程序中最关键的通讯录成员采用结构体定义,丰富了成员所包含的信息。在主界执行方面,采用独立的子函数执行。

在该函数中分别调用不同功能的函数,执行完相应的功能后可选择继或返回主菜单。

主菜单在运行时会先调用一个子函数将通讯录中的信息展示给用户,然后用户可对照信息进行响应的功能选择,不同功能调用不同函数。各函数在执行功能时会进行相应的嵌套,以弥补各自的不足。各功能采用不同函数来执行,方便调试和修改。各函数相互调用,最后整合在一起便构成了该系统程序。

1.绪论

随着科技的发展,手机成为了必备的生活用品,越来越多的人意识到了他的重要性。

但是尽管手机功能在不断的完善,但是拨打电话是手机的重要功能。所有管理好一个手机

的联系人是必不可少的,这也正是编写本程序的目的所在。

根据课程设计任务书要求,本系统开发主要完成以下功能和性能。

1.添加功能:能录入新数据。当录入了重复的姓名时,则提示数据录入重复并取消录入;当通讯录中超过10条信息时,存储空间已满,不能再录入新数据。

2.拨号功能:能显示出通讯录中所有人的姓名,当选择某个姓名时,屏幕上可显示出此人的电话号码。

3.修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。

2. 系统分析

2.1 功能需求

本系统主要是手机通讯录模拟的系统。

该系统需要有录入信息,根据所给条件查询信息,修改信息,循环显示主菜单,保存信息的功能,并且利用显示函数将通讯录的所有信息显示出来。

2.2数据需求

需要向系统输入姓名,联系电话,地址,分类等信息。

2.3 性能需求

在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。

3. 总体设计

3.1 流程图

main()

主函数

add()添加

show()

显示

modify()

修改

cut()

删除

exit(1)

退出lookfor()

查询

run()

菜单函数

save()

保存

dial( )

拨号

link( )

建立链表结构图

手机通讯录模拟(1)输出界面

选择操作

选1 选2 选3 选4 选5 选6 拨号查询添加删除修改

退出系统

结束

非0

非0

非0

非0

非0

保存

开始

3.2 源程序

#define NULL 0

#include //定义文件输入输出流#include

using namespace std;

//定义结构体类型

struct person

{

string name; //姓名

string number; //号码

string group; //类别

string email; //邮箱

struct person *next; //链指针

};

//函数声明

void save(person caller[],person *head,person *p); //执行保存功能

void lookfor(person caller[],person *head,person *p); //执行查询功能

void add(person caller[],person *head,person *p); //执行填加功能

void cut(person caller[],person *head,person *p); //执行删除功能

void modify(person *caller1,person caller[],person *head,person *p);//执行修改功能

void dial(person caller[],person *head,person *p); //执行拨号功能

void link(person caller[],person *head,person *p); //执行链表连接功能

void show(person caller[],person *head,person *p); //执行显示全部成员信息功能

void run(person caller[],person *head,person *p); //执行主菜单功能

//建立链表

void link(person caller[],person *head,person *p)

{

int i;

caller[15].next=NULL; //使最后一个链指针指向空head=&caller[0]; //使head指针指向caller[0] for(i=0;i<15;i++)

{

if(caller[i].number=="0")

{ caller[i].next==NULL; break; } //使链表在第一个空

caller[i].next=&caller[i+1]; //联系人处结束

}

p=head;

}

//添加联系人

void add(person caller[],person *head,person *p)

{

int i,j=20;

string x;

string name,email,number;

if(caller[14].name!="0") //通讯录以满的条件cout<<" 存储空间已满!"<

else

{

for(i=14;i>=0;i--) //该循环保证了通讯录中成员caller[i+1]=caller[i]; //连续,将空成员至于末尾

cout<<" 注意:姓名、电话、邮箱不能是\"0\"!"<

cout<<" 姓名:";

cin>>name;

for(i=0;i<15;i++)

{

if(caller[i].name==name)

{ j=i; } //当出现重复时,记下冲突位置}

while(j!=20) //如果添加内容与通讯录内容冲突{ //则重新添加

cout<<" 该姓名已存在,请重新输入姓名:";

cin>>name;

j=20;

for(i=0;i<15;i++)

{

if(caller[i].name==name)

{ j=i; }

}

}

caller[0].name=name; //添加姓名已与成员无冲突

cout<<" ------------------------------------------------------------\n";

cout<<" 电话:";

cin>>number;

for(i=0;i<15;i++)

{

if(caller[i].number==number)

{ j=i; } //当出现重复时,记下冲突位置}

while(j!=20) //如果添加内容与通讯录内容冲突{ //则重新添加

cout<<" 该号码已存在,请重新输入号码:";

j=20;

for(i=0;i<15;i++)

{

if(caller[i].number==number)

{ j=i; }

}

} //添加号码已与成员无冲突caller[0].number=number;

cout<<" ------------------------------------------------------------\n";

cout<<" 邮箱:";

cin>>email;

for(i=0;i<15;i++)

{

if(caller[i].email==email)

{ j=i; } //当出现重复时,记下冲突位置}

while(j!=20) //如果添加内容与通讯录内容冲突{ //则重新添加

cout<<" 该邮箱已存在,请重新输入邮箱:";

cin>>email;

j=20;

for(i=0;i<15;i++)

{

if(caller[i].email==email)

{ j=i; }

}

}

caller[0].email=email; //添加邮箱已与成员无冲突

cout<<" ************************************************************\n"; cout<<" * 请选择存储类别:A 办公类 B 个人类 C 商务类*\n"; cout<<" ************************************************************\n"; cin>>x;

while(x!="a"&&x!="b"&&x!="c"&&x!="A"&&x!="B"&&x!="C")

{

cout<<" 你的操作有误,请重新选择:";

cin>>x;

}

if(x=="a"||x=="A") caller[0].group="办公类";

if(x=="b"||x=="B") caller[0].group="个人类";

if(x=="c"||x=="C") caller[0].group="商务类";

cout<<" ************************************************************\n";

cout<<" "<

cout<

cout<<" ************************************************************\n";

cout<<" 添加成功!"<

link(caller,head,p);

cout<<" 继续添加0 任意键结束添加\n";

cin>>x;

if(x=="0") add(caller,head,p);

}

}

//执行删除

void cut(person caller[],person *head,person *p)

{

int j=20,i;

string x,e;

string group,name,email,number;

link(caller,head,p);

cout<<" ************************************************************\n";

cout<<" * 删除:姓名1 号码2 类别3 邮箱4 *\n";

cout<<" ************************************************************\n";

cout<<" 请选择:";

cin>>e;

while(e!="1"&&e!="2"&&e!="3"&&e!="4")

{

cout<<" 你的操作有误,请重新选择:";

cin>>e;

}

if(e=="1") //删除与输入姓名有关的信息{

cout<<" 请输入姓名:";

cin>>name; //输入欲删除的姓名

for(i=0;i<15;i++)

{

if(caller[i].name==name)

{ j=i;break; }

}

while(j==20)

{

cout<<" 你要删除的姓名找不到,自动返回主菜单!\n\n";

run(caller,head,p); //当没有与欲删除的信息相符合的内容时,返回主菜单}

for(i=0;i<15;i++)

{

if(caller[i].name==name)

j=i;

caller[i]=caller[i+1]; //删除的位置被后面成员替代,以保证} //通讯录非空内容连续

}

if(e=="2") //删除与所输号码相关的信息

{

cout<<" 请输入号码:";

cin>>number; //输入欲删除的号码

for(i=0;i<15;i++)

{

if(caller[i].number==number)

{ j=i;break; }

}

while(j==20)

{

cout<<" 你要删除的号码找不到,自动返回主菜单!\n\n";

run(caller,head,p); //当没有与欲删除的信息相符的内容时,返回主菜单

}

for(i=0;i<15;i++)

{

if(caller[i].number==number)

j=i;

for(i=j;i<15;i++)

caller[i]=caller[i+1];

}

}

if(e=="3") //删除与所输类别相关的信息

{

cout<<" 请输入类别:";

cin>>group; //输入欲删除的类别

for(i=0;i<15;i++)

{

if(caller[i].group==group)

{ j=i;break; }

}

while(j==20)

{

cout<<" 你要删除的类别找不到,自动返回主菜单!\n\n";

run(caller,head,p); //当没有与欲删除的类别相符合的信息时,返回主菜单

}

for(int k=0;k<15;k++)

for(j=0;j<15;j++)

{

if(caller[j].group==group)

for(i=j;i<15;i++)

caller[i]=caller[i+1];

}

if(e=="4") //删除与邮箱相关的内容{

cout<<" 请输入邮箱:";

cin>>email; //输入欲删除的邮箱

for(i=0;i<15;i++)

{

if(caller[i].email==email)

{ j=i;break; }

}

while(j==20)

{

cout<<" 你要删除的邮箱找不到,自动返回主菜单!\n\n";

run(caller,head,p); //当没有与欲删除的内容相关的信息时,返回主菜单}

for(i=0;i<15;i++)

{

if(caller[i].email==email)

j=i;

for(i=j;i<15;i++)

caller[i]=caller[i+1];

}

}

cout<<" 删除成功!"<

save(caller,head,p);

cout<<" 继续删除0 按任意键结束删除\n";

cin>>x;

if(x=="0")

{

show(caller,head,p);

link(caller,head,p);

cut(caller,head,p);

}

link(caller,head,p);

}

//修改联系人信息

void modify(person *caller1,person caller[],person *head,person *p)

{

int j=0,i;

string name,email,number;

cout<<" ************************************************************\n"; cout<<" * 修改:姓名1 号码2 类别3 邮箱4 *\n"; cout<<" ************************************************************\n"; cin>>i;

if(i<1||i>4)

{

cout<<" 操作有误,自动返回主菜单!\n ";

run(caller,head,p); //返回主菜单

}

if(i==1) //修改姓名

{

cout<<" 请输入新姓名:";

cin>>name; //输入新姓名

for(i=0;i<15;i++)

{if(caller[i].name==name) j++;}

if(j==0) //新姓名可以存放

{

(*caller1).name=name;

cout<<" 姓名修改成功!"<

}

else //姓名重复

cout<<" 该姓名已存在,不能修改!"<

}

if(i==2) //修改号码

{

cout<<" 请输入新号码:";

cin>>number; //输入新号码

for(i=0;i<15;i++)

{if(caller[i].number==number) j++;}

if(j==0) //新号码可以存放

{

(*caller1).number=number;

cout<<" 号码修改成功!"<

}

else //号码重复

cout<<" 该号码已存在,不能修改!"<

}

if(i==3) //修改类别

{

cout<<" ************************************************************\n"; cout<<" * 请选择新存储类别:A 办公类 B 个人类 C 商务类*\n"; cout<<" ************************************************************\n"; cin>>x; //输入类别代号

while(x!="a"&&x!="b"&&x!="c"&&x!="A"&&x!="B"&&x!="C")

{

modify(caller1,caller,head,p); //操作有误,返回修改首页

}

if(x=="a"||x=="A") (*caller1).group="办公类";

if(x=="b"||x=="B") (*caller1).group="个人类";

if(x=="c"||x=="C") (*caller1).group="商务类";

cout<<" 类别更改成功!\n";

}

if(i==4) //修改邮箱

{

cout<<" 请输入新邮箱:";

cin>>email; //输入新邮箱

for(i=0;i<15;i++)

{if(caller[i].email==email) j++;}

if(j==0) //新邮箱可以存放

{

(*caller1).email=email;

cout<<" 邮箱修改成功!"<

}

else //邮箱重复

cout<<" 该邮箱已存在,不能修改!"<

}

cout<<" ------------------------------------------------------------\n";

save(caller,head,p);

cout<<" 修改后通信录内容为:\n";

cout<<" "<<(*caller1).name<<" "<<(*caller1).number<<" "

<<(*caller1).group<<" "<<(*caller1).email<

cout<<" 继续修改0 任意键结束修改\n";

cin>>x;

if(x=="0") modify(caller1,caller,head,p);

}

//展示所有联系人信息

void show(person caller[],person *head,person *p)

{

int i;

if(caller[0].number=="0") //通讯录为空

{

cout<<" 通信录为空,请添加!"<

cout<<"\n\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n";

add(caller,head,p); //添加通讯录联系人

}

else //通讯录中有成员

cout<<"\n\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n";

cout<<" 下是通讯录中所有信息,请查看后按提示进行\n";

cout<<" ************************************************************\n";

for(i=0;i<15;i++)

{

cout<<" "<<"NO."<

<<" "<

cout<<" ************************************************************\n";

if(caller[i+1].number=="0") break; //展示通讯录全部信息,不展示空成员

}

}

link(caller,head,p); //建立新的链表

}

//拨号

void dial(person caller[],person *head,person *p)

{

int i,j;

string x;

link(caller,head,p); //建立链表

cout<<" ****************************************\n";

for(i=0;i<15;i++)

{

if(caller[i].name=="0") break; //显示所有成员,不显示空成员

cout<<" NO."<

cout<<" ****************************************\n";

}

cout<<" 请输入编号:";

cin>>j; //输入编号

if(j<1||j>i+1||caller[j-1].name=="0") //编号不存在

cout<<" 该编号没有!\n";

if(caller[j-1].name!="0") //编号正确,显示该编号对应姓名号码

{

cout<<" "<

cout<<" "<

}

cout<<" 继续拨号0 按任意键结束\n";

cin>>x;

cout<<" ------------------------------------------------------------\n";

if(x=="0") dial(caller,head,p); //继续拨号

}

//查询

void lookfor(person caller[],person *head,person *p)

{

int i,j=0,k=0;

string name,email,number,x;

cout<<" ************************************************************\n";

cout<<" * 请选择查看方式:姓名1 号码2 类别3 邮箱4 *\n";

cout<<" ************************************************************\n";

cin>>x;

while(x!="1"&&x!="2"&&x!="3"&&x!="4") //操作错误

{

cout<<" 你的操作有误,请重新操作:";

cin>>x;

}

if(x=="1") //按姓名查找

{

cout<<" 请输入姓名:";

cin>>name; //输入要找的姓名

for(i=0;i<15;i++) //查找相关信息

if(caller[i].name==name) //查到相关信息

{

j++;

cout<<" ------------------------------------------------------------\n";

cout<<" 查询结果:"<

<<" "<

if(caller[i+1].next==NULL) break;

}

cout<<" ------------------------------------------------------------\n";

if(j==0) //未查到相关信息cout<<" 没有你要找的结果!"<

}

if(x=="2") //按号码查找

{

cout<<" 请输入号码:";

cin>>number; //输入要查找的信息

for(i=0;i<15;i++) //查找相关信息

if(caller[i].number==number) //查到相关信息

{

j++;

cout<<" ------------------------------------------------------------\n";

cout<<" 查询结果:"<

if(caller[i+1].next==NULL) break;

}

cout<<" ------------------------------------------------------------\n";

if(j==0) //未查到相关信息

cout<<" 没有你要找的结果!"<

}

if(x=="3") //按类别查找

{

cout<<" ************************************************************\n";

cout<<" * 请选择类别:A 办公类 B 个人类 C 商务类*"<>x; //输入类别代号

while(x!="a"&&x!="b"&&x!="c"&&x!="A"&&x!="B"&&x!="C")

{

cout<<" 你的操作有误,请重新选择:";

cin>>x;

}

if(x=="a"||x=="A") //查找办公类成员

{

for(i=0;i<15;i++,j++)

if(caller[i].group=="办公类")

{

k++;

cout<<" ------------------------------------------------------------\n";

cout<<" NO."<

if(caller[i+1].next==NULL) break;

}

cout<<" ------------------------------------------------------------\n";

if(j==0)

cout<<" 没有你要找的结果!"<

}

if(x=="b"||x=="B") //查找个人类成员

{

for(i=0;i<15;i++,j++)

if(caller[i].group=="个人类")

{

k++;

cout<<" ------------------------------------------------------------\n";

cout<<" NO."<

if(caller[i+1].next==NULL) break;

}

cout<<" ------------------------------------------------------------\n";

cout<<" 没有你要找的结果!"<

}

if(x=="c"||x=="C") //查找商务类成员

{

for(i=0;i<15;i++,j++)

if(caller[i].group=="商务类")

{

k++;

cout<<" ------------------------------------------------------------\n";

cout<<" NO."<

if(caller[i+1].next==NULL) break;

}

cout<<" ------------------------------------------------------------\n";

if(j==0)

cout<<" 没有你要找的结果!"<

}

}

if(x=="4") //按邮箱查找

{

cout<<" 请输入邮箱:";

cin>>email; //输入邮箱

for(i=0;i<15;i++)

if(caller[i].email==email) //查到相关信息

{

j++;

cout<<" ------------------------------------------------------------\n";

cout<<" 查询结果:"<

if(caller[i+1].next==NULL) break;

}

cout<<" ------------------------------------------------------------\n";

if(j==0) //未查到相关信息cout<<" 没有你要找的结果!"<

}

cout<<" 继续查询0,任意键结束查询\n";

cin>>x;

if(x=="0")

lookfor(caller,head,p);

}

//替代主函数

void run(person caller[],person *head,person *p)

int i;

string n;

link(caller,head,p);

show(caller,head,p);

cout<<"\n\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"; cout<

cout<<" 欢迎使用本通讯录,请按下面提示进行操做\n";

cout<<" ************************************************************\n";

cout<<" * 拨号1 查找2 添加3 删除4 修改5 退出6 *\n";

cout<<" ************************************************************\n";

cin>>n;

while(n!="1"&&n!="2"&&n!="3"&&n!="4"&&n!="5"&&n!="6")

{

cout<<" 操作有误,请重新操作:";

cin>>n;

}

if(n=="6")

{

cout<<" 谢谢使用!\n";

exit(1);

}

if(n=="5")

{

cout<<" 请输入编号:";

cin>>i;

while(caller[i-1].number=="0"||i<1||i>15)

{

cout<<" 没有该编号,请重新输入:";

cin>>i;

}

cout<<"\n\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"; person *g=&caller[i-1]; //定义一个结构体指针,使其指向caller[i-1]

modify(g,caller,head,p); //修改信息

}

cout<<"\n\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"; if(n=="1") dial(caller,head,p);

if(n=="2") lookfor(caller,head,p);

if(n=="3") add(caller,head,p);

if(n=="4") cut(caller,head,p);

run(caller,head,p);

}

//保存

void save(person caller[],person *head,person *p)

{

ofstream outfile("通信录.txt",ios::out);

if(!outfile)

{

cerr<<" 保存失败,请返回主菜单重新操作!"<

run(caller,head,p);

}

cerr<<"\n 信息已保存!"<

for(i=0;i<16;i++)

{

outfile<<" "<

outfile<

}

outfile.close(); //关闭输出文件

//将保存到文件中的信息提取到内存中,以便使用

ifstream infile("通信录.txt",ios::in);

if(!infile)

{

cerr<<" 读取保存信息失败,程序中止!"<

exit(1);

}

for(i=0;i<16;i++) //将信息存放到内存中

{

infile>>caller[i].name>>caller[i].number>>caller[i].group>>caller[i].email;

}

cout<

link(caller,head,p);

infile.close(); //关闭输入文件

}

//主函数

int main()

{

person caller[16],*p,*head;

int i;

ifstream infile("通信录.txt",ios::in); //打开文件

if(!infile)

{

cerr<<" 读取保存信息失败,程序中止!"<

exit(1); //打开文件失败,终止程序}

for(i=0;i<16;i++) //读取通讯录信息

{

infile>>caller[i].name>>caller[i].number;

}

infile.close(); //关闭文件if(caller[0].number=="0") //通讯录为空for(i=0;i<16;i++)

{

caller[i].next=NULL;

caller[i].name="0";

caller[i].group="0";

caller[i].number="0";

caller[i].email="0";

}

cout<<"\n\n\t\t\t\b手★机★通★讯★录★管★理★系★统"<

link(caller,head,p); //建立链表run(caller,head,p); //调用主菜单return 0;

}

4. 详细设计4.1 主界面

C语言课程设计报告—手机通讯录管理系统

C程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

一课程设计目的和内容概述 1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。 其中结构体,函数的调用,算法的设计是尤为重要的。 二题目 手机通讯录管理系统。 [问题描述] 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 [基本要求] 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名和电话号码 (3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类 当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三程序设计 1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计

基于Android平台的手机通讯录管理系统

第一章绪论 1.1 项目研究背景 经过多年的发展,随着第三代网络的使用及四代网络的即将来了呢,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google与包括HTC、摩托罗拉、三星、联想等在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月退出了一份专为移动设备设计的软件平台——Android OS。 Android 是一套真正意义上的移动性设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化额Java程序的运行过程。Android 系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机硬件的连接层。 Abdroid平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定特色化的产品,因此,它具有很大的市场发展潜力。 1.2 项目研究的目的及意义 随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。 手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能的不断加强与完善,手机通讯录对于人们的意义,已经不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展。通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是一个人名下,可以储存座机、手机、单位、地址、电子邮箱等内容,这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性的的变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层认识的喜爱。 1.3系统主要内容与实现方式

手机通讯录系统课程设计报告

课程名称: 程序设计基础课程设计 学院名称: 计算机科学与工程学院 专 业: 计算机科学与技术 课程设计报告 装 订 线

目录 一、绪论 (3) 二、设计内容 (4) 1、选题 (4) 2、系统功能 (4) 3、应用到的技术 (4) 三、设计要求 (4) 四、设计环境 (5) 1、操作系统 (5) 2、开发工具 (5) 3、PC机配置 (5) 五、系统结构图 (5) 六、功能实现 (6) 1、系统运行 (6) 2、添加联系人 (6) 3、修改联系人 (7) 4、删除联系人 (8) 5、查找联系人 (8) 6、查看所有联系人 (8) 7、对联系人在文件中的存储位置进行排序 (9) 8、系统运行结束 (9) 七、遇到的问题和解决的方法 (9) 八、设计心得 (10) 九、参考文献 (11) 十、附件 (12) 1、头文件 (12) 2、主函数 (12) 3、函数实现文件 (13)

需求分析 在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具。在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。这就有这么一个系统记录下人与人之间的多样联系方式——手机通讯系统。通过系统记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统电话簿,名片的累赘。从长远利益来看,可是意义重大的环保之举。 根据市场需求,手机通讯录管理系统所记录的信息一般分为个人、商业、办公三类。清晰了机主的联系方向。针对性的分门别类,使系统具有了方便了机主的存储和快速查阅优势功能,大大减少了在电话簿,名片上机械翻阅查找过程的时间。于此同时又根据手机随身携带的特殊性,在一定程度上比一般的制作文件又其次,因为手机是随身携带的通讯工具,这与记事本相比将在一定程度上保障联系人信息的安全性,相对避免了个人隐私信息外泄从而带来的损失。 综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。 友元重载常函数构造函数析构判断数据链表 手机通讯录管理系统 一、主要功能 模拟手机通信录管理系统,要求: (1)查看功能:选择此功能时,列出下列三类选择: A 办公类 B 个人类 C 商务类,当选中某类时,依次显示出此类所有数据中的姓名和电话号码 (2)增加功能:能录入新数据(包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。 ?当录入了重复的姓名和电话号码时,提示数据录入重复并取消录入; ?通信录容量限定在15条以内。 ?当存储信息超出存储空间,提示存储空间已满,不能再录入新数据; ?录入的新数据能按递增的顺序自动进行条目编号。 (3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动

安卓课程设计_手机通讯录系统全解

目录 1前言 (1) 2系统的需求分析 (2) 2.1需求分析 (2) 2.1.1基本功能需求 (2) 2.1.2系统用例分析 (2) 2.2总体设计方案 (5) 2.2.1系统模块关系与划分 (5) 3系统的概要设计 (6) 3.1通讯录需求分析 (6) 3.1.1新建、编辑联系人 (6) 3.1.2查找联系人 (6) 3.1.3通讯功能 (6) 3.1.4个人中心 (7) 3.1.5还原与备份功能 (7) 3.2系统界面设计 (8) 4系统编码实现 (14) 前言

随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。 Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。 Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 (1)优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种 融入全部Web应用的单一平台 (2)缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差, 导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。 1.1需求分析 1.1.1基本功能需求

通讯录管理系统

淮北师范大学 软件系列课程设计 通讯录管理系统 学院计算机科学与技术学院学生姓名陈文超 学号20081201011 指导教师姓名陈美荣 2010年06月20日

目录 摘要........................................................ 1.绪论....................................................... 1.1 开发背景简介......................................... 1.2 管理系统的发展趋势……………………………………………… 1.2 目的目的和意义........................................ 2. 开发工具的选择............................................ 3.系统分析................................................... 3.1题目需求分析............................................ 3.2系统功能分析............................................ 4.系统总体规划............................................... 4.1概要设计............................................... 5.系统设计................................................... 5.1系统操作流程图.......................................... 5.2系统详细设计............................................ 6.调试....................................................... 7.全文总结................................................... 8.致谢..................................................... 参考文献.....................................................

手机通讯录安卓课程设计

湖南科技大学计算机科学与工程学院 智能终端系统及应用开发课程设计报告 题目:手机通讯录 学号:******** 班级:******** 姓名:******** 指导老师:********

绪论 随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。 手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能使用调查显示,有9成以上的消费者使用手机通讯录功能。随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展[4]。通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个人名下,可以存储座机、手机、单位、地址、电子邮件等内容。这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层人士的喜爱。

一、课程设计目的 智能终端系统及应用开发课程设计是计算机相关专业的一个综合性实践教学环节,是学 习完《智能终端系统及应用开发》课程后进行的一次全面的综合练习。其目的在于促进学生 复习和巩固 Android 应用技术,加深对软件设计方法、软件设计技术和设计思想的理解,并 能运用所学 Android 设计知识,通过本课程设计让学生进行简单 Android 应用软件的开发,掌握软件设计的方法和面向对象程序设计的基本技术,提高学生在软件开发方面的综合应用能力。 二、课程设计内容 通过对Android 技术的相关研究,了解Android 源码实现原理以及过程,从而设计出一款能够使用的手机通讯录。 这款手机通讯录实现的相关内容如下: 1.简洁、实用的操作界面。 2.显示所有联系人的列表。 3.增加联系人。 4.删除联系人。 5.修改联系人。 6.呼叫联系人。 7.发送短信、邮件至联系人。 三、系统设计 功能结构图 Android 手机通讯管理软件 联系人添加 联系人编辑 联系人查看 联系人查找 联系人删除 呼叫联系人 发送短信 联系人列表

C课程设计—手机通讯录

目录 1课程设计的目的、要求及任务容 (1) 1.1课程设计的目的及要求 (1) 1.1.1设计目的 (1) 1.1.2设计要求 (1) 1.2 课程设计任务容 (2) 2详细设计说明 (3) 2.1功能使用说明 (3) 2.1.1查看功能 (3) 2.1.2增加功能 (3) 2.2函数流程图 (4) 2.2.1函数流程 (4) 2.2.2增加功能: (5) 2.3 编码及测试 (6) 2.3.1查找功能 (6) 2.3.2增加功能 (8) 2.4 程序测试所遇到的问题 (14) 3心得体会 (15) 附录 (16) 程序清单 (16)

1课程设计的目的、要求及任务容 1.1课程设计的目的及要求 1.1.1设计目的 C++课程设计是教学实践环节中一项重要容,进行此课程设计旨在: 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独自分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势; 本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。 1.1.2设计要求 手机通信录系统信息包括:查看功能、增加功能、修改功能、删除功能。 (1)、查看功能:选择此功能时,列出下列四个选项: 1.办公类 2.个人类 3.商务类 4.全部。当选中某类时,显示出此类数据中的所有和。 (2)、增加功能:能录入新数据,每个结点包括编号、、、个人信息、类型以及信息类型。当录入重复的时,系统会提醒“该已经存在,不能重复插入!”;当添加超过15条时,系统会提醒“本通讯录最多存储15条信息,已满!不能再插入,抱歉!”;新数据:当录入新数据时,系统能按照递增顺序对条目进行编号。

个人通讯录管理软件功能设计说明书

个人通讯录管理软件功能 设计说明书 一.系统名称 个人通讯录管理 二.系统分析 2.1系统需求分析 个人通讯录模型可以参考流行的腾讯QQ聊天软件,同时结合手机里面的通讯录进行设计。在此阶段初步确定系统的要实现的基本功能即联系人和分组的增删改、联系人信息的多种查询以及数据库设计构型即采用哪种数据库、大致由哪些基本表组成。 2.2概念结构设计 采用E—R图的设计方法进行数据库的概念结构 由图可得:数据库主要是联系人表,表的基本结构如下: 联系人表(、职务、职称、工作单位、通讯地址、邮政编码、单

位、住宅、分编特征) 联系人表中,主键是分编特征; 2.3逻辑结构设计 在完成以上分析后,要对数据库进行表结构的设计,这里仅以表字段数据结构的为重点。 各表列出对应子段名,各字段长度,是否Null、默认值见其下图,根据数据库基础知识分析,各表设计都达到了第三式,符合数据库的设计规。 联系人表:,xm;职务,zw;职称,zc;工作单位,gzdw;通讯地址,xxdz;邮政编码,yzbm;单位,dwdh;住宅,zzdh;分编特征,fbtz; 表的索引,主键,外键关系约束如下: 三.系统主要功能及界面设计 3.1功能简介: 1、该软件应具有对通讯录信息的增加、删除、保存、查询、排序、

打印等功能。 2、以单文档界面和多文档界面两种形式实现。 3、该软件应包括数据窗口技术、用回车键实现TAB键功能、多条件查询、多文档界面的实现、窗口之间的参数传递、结构的应用、图片的使用等主要技术 3.1.2信息查询模块: 1该功能模块包含查找方式是:按照查找,按照分编特征查找,按照地址查找。只要输入,分编特征,地址,就可以立马找到联系人的信息。 2查找的优势:在查找的下方可以清晰的看到查找的联系人的信息在通讯录中的具体位置,包括其所在的行和列。 3.1.3.系统管理模块:该功能模块包含: 1新增联系人信息,包括,职务,职称,工作单位,通讯地址,邮政编码等。 2打印:打印联系人相关信息包括,职务,职称,工作单位,通讯地址,邮政编码等。 3删除:删除联系人相关信息包括,职务,职称,工作单位,通讯地址,邮政编码等。 4设置:设置联系人信息即更改其信息包括,职务,职称,工作单位,通讯地址,邮政编码等。 5保存通讯录信息包括,职务,职称,工作单位,通讯地址,邮政编码等。

android程序设计报告(手机通讯录)

Android实验报告 课程名称 Android应用程序开发题目名称 Android通讯录 学生学院计算机学院 班级 学号 学生姓名 指导教师 2012年06 月11日

一.程序名称: Android通讯录 二.主要功能: 本手机通讯录工具主要实现五大功能:联系人的查询:字段查询,分组查询,字母排序查询;增加、删除联系人以及修改联系人信息;导入、导出联系人;发送联系人信息;设置。 三.功能实现概述: 2.1 UI设计 我们用一个ListView来显示整个通讯录,其中用TextView显示每一记录,他们的xml文件分别为:通讯录主界面,添加联系人界面,浏览联系人界面,查找联系人界面。 2.2 数据库的设计 Android中的android.database.sqlite.SQLiteOpenHelper 类是一个专门用于数据库创建和版本管理的辅助类。因此,为了更好的管理数据库,这里我们创建一个继承自SQLiteOpenHelper的辅助类DBHelper来维护和更新数据库。 2.3功能的设计 为了在主界面中浏览联系人的信息,并且创建主要菜单栏,我们设计了MainActivity类,主要用于显示联系人信息和菜单栏,通过菜单栏,实现通讯录的相关功能。AddressBook类主要是为了实现联系人的添加功能,并且实现信息的保存后跳转到主界面。Findactivity类主要是为了实现联系人的查找功能,输入联系人的姓名,点击查找按钮,显示所查联系人的相关信息。 四.程序截图: 测试手机:三星Galaxy Nexus 手机系统版本:4.0.2 模拟环境:安卓4.0.3

图1:主界面 1 图2:主界面2 图3:主界面3 图4:创建联系人

(简易手机通讯录管理系统)

一、课题名称 简易手机通讯录管理系统(线性表、查找、排序) 二、主要内容 简易手机通讯录管理系统的设计主要是实现对手机通讯录的管理和相关操作。基本功能如下: (1)联系人信息录入、添加功能:包括手机号(此处用短号,5位,不能重复)、姓名、家庭住址的录入和添加。 (2)联系人信息查询功能:能①按手机号进行查询。②按联系人姓名进行查询。 (3)排序:①能按手机号升序进行排序;②能按姓名进行升序排序,姓名相同时按手机号从小到大进行排序 (4)联系人信息的修改、删除功能:①按手机号进行联系人信息的修改和删除。 ②按姓名进行联系人信息的修改和删除,多个姓名时,再指定具体的号码。 (5)统计功能:统计自己的联系人有多少个。 三、课题设计的基本思想,原理和算法描述 (1)本次课程设计题目为简易手机通讯录管理系统,主要运用到线性表中顺序表的相关知识,以及顺序查找的思想和冒泡排序算法。 (2)界面设计 //菜单函数 int menu() { int c; printf("\n\n\t☆☆☆☆☆☆☆手机通讯录信息管理系统☆☆☆☆☆☆☆☆\n\n"); printf("******************************************************************* ***\n"); printf(" 1.添加联系人信息\n"); printf(" 2.查询联系人信息\n"); printf(" 3.对联系人信息进行排序\n"); printf(" 4.修改联系人信息\n"); printf(" 5.删除联系人信息\n"); printf(" 6.统计联系人个数\n"); printf(" 0.退出信息管理系统\n"); printf("******************************************************************* ***\n\n");

将员工通讯录快速导入Android手机

龙源期刊网 https://www.wendangku.net/doc/c11674713.html, 将员工通讯录快速导入Android手机 作者:王志军 来源:《电脑爱好者》2014年第06期 编辑通讯录文件 Android 4.0系统的智能手机对导入文件的格式有一定的要求,因此我们需要借助Excel或WPS表格进行适当的处理。用PC端浏览器访问http://https://www.wendangku.net/doc/c11674713.html,/pim/login.jsp,使用QQ账号登录,在右侧窗格单击“导入联系人”,这里提供了多种导入方式,建议选择“Excel”,按照提示下载模板文件(图1),在这里复制姓、名、工作手机和短号,同时适当删除部分多余的列,修改完成之后保存。 将通讯录文件导入云端 仍然用PC访问http://https://www.wendangku.net/doc/c11674713.html,/pim/,进入“导入联系人”页面,选择“Excel”,单击“点击上传”按钮,按照提示导入刚才处理的通讯录文件,确认之后即可导入,导入之后可以在云端创建若干分组。考虑到后续操作的便利,可以将已经完成处理的通讯录文件导出为CSV格式的文件(图2),建议选择“用于导入到同步助手账号”,最后点击“点击导出”按钮即可获得相应的文件。如果对云端导入的数据不太满意,可以导出之后再在计算机上进行相应的编辑,例如比较重要的分组信息。 同步通讯录 接下来的操作就简单多了,在Android手机上安装最新版本的同步助手,使用同一QQ账号登录,执行同步操作,立即就可以将云端的通讯录同步到本机,所有分组信息也在其中,够简单吧? 当然,我们也可以使用豌豆荚完成通讯录的导入,但不足之处是需要在计算机和手机两个位置分别安装豌豆荚,连接成功之后,在左侧窗格的“管理”小节选择“通讯录”,在右侧窗格单击“导入”按钮,此时会打开“导入联系人”对话框,单击左下角的“从指定文件导入”按钮(图3),检查无误之后按照提示操作即可,是不是很方便?

数据结构课程设计-通讯录管理系统

《数据结构》 课程设计报告书 题目:通讯录管理系统 系别:计算机科学与应用系学号: 学生姓名: 指导教师: 完成日期:2012年5月28日

1 问题描述 (1)题目内容:通讯录管理。 (2)基本要求:利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的查询以及通讯录的输出。 (3)设计目的:通过本次课程设计,了解通讯录的一些基本功能。掌握利用单链表进行插入,查找,用关键字建立单链表。 2 需求分析 经过本次的课程设计,我认为通讯录主要实现的功能如下: (1)添加信息:一个通讯录应该有其基本的添加功能。在程序设计时,我通过一个具有添加功能的函数,实现了个人信息的添加,如:姓名,性别,电话号码,QQ号码,地址。 (2)删除信息:当你不需要某个联系人的信息时,可以直接将该人的信息删除。 (3)查找:一个通讯录应该具有令一基本功能就是查找,本设计时可以按联系人为关键字查找的,只要你输入要查找人的姓名或手机号码或QQ号码就可出来相应的个人信息。 (4)输出:一个通讯录应该具有输出所有联系人的功能,本设计按照次序可以从头到尾把通讯录中的所有联系人都输出,供自己查看。 (5)退出:当你做完你要做的事情之后,就可以退出该程序。 3 总体设计 3.1 算法的定义 LinkList Creat_LinkList()创建空单链表 void Insert_LinkList(LinkList H)建立通讯录,录入联系人的信息,可以把联系人的姓名,性别,手机号,QQ号,地址录入系统。 void Locate_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码查找通讯录中联系人的信息。 void Delete_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码删除联系人的所有信息。 void print_LinkList(LinkList H)输出通讯录中的所有联系人的信息供使用者查看。

基于Android系统手机通讯录管理软件的设计与开发

毕业设计题目基于Android系统手机通讯录 管理软件的设计与开发 二级学院计算机科学与工程学院 专业软件工程 班级08软件工程3班级 学生姓名张三学号99999999999 指导教师李王五 时间2011/9 - 2011/10

摘要............................................................................................................................................ I Abstract ............................................................................................................................................. II 第一章绪论. (2) 1.1项目研究背景 (2) 1.2项目研究的目的及意义 (2) 1.3系统主要实现内容与实现方式 (3) 1.3.1系统主要实现内容 (3) 1.3.2安卓系统开发的方法 (3) 1.3.3 系统的开发平台 (4) 1.4系统开发需用到的技术支持 (4) 1.4.1 Java语言 (4) 1.4.2 Android (5) 第二章系统分析 (6) 2.1系统可行性分析 (6) 2.1.1技术可行性 (6) 2.1.2经济可行性 (6) 2.1.3操作可行性 (6) 2.2需求分析 (6) 2.2.1 Android通讯录的使用意义 (7) 2.2.2外部事件 (7) 第三章系统概要设计 (8) 3.1系统总体设计 (8) 3.2处理流程设计 (9) 3.2.1业务流程图 (9) 3.2.2数据增加流程图 (10) 3.2.3数据修改流程图 (11) 3.2.4数据删除流程 (12) 3.3 数据库设计 (12) 3.3.1 SQLite数据库简介 (12) 3.3.3 数据库表结构 (13) 第四章系统详细设计 (13) 4.1联系人浏览模块 (13) 4.2查看联系人模块 (16) 4.3编辑联系人模块 (17) 5.4查找联系人模块 (18) 4.5关于 (19) 第五章系统测试与调试 (19) 5.1测试目的 (19) 5.2程序调试 (20) 5.3 测试的主要内容 (20) 5.4测试用例 (21) 5.4.1功能测试—添加联系人 (21)

手机通讯录课程设计报告

Visual C++课程设计 题目名称:手机通讯录 班级:信安1101 :立翼 学号:1111290105 指导教师:阎光伟 完成时间:2013.1.18

目录 1 题目描述 (2) 2 功能分析 (2) 3 系统设计 (2) 3.1 系统整体结构 (2) 3.1.1 系统中的信息类型划分 (2) 3.1.2 对分组的操作 (3) 3.1.3 对人员的操作 (3) 3.2 主要模块设计 (3) 3.2.1 信息类的设计 (3) 3.2.2 命令的设计 (4) 3.2.3 主要数据结构 (5) 3.2.4 文件存储 (5) 3.3 程序界面设计 (6) 3.3.1 树控件设计 (6) 3.3.2 列表视图控件设计 (6) 3.3.3 模糊查询设计 (7) 3.3.4 分组框设计 (7) 3.4 类与函数的设计与实现 (7) 3.4.1 联系人类的设计与实现 (7) 3.4.2 分组类设计与实现 (8) 3.4.3 命令类设计与实现 (8) 4 运行与测试结果 (10) 4.1 程序主要运行界面 (10) 4.2 系统测试 (13) 4.2.1 界面操作测试 (13) 4.2.2 功能测试 (14) 4.2.3 非正常操作测试 (14) 5 小结 (14)

1 题目描述 设计一个手机通讯录管理软件。 要求: 1)分组管理。能够添加、删除、修改,每个分组设置一个来电音乐。 2)用户管理。包括、手机、办公,电子,QQ ,微博,来电音乐 3)用户查询。初始时按照字母顺序显示所有人员,可以输入或者数字模糊查询 4)功能模拟。当选中一个用户时,有通话和短信选项可以操作,选择后进入相应界面。 2 功能分析 系统主要功能包括: (1)分组管理。可以添加、修改、删除分组。添加分组时可设置来电音乐,也可修改来电音乐。 (2)用户管理。可添加、显示、修改、删除用户信息。用户信息包括、手机、办公、电子、QQ 、微博、来电音乐。 (3)用户查询。初始时按照字母顺序显示所有人员,可输入或数字进行模糊查询。可按分组显示人员。 (4)功能模拟。当选中用户时,有通话和短信选项可以操作,选择后进入相应界面。 3 系统设计 3.1 系统整体结构 3.1.1 系统中的信息类型划分 在本系统中,主要分为两类信息:分组信息和人员信息(如图1所所示)。其中分组信息包括分组名称及分组来电音乐。人员信息包括人员、手机、办公、电子、QQ 、微博、分组、来电音乐。 图图 1 系统中的信息类型

Android手机通讯录实验报告

Android手机通讯录实验报告学院:安徽机电职业技术学院 专业:软件技术 班级:软件3141 姓名:张程庆小分组 指导老师:范宏宇

小组分组详细信息 组长:张程庆 文档:赵晶蓉 编程:蔡婷、刘朝群、宋昱昊界面:江晓雨 测试:王健康

目录 1.系统描述 1.1问题描述 (1) 1.2功能描述 (2) 1.3数据需求 (3) 1.4设计意义 (4) 2.界面设计 2.1主界面 (5) 2.2新建界面 (6) 2.3修改界面 (7) 2.4查询界面 (8) 2.5添加界面 (9) 3.运用的组件 4.java代码部分截图 5.xml代码部分截图 6.设计总结与收获

1.系统描述 1.1问题描述 在我们学习完Android的相关知识以及软件技术这门学科所涉及的不同编程语言,让我们在现在这个学习阶段对软件编程有了一定的了解,这次的实验是做我们都很熟悉的通讯录,实现手机通讯录的基本功能,包括添加手机联系人,查询手机联系人,删除手机联系人等最基本操作。 这次的手机通讯录是以java语言为主体,xml布局,结合Android 的移动开发平台等实现安卓手机通讯录的基本操作,做到基本的操作都能够完好的运行,在数据丢失后也能够及时的找回。 1.2功能描述 1.3数据需求 本程序是编程通讯录的相关信息,包括联系人姓名、手机号码、公司

号码、存储信息等,在我们的通讯录中利用客户输入的相关用户信息进行保存从而传输到数据库中。 1.4设计意义 我们设计的通讯录包括添加联系人、删除联系人、修改联系人信息、存储联系人信息等基本的手机通讯录的功能,在现在的信息和现代化社会环境下,为了更加方便的找到我们的朋友或家人,我们需要更加简洁方便手机通讯录来方便我们联系他人,随着手机的不断更新换代我们的通讯录也向着更加人性化的方向发展着。 在未来的发展中,通讯录作为手机最基本的功能,对人们的影响也有了一定的程度,人们也越发多的使用着手机通讯录,相信在今后的发展中我们会做到更好,更方便他们的生活。实现人与人更亲密的互动。

安卓课程设计手机通讯录

安卓课程设计手机 通讯录

J I A N G S U U N I V E R S I T Y 通信综合课程设计报告 ——手机通讯录 姓名: 合作者: 专业班级:通信1002 学号: 31006010 指导老师:朱轶 设计日期: .01.08~ .01.10

第一章开发内容概述 随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与11月推出了一个专为移动设备设计的软件平台——Android。 Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还能够是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。 Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile 在内

安卓课程设计_手机通讯录系统方案

目录 1前言 (1) 2系统概述 (2) 2.1需求分析 (2) 2.1.1基本功能需求 (2) 2.1.2系统用例分析 (2) 2.2总体设计方案 (5) 2.2.1系统模块关系与划分 (5) 3系统详细分析 (6) 3.1通讯录需求分析 (6) 3.1.1增加、删除、编辑联系人 (6) 3.1.2查找联系人 (6) 3.1.3通讯功能 (6) 3.1.4菜单功能 (7) 3.1.5导入导出功能 (7) 3.2数据库设计 (7) 3.1.3Android数据库概述 (7) 3.1.3数据库表详细设计 (7) 3.3系统界面设计 (8) 4系统编码实现 (14) 5测试 (19) 6参考文献 (23)

前言 随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。 Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。 Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在的 30 多家技术和无线应用的领军企业组成。 (1)优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种 融入全部Web应用的单一平台 (2)缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差, 导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。

如何将通讯录从EXCEL(.xls)格式导入安卓手机

如何将通讯录从EXCEL(*.xls)格式导入安卓手机 正准备上床,接到同事电话。因为工作原因,需要大批量的导入通讯录,可现有的通讯录是以Excel格式保存在电脑上的。如果一个一个的录入会非常麻烦,因此谈到通讯录如何快捷方便的从Excel数据表转入安卓手机通讯录。 因为以前一直在用QQ同步助手和小米的云,通讯录都是在云端同步,日常很少会用到大批量导入的情况。仔细想了想也不是什么大问题,无非确定好安卓手机能够接受的格式,然后按照这个格式码好数据,再导入就是。正好电脑上安装了腾讯手机管家,就借这个软件试试看。经过摸索,结果还是比较理想的。整个过程居然连格式都不需要更换,直接用xls 格式即可,只不过需要更换其中的内容。具体看图: 1、首先打开安装好的腾讯手机管家 for Android版,并确保通过WIFI或者USB数据线已经成功连接手机。 ps。我的MI2很就清理了,检测结果还是比较悲催的。 2、点击上方的通讯录按钮,进入通讯录管理页面,点击导入/导出按钮,首先把手机内的通讯录导出看看是什么模样。

ps。在导出格式中发现了令人兴奋的Excel字样。 3、这就是导出的EXCEl格式的通讯录了,不知道是不是Android的手机通讯录导出都是这个模样,这个列也太多了吧。 但是很明显,我们需要找的东西还是找到了,D列就是联系人了。

AO列就是联系电话了(Ao太长了),其他的选项也是各有作用,比如AQ列很明显是为第二部电话准备的,至于AL列的HOME phone,AJ列的Company Main Phone,就不再一一解释了。

4、既然已经搞明白了结构,剩下的就是把咱们准备导入的Excel表,改造成如此格式,再导回去就大功告成! 改造嘛,蛮简单的,复制粘贴即可,这里就不附图了。主要说说往回导。 5、看看我已经保存好按照新格式改造的Excel表,找到腾讯手机管家的联系人管理页面,然后点击导出/导入进行导入工作。

C课程设计手机通讯录

C课程设计手机通 讯录

目录 1课程设计的目的、要求及任务内容.......................... 错误!未定义书签。 1.1课程设计的目的及要求 .................................... 错误!未定义书签。 1.1.1设计目的.................................................. 错误!未定义书签。 1.1.2设计要求.................................................. 错误!未定义书签。 1.2 课程设计任务内容............................................ 错误!未定义书签。2详细设计说明 ............................................................. 错误!未定义书签。 2.1功能使用说明.................................................... 错误!未定义书签。 2.1.1查看功能.................................................. 错误!未定义书签。 2.1.2增加功能.................................................. 错误!未定义书签。 2.2函数流程图 ....................................................... 错误!未定义书签。 2.2.1函数流程.................................................. 错误!未定义书签。 2.2.2增加功能: .............................................. 错误!未定义书签。 2.3 编码及测试........................................................ 错误!未定义书签。 2.3.1查找功能.................................................. 错误!未定义书签。 2.3.2增加功能.................................................. 错误!未定义书签。

单位员工通讯录管理系统

单位员工通讯录管理系统(线性表的应用) [需求分析] 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。 [问题要求] 其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。 [问题分析] 为建立单位员工通讯录系统,首先要实现员工信息的录入、保存等基本操作。对于员工通讯录我们要存入要求的员工的各种信息等,对于已经保存的信息,我们要可以对这些信息进行查询、修改、插入新信息、删除信息、还有可以直接输出整个所有员工信息等。而这些操作对于我们来说都是对建立的链表的基本操作,对于本次试验我采用单向线性链表。 [算法设计] 首先我们要进行最基本的操作,即建立链表。链表的节点信息保存的有员工编号、员工姓名、办公室电话号码、手机号码、员工邮箱这些信息。而链表的结点信息保存的有员工信息以及其指针域。然后我们可以添加员工信息,对于新的员工信息我们将其添加在链表的表尾,在添加之前我们要进行一项操作,即遍历链表找到其尾指针,然后开辟一个结点并将其加到链尾。我们还可以进行员工信息的查询操作,在进行查询时我们首先要遍历链表,然后在遍历的同时与关键字进行比较从而找到员工信息并输出。员工信息删除操作,此操作首先要找到要删除的员工信息,然后将此节点的前一节点的后续指针直接指向要删除的结点的后续指针,并且释放要删除的结点空间即可。员工信息修改,首先找到要修改的员工,然后输入要修改的员工信息,将输入信息直接覆盖在原有信息上即可。员工信息输出,遍历整个链表并输出。 流程图如下: [调试分析及测试数据] 员工信息插入:

员工信息查询: 员工信息删除:

相关文档
相关文档 最新文档