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

1、课程设计任务

1.1、题目

通讯录管理系统

1.2、要求

(1)添加联系人的信息到通讯录中,包括:姓名、性别、城市、邮编、手机号、QQ号、Email;

(2)可按姓名、手机号查询联系人信息;

(3)实现现有联系人信息的浏览、修改、删除功能。

2、总体设计

2.1、功能模块设计

根据课程设计题目的功能要求,各个功能模块的组成框图如下:

图2-1  通讯录管理系统功能组成框图

2.2、所有功能模块的流程图

图2-2  通讯录项目操作清单流程图

                 

                   

              图2-3  添加信息功能                                   图2-4  插入信息功能

图2-5  删除信息功能

图2-6  修改信息功能

图2-7  查找信息功能

图2-8  显示信息功能

3、详细设计

模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等;

3.1、程序中各变量、常量及函数说明

typedef struct    //每个成员的信息

{

    char name[10];    //姓名

    char sex[5];         //性别

    char place[10];   //地址

    char num[10];    //邮编

    char tel[20];       //电话

    char qq[15];       //QQ

    char email[20];  //Email

}Address;

typedef Address ElemType;

typedef struct   //所有成员信息

{

    ElemType data[MAX];

    int len;

}AddressList;

程序中所用函数:

显示要操作的项目清单:void menu();

对通讯录进行初始化:AddressList *Init();

创造通讯录各个成员的信息:void Create(AddressList *L);

对通讯录插入成员的信息:int Insert(AddressList *L);

按顺序删除成员信息:int Delete(AddressList *L,int i);

选择删除方式删除成员信息:void Deleteway(AddressList *L1);

修改通讯录成员信息:void Update(AddressList *L);

对要查询的成员进行提示操作:void SearchContact(AddressList *L);

按照名字查找成员信息:int FindByname(AddressList *L,char name[]);

按照手机号查找成员信息:int FindBytel(AddressList *L,char tel[]);

显示通讯录各个成员的信息:void Output(AddressList *L);

3.2、子模块的设计与实现

1.主函数设计:根据菜单的选项调用各函数,并完成相应的功能。运用while判断用户输入的数值是为7,为7退出通讯录管理系统,然后运用switch函数进行功能的选择。

2.清单设计:显示提示选单。使用printf函数进行界面排版。

3.添加信息设计:创建新的联系人信息,其信息主要包括名字、性别、地址、邮编、电话、QQ、Email,输入一条信息后,判断是否继续输入其他数据,使用循环结构进行多次写入。

4.插入信息设计:判断插入位置是否合法,若不合法则显示位置不合法并返回菜单,若合法则再插入新的联系人信息,插入成功后,显示通讯录中所以数据,并返回菜单。

5.删除信息设计:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。根据客户输入的修改方式进入对应的删除界面,再根据输入值进行删除,最终确定客户是否删除,取消删除或删除成功后返回菜单。运用if的嵌套来判断客户想要实现的功能,再用for循环来查找数据,进行删除操作。

6.更新信息设计:修改某条记录的信息,输入想要修改的联系人信息,如果未找到要修改的记录,则提示系统中无此记录,并返回菜单。找到记录后,根据客户输入的电话进行修改,修改成功后显示修改成功并返回菜单。

7.查找信息设计:按所需查询相关信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。先判断客户要根据什么值查找,再根据输入值进行判断查找,找到就输出其他信息,没找到就返回菜单。运用和if的嵌套来判断客户想要实现的功能,再用for循环来查找数据,进行显示操作。

8.显示信息设计:显示通讯录所有联系人的信息。

4、调试与测试

4.1、调试方法与步骤

第一步:添加联系人的信息:连续输入四条联系人的信息,包括:名字、性别、地址、邮编、电话、QQ、Email信息。

第二步:插入联系人的信息:首先测试插入合法位置,插入数据后显示插入成功,同时显示插入成功及通讯录中所以的详细数据;其次在数据外的地方插入数据,数据输入之后,显示插入不成功。

第三步:更新联系人的信息:测试过程中,输入联系人电话,若存在,则更改成所需要的信息,若更改联系人的电话不存在,则显示所要修改信息不存在。

第四步:显示联系人的信息:显示通讯录中所有的联系人详细信息。

第五步:查找联系人的信息:首先按姓名查找,姓名若存在,则显示查找姓名所有的数据,若不存在,则显示空数据;其次按电话查找,电话存在,则显示该电话所对应的联系人所有信息,若查找电话不存在,则显示空数据。

第六步:删除联系人的信息:首先按顺序删除联系人信息,查看联系人所在顺序,删除所要删除的联系人,删除后显示删除成功并显示剩余数据;其次按电话删除联系人信息,输入所需删除的联系人,删除后显示删除成功并显示剩余数据。

第七步:退出通讯录管理系统。

4.2、测试结果的分析与讨论

1.测试菜单功能和主函数是否可以正常运行与显示,结果如下:

图4-1   显示需要操作的项目图

2.测试添加数据能否进行正常添加,添加四条数据:

图4-2   添加联系人信息图

3.插入数据:插入在合法位置时,插入数据后显示插入成功,同时返回通讯录中所有信息,插入不合法时,返回插入不成功,同时返回菜单界面。测试结果如下显示:

图4-3   插入数据合法图

图4-4   插入数据不合法图

4.更新数据:输入联系人电话,若存在,更改所需信息,若不存在,则返回修改信息不存在,同时返回菜单,测试结果如下:

图4-5   修改数据成功图

图4-6   修改数据不存在图

5.显示通讯录中联系人所有的信息,测试结果如下:

图4-7   显示联系人信息图

6.查找数据:按照数据的姓名和电话进行查找,姓名相同的情况下输出所有数据信息,若姓名或电话不存在,则输出空数据,测试结果如下:

图4-8   按姓名查找数据存在图

图4-9   按姓名查找数据不存在图

图4-10   按电话查找数据存在图

图4-11   按电话查找数据不存在图

7.删除数据:按照数据的顺序或者电话进行删除数据,测试结果如下:

图4-12   按顺序删除联系人信息图

图4-13   按电话删除联系人信息图

8.退出通讯录管理系统:

图4-14   退出通讯录管理系统图

5、源程序清单

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100

typedef struct    //每个成员的信息 
{
    char name[10];
    char sex[5];
    char place[10];
    char num[10];
    char tel[20];
    char qq[15];
    char email[20];
}Address;
typedef Address ElemType;
typedef struct   //所有成员信息 
{
    ElemType data[MAX];
    int len;
}AddressList;
//实现功能 
void menu();//显示要操作的项目清单 
AddressList *Init();//对通讯录进行初始化
void Create(AddressList *L);//创造通讯录各个成员的信息
int Insert(AddressList *L);//对通讯录插入成员的信息
int  Delete(AddressList *L,int i);//按顺序删除成员信息
void Deleteway(AddressList *L1);//选择删除方式删除成员信息
void Update(AddressList *L);//修改通讯录成员信息 
void SearchContact(AddressList *L);//对要查询的成员进行提示操作
int FindByname(AddressList *L,char name[]);//按照名字查找成员信息
int FindBytel(AddressList *L,char tel[]);//按照手机号查找成员信息
void Output(AddressList *L);//显示通讯录各个成员的信息
//选择想要实现的功能 
int main()
{
    AddressList *L1;
    menu();
    printf("请选择要运行的项目:");
    int a;
    scanf("%d",&a);
        while(a!=7){
            switch(a)
            {
                case 1:
                    L1 = Init();
                    Create(L1);
                    break;
                case 2:
                    Insert(L1);
                    break;
                case 3:
                    Deleteway(L1);
                    break;
                case 4:
                    Update(L1);
					break;
                case 5:
                    SearchContact(L1);
                    break;
                case 6:
					Output(L1);
                    break;
                default:
                    printf("输入错误!");
            }
        	printf("请选择要运行的项目:");
        	scanf("%d",&a);
        }
    	printf("您已成功退出系统!");
    	return 0;
}
//显示项目操作清单 
void menu()
{
    printf("------------------------欢迎来到通讯录管理系统-------------------------\n");
    printf("                         1.添加联系人的信息  \n");
    printf("                         2.插入联系人的信息  \n");
    printf("                         3.删除联系人的信息  \n");
    printf("                         4.更改联系人的信息  \n");
    printf("                         5.查找联系人的信息  \n");
    printf("                         6.显示联系人的信息  \n");
    printf("                         7.退出通讯录管理系统\n");
    printf("-----------------------------------------------------------------------\n");
}
//通讯录初始化
AddressList *Init()
{
	AddressList *L;
    //为通讯录分配内存
    L=(AddressList *)malloc(sizeof(AddressList ));
    if(L==NULL)//判断内存分配是否成功
    {
		printf("内存分配失败,结束程序\n");
    	exit(0);
    }
    else
    {
        L->len=0;                //将通讯录的长度设置为0
        return L;               //返回通讯录的地址
    }
}
//创建通讯录
void Create(AddressList *L)
{
    ElemType x;              //用于存储顺序表数据 
    int i=0,flag;            //用于标志
    flag=1;
    while(flag!=0)          //判断是否输入下一个数据
    {
        printf("请输入姓名 :");
        scanf("%s",x.name);
        printf("请输入性别 :");
        scanf("%s",x.sex);
        printf("请输入城市 :");
        scanf("%s",x.place);
        printf("请输入邮编 :");
        scanf("%s",x.num);
        printf("请输入电话 :");
        scanf("%s",x.tel);
        printf("请输入Q Q  :");
        scanf("%s",x.qq);
        printf("请输入Email:");
        scanf("%s",x.email);
        //将输入的数据放置在通讯录对应的位置
        strcpy(L->data[i].name ,x.name );
        strcpy(L->data[i].sex ,x.sex);
        strcpy(L->data[i].place ,x.place);
        strcpy(L->data[i].num ,x.num);
        strcpy(L->data[i].tel ,x.tel);
        strcpy(L->data[i].qq ,x.qq);
        strcpy(L->data[i].email ,x.email);
        L->len++;//增加一个数据,顺序表的长度加1
        i++;
        printf("是否继续输入,继续请输入1,结束请输入0,请输入:");
        scanf("%d",&flag);               //输入标志
        getchar();  //去掉输入标志时输入的回车,为下次输入数据做好准备
    }
}
//在通讯录的第i个位置插入一个联系人信息 
int Insert(AddressList *L)
{
    int i;
    printf("您要插入在第几个:");
    scanf("%d",&i);
    ElemType x;
    ElemType* p = &x;
    printf("插入的联系人姓名为 :");
    scanf("%s",p->name);
    printf("插入的联系人性别为 :");
	scanf("%s",p->sex); 
	printf("插入的联系人地址为 :");
	scanf("%s",p->place);
	printf("插入的联系人邮编为 :");
	scanf("%s",p->num);
    printf("插入的联系人电话为 :");
    scanf("%s",p->tel);
    printf("插入的联系人Q Q为  :");
	scanf("%s",p->qq);
	printf("插入的联系人的Email为:");
	scanf("%s",p->email);
    int j;
    if(i>=1 && i<=L->len+1)//判断i的位置是否有效
    {
        for(j=L->len-1;j>=i-1;j--)//将原本第i个位置的数据往后移
        {
            strcpy(L->data[j+1].name ,L->data[j].name );
            strcpy(L->data[j+1].sex ,L->data[j].sex );
            strcpy(L->data[j+1].place ,L->data[j].place );
            strcpy(L->data[j+1].num ,L->data[j].num );
            strcpy(L->data[j+1].tel ,L->data[j].tel );
            strcpy(L->data[j+1].qq ,L->data[j].qq );
            strcpy(L->data[j+1].email ,L->data[j].email );
        }//在第i个位置插入数据 
            strcpy(L->data[i-1].name ,x.name );
            strcpy(L->data[i-1].sex ,x.sex );
            strcpy(L->data[i-1].place ,x.place );
            strcpy(L->data[i-1].num ,x.num );
            strcpy(L->data[i-1].tel ,x.tel );
            strcpy(L->data[i-1].qq ,x.qq );
            strcpy(L->data[i-1].email ,x.email );
            L->len ++;  //插入新数据,线性表的长度加1
            printf("插入成功,通讯录信息为:\n");
            Output(L);
            return 1;//插入成功返回1
    }
    else
    {
        printf("无法插入,插入的位置不合法\n");
        return  0;//插入失败返回0
    }
}
//在通讯录的第i个位置删除一个联系人信息 
int Delete(AddressList *L,int i)
{
    int j;
    if(i>=1&&i<=L->len){//判断i的位置是否有效
        for(j=i;j<=L->len-1;j++)
        {
            L->data[i-1] = L->data[j];
        }
        L->len--;//删除数据,线性表的长度减1
        printf("已成功删除第%d个\n",i);
        printf("删除成功后显示为:\n");
        Output(L);
        return 1;//删除成功返回1
      }
      return -1;
}
//删除联系人信息的方式 
void Deleteway(AddressList *L1)
{
    int m;
    printf("删除的方式为:1、按顺序,2、按电话\n");
    scanf("%d",&m);
    if(m==1){
    	int x;
    	printf("请输入删除的联系人顺序:");
    	scanf("%d",&x);
		Delete(L1,x); 
    }
    if(m==2){
        char tel[MAX];
        printf("请输入删除的联系人电话:");
        scanf("%s",tel);
        int i = FindBytel(L1,tel)+1;
        Delete(L1,i);
   	}
}
//更新联系人的信息 
void Update(AddressList *L)
{
	printf("请输入要修改的联系人电话:");
	char tel[MAX];
	scanf("%s", tel);
	int i = FindBytel(L, tel);
	if (i == -1)
	{
		printf("您要修改的信息不存在\n");
	}
	else
	{
		printf("请更改姓名 :");
		scanf("%s", (L->data)[i].name);
		printf("请更改性别 :");
		scanf("%s", (L->data[i]).sex);
		printf("请更改城市 :");
		scanf("%s", (L->data[i]).place);
		printf("请更改邮编 :");
		scanf("%s", (L->data[i]).num);
		printf("请更改电话 :");
		scanf("%s", (L->data[i]).tel);
		printf("请更改Q Q  :");
		scanf("%s", (L->data[i]).qq);
		printf("请更改Email:");
		scanf("%s", (L->data[i]).email);		
		printf("修改成功\n");
	}
}
//查找联系人的信息
void SearchContact(AddressList *L)
{
    int x;
    printf("请输入查找的方式:1、按姓名 2、按电话\n");
    scanf("%d",&x);
    if(x==1)
	{
        char name[MAX];
        printf("请输入查找的联系人姓名:");
        scanf("%s",name);
        int i = 0;
		printf("你要找的人的信息为:\n");
        printf("姓名\t  性别\t  城市\t  邮编\t\t  电话\t\t  QQ\t\t  Email\t\n");
        i = FindByname(L,name);
    }else if(x==2){
        char tel[MAX];
        printf("请输入查找的联系人电话:");
        scanf("%s",tel);
        int i = 0;
        i = FindBytel(L,tel);
        printf("你要找的人的信息为:\n");
        printf("姓名\t  性别\t  城市\t  邮编\t\t  电话\t\t  QQ\t\t  Email\t\n");
		printf("%s\t  %s\t  %s\t  %s\t  %s\t  %s\t  %s\t\n", L->data[i].name , L->data[i].sex , L->data[i].place , L->data[i].num , L->data[i].tel , L->data[i].qq , L->data[i].email);
    }else{
        printf("输入方式有误!\n");
    }
}

//按姓名查找
int FindByname(AddressList *L,char name[])
{
    int i;
    for(i=0;i<=L->len+1;i++)
    {
        if(strcmp(L->data[i].name,name) == 0)//比较姓名是否相等 
        {
		printf("%s\t  %s\t  %s\t  %s\t  %s\t  %s\t  %s\t\n", L->data[i].name , L->data[i].sex , L->data[i].place , L->data[i].num , L->data[i].tel , L->data[i].qq , L->data[i].email);
        }
    }
    return -1;
}
//按电话查找
int FindBytel(AddressList *L,char name[])
{
    int i;
    for(i=0;i<L->len;i++)
    {
        if(strcmp(L->data[i].tel,name) == 0)
        {
            return i;
        }
    }
    return -1;
}
//显示通讯录中联系人的所有信息
void Output(AddressList *L)
{
    int i;
    printf("姓名\t  性别\t  城市\t  邮编\t\t  电话\t\t  QQ\t\t  Email\t\n");
    for(i=0;i<=L->len -1;i++)
	{
	printf("%s\t  %s\t  %s\t  %s\t  %s\t  %s\t  %s\t\n", L->data[i].name , L->data[i].sex , L->data[i].place , L->data[i].num , L->data[i].tel , L->data[i].qq , L->data[i].email);
	}
}

  • 33
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
XX科技学院 课程设计报告 院〔系:_电子信息工程学院_专业班级: 学生姓名:学 号: 设计地点〔单位:______________ 设计题目:___________________ 完成日期: 2010年 3月 5日 指导教师评语:_______________________________________ _________________________________________________________________________ _________________________________________________________________________ _________________________________________________________________ _ 成绩〔五级记分制:______ __________ 指导教师〔签字:________ ________ XX科技学院 课程设计任务书 设计题目:个人通讯录管理系统 "学生姓名 " " "课程名称 "C语言程序设计课程 "专业班 "计算机科学与技术2009 " " "设计 "级 " " "地 点 " "起止时间 " " "设 "建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行" "计 "显示、查找、添加、修改及删除。 " "内 "系统所涉及的信息以二进制文件的形式保存在磁盘上。 " "容 "进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构 " "及 "化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方" "要 "法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。" "求 "根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范," " "撰写课程设计报告。 " " "〔1系统分析、设计正确。 " "设 "〔2结果以图表方式显示。 " "计 "〔3界面简洁、美观。 " "参 "〔4报告格式规范。 " "数 " " "进 "3月1日 -- 3月1日明确设计任务,学习相关知识; " "度 "3月2日 -- 3月2日查阅相关资料,进行基础练习; " "要 "3月3日 -- 3月4日根据题目要求,进行设计和实现; " "求 "3月5日 -- 3月5日撰写课程设计报告,进行答辩。 " "参 "[1]C程序设计经典教程,[美]Deitel,H.M.,[美]Deitel,P.J.著,清华 " "考 "大学出版社,2006 " "资 "[2] Windows程序设计,[美] Charles Petzold " "料 "著,北京大学出版社,2004 " "其 " " "它 " " "说 "1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系" "明 "办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。 " " "3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别 " " "。 " 教研室主任: 指导教师: 2010年 2 月27 日 摘要 本次课程设计的题目是个人通讯录管理系统,要求在磁盘中以二进制文件的形式存储人员 的姓名、年龄、性别等基本信息,并运用程序将磁盘文件中的个人基本信息进行查询、修 改和删除等。 我编写的程序从整体上看可分为五大部分,分别是"添加"、"查询"、"修改"、"删除" 和"全部显示"。其中添加信息是将人员的基本信息输入并以二进制文件的形式保存在文 件中,当添加完所要输入的个人通讯信息后继续选择其它功能;若要对文件中存储的个人 通讯信息进行查询、修改和删除等时,则可按照程序提示分别进行。 关键词:通讯信息、添加、查询、修改、删除、全部显示。 目录 1 设计内容与要求1 1.1 设计内容1 1.2 设计要求1 2 概要设计2 2.1 信息的存储2 2.2个人通讯信息的设计2 2.3主函数设计2 2.4信息添加的设计2 2.5信息查询的设计3 2.6信息删除的设计3 2.7信息修改的设计3 2.8 信息显示的设计3 3 详细设计4 3.1 主函数4 3.2信息输入6 3.3信息查询7 3.4信息删除7 3.4信息修改8 3.4信息显示9 4 调试分析10 4.1 问题解决10 5测试结果11 5.1文件输入11 输入个人通讯信息,运行结果如下:11 11 5.2查询结果12 5.3修改结果13 5.4删除结果14 5.5全部显示结果14 总结15 参考文献16 致谢17 附录18 1 设计内容与要求 1.1 设计内容 建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添 加、修改及删除。 系统所涉及的信息以二进制文件的形式保存在磁盘上。 1.2 设计要求 进一步掌握利用C语言进行程序设计的能
《JAVA程序设计》 课程设计说明书 班级: 学号:: 设计题目:个人通讯录管理系统 设计时间:至 指导教师: 评 语: 评阅成绩:评阅教师: 目  录 1 引 言1 1.1课程设计选题1 1.2课程设计的目的1 1.3本选题的设计背景1 2 需求分析1 2.1 功能需求1 2.2 系统的开发运行环境2 3 总体设计2 3.1 系统体系结构设计2 3.2系统功能模块与主要类设计3 3.3数据库设计5 4 详细设计与实现7 4.1 登录模块7 4.2 注册新用户模块8 4.3 查询模块9 4.4 添加模块11 4.5 修改模块13 4.6删除模块16 4.7备份模块18 4.8退出模块20 5 小结和展望21 参 考 文 献22 附 录22 使用说明书22 引 言 1 1.1课程设计选题 《个人通讯录管理系统》 2 1.2课程设计的目的 通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。 使学生巩固和加深以Java语言为根底的面向对象编程技术理论知识的理解,提高实际 动手编程能力的培养,掌握以Java为核心的应用软件开发方案,到达能独立阅读、编制 和调试一定规模的Java程序的水平。 3 1.3本选题的设计背景 一直以来就想做一个比拟实用的通讯录管理系统,这样可以方便我对于身边联系人信 息的管理,防止遗忘和丧失。 在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通 讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自 己的联系人信息的管理。 需求分析 4 2.1 功能需求 登陆功能。用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。 注册功能。其他用户可以输入自己的用户名和密码与确认密码,来实现注册成为该通讯 录的使用者。 查询功能。在该功能里,用户可以采用模糊查询和准确查询两种查询方式来对自己存储 的联系人信息进展查询。 添加功能。在该功能里,用户可以添加自己的常用联系人和分组信息。 修改功能。此功能里,用户可以修改数据库中已存的联系人信息和分组信息,以与个人 的登陆密码。 删除功能。在该功能里,用户可以输入自己想要删除的分组名和联系人。 备份功能。用户可以通过保存对话框,选择自己想要保存的联系人信息的路径,然后将 其保存为txt文件。 退出功能。用户可以选择退出程序,也可以选择重新登录。 系统的容错能力。在做该系统时,一定要考虑全面可能出现错误信息的地方,然后加上 try catch 语句进展捕捉,防止造成系统故障。 系统的对话框提示。当注册用户时,用户名有重复时,提示不可注册;注册密码与确认 密码不同时,也要弹出提示,不允许注册等等一系列对话框弹出提示。 在使用数据的查询语句时,尽量使用存储过程提交,方便了对数据库的查询,同时也提 高了查询速度。 便捷性。尽量用户界面做的简洁大方美观,有很好的用户界面交互能力,也使用户使用 起来更加方便。 5 2.2 系统的开发运行环境 本系统开发平台: Java +sqlserver 2008 本系统集成开发环境:Eclipse 本系统运行环境:windows7 家庭普通版 总体设计 6 3.1 系统体系结构设计 在登陆界面,如果不是该系统的用户的可以点击注册用户名和密码。如果已经是该系 统的用户的,可以输入用户名和密码后,登陆进入主功能界面,在主功能界面里,用户 可以对通讯录实现以下功能:查询、添加、修改、删除、备份,退出等功能。具体功能 结构图如下: 7 3.2系统功能模块与主要类设计 本通讯录系统主要包括三大模块:用户登录模块、用户注册模块、主功能模块。 用户登录模块。在该模块里,用户可以输入用户名和密码,如果用户名或密码为空,那 么会提示"用户名不能为空〞或"密码不能为空〞;如果数据库里没有匹配的,那么提示 "用户名或密码错误!〞然后将光标返回到用户名文本框中;如果和数据库里的匹配,那 么提示"成功登陆!〞,进入主功能界面。 主功能界面。在该模块里,用户可以实现对联系人信息、分组名称的查询、添加、修改 、删除,可以对联系人信息进展备份,可以退出程序或重新登陆进入程序。 用户注册模块。在该模块里,非系统用户可以进展注册,成为该系统的使用者。在注册 的过程中,如果系统中存在用户名,那么提示"用户名已存在!〞;如果密码和确认密码 不同,那么提示"两次密码输入不一致!〞,否那么提示"恭喜您注册成功!〞。 BookManage.java。该类主要用于实现用户登录界面,包括如何使用正确的用户名、密码 进展登录,如何对面板进展布局,如何实现用户登陆界面与主界面的连接等。 (2)Add_user.java。该类主要用于实现新用户注册界面,包括新用户如何注册成为该 通讯录系统的使用者,以与一些注册界面的设计和布
目 录 一、开发背景……………………………………………………………………….1 二、可行分析……………………………………………………………………….1 三、设计内容……………………………………………………………………….2 四、设计要求……………………………………………………………………….2 五、具体设计……………………………………………………………………….2 六、具体分工………………………………………………………………….……4 七、程序设计……………………………………………………………………….4 1、主程序模块…………………………………………………….....…........14 1、添加模块…………………………………………………….....…........14 2、删除模块……………………………………………….........………....22 4、背景框格设计……………………………………………...………......32 八、实习心得……………………………………………………………………….35 一、开发背景 在信息化不断发展的今天,社会成员相互之间联系越来越紧密,联系方式也越来越 多。我们除了手机,移动电话等常规联系方式外,现在还有了电子邮箱、MSN、QQ等信息 化的联系方式,那么为了方便我们将每个联系人的多个联系方式保存在一起,方便由于 一种联系方式联系不到某人时,可查询其他联系方式,以前的"纸质"通讯录已经越来越 赶不上信息化的速度,势必被淘汰,所以我们用所学过的知识实现一个"非纸质"通讯录 。 二、可行分析 介绍了一个简单实用的个人通讯录管理系统java工程,详细描述了本人在编程时候的编 程思想和在MyEclipse 6.5中调试运行的步骤,简明扼要地介绍了整个工程的功能和实用方法。这个个人通讯录 管理系统含有添加、删除、查找等基本功能,同时也添加了一些有趣的小功能-- 支持背景图片的更换。在程序中完成了与数据库的通信,并同样可以对数据库进行添加 、查找、删除等功能。 三、设计内容 设计GUI界面的个人通讯录,用户可以添加,删除,修改,查询,打印通讯录中的记 录! 四,设计要求 用图形用户界面实现: 1、能实现增加记录,删除记录,显示所有记录,查询记录,文件备份。 2、通讯录的功能包括:姓名,电话,Email等。 3、使用数据库做后台连接! 五、具体设计 文件分别编译生成相应的字节码(class)文件。然后,用java解释器运 行主类: 主界面 六、具体分工 我参与设计添加页面,添加方法,删除页面,查询部分操作资以及源管理模块,背景 框格布局操作。 添加界面 删除界面 七、 程序设计 1. 主程序设计模块 package com.zzk.frame; import java.awt.BorderLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JToolBar; import javax.swing.SwingConstants; import javax.swing.WindowConstants; import com.swtdesigner.SwingResourceManager; import com.zzk.background.BackgroundPanel; import com.zzk.typestate.SaveTypeState; public class MainFrame extends JFrame { public MainFrame() { super(); setTitle("通讯录管理系统"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setBounds(100,60,800,600); URL url = LoginFrame.class.getResource("/image/main.jpg"); // 获得图片的URL Image image=new ImageIcon(url).getImage(); // 创建图像对
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值