电话簿App Inventor设计报告

时间:2024.4.7

电话簿App Inventor设计报告

                                              

开课班号:68429     学号:2013031035      姓名:雷春枚    年级专业: 13法学                

完成时间:20##年6月8号

一.    任务与要求

任务:完成电话簿的设计

要求:完成界面设计,要求至少有3个以上的数据项;

  具有查找功能;

  能够保存;

  可以拨打电话、发短信;

  按要求填写作业报告(在打包的资料中);

  屏幕有背景图,且可以改变。

  注:1~5为必做,6为选做。

二.    设计方案

通过电话簿的设计,可以存储联系人的姓名、手机号等一些基本信息,书本上介绍了基本的增添、删除、保存功能,于是就想拓展一下电话簿的功能,如查找,排序,发信息,打电话等等,更加完善电话簿的信息,如邮箱,家庭住址等等,这对自己来说,有一定的难度,通过课堂上老师讲的以及书本的大致介绍,慢慢摸索,终于功夫不负有心人,自己完成了整个作业,程序也能很好的运行。

三.  设计成果

电话簿的功能:

1.程序启动:当程序启动后,会显示第一个联系人的姓名、手机号、邮箱、住址。自己总共存储了10位联系人。

2. 2.点击【下一个】键:当点击“下一个”键时,程序显示第二个联系人,再点击,就会显示第三个,以此类推;若当前联系人是最后一个,则点击“下一个”键时显示第一位联系人。

3.点击【上一个】键:跟上面相反

4.点击【添加】键:当用户点击“添加”键时,一个新的联系人被添加到电话列表中。

5.点击【删除】键:当用户点击“删除”键时,则当前联系人被从列表中删除。

6.点击【保存】键:屏幕上的人名和号码可以被修改,如果要保存修改的内容,则可以点击这个键完成。

7.点击【查找】键:当用户点击“查找”键时,也可以实现点击“上一个”、“下一个”键的效果,当然它的效果不仅仅指这个,可以查找到你所要找的

     联系人的信息。

    8.点击【发信息】键:通过在message text box中输入信息,电话号码,来                       

     发送信息。

    9.点击【打电话】键:通过点击“打电话”键,在输入框中输入电话号码,来达到打电

     话的效果。

设计界面:

图示:

1.刚开始时,需要初始化界面

2.当按“上一个”、“下一个”键时,显示“上一个”、“下一个”人的信息

3.当按“添加”键时

4.当按“删除”键时

5.这是“保存”键时的blocks

6.这是“查找“时的功能

8.发信息和打电话

三.    总结与思考

   这个电话簿的功能还是很齐全,包含了很多内容。界面设计总体还行,通过对各个button宽度、高度、字体大小、背景颜色等的设计,屏幕背景图的添加,力求达到美的效果。也能实现相关功能,但自己的背景图不能改变,这一点以后可以改善一下,当然还可以增加发邮件等的功能,以及如何在下次启动时,能够保存上次启动时的修改,因为每再一次启动时,上次修改的就没有了。

总体感觉自己完成得还可以,功能都能很好地实现,当看到自己设计出来的东西能很好运行时,心里还是挺高兴的。当然,这个电话簿还有待继续去完善。自己花了较多的时间来弄这个,只因自己编程基础太差,有很多东西自己不会,通过看课件、例题、书本,最终完成了这个任务。

   对这门课的感想:怎么说呢,移动编程是一门既让自己爱也让自己恨的课程,爱是因为自己很享受自己设计apk后的成果,而且也很实用,比如说那个企鹅很萌很萌的声音,电话簿可以打电话、发信息等等;恨是因为自己基础太差,不会做,每做一次移动编程作业都要花费自己接近一天的时间 ,很累,当看到运行失败时,又很伤心。其实老师讲得还算仔细,但是自己有时就是听不懂,也没有那种刨根问底的积极性,老师每次讲完后,课余时间,自己也没有在继续顺着老师的思路往下做。

  当然整个学期下来,自己还是学会了很多,很实用的一门课程,也让我知道了原来我们平时手机上用的软件都是apk文件,都是别人这样设计出来的,自己也会一些简单很基础程序的设计,让自己的计算机操作能力得到一定的提高。

   总之,过程很艰辛,对我来说,但成果却很丰硕,自己很享受自己设计出来的app。


第二篇:设计报告_通讯录


C++ 课程设计

指导教师:

题目:

陆建峰 学生管理系统 通讯录管理

学生姓名: 童智高 学号: 1006840632

VC++课程设计实验报告

姓名: 童智高 学号:1006840632

课程设计题目: 双向链表题(通讯录管理)

评定难易级别: A

一、原程序功能、结构(包括总的结构框图和子程序流程图。参照教材第9页,可简

化些)

设计报告通讯录

二、课程设计要求的实现(尽量详细,但不要只罗列代码,要进行说明。可参照教材

18页)

该项目要求实现模拟通讯录功能:信息读入,信息修改,信息添加,信息查询,信息删除,信息显示,以及信息的保存。

1. 定义Data类,表示每一个对象的数据信息。即姓名::char Name[20];,年龄::int Age;,性别::char Sex[15];,电话号码::char Tele[30];,学校::char SCH[30];,电子邮箱地址::char Email[30];

2. 定义Node类代表每一个对象。包括该对象在链表的序号(可变动)::int Number;,数据信息Data Base;,向前指针::Node* Previous;,向后指针::Node* Next;。并声明DoubleLinkList类为友元函数。

Node类包含的函数::

void show();显示该节点的全部信息;

全部从左按数位对齐

Node();默认构造函数;

Node(Data & EXA);构造函数(根据数据进行构造);

将EXA中的数据拷贝到本节点中,将前后指针制空

~Node();析构函数;

3. 定义DoubleLinkList类表示双向链表。包括Node(对象)的指针,链表头指针,链表尾指针。

DoubleLinkList类包含函数:

一. DoubleLinkList();默认构造函数;

二. ~DoubleLinkList();析构函数

三. bool IsEmpty();判断链表是否为空;

四. void Insert_Head(Data & );根据数据生成节点插入表头;

五. void Insert_End(Data & ); 根据数据生成节点插入表尾;

六. void Insert(Data & );控制数据的插入(总);

::如果为空,就按表头插入,按姓名排序。如果等于头指针,按表头插入,如果等于尾指针,按表尾插入,并且重新设定序号

七. bool Delete_Head();删除表头

八. bool Delete_End();删除表尾

九. void Delete_ALL();删除所有

十. bool Delete_num(int);根据号码删除

::查找对象,在调用相应的函数进行删除操作。首先查询号码,若找得到则删除,否则提示错误。

十一. bool Delete_Name(char* );根据名字删除节点 ::查找对象,若能找到进行相应的删除操作,否则,提示错误

十三。 void show_E_to_H();从后往前输出 十四。 int Lengh();链表内节点的总数量 十五。 void Change_num(int);根据号码修改内容 ::查找对象,再调用具体的函数。 十六。 void Change_Name(char* );根据名字修改内容 ::根据名字找到节点,找不到,删除失败,找得到,调用具体删除的函数

十七。 Node* Find_Name(char* , bool);根据名字找到节点

::将需要查询的姓名统一为小写,存入字符串aa, 按顺序将节点的名字统一为小写,存入字符串bb,调用模糊查找的函数。能找到,则显示并返回最后一个节点指针,否则返回空指针

十八。 bool Load_File(char* );从文件读入

::判断文件是否存在,不存在则建议手动添加,存在则读取数据。

十九。 bool Save_File(char* );保存到文件

::首先询问是否保存至默认文件,否则调用另存功能。最后格式将内容写入到文件中。

二十。 Node* Create_Node(Data& );创造节点

::申请并创造节点,查看内存是否充足,最后返回节点指针

二十一。 void re_sort_all();更新序号

::将所有序号重新排序。

二十二。 void change_detail(Node*);具体的修改操作

::先按提示输入信息,并按要求进行修改,并提示是否确认修改,如果为否,则修改失败。先拷贝电话,年龄,邮箱, 根据需求选择,限定电话号码长度且只能为0至9的数字,限定年龄为数字,限定邮箱长度,最后确认是否修改,否则恢复原有数据。

3.main(): 创建一条链表DoubleLinkList EXA;,实现总的调用RUN(EXA);; 4.void RUN(DoubleLinkList & EXA):

运行操作的总函数,接受main函数传递的链表的引用,实现所有功能,调用相应的函数。具体功能:

1. 从文件读入信息添加到通讯录;

2. 手动添加或重建通讯录

3. 查询通讯录

4. 修改通讯录

5. 在通讯录中添加内容

6. 在通讯录中删除内容

7. 显示全部通讯录信息

0. 完全退出系统

5.以下为具体的功能: 一. void ADD(DoubleLinkList & ); 增加一个对象

::按提示输入信息,并限定名字,性别,电话号码,学校名称,邮箱的长度,以及按规范输入年龄,最后显示输入端的信息,确定是否添加此人。

二. void BUILD_1(DoubleLinkList & );

::从文件读入数据添加到链表

提示需要读取的文件名,并按规范输入。若文件不存在,则添加失败,提示建议手动添加数据。

三. void BUILD_2(DoubleLinkList &, char * ); 手动建立链表 ::提示输入需要保存的文件名,并确认是否手动添加数据。

四. void CHANGE(DoubleLinkList & ); 修改节点 ::提示选择,1. 根据序号进行修改。2. 根据姓名进行修改。再调用链表类的相应的函数

五. void DELETE(DoubleLinkList & ); //删除功能 ::提示选择,1. 根据序号进行删除,2. 根据姓名进行删除。再调用链表类内具体的操作函数。

六. void FIND(DoubleLinkList & ); //查询功能 ::提示用户模糊查找的说明,并输入数据,调用模糊查找函数

七. void GET_DATA(Data &, char* , int ,

char* , char* , char* , char* ); //完成一个数据节点,赋值操作

八. bool IF_NOT(); Y或N的判断 ::如果输入y或Y返回1,n或N返回0.

九. void SHOW_ALL(DoubleLinkList & EXA); 显示全部数据

::根据提示选择从前往后,或是从后往前显示数据,限定一屏幕显示的人数

十. int get_num(); 输入整数 {

int i;

int num;

char aa[80];

bool IF;

while(1)

{

IF = 0;

cin.getline(aa, 80);

num = 0;

for(i = 0; i<strlen(aa); i++)

{

if(!(aa[i]>='0' && aa[i]<= '9')) 确保为数字 {

IF = 1;

break;

}

else

{

num *= 10; 按字符串计算出整数

num += aa[i]-'0';

}

}

if(!IF && strlen(aa) != 0)

return num;

cout<<"\n!!对不起,输入错误,请重新输入!!: ";

}

}

十一. bool getit(char* , char* ); 模糊查找(递归) ::通过指针对两个字符串进行逐个比较,先判断是否全为*,再判断如果需要查询的一方大于原有,失败。两字符串仅有一个字符且相等则返回成功。然后比较指针指向的字符,如果等于*,从接下来非*得字符开始比较,调用递归,如果能找到成立的一组则返回true。如果指向的字符相等或等于?,则指针各后移一位,调用递归。如果指针指向的字符不相等,则返回false。

{

int i, j, k = 0;

int num1 = strlen(a);

int num2 = strlen(b);

int sum = 0;

}

for(i = 0; i<num1; i++) { if(a[i] == '*') sum++; } if(sum == num1) return 1; if((sum == 0 && num1 != num2) || num1-sum > num2) return 0; if(num1 == num2 && num1 == 1) return 1; i = 0; if(a[0] == '*') { while(a[i] == '*') i++; for(j = 0; j<num2; j++) { if(a[i] == b[j] || a[i] == '?') { if(getit(a+i, b+j)) return 1; } } return 0; } if(a[0] == b[0] || a[0] == '?') { return getit(a+1, b+1); } else { return 0; }

十二. void save_detai(char * ); //具体的文件保存函数 ::提示输入的文件名,并对文件名的做规范处理

十三. void cin_string(char* exa, int num) 具体的字符串输入函数 ::程序中多处调用,主要用于限定输入字符串的位数。

三、课程设计中所遇问题和解决

总体来说,这是一个模拟通讯录系统,主要以双向链表来实现,涉及一些双向链表的本功能。模糊查找功能是题目要求的亮点,可以用较为初级的递归算法实现。所以主要的问题是如何完善各函数间的联系,使整个程序的条理性,可维护性更强。为解决这一问题,我选择在设计函数时使其分工更明细,通过调用实现功能。还有就是设计之中,为界面的美观,不断地运行程序,找出不足之处,再加以修正。而最大的问题,则是对系统容错性的考虑::比如设定姓名,性别,电话,邮箱,学校的字符串长度,规定年龄只能为数字;从文件读取数据时,需要考虑文件名格式的正确性,文件是否存在;分配动态内存时需考虑是否分配成功;对输入流做处理,防止格式错误导致的系统崩溃。再者就是输出地美观化,及时调用system(“cls”)和system(“pause”)函数。

四、课程设计的收获和体会

在本次之中,我收获了很多。比如完善程序的容错性,提高数据结构的严

谨性:在写

序时,应该先写好框架,写好main函数,以及各功能函数的返回值,在主题框架debug成功后再编写具体代码;再者就是充分为用户考虑,防止用户犯错误所造成的系统崩溃。提高程序的人性化;在编写代码的过程中,养成良好的命名习惯,注意写好注释。

还有虽然VC 6.0是编写C++的一种基础工具,但是太过老旧,仍有些bug没有被修改

更多相关推荐:
A_presentation_英语范文

OnbehalfofGrantTelecommunicationsIdliketowelcomeyouMynameisJosephGreenTodayIdliketogiveyouaproductpresentationforth...

A presentation 英语范文

OnbehalfofGrantTelecommunicationsIdliketowelcomeyouMynameisJosephGreenTodayIdliketogiveyouaproductpresentationforth...

英语课堂演讲presentation范例 - 西兰公国 The Principality of Sealand

ThePrincipalityofSealandGoodmorningeveryoneTodayIwillintroduceyoutoafamousmicronationThePrincipalityofSealandlocati...

英文presentation ppt 演示讲稿引导句

开场白祝贺语GoodafternoonladiesandgentlemenOnbehalfofourcompanyIdliketowelcomeyouheretoThankyouallforcominghere...

成功英语演讲必备-教你怎么做presentation

转帖一成功英语演讲的秘诀开场白结束语应对问题IwillbepleasedtoansweranyquestionsyoumayhaveattheendofthepresentationPleasecanyousa...

英语Presentation演讲稿

GoodafternooneveryoneTurnontheQQmusicchartthefirstisalwaysJAYandthefollowedisVAEaspotless一尘不染的cleanboyand...

英语presentation演讲稿

BeforeIstartmypresentationletsseesomepicturesYesthesepicturesleadusintomytopictodayTobegoodnetizensNowadayswehavest...

Discription Presentation About a Precess

PresentationSpeechanovel3DICpackagingsolutionSowhatconductoregCuinaninterposerorasubstrateThereareaboutofthisproces...

presentation cloud computing

OknowIwouldliketorecommendyousomeapplicationstohelpyoutobuildaclearerunderstandingoftheusingofcloudcomputingObvious...

Argumentation &Presentation

CollegeEnglish4ArgumentationampPresentationCourseDescriptionInthiscoursestudentswilldeveloptheircriticalt...

presentation lose weight

GoodmorniungVictoriaMynameisRoseTodayIdliketotalktoyouaboutlosetheweightIthinkVictoriayoumustbewanttoloseyourweight...

PPTpresentation的用语

在台上呆掉真是逊毙了快来看看这十八个承上启下的Presentation句型1Rightlet39sgetstarted现在让我们开始吧2Letmeintroducemyself让我介绍一下3I39vedivid...

presentation (23篇)