当前位置:文档之家› MFC课程设计报告一个简单的通讯录应用程序

MFC课程设计报告一个简单的通讯录应用程序

MFC课程设计报告一个简单的通讯录应用程序
MFC课程设计报告一个简单的通讯录应用程序

一、设计目标与内容

1.了解Windows编程的基础知识,掌握MFC应用程序的基本知

识;

2.基本掌握面向对象程序设计的基本思路和方法;

3.掌握用VC++开发应用程序的的一般步骤和方法;

4.能够利用所学的基本知识,设计一个简单的通讯录应用程序,

具有以下功能:①用文件来保存通讯录信息(必须实现的功能)②编程实现通讯录记录的添加、删除、修改、浏览和查询(必须实现的功能)。

二、设计要求

1.用VC++进行编码,实现应用程序的功能。注重编码质量,

代码要有适当的注释;

2.提交设计报告一份(课程设计任务书、目录、主要的数据结

构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。

总体设计

通讯录应用程序,是一个基于单文档单视图的应用程序。

我们在基于但文档视图开发的同时,通过对文档菜单的操作和相应函数的响应实现一个简单的通讯录功能。在通讯录中,我们能够添加学生信息、修改学生信息、删除学生信息、预览学生信息和保存学生信息。进行一系列简单的操作。

详细设计

新建工程COM_book2

新建工程COM_kook2,默认选择单文档应用程序,完成。

在COM_book2View.cpp中初始化文档视图界面

添加函数如下:

void CCOM_book2View::OnInitialUpdate()

{

CListView::OnInitialUpdate();

CListCtrl &m_ListCtrl=GetListCtrl();

CString strHeader[5]={"姓名","专业","电话","QQ","生日"};

int nLong[]={150,200,250,200,200};

for(int nCol=0;nCol<5;nCol++)

m_ListCtrl.InsertColumn(nCol,strHeader[nCol],LVCFMT_ LEFT,nLong[nCol]);

UpdateData(FALSE);

}

程序运行后,界面如下

程序运行主界面

图1-1

在这里,我们可以看到通过我们单文档视图中菜单“通讯录操作”可以进行相应的学生信息的添加、删除、修改、查询、浏览、保存和打开。

而这里,下来菜单中的每一个选项我们将通过对话框的形式进行呈现。

为了便于对学生信息进行操作和保存,我们这里用到了数组集合类。先给工程添加一个学生信息类,用来保存学生的信息。类定义如下:

CStudentinfo

CString strName:public

CString strSpecial:public

CString strPhone:public

CString strQQ:public

CString strBirth:public

DECLARE_SERIAL(CStudentInfo):public //序列化声明CStudentInfo() {}:public

CStudentInfo(CString name,CString special,CString phone,CString qq,CString birth):public

学生信息添加对话框

图1-2

给工程添加一个对话框,然后给该对话框建立类向导

添加CStudentInfoDlg类

然后为菜单选项中“添加”选项添加响应函数OnStuinfoAdd() 。

代码如下:

void CCOM_book2Doc::OnStuinfoAdd()

{

CStudentInfoDlg dlg;

BOOL flag=true;

if(dlg.DoModal()!=IDOK) return;

for(int i=0;i

{

CStudentInfo *p=(CStudentInfo *)m_stuObArray.GetAt(i);

if(p->strName==dlg.m_add_name)

{

flag=false;

AfxMessageBox("该学生已存在!");

}

}

if(flag)

{

CStudentInfo* pStudent=new CStudentInfo(dlg.m_add_name,dlg.m_add_special,dlg.m_add _phone,dlg.m_add_qq,dlg.m_add_birth);

m_stuObArray.Add(pStudent);

// SetModifiedFlag();

this->UpdateAllViews(NULL,1,pStudent);

}

}

学生信息删除对话框

由于删除学生信息前要查询这个学生是否存在,所以这里我们要添加一个对话框类Del_StudentInfoDlg

运行时对话框如图

图1-3

根据学生姓名来查询看学生是否存在,若存在则进行删除,若不存在则提示该学生不存在

为菜单选项中的“删除”添加相应函数OnStuinfoDel()

代码如下:

void CCOM_book2Doc::OnStuinfoDel()

{

CDel_StudentInfoDlg dlg1;

BOOL flag=true;

if(dlg1.DoModal()!=IDOK) return;

for(int i=0;i

{

CStudentInfo *p=(CStudentInfo

*)m_stuObArray.GetAt(i);

if(p->strName==dlg1.m_stu_del)

{

delete m_stuObArray.GetAt(i);

flag=false;

}

}

if(flag)

AfxMessageBox("学生不存在,不能进行删除!");

if(flag==false)

{

for(int i=0;i

{

CStudentInfo *p=(CStudentInfo *)m_stuObArray.GetAt(i);

p->k=i+1;

this->UpdateAllViews(NULL,2,p);

}

}

}

学生信息修改

由于在修改学生信息之前我们要先查询学生是否存在,若存在我们对其信息进行修改,这时候要重新调用另一个对话框来对学生信息进行修改。这是需添加两个对话框对话框对话框MOD_StudentInfoDlg1和MOD_StudentInfoDlg2并为它们建立相应的类CMOD_StudentInfoDlg1和CMOD_StudentInfoDlg2

添加菜单选项中“修改”的响应函数OnStuinfoMod() ,先调用对话框MOD_StudentInfoDlg1来判断该学生是否存在,若存在则调用对话框MOD_StudentInfoDlg2对学生信息进行修改若不存在则提示该学生不存在。

代码如下:

void CCOM_book2Doc::OnStuinfoMod()

{

CMOD_StudentInfoDlg1 dlg2;

CMOD_StudentImfoDlg2 dlg3;

BOOL flag=true;

CStudentInfo *p1,*p2;

if(dlg2.DoModal()!=IDOK) return;

for(int i=0;i

p1=(CStudentInfo *)m_stuObArray.GetAt(i);

if(p1->strName==dlg2.m_mod_name1)

{

if(dlg3.DoModal()!=IDOK) return;

p1->strName=dlg3.m_name2;

p1->strSpecial=dlg3.m_spe2;

p1->strQQ=dlg3.m_qq2;

p1->strPhone=dlg3.m_phone2;

p1->strBirth=dlg3.m_birth2;

p2=p1;

flag=false;

}

}

if(flag)

AfxMessageBox("学生不存在!");

if(flag==false)

{

this->UpdateAllViews(NULL,3,p2);

AfxMessageBox("修改成功!");

}

}

学生信息查询对话框

学生信息查询对话框和删除学生信息对话框基本上是一样的,都是通过查询学生是否存在,若存在则显示该学生的信息,若不存在则提示学生不存在。

为菜单选项中的“查询”添加相应函数OnStuinfoSer()

代码如下:

void CCOM_book2Doc::OnStuinfoSer()

{

CSER_StudentInfoDlg dlg4;

BOOL flag=true;

CStudentInfo *p3;

if(dlg4.DoModal()!=IDOK) return;

for(int i=0;i

{

CStudentInfo *p=(CStudentInfo *)m_stuObArray.GetAt(i);

if(p->strName==dlg4.m_ser_name)

{

p3=(CStudentInfo *)m_stuObArray.GetAt(i);

flag=false;

}

}

if(flag==false)

this->UpdateAllViews(NULL,3,p3);

else

AfxMessageBox("学生不存在!");

}

学生信息查预览

学生信息预览,顾名思义就是显示现有全部学生的信息。这里添加菜单选项中“预览”的函数响应OnStuinfoLook()

代码如下:

void CCOM_book2Doc::OnStuinfoLook()

{

for(int i=0;i

{

CStudentInfo *p=(CStudentInfo *)m_stuObArray.GetAt(i);

p->k=i+1;

this->UpdateAllViews(NULL,2,p);

}

}

学生信息查保存和打开

虽然我们使用了数组集合类,系统能够自动的为我们保存添加过的学生信息,但是他本村的时候是乱码,所以这里我又重新写了函数进行学生信息的保存

为菜单选项中的“保存”和“打开”添加相应的函数响应OnStuinfoSave1() 和OnStuinfoOpen1()

代码如下:

void CCOM_book2Doc::OnStuinfoSave1()

{

//设置保存的文件,后缀名txt

C

dlg(FALSE,"txt",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROM PT,"(*.TXT)|*.txt|All Files|*.*||",NULL);

//如果公共类对话框为确定

if(dlg.DoModal()==IDOK)

//获取文件名

dlg.Get();

//否则,退出

else

return;

CStdio;

//如果有问题,退出

if((dlg.Get(),C)==0)

{

AfxMessageBox("save error!");

return;

}

for(int i=0;i

{

CStudentInfo *p=(CStudentInfo *)m_stuObArray.GetAt(i);

(p->strName);

(p->strSpecial);

(p->strPhone);

(p->strQQ);

(p->strBirth);

("\n");

}

();

}

void CCOM_book2Doc::OnStuinfoOpen1()

{

C

dlg(TRUE,"txt",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMP T,"(*.TXT)|*.wzq|All Files|*.*||",NULL);

if(dlg.DoModal()==IDOK)

dlg.Get();

else

return;

CStdio;

CStudentInfo *P;

int i,j;

CString str;

if((dlg.Get(),C)==0)

{

AfxMessageBox("open error!");

return;

}

CArchive ar(&);

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

{

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

{

ar.ReadString(str);

if (j==0) {P->strName=str;}

if (j==1) {P->strSpecial=str;}

if (j==2) {P->strPhone=str;}

if (j==3) {P->strQQ=str;}

if (j==4) {P->strBirth=str;} }

this->UpdateAllViews(NULL,1,P);

}

();

ar.Close();

}

文档和在视图的关联

在Windows程序设计中,文档和视图的关联是很重要的,所以我们要弄明白他们之间互动的机制。在这个程序中,我们每一次在文档类里更改学生信息都要把信息传递到视图里面进行更新,在这里我们会用到UpdateAllViews()函数通过这个函数把信息的改变传递给视图,然后对视图进行更新。

UpdateAllViews函数的原型如下:

void UpdateAllViews(CView *pSender,LPARAM lHint=0L,CObiect *pHint=NULL);

其中,参数pSender表示试图指针,若在派生文档类的成员函数中调用该函数,侧此参数应为NULL,若被派生视图中的成员函数调用,侧此参数应为this。lHint表示更新视图是发送的相关消息,pHint表示存储信息的对象指针。

当UpdateAllViews函数被调用时,如果参数pSender指向某个特定的试图对象,那么除了该指定的视图之外,文档的所有其他视图的OnUpdate函数就会被调用。

通讯录管理系统实验报告

通讯录管理系统实验报告 信息科学与技术学院《程序设计实习》实训报告书 目: 计算机科学与技术题 专业: 计算机科学与技术班级: 姓名: 学号: 同组人员: 指导老师: 设计时间: 目录 1.实训计 划 ..................................................................... ................................... 1 2.问题描 述 ..................................................................... ................................... 1 3.问题分 析 ..................................................................... ................................... 2 4.算法设 计 ..................................................................... ................................... 4 5.程序模块设 计 ..................................................................... ............................ 5 6.技术难点与分 析 ..................................................................... ........................ 8 7.系统测 试 ..................................................................... ................................... 9 8.心得体 会 .....................................................................

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

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

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

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

简单的通讯录实验报告

( 二〇一二 年 十 月 课程设计说明书 本科毕业设计 题 目:简单通讯录程序 学生姓名:李天罡 学 院:工学院 专 业:数字媒体技术 班 级:2011级 指导教师:王金祥

目录 引言 (3) 第一章需求与分析...................................... I 1.1开发环境 ....................................................................................................... I 1.1.1软件环境 ........................................................................................................... I 1.1.2硬件环境 ........................................................................................................... I 1.1.3开发平台 ........................................................................................................... I 1.2功能需求 ....................................................................................................... I 1.2.1数据字段 ........................................................................................................... I 1.2.2主要功能 ........................................................................................................... I 第二章总体设计 ...................................... II 2.1流程图 ......................................................................................................... II 2.2主要模块功能介绍 .................................................................................... III 2.2.1选择模块 ........................................................................................................ III 2.2.2增添删减模块 ................................................................................................ III 2.2.3查询模块 ........................................................................................................ I V 2.2.4排序模块 ........................................................................................................ I V 第三章详细设计 ...................................... IV 3.1源代码 ........................................................................................................ I V 第四章实体机测试..................................... XV 4.1测试的目标 ..................................................................................................... XV 4.2测试方法 ......................................................................................................... XV 4.3测试结果 ........................................................................................................ XVI 总结 .............................................. XXIII

通讯录管理系统课程设计报告完整版

通讯录管理系统课程设 计报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

设计课题题目 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main ()在程序设计中的实现思路和方法。 2. 课程设计要求 制作一个通讯录系统。 (1)该程序具有查找、添加、修改、删除功能。 (2)通讯录包括:姓名、电话、街道、城市、省、邮编等。 二、总体设计 根据系统的要求,系统总体设计如图1所示。 1

printf("\t--------------------\n"); printf("\t请您选择(0-7):"); scanf("%d",&c); }while(c>7&&c<0); return(c); } int Input(struct date per[10],int n) { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t姓名:"); scanf("%s",per[n+i].name); printf("\t电话号码:"); scanf("%s",per[n+i].phone); printf("\t电子邮箱:"); scanf("%s",per[n+i].email); printf("\tQQ:"); scanf("%s",per[n+i].QQ); gets(x); printf("\n\t是否继续添加?(Y/N)"); fflush(stdin); ame,per[i-1].phone,per[i-1].QQ,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } int Delete_a_record(struct date per[10],int n) { char s[20]; int i=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

通讯录管理系统课程设计报告书(C语言)

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院课程设计报告书 课程名称:C语言课程设计 班级: 学号: 姓名:薛其乐 指导老师:

二〇〇九年九月 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/

char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select()) { case 1: printf("\n\t添加记录到通讯录\n"); /*添加记录*/ n=Input(pe,n); break; case 2: printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ Display(pe,n); break; case 3: printf("\n\t从通讯录中删除记录\n");

C语言通讯录程序课程设计报告书

3.6 实例6 通讯录程序 本实例希望设计一个通讯录程序,要求实现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。 3.6.1. 设计目的 1、掌握结构体的基本工作原理和工作方式。 2、熟悉结构体与链表的使用方法。 3、熟悉C语言下数据的输入与输出。 4、掌握C语言下对TXT文件的读写操作。 5、熟悉函数的设计方法及调用方法。 3.6.2. 基本要求 1、本实例要求实现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。 3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。 4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。 5、系统设计完成后应实现类似下图所示界面。 3.6.3 设计结构及算法分析 在进行程序设计时,选择一种合理的数据存储结构是非常关键的。本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。 1、存储结构 本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所

示: struct stu { char name[20]; /*人名*/ char telephone[20]; /*电话*/ char sex[4]; /*性别*/ char company[20]; /*单位*/ struct stu *next; /*链表节点*/ }; typedef struct stu STU; 2、main()主函数 采用模块化设计,功能放在各模块函数中实现。主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。 3、mycreate()函数------创建链表函数 函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。链表建立完成后,可根据链表的头指针来添加后续指针。 4、myadd()函数------添加学生信息记录函数 函数根据用户输入信息,分配内存,将数据存储到结构体中,并建立新的链表节点,链接到已经建立好的链表尾部。 5、mydelete()函数------删除链表节点

数据结构实验一_通讯录

数据结构实验报告 实验名称:实验一——线性表 学生:大学霸 班级: xxxxxxxxxx 班序号: xx 学号: xxxxxxxxxx 日期: 2012年11月1日 1.实验要求 实验目的: 1.学习指针,模板类,异常处理的使用; 2.掌握线性表的操作实现方法; 3.培养使用线性表解决实际问题的能力。 实验容: 利用线性表实现一个通讯录管理,通信录的数据格式如下: struct DataType { int ID; //编号 char name[10]; // char ch; //性别 char phone[13]; // char addr[31]; //地址 }; 具体要求: 1.实现通信录的建立、增加、删除、修改、查询等功能 2.能够实现简单的菜单交互,即可以根据用户输入的命令,选择不同的操作 3.能够保存每次更新的数据 4.编写main()函数测试操作的正确性 2. 程序分析 编程完成通讯录的一般性管理工作如通讯录中记录的增加、修改、查找、删除、输出等功能。每个记录包含、、住址等个人基本信息。用《数据结构》中的链表做数据结构结合c语言基本知识编写一个通讯录管理系统。本程序为使用方便,几乎不用特殊的命令,只需按提示输入即可,适合更多的用户使用。对于建立通讯录管理系统,则需了解并掌握数据结构与算法的设计方法,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。

2.1 存储结构 节点结构: 2.2 关键算法分析 本实验从整体上分为七大模块:( 1)输入联系人信息;(2)添加联系人信息;(3)查找 联系人信息;(4)查看联系人信息;(5)删除联系人信息;(6)修改联系人信息;(7)退出通讯录管理。 通讯录系统图 2.2.1通讯录的建立 伪代码: 1.在堆中申请新的结点; 2.新节点的数据域为a[i]; 3.将新节点加入到链表中; 4.修改尾指针; 5.全部结点插入后需要将终结结点的指针域设为空。 C++实现: ContactBook::ContactBook(DataType a[],int n)//尾插法 { front=new Node; rear=new Node;

java通讯录课程设计报告

JIANGXI AGRICULTURAL UNIVERSITY JA V A课程设计报告 题目:通讯录系统 二0一二年十二月 摘要 随着Internet速度的提高和使用的普及,网络上各式各样的应用层出不穷,通讯录系统就是其中的一种。在现实生活中,我们管理通讯录有多种方式,为了进一步提高管理通讯录的效率以及及时更新通讯录,特开发通讯录系统来方便用户使用和管理通讯录。 本系统采用Ecilpse编写程序,具有良好的程序结构和人机交互界面,通用性强。本文将从开发技术、需求分析、系统设计、编码实现和设计总结这几个方面,详细介绍

通讯录系统的设计和实现过程。 关键词:通讯录系统;JA V A;Eclipse;需求分析。

目录 1 绪论 (2) 1.1 概述 (2) 2 开发技术与工具选择 (2) 2.1 Eclipse介绍 (2) 2.1.1 Eclipse的基本概念 (2) 2.1.2 Eclipse 插件开发环境 (2) 2.1.3 Eclipse的主要组成 (2) 3 需求分析 (3) 3.1 概要说明 (3) 3.2 产品描述 (3) 3.3 系统功能列表 (3) 3.4 系统功能说明 (3) 3.4.1 <添加模块> (3) 3.4.2 <查询模块> (3) 3.4.3 <修改模块> (4) 3.4.4 <删除模块> (4) 3.5系统质量需求 (4) 4 系统设计 (4) 4.1说明 (4) 4.2总体设计结构图 (4) 4.3 总用例图 (5) 4.4 流程图 (5) 5 编码与实现 (8) 5.1包结构图 (8) 5.2主界面 (9) 5.3组操作的页面 (9) 5.4 好友操作界面 (10) 6 项目设计总结 (11) 6.1系统概述 (11) 6.2关键问题的分析和解决 (11) 6.3 系统展望 (11) 6.4 自身收获 (11) 致谢 (12) 参考文献 (13)

用XML做通讯录实验报告

综 合 性 实 验 报 告 学院: 专业: 学号: 姓名:

计算机与信息技术学院综合性、设计性实验报告 专业:年级/班级:学年第学期 课程名称XML基础指导教师 本组成员 学号姓名 实验地点实验时间 项目名称个人通讯薄一的设计与实现实验类型综合性 一、实验目的 1、掌握XML文档的基本语法,能够得到格式良好的XML文档; 2、能够了解并掌握XML DTD的定义方法及其用途; 3、能够熟练使用XMLSPY来创建DTD文件及对应的有效的XML文件,并进行验证; 二、实验仪器或设备 学院提供公共机房,1台学生微型计算机。 三、总体设计(设计原理、设计方案及流程等) 设计原理:按照XML、DTD的语法规则来编写、保存文件XML、DTD文件。 设计方案及流程: 利用XML文档作为存储载体来存储个人通讯薄,按照以下要求设计并实现该通讯薄: 1、内含同学(classmate)、朋友(friend)、家人(home)等人员。每条通讯录至少包 含以下信息: a、姓名(name):必须有一个,其中包含一个枚举类型的性别(sex)属性; b、性别(sex):必须有一个; c、联系方式(tel):必须有一个; d、QQ号:一个或多个; e、地址(address):一个或多个; f、备注(other):一个或多个; g、根据需要可添加其它字段。

2、为该XML文档,编写DTD文档。 四、实验步骤(包括主要步骤、代码分析等) 1、按照以上设计编写一个规范的XML文档 这句话放为XML文件的声明,作为文件的第一行,在其前面不能有空白、其他处理指令或注释。XML声明以标识结束。在该XML声明中,属性version 的值为1.0,指出了该XML文件使用的XML版本,目前该属性的值只可以取1.0。属性encoding规定XML文件采用哪种字符集进行编码,在这encoding的值为“UTF-8”,那么标记的名字以及标记包含的文本内容中就可以使用汉字、日文、英文等。最后,文件在保存的时候必须选择UTF-8编码来保存,否则会出错。 如果在XML声明中没有指定encoding的值,那么该属性的默认值为UTF-8。 在XML文档中,有且仅有一个根标记,其他标记都必须封装在根标记中如图所示: 在该XML文件中,根标记的名字为“txl”,在根标记中封装了一个或多个名字为“title”、“classmate”、“friend”、“home”的标记。在名为“classmate”、“friend”、“home” 的标记下,又都包含了名为“name”、“sex”、“tel”、“QQ”、“address”、“other”的子标记,他们分别包含了姓名、性别、联系方式、QQ号、地址、备注这些信息。至此,该XML文件可以称为一个规范的XML文件。 使用XMLSpy,使用按钮检验XML文件的规范性,所得结果为:

通讯录课程设计报告

大学 课程设计说明书 课程名称管理信息系统题目通讯录管理系统 学院 班级

学生姓名 指导教师 日期 目录 1.需求分析 (3) 2.系统分析 (4) 2.1.系统的可行性研究 (4) 2.2.功能需求分析 (4) 3.系统设计 (5) 3.1.系统模块设计 (5) 3.2.数据库设计 (5) 4.系统实施 (7) 4.1.开发环境 (7) 4.2.建立数据库 (7) 4.2.1.数据库创建代码 (7) 4.2.2.数据库表创建代码 (8) 4.3.程序设计 (10) 4.3.1.主程序的设计 (10) 4.3.2.登录界面的设计 (12) 4.4.系统测试 (19) 5.课程设计总结 (25)

6.参考文献 (26) 1.需求分析 随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须

经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。 通讯录管理系统是一个基于SQL数据库储存和JAVA界面模式的个人通讯录管理系统。它是将自己的联系人的具体信息集中管理,成为一个方便人们使用的小软件。在开发过程中主要运用Java, SQL Server技术,由于开发工具和数据库之间的良好使用,可以为开发带来方便,使之成为一个可施行的系统。从而达到开发的目的-----实现对通讯录信息的管理。 通过采用相关技术,以及老师的辅导和同学们的帮助,将系统设计的功能全部实现。功能包括:用户的登录, 添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯的联系人,并且可以根据数据表的各字段来查询你所要找的联系人等功能。 2.系统分析 2.1. 系统的可行性研究 目的:可行性研究的目的是用最小的代价在尽可能少的时间内确定问题是否能够解决。而该系统正式用比较简单的VFP语言来编写的小型的、实用的通讯录信息管理系统,既能很好地完成对用户信息的管理,又比较经济实惠。本系统采用的是VFP语言,在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上也有很丰富的相关资料,通过参考一些功能模块程序的设计,实现该系统是完全可以的。 本系统的设计是在windows XP中文版环境下,使用Visual开发的。它是可以运行于windows XP相关平台的数据库开发系统。Visual不仅可以简化数据库管理,而且应用程序的开发流程更为合理,它使组织数据,定义数据库规则和建立应用程序的工作变得简单易行,利用可视化的设计工具和向导,用户可以快速的创建表单、查询等。 2.2. 功能需求分析 本系统主要实现对通讯录信息进行管理,需要实现以下几个方面的管理功能: (1)通讯录管理信息:信息的添加、删除、浏览、修改和查询等操作。 (2)系统维护:包括用户登录,用户修改密码,数据的修改、浏览、添加、删除以及按姓名、联系方式、地址进行查询。

数据结构课程设计报告通讯录.doc

数据结构课程设计报告 专业:计算机科学与技术 年级: 课题名称:通讯录 小组成员1: 小组成员2: 小组成员3: 信息技术学院专业教研室一 一、问题描述

设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。 设计内容:本系统应完成一下几方面的功能: 1) 输入信息——enter(); 2) 显示信息———display( ); 3) 查找以姓名作为关键字———search( ); 4) 删除信息———delete( ); 5) 存盘———save ( ); 6) 装入———load( ) ; 设计要求: 1) 每条信息至包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项 2) 作为一个完整的系统,应具有友好的界面和较强的容错能力 3) 上机能正常运行,并写出课程设计报告 二、需求分析 A,添加: 系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名(name),街道(street),城市(city),邮编(eip),国家(state). B,删除: 首先由用户输入要删除的人员的姓名,然后调用删除函数,删除该人员的所有相关资料. C,显示所有人员信息: 该功能将显示已经保存的所有人员的姓名,街道,城市,邮编及国家. D,查询: 可由用户输入要查找的人员姓名,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息. E,退出系统 关闭通讯录管理系统. 三、概要设计 六个函数的实现: void enter(); 新添纪录

C++-通讯录课程设计报告

C++面向对象程序设计 课程设计报告 》 设计题目:通讯录系统 学生学号: P P 学生姓名: 王元波次仁多布杰 专业班级:2009级计算机科学与技术(3)班学生成绩: 指导教师:蔡正琦 ] 计算机科学与信息工程学院 2010-6-26

一、设计任务分析 实现以下功能: · 1) 通讯录编辑(添加、删除); 2) 按不同的项进行查找; 3) 对已存在的通讯录按不同的项排序; 4) 将通讯录写入文件; 5) 从文件读入通讯录。 二、模块设计 本次程序设计主要设计了六个模块(主要是:(),(),(),(),(),(),())()函数用于通讯录中的信息进行添加,主要流程如下: — ()函数用于通讯录中的信息进行删除,主要流程如下:

()函数用于通讯录中的信息进行修改,主要流程如下: ()函数用于通讯录中的信息进行查找,主要流程如下:

~ ()函数用于通讯录中的信息进行排序,主要流程如下: ()函数用于从文本文件中读取信息,主要流程如下:

()函数用于将信息写入文本文件,主要流程如下:

三、… 四、主要数据结构 结构数组: struct student o<

通讯录实验报告

实验课程名称通讯录管理系统 专业班级 10级计科1班 学生姓名 学号 指导教师 2012至2013学年第一学期第1 至18 周

目录 第1章概述 (3) 1.1现状分析 (3) 1.2实现意义 (3) 第2章系统分析 (4) 2.1用户需求分析 (4) 2.2管理者需求分析 (4) 第3章概要设计 (5) 3.1主控菜单设计 (5) 3.2 总结构设计流程图 (6) 第4章详细设计 (6) 4.1通讯录建立模块设计 (6) 4.2通讯录查询模块设计 (7) 4.3通讯录删除模块设计 (7) 4.4通讯录链表的输出模块设计 (8) 第5章运行与测试 (9) 第6章总结和心得 (9) 参考文献 (10) 附件(源代码) (10)

第1章概述 1.1现状分析 日益繁多的人际交往使得我们很难记住与每个人之间的联系方式,通讯录能够便捷的给我们带来所需要的相关信息。为了实现通讯录管理的几种操作功能,首先设计一个含有多少个菜单项的主控菜单程序,然后再为这些菜单配上相应的功能。 1.2实现意义 随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机或者手机中的电话簿程序来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。然而要靠计算机来记住这些信息,首先就得要求用单链表做数据结构,设计一个实现通讯者信息的输入、查询、删除、输出、等功能的通讯录管理系统。每条通讯者信息包含:编号、姓名、性别、电话号码、地址等信息。

通讯录课程设计 Java

攀枝花学院课程设计 题目:通讯录 院(系):数学与计算机学院 年级专业: 12网络工程 姓名:杨莎 学号: 201210803040 指导教师:何全庆 二〇一三年十二月三十日 攀枝花学院教务处制

攀枝花学院本科学生课程设计任务书 注:任务书由指导教师填写。

摘要 通讯工具在平常百姓家中已经是非常常见。用Java语言开发这个强大通讯录以实现我们对大量的人员的通信信息予以记录。以便我们使用方便。我们可以往这个通信录系统中添加数据,也可以对记录进行修改,删除。这样大大提高了我们的通信管理效率。 随着人们生活水平的提高,通讯工具在平常百姓家中已经是非常常见。要记 住所有的联系方式似乎有些困难,所以我们希望设计一个通讯录系统,记录所有 的联系方式,并且能方便的查找,增加和删除,方便大家记录联系人。 当前计算机软件技术和网络技术正飞速发展,软件系统日趋大型化、复杂化, 软件对于一个计算机系统是至关重要的。因此社会对软件开发者提出了比以往更 高的要求,相应的系统要求也有了很大的提高。本系统用C++作为程序语言,设 计出的系统功能强大,操作方便灵活。 关键词:通讯录;java; 数据;查询; -Ⅰ-

目录 摘要 (Ⅰ) 1需求分析 (6) 1.1需求来源 (6) 1.2设计目的 (6) 1.3设计要求 (6) 2 功能需求描述 (6) 3 总体设计 (6) 3.1 功能介绍 (7) 3.2 系统模块结构 (7) 3.3 系统总设计流程图 (7) 4 概要设计 (8) 4.1登录功能界面 (8) 4.2添加功能界面 (9) 4.3删除功能界面 (9) 4.4查询功能界面 (10) 4.5统计功能界面 (10) 5程序与分析 (11) 5.1登陆系统 (11) 5.2增加纪录 (13) 5.3 删除记录 (14) 5.4修改记录 (15) 5.5查找记录 (17) 致谢 (18) 参考文献 (19)

C语言通讯录系统课程设计报告

通讯录系统的设计与实现桂林电子科技大学电信三班傅得耕 3.1系统的需求分析 通讯录系统作为一个应用软件将为人民提供一个可以串联人与人之间的信息的一个平台。根据系统界面的提示信息对通讯录进行查询、初始化等操作。 系统功能需求分析描述如下: (1)创建联系人。 (2)显示所有联系人:显示可以进行的操作。 (3)删除联系人。 (4)查询:根据姓名进行查询,并可显示所有关于该人的信息。 (5) :退出。 3.2系统的设计 3.2.1 系统的总体设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现通讯录系统信息的创建联系人、删除、查找等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解联系人的情况。 (2)系统模块结构图 根据需求分析结果,通讯录系统可以分为五大模块:创建联系人模块、显示功能模块、查找联系人功能模块、删除联系人模

块以及退出模块。 ㈡查询人物信息 进入此菜单功能模块,输入您要查询的图书的名字。 图书查询模块流程如图: 3.3 创建

删除系统 3.4 源代码 #include #include #include #define LEN sizeof(struct people) struct people { char name[10]; char address[50]; char postcode[7]; char phonenum[12]; struct people * next; }; int n = 0, c; static struct people * head; void insert(); void show();

Java实验通讯录 实验报告

集中上机实习报告实验题目用java实现简单功能的学生通讯录

实验题目 用java实现简单功能的学生通讯录; 需求分析和系统设计 需求分析要实现的功能分析: 通过题目可知要设计一个学生通讯录,要求实现简单的通信录管理,能够 输入通信录卡片(实现增、删、改等功能),能够分组,并能够实现按名字(或 其他方式)查询功能; 实现界面:可以是DOS界面,功能按提示方式输入实现;可以是Windows界面,功能用菜单形式,输入界面用对话框形式。 概要设计 为了实现实现通讯录界面,需要完成对电话簿的添加,删除,修改功能,因此只需要完成对这三个按钮事件的处理。这三个按钮同样可以用一个监听器 类来实现事件的监听。区分他们的方法同样是根据按钮标题的不同来区分,当 鼠标单击列表组件时,显示不同人员的联系信息,所以需要为列表组件添加鼠 标事件监听器。 算法分析 在实现功能时只用了简单的面向对象的设计方法,在处理多个按钮事件时,区分按钮的关键是按钮的标题区分,我用了按钮命令事件处理,并用if else 来区分“添加”,“删除”,“修改”这三个按钮。界面上放入一个列表主件, 一个“姓名:”的标签和一个输入姓名的编辑框,一个“电话:”的标签和一 个联系电话的编辑框,一个“地址:”的标签和一个地址的编辑框,还有“添加:”、“删除:”、“修改:”等按钮,及对mouseClicked 事件的监听类。 构造了 JFrame mainFrm 为主窗口, JTextField name 为姓名输入框, JTextField tel 为电话输入框, JTextField add 为地址输入框,

JList dataList 为列表组建, String[] ming 为姓名数组, String[] phone 为电话数组, String[] addr 为地址数组。 在实现过程中,定义PhoneBook类继承了MouseAdapter类与ActionListener接口,就可以用Book类来实现按钮命令监听器和鼠标事件监听器。如果出现错误操作,会在控制台出现异常,且操作无效。 模块划分与说明 学生表 流程图 1,进入通讯录后先在姓名输入框内输入姓名如xx,在电话输入框内输入联系电话,在地址输入框内输入地址; 2,点击“添加”按钮,姓名xx出现在面板左侧的列表中; 3,(1)继续1,2,步骤可向学生通讯录中添加更多学生信息如yy; (2)可对已添加的学生信息进行修改,如将xx的电话号改变:在列表中点击xx姓名,对xx信息进行修改,最后点击“修改”按钮,修改后的信息被保存; (3)可对已添加的学生信息进行删除操作,如将xx的信息删除:在列表中点击xx姓名,然后点击“删除”按钮,即可将学生信息删除;

数据结构实验报告之通讯录的实现

数据结构实验报告之通讯录的实现 一、实验题目 利用线性表实现一个通讯录管理,通信录的数据格式如下: struct DataType { int ID; //编号 char name[10]; //姓名 char ch; //性别 char phone[13]; //电话 char addr[31]; //地址 }; 要求: ?实现通讯录的建立、增加、删除、修改、查询等功能 ?能够实现简单的菜单交互,即可以根据用户输入的命令,选择不同的操作。 ?能够保存每次更新的数据(选作) ?能够进行通讯录分类,比如班级类、好友类、黑名单等等(选作) ?编写测试main()函数测试线性表的正确性 二、实验目的 1、熟悉C++语言的基本编程方法,掌握集成编译环境的调试方法。 2、掌握线性表的操作的实现方法。 3、运用线性表解决实际问题。 三、实验内容 通过编写一个C++程序完成一个简易的通讯录管理系统,能够实现建立,增加,删除,修改,查找,浏览,输出,菜单等基本功能。管理系统中每个元素含有成员的ID、姓名、性别、电话、地址等信息。程序是使用链表的功能,通过一些算法简单的实现。 四、算法思路与主要代码 1. 通信录管理结构:建立,增加,删除,修改,查找,浏览,菜单。 2.建立通讯录 构造函数,建立头节点 PHONEBOOK::PHONEBOOK() { first = new DataType; first->next = first->prior = first; first->ID = 0; }

头插法,添加联系人 1:在堆中建立新结点 2:将 a[i]写入到新结点的数据域 3:修改新结点的指针域 4:修改头结点的指针域,将新结点加入链表中 即 1:Node * s=new Node 2:s->data=a[i] 3:s->next=front->next; 4:front->next=s 代码实现 void PHONEBOOK::Insert() { DataType *data = new DataType; data->next = first->next; data->prior = first; first->next = data; data->next->prior = data; m++; data->ID = m; 3.查找联系人 按姓名查找查找是指用户输入要查找的联系人的姓名,系统该函数内找到该联系人,返回该联系人数据域的指针,在主函数中输出该联系人的全部信息。 即1. 初始化工作指针p; 2. 循环以下操作直到p为空或找到用户 1. 如果p的数据等于i,则返回P的数据域指针; 2. P指针指向下一个节点; 3.若找不到返回空指针。 代码实现 void PHONEBOOK::Search() { cout << "请输入要查找的联系人的姓名:"; char aname[10]; cin >> aname; DataType *p = first->next; while (p) { //找到则输出信息 if (strcmp(p->name aname) == 0) {

相关主题
文本预览
相关文档 最新文档