文档库 最新最全的文档下载
当前位置:文档库 › 通讯录设计报告

通讯录设计报告

通讯录设计报告
通讯录设计报告

C程序设计报告

系(部、中心)

姓名学号

专业班级

课程名称

设计题目名称

起止时间

成绩

指导教师签名

目录

第1章题目与要求 (3)

1.1 基本要求(及格 (3)

1.2 高级要求(加分)... (3)

第2章用户需求分析 (3)

2.1 功能需求 (3)

第3章设计方案 (3)

3.1设计思路 (3)

3.2功能设计 (3)

第4章实施方案 (4)

第5章软件调试 (5)

5.1 错误介绍 (5)

5.2 错误分析及解决方案 (5)

第6章程序流程图及结构说明 (6)

第7章程序清单 (7)

第8章效果展示 (18)

第1章题目与要求

本次程序设计实践的题目是《通信录管理系统的设计》。

1.1基本要求(及格)

(1)使用C语言,设计一个字符界面并带有菜单的通信录管理系统,每个记录中应包含:姓名、性别、年龄、联系电话、电子邮箱等项目。

(2)最大记录数:100。

(3)程序基本功能:显示记录、添加记录、删除记录。

1.2高级要求(加分)

(1)以多文件方式设计该程序。

(2)对程序中的数据类型进行自定义(为方便程序的阅读和管理,定义自己的类型名)。

(3)能将该通讯录制作成文件保存于磁盘。

第2章用户需求分析

2.1 功能需求

通过《程序设计实践I(能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时用户需求的基本功能,要求系统需要有以下功能:(1)有菜单选择界面;

(2)联系人信息修改简单方便,支持多种方式的修改;

(3)方便的联系人信息查询,支持多种方式的查询;

(4)联系人信息查看功能能供用户详细的查看;

(5)退出时若用户更改了联系人相关信息或添加、删除联系人时,会提示用户联系人信息已更改是否保存;

(8)有动态的开始界面。

第3章设计方案

3.1 设计思路

为了更好地实现上述内容,此程序采用了结构体、链表,来处理联系人的数据。结构体能够包含联系人的各项信息,如姓名、家庭地址、电话号码等,克服了数组只能包含同种类型的数据的缺点。链表数据的存放不需要连续的内存,相对于结构体数组减少了内存空间的浪费。利用fopen等函数创建文件、保存文件数据等,实现退出程序后联系人的数据能够保存,方便以后的查看、添加、修改等动作。采取多文件的方式,能够更好地对程序进行维护调试。

3.2 功能设计

本程序一共有13个子文件,共11个模块,有实现9项功能。

(1)创建联系人列表模块

能够建立新的文件,实现联系人的分类存放,方便用户的对联系人的管理。

(2)添加功能

能够打开已有的文件,用户需选择添加的联系人所在的文件,事先联系人的分类存放,方便以后的查看修改等操作。添加完成后,程序将自动的进行排序操作。

(3)删除联系人

选择此功能后,用户需要选择要删除联系人所在文件,再行删除。提醒用户是否保存设置。

(4)修改联系人信息

选择此功能后,用户需要选择要删除联系人所在文件,再进行各项修改。提示用户是否保存修改。

(5)查询联系人信息

用户选择了打开的文件后,可以按照姓名、手机号等对联系人进行查找。然后打印在屏幕上。

(6)查看联系人列表

用户只需选择要查看的联系人所在的文件。系统将自动将此文件中的所有所有人打印在屏幕上。

(7)删除文件

(8)退出系统

第4章实施方案

(1)数据结构采用链表,定义如下结构体用来建立节点:

typedef struct LinkPerson

{

char name[20],mobile[15];

char home_ph[15],E_mail[40],work_units[40];

char qq[11];

struct LinkPerson *next;

}LP;

将此结构体的typedef式的名字是LP。next是是结构体指针,用来指向下一节点,保证链表的连续性,最后一个节点的next=NULL,作为链表的结束标志。

(2)建立链表

部分代码如下:里面的所有变量已经在函数中声明

while(1)

{

n++;

if(n==1) head->next=p1;

else p2->next=p1;

p2=p1;

p1=(struct LinkPerson *)malloc(LEN);

printf("姓名\n");

scanf("%s",p1->name);

if(strcmp(p1->name,"0")==0)

break;

printf("手机号\n");

scanf("%s",p1->mobile);

printf("家庭电话\n");

scanf("%s",p1->home_ph);

printf("电子邮箱\n");

scanf("%s",p1->E_mail);

printf("班级\n");

scanf("%s",p1->work_units);

printf("QQ\n");

scanf("%s",p1->qq);

}

free(p1);

当用户输入的姓名为0,程序会退出链表的创建。循环对出后,p1->next=NULL;将最后一个节点指向空(NULL),

(3)文件操作

本程序对文件进行的主要操作有打开、关闭、顺序读写操作。采用fopen函数打开文件,打开方式采用了w+、r、r+,当文件不存在时采取w+方式打开能够创建一个新的文本,r用来打开已经存在的文件,当文本不存在时将对出系统。

(4)通过对以上介绍的算法的不同组合完成了整个程序的需要的函数creat()、read ()add()等。

(5)函数的衔接

各个功能函数之间的衔接主要通过函数的返回值以及函数的参数。例如完成创建功能时,第一步调用函数creat()时会产生一个结构体指针指向结构体的头,第二部在调用save ()函数时将利用creat产生的返回值完成文件的创建以及数据的保存。其他的功能亦如此。

第5章软件的调试

5.1 错误介绍

(1)变量重复定义。

(2)无法统计人数,统计人数超过实际人数。

(3)进行某项功能时,出现提示,点击确定后,软件退出运行。

(4)输出联系人列表时,屏幕上出现乱码。

5.2错误分析及解决方案

(1)在本程序中有全局变量n用来统计人数,当n出现问题后将不能完成统计以及排

序工作,n 在编译链接时系统提示重复定义,经过查找资料后,修改的方案是,将n 的定义有在头文件中的static n 改在main.c 中 int c ;在其他文件中用extern n ;声明。统计人数超过实际人数,经分析是read 函数里没有将n 归0,导致再次调用时又在原来的基础上操作。

(2)出现错误3的原因 在于某个函数出现死循环,经查找是由于save 函数将数据写入文件时,循环条件的不合适导致了,死循环才会出现此错误。如果输入文件名错误时有可能导致软件自动退出,但不会出现提示。

(3)出现错误4 有两种可能。第一种是没有文件中没有存入数据。第二种是读数据的方式为w+导致文件重建,将原先的数据丢失。

第6章 程序流程图及结构说明

6.1 程序流程图分析

根据《程序设计实践I (能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时由我用C 设计的通讯录管理系统的功能和相关的界面,我将我的通讯录管理系统设计如图一的程序流程图。

图一

第7章程序清单

(1)主函数

/***********ton.c******************/

#include "main.h"

char selete[10];

int n=0;//统计联系人的个数

void main()

{ int sele=0;

system("color 4F");

printf("请耐心等待!!");

load();

while(1)

{

printf("\n \2\1\t\t\t 欢迎使用通讯录管理系统\n\n");printf("\n 1.新建联系人列表2.添加联系人 3.删除 4.修改 5.查询 6.输出联系人的信息7.删除文件\n8.退出9.paixu\n请输入选择:");

scanf("%d",&sele);

switch(sele)

{

case 1:{head=creat();save(head);break;}

case 2:{head=add();save(head);break;}

case 3:{system("cls"); head=del();save(head);break;}

case 4:{system("cls");head=modify();save(head);break;}

case 5:{system("cls");find();break;}

case 6:{ print();break;}

case 7:{delfile();break;}

case 8:{exit(0);break;}

case 9:{head=read();head=array(head);save(head);break;}

}

}

}

(2)子函数

/***********add.c****************/

#include "main.h"

LP *add(void) //函数功能:增加联系人信息

{

LP *head,*p1,*p2;

extern n;

head=p2=read();

while(p2->next!=NULL) //找到原先数据的终点,作为新增数据的起点 {

p2=p2->next;

}

p1=(LP *)malloc(LEN);

printf("请输入增加联系人的信息:\n");

printf("姓名\n");

scanf("%s",p1->name);

//if(strcmp(p1->name,"0")==0)

// break;

printf("手机号\n");

scanf("%s",p1->mobile);

printf("家庭电话\n");

scanf("%s",p1->home_ph);

printf("电子邮箱\n");

scanf("%s",p1->E_mail);

printf("班级\n");

scanf("%s",p1->work_units);

printf("QQ\n");

scanf("%s",p1->qq);// FORMAT;

while(1)

{

n++;

if(n==1) head->next=p1;

else p2->next=p1;

p2=p1;

p1=(struct LinkPerson *)malloc(LEN);

printf("姓名\n");

scanf("%s",p1->name);

if(strcmp(p1->name,"0")==0)

break;

printf("手机号\n");

scanf("%s",p1->mobile);

printf("家庭电话\n");

scanf("%s",p1->home_ph);

printf("电子邮箱\n");

scanf("%s",p1->E_mail);

printf("班级\n");

scanf("%s",p1->work_units);

printf("QQ\n");

scanf("%s",p1->qq);//scanf("%s%s%s%s%s%s%s%s%s",p1->name,p1->mobile,p1->office_ ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);

}

p2->next=NULL;

free(p1);

p1=NULL;

head=array(head);

return (head);

}

/***********array.c*****************/

#include "main.h"

LP *array(LP *head) //函数功能:排序

{ extern n;

int i,j;

LP *p0,*p1,*p2,*h;

h=p1=p2=head;

if(n<=1) return(h);

for(i=0; i

{

p1=p2=h;

for(j=0; j

{

p2=p1->next;

if((p1==h) && strcmp(p1->name,p2->name)>0 )

{

h=p2;

p1->next=p2->next;

p2->next=p1;

p0=p2;

}

else if( strcmp(p1->name,p2->name)>0 )

{

p0->next=p2;

p1->next=p2->next;

p2->next=p1;

p0=p2;

}

else { p0=p1; p1=p2; p2=p2->next; }

}

}

return(h);

}

/**********creat.c**************/

#include"main.h"

LP creat() //创建

{

int m=0;

LP *head,*p1,*p2;

printf("\n请输入通讯录联系人信息:\n\n");

p2=p1=head=(struct LinkPerson *)malloc(LEN); p1->next=NULL;

printf("姓名\n");

scanf("%s",p1->name);

printf("手机号\n");

scanf("%s",p1->mobile);

printf("家庭电话\n");

scanf("%s",p1->home_ph);

printf("电子邮箱\n");

scanf("%s",p1->E_mail);

printf("班级\n");

scanf("%s",p1->work_units);

printf("QQ\n");

scanf("%s",p1->qq);

while(1)

{

m++;

if(m==1) head=p1;

else

p1->next=p2;

p1=p2;

p2=(struct LinkPerson *)malloc(LEN) ;

printf("姓名\n");

scanf("%s",p2->name);

if(strcmp(p2->name,"0")==0)

break;

printf("手机号\n");

scanf("%s",p2->mobile);

printf("家庭电话\n");

scanf("%s",p2->home_ph);

printf("电子邮箱\n");

scanf("%s",p2->E_mail);

printf("班级\n");

scanf("%s",p2->work_units);

printf("QQ\n");

scanf("%s",p2->qq);

}

p1->next=NULL;

free(p2);

n=m;

head=array(head);

return head;

}

/*************del.c*******************/

#include "main.h"

LP *del(void) //函数功能:删除信息

{

;

char [20];

LP *head,*p1,*p2;

start_del:

p1=p2=head=read();

printf("请输入要删除的联系人姓名: ");

scanf("%s",name);

while( strcmp(p1->name,name)!=0 && (p1->next!=NULL) )

{ p2=p1; p1=p1->next; } //找出p1指向的节点

if( strcmp(p1->name,name)==0)

{

if(p1==head) head=p1->next;

else

p2->next=p1->next;

printf("del: %s\n",name);

free(p1);

n--;

printf("还有联系人%d位\n",n);

}

else

printf("没有你要删除的联系人!\n");

printf("\n是否继续进行删除操作? 1.是2.返回主菜单3.退出4.是否保存设置y\\n \n请

输入:");

scanf("%s",selete);

if( strcmp(selete,"1")==0 ) goto start_del;

else if( strcmp(selete,"2")==0 ) return 0;

else if( strcmp(selete,"n")==0 ) return 0;

else if( strcmp(selete,"3")==0 ) exit(0);

else if( strcmp(selete,"y")==0 ) return head;

else return(head);

}

/*****shanchuwenjian******/

void delfile()

{

char file[80];

printf( " 输入要删除的文件名");

scanf("%s",file);//gets(file);

if (remove(file)==0)

printf( "已删除:%s.\n ",file);

else

printf("无法删除文件,可能是文件不存在!!");

}

/**************find.c**************************/

#include "main.h"

int find() //函数功能:查找

{

char select[10],home_ph[15];

char name[20],mobile[15];

LP *p1,*p2,*head;

start_f:

p1=p2=head=read();

printf("按下列选项查询联系人信息\n");

printf(" 1.按姓名 2.按手机号码 3.家庭电话\n 请选择:");

scanf("%s",select);

if( strcmp(select,"1")==0 )

{

printf("请输入姓名:");

scanf("%s",name);

while( strcmp(p1->name,name)!=0 && (p1->next!=NULL) )

{ p2=p1; p1=p1->next; } //找出p1指向的节点

if( strcmp(p1->name,name)==0 )

{

FORMAT;

printf("%s %s %s %s %s %s %s %s

%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);

}

else printf("没有要查找的联系人信息!!\n");

}

else if( strcmp(select,"2")==0 )

{

printf("请输入手机号码:");

scanf("%s",mobile);

while( strcmp(p1->mobile,mobile)!=0 && (p1->next!=NULL) )

{ p2=p1; p1=p1->next; } //找出p1指向的节点

if(strcmp(p1->mobile,mobile)==0)

{

FORMAT;

printf("%s %s %s %s %s %s %s %s

%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);

}

else printf("没有要查找的联系人信息!!\n");

}

else if( strcmp(select,"3")==0 )

{

int n_n=0;

printf("请输入群组:");

scanf("%s",home_ph);

while( strcmp(p1->home_ph,home_ph)!=0 && (p1->next!=NULL) ) { p2=p1; p1=p1->next; } //找出p1指向的节点

if(strcmp(p1->home_ph,home_ph)==0)

{

FORMAT;

printf("%s %s %s %s %s %s %s %s

%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);

}

else printf("没有要查找的联系人信息!!\n");

}

else { printf("\n请输入正确的选择!!\n"); goto start_f; }

printf("\n 1.继续查找2.返回主菜单3.退出\n请选择:");

scanf("%s",select);

if( strcmp(select,"1")==0 ) goto start_f;

else if( strcmp(select,"2")==0 ) return 0;

else if( strcmp(select,"3")==0 ) exit(0);

else return 0;}

/********************load.c*********************/

#include"main.h"

#include "windows.h"

char l[]="load.....";

void load()

{int i=0,a=0;

while(i<3)

{

system("cls");

while(l[a]!='\0')

{printf("%c",l[a]);

a++;

Sleep(50);

}

a=0;

i++;

Sleep(50);

}

system("cls");

}

/**************modify.c***************/

#include "main.h"

LP *modify() //函数功能:修改联系人信息

{

char name[20];

int select;

LP*p2,*head,*p1;

start_mod:

p1=p2=head=read();

printf("请输入要修改的联系人姓名: ");

scanf("%s",name);

while( strcmp(p1->name,name)!=0 && (p1->next!=NULL) ) { p2=p1; p1=p1->next; } //找出p1指向的节点

if( strcmp(p1->name,name)==0 )

{

printf("将要修改的联系人的信息\n");

FORMAT;

printf("%s %s %s %s %s %s

\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);

printf("请输入要修改的选项\n");

printf(" 1.姓名\t 2.手机\t 3.家庭电话\t 4.电子邮箱\n 5.班级\t6.QQ\n请输入:");

scanf("%d",&select);

printf("请输入该项新的信息:");

if(select==1) { scanf("%s", p1->name); }

if(select==2) { scanf("%s",p1->mobile); }

//if(select==3) { scanf("%s",p1->office_ph); }

if(select==3) { scanf("%s",p1->home_ph); }

if(select==4) { scanf("%s",p1->E_mail); }

//if(select==6) { scanf("%s",p1->in_cities); }

if(select==5) { scanf("%s",p1->work_units); }

if(select==6) { scanf("%s",p1->qq); }

//if(select==9) { scanf("%s",p1->group); }

///save(head);

}

else { printf("\n没有该联系人,请重新输入!\n\n"); goto start_mod;}

printf("\n是否继续进行修改操作? 1.是2.返回主菜单3.退出4.是否保存y\n \n请输入:");

scanf("%s",selete);

if( strcmp(selete,"1")==0 ) goto start_mod;

else if( strcmp(selete,"2")==0 ) return 0;

else if( strcmp(selete,"3")==0 ) exit(0);

else if( strcmp(selete,"n")==0 ) return 0;

else if( strcmp(selete,"y")==0 ) return head;

}

/***********print.c*************/

#include"main.h"

void print() //函数功能:输出信息

{

LP *p1,*head;

extern n;

p1=head=read();

printf("共有联系人%d 名\n\n",n);

FORMAT;

if(head!=NULL)

do

{

printf("\n%s %s %s %s %s

%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);

p1=p1->next;

}while(p1!=NULL);

}

/******************reead.c******************/

#include"main.h"

LP *read(void) //函数功能:读取文件

{

FILE *fp;

LP *head=NULL, *p1=NULL, *p2=NULL;

int m=0;

extern n;

n=0;

printf("请输入要打开的文件");

scanf("%s",infile);

if ((fp=fopen(infile, "r"))==NULL)

{ printf("Can not open this file!\n"); exit(0); }

while(!feof(fp))

{

p1=(LP *)malloc(LEN);

fscanf(fp,"%s%s%s%s%s%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work _units,p1->qq);

m+=1;

n++;

if(m==1) head=p1;

else p2->next=p1;

p2=p1;

}

p2->next=NULL;

fclose(fp);

return head;

}

/***********save.c**************/

#include "main.h "

void save(LP *head) //函数功能:保存文件

{

FILE *out;

LP *p1=head;

char outfile[30];

printf("请输入要保存的文件!\n");

scanf("%s",outfile);

out=fopen(outfile, "w+");

if (out==NULL)

{ printf("Can not open this file!\n"); exit(0); }

fclose(out);

if ((out=fopen(outfile, "r+"))==NULL)

{ printf("Can not open this file!\n"); exit(0); }

while(p1!=NULL)

{

fprintf(out,"%s\t%s\t%s\t%s\t%s\t%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1 ->work_units,p1->qq);

p1=p1->next;

}

fclose(out);

}

头文件

/***********main.h**************/

#ifndef _MIAN_H_

#define _MIAN_H_

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

//#include "conio.h"

#define LEN sizeof(struct LinkPerson)

#define FORMAT printf("姓名手机家庭电话电子邮箱班级QQ") //int n=0;//统计联系人的个数

static char infile[30];

extern char selete[10];

//姓名、手机、办公电话、家庭电话、电子邮箱、所在省市、工作单位、家庭住址,群组分类(亲属、同事、同学、朋友、其他)

typedef struct LinkPerson

{

char name[20],mobile[15];

char home_ph[15],E_mail[40],work_units[40];

char qq[11];

struct LinkPerson *next;

}LP;

LP *head;

void print();

LP *creat() ;

void save(LP *head); //函数功能:保存文件LP *read(void); //函数功能:读取文件LP *array(LP *head); //函数功能:排序

void print(); //函数功能:输出信息

LP *add(void); //函数功能:增加联系人信息

LP *del(void); //函数功能:删除信息

LP *modify(); //函数功能:修改联系人信息

int find(); //函数功能:查找

void load();

void delfile();

#endif

第8章效果展示

图2 动画启动界面程序运行界面

图3 功能列表功能1新建联系人列表

图4 功能2添加联系人

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

通讯录管理系统课程设 计报告 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语言)[1]

开放教育 课程设计报告书 课程名称:通讯录管理系统 班级:综合邮政07秋 学号: 0 姓名:王芬 指导老师:高海东

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

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

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()函数------删除链表节点

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)

通讯录课程设计报告

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

学生姓名 指导教师 日期 目录 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)系统维护:包括用户登录,用户修改密码,数据的修改、浏览、添加、删除以及按姓名、联系方式、地址进行查询。

通讯录设计报告

C程序设计报告 系(部、中心) 姓名学号 专业班级 课程名称 设计题目名称 起止时间 成绩 指导教师签名

目录 第1章题目与要求 (3) 1.1 基本要求(及格 (3) 1.2 高级要求(加分)... (3) 第2章用户需求分析 (3) 2.1 功能需求 (3) 第3章设计方案 (3) 3.1设计思路 (3) 3.2功能设计 (3) 第4章实施方案 (4) 第5章软件调试 (5) 5.1 错误介绍 (5) 5.2 错误分析及解决方案 (5) 第6章程序流程图及结构说明 (6) 第7章程序清单 (7) 第8章效果展示 (18)

第1章题目与要求 本次程序设计实践的题目是《通信录管理系统的设计》。 1.1基本要求(及格) (1)使用C语言,设计一个字符界面并带有菜单的通信录管理系统,每个记录中应包含:姓名、性别、年龄、联系电话、电子邮箱等项目。 (2)最大记录数:100。 (3)程序基本功能:显示记录、添加记录、删除记录。 1.2高级要求(加分) (1)以多文件方式设计该程序。 (2)对程序中的数据类型进行自定义(为方便程序的阅读和管理,定义自己的类型名)。 (3)能将该通讯录制作成文件保存于磁盘。 第2章用户需求分析 2.1 功能需求 通过《程序设计实践I(能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时用户需求的基本功能,要求系统需要有以下功能:(1)有菜单选择界面; (2)联系人信息修改简单方便,支持多种方式的修改; (3)方便的联系人信息查询,支持多种方式的查询; (4)联系人信息查看功能能供用户详细的查看; (5)退出时若用户更改了联系人相关信息或添加、删除联系人时,会提示用户联系人信息已更改是否保存; (8)有动态的开始界面。 第3章设计方案 3.1 设计思路 为了更好地实现上述内容,此程序采用了结构体、链表,来处理联系人的数据。结构体能够包含联系人的各项信息,如姓名、家庭地址、电话号码等,克服了数组只能包含同种类型的数据的缺点。链表数据的存放不需要连续的内存,相对于结构体数组减少了内存空间的浪费。利用fopen等函数创建文件、保存文件数据等,实现退出程序后联系人的数据能够保存,方便以后的查看、添加、修改等动作。采取多文件的方式,能够更好地对程序进行维护调试。 3.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(); 新添纪录

通讯录管理系统课程设计报告..

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

三、详细设计 1、数据结构设计 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" struct date //定义一个结构体类型数组 { char name[10]; /*姓名*/ char phone[12]; /*电话*/ char email[20]; /*邮箱*/ char QQ[20]; /*QQ*/ } per[10]; int menu() //主菜单选择函数 2.函数说明 (1) 主函数 main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。 (2)

四、程序清单 1、头文件 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" 2、主函数 void main() //主函数 { int n=0,i; while(1) { switch (menu()) { case 1: { printf("\n\t 通讯信息录入\n"); //信息录入 n=Input(per, n); } break; case 2: printf("\n\t\t\t 通讯录记录表\n"); //显示记录 Display(per,n); break; case 3: printf("\n\t保存功能\n"); WritetoText(per,n); //保存数据 printf("\t"); system("pause"); //操作完成后进行暂停 break; case 4: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(per,n); //删除记录 printf("\t"); system("pause"); break; case 5: printf("\n\t修改通讯录中的记录\n"); Change(per,n); //修改数据

通讯录课程设计 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();

在线通讯录设计报告-基于WEB

《基于WEB的程序设计》 -------在线通讯录设计报告 一、设计分析 在线通讯录系统是为了实现登陆、显示、添加、删除、修改、查找成员功能的系统。为了保护个人信息,每个人只可以通过密码验证来修改维护个人信息,否则只能浏览个人信息。同时自己也可以查看别人的信息,方便联系 二、程序流程及各模块的功能 登陆界面是通过和数据库中的数据循环比较,搜索符合要求的用户,查找不到时就视为账户不存在或者密码不正确。添加、删除、查找、修改都是通过和数据库中的数据记录相连实现的。 1、登陆界面实现用户登陆,没有账号和密码的不允许登陆。 2、登陆成功界面,可以浏览其他人的信息,方便联系。也可以修改自己的信息,还可以添加新的记录。

3、添加记录界面,可以输入详细的数据信息。 4、查找界面。当记录太多时,寻找一个人的记录很费时间。这是用查找功能,很方便的就能要找的信息。 5、修改数据,这项是受到保护的。只有正确输入登陆密码才能修改个人信息。 6、删除记录。这里只要点击删除就能删除,要慎重删除! 三、源程序 1、连接数据库代码: <% '这是数据库连接文件,专门用来连接数据库。在其他页面中可以包含本页面,就相当于将如下语句写到别的页面中一样。 '以下连接数据库,建立一个Connection对象实例conn Dim conn,strConn

Set conn=Server.CreateObject("ADODB.Connection") strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("txl.mdb") conn.Open strConn %> 2、登陆界面代码: 登陆界面

登陆界面
姓名
密码

3、登陆界面姓名和密码验证代码: 密码错误重新登陆

通讯录详细设计说明书

通讯录管理系统 详细设计说明书 组员: 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) 菜单处理函数管理程序的用户界面操作,用户通过提示选择想要进行的操作:具体实现函数

c语言课程设计学生通讯录管理系统

c语言课程设计学生通讯 录管理系统 Last revision date: 13 December 2020.

题目:学生通讯录管理系统 任务说明: 主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能: ①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”;

添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动; 后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统;

设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20]; }; 对用户的信息进行保存,他们都以二进制的形式读写。 其中: char name[20];

通讯录系统程序设计报告

通讯录系统程序设计报告专业班级:电创新1301班 项目名称:通讯录系统程序设计 (address book system) 小组成员:陈灯念(组长) 罗晶晶 杨苒晨 于桐桐 盛超群 指导老师:张丽静 完成日期:2013年1月2日 教师评价:

目录 一、系统简介 1. 目标功能 2. 实现功能 3. 未实现功能 二、成员分工及完成情况 三、数据库 1. 登录数据库 2. 查询数据库 3. 老师通讯信息数据库 4. 同学信息数据库 四、具体模块设计 1. 登录部分 2. 主界面 3. 单击同学按钮 4. 单击老师按钮 5. 单击按姓名查找按钮 6. 单击按学号查找按钮功能 五、项目总结

一系统简介 ①目标功能: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2.登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“朋友”按钮,弹出对话框,可依次查看自己的朋友的通讯信息。 (4)单击“家人”按钮,弹出对话框,可依次查看自己的家人通讯信息。 (5)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 (6)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的学号,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 3. 点击同学,老师,朋友或家人按钮后,弹出对话框,可以单击“添 加”按钮或“删除”按钮添加或删除联系人或者单击“修改”按钮修 改联系人的信息。 ②实现功能: 通过本小组成员的通力合作,在看书和上网查询资料后,目前本通讯录实现的功能有: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2. 登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧”按钮,即弹出消息框显示被查询人的通讯信息。 (4)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须

java课程设计-通讯录系统

目录 第一章设计分析 (2) 1.1 需求分析 (2) 1.2 功能设计 (2) 第二章概要设计 (3) 2.1 程序设计 (3) 2.2 功能设计 (4) 第三章软件环境介绍 (5) 3. 1 开发环境 (5) 3. 2 开发工具 (5) 3. 3 MySql数据设计 (6) 第四章测试运行 (7) 4.1 程序运行界面 (7) 4.2 新建功能 (7) 4.3 修改功能 (8) 4.4 顺序显示 (8) 4.5 分组显示 (9) 4.6 搜索功能 (9) 第五章总结与分析 (10) 第七章参考文献 (11) 第八章程序源代码 (12) 8.1 类PhoneNumber (12) 8.2 类Operation (15) 8.3 类Searcher (19)

1.1需求分析 现在各大手机都有自己的、各种通讯录程序,但是这些公司都有自己的版权,我们也不可能得到这些源代码!而且这些公司的程序也相当复杂,仅从日常应用方面来说,对于初学java的我们也无法理解,就需要我们开发一个简单易懂的电话号码查询系统程序。 1.2功能设计 本程序的构建参照了手机通讯录,其功能是: 有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。

2.1程序设计 在本程序设计过程中用到了父类JFrame、JTable、JPanel、JMenuBar、JMenuItem、JButton。 JMenuBar用来创建主菜单 JMenuItem创建子菜单 JFrame创建框架 JTable创建表格部分 JScorollPane向文本框添加滚动条 JMenuItem创建功能键 JButton添加触发按钮。 编写BufferReader()方法实现待分析文件中数据的读取。 编写readLine()方法实现数据的读取。 编写Select()法实现查询。 编写rankVector()方法实现排序 编写addNumber()方法实现新建 编写removeNumber()方法实现删除 编写modifyPhoneNumber()方法实现修改 利用actionPerformed ()方法做为事件监听器。 编写J_fenxi()实现构造。

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

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

目录 一、绪论 (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)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动

通讯录课程设计资料

Guangxi University of Science and Technology 课程设计报告 课程名称:算法与编程综合实习 课题名称:通讯录管理系统的设计与实现

目录 第1部分课程设计报告 (3) 第1章课程设计目的 (3) 第2章课程设计内容和要求 (4) 2.1 问题描述 (4) 2.2 设计要求 (4) 第3章课程设计总体方案及分析 (5) 3.1 问题分析 (5) 3.2 概要设计 (5) 3.3 详细设计 (6) 3.4 调试分析 (19) 3.5 测试结果 (19) 3.6 参考文献 (24) 第2部分课程设计总结 (25) 附录(源代码) (26)

第1部分课程设计报告 第1章课程设计目的 1、有利于基础知识的理解 通过《初中信息技术》必修部分的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。但是,学生对于程序、病毒的内涵,程序与文档、数据的区别,计算机运行的机理等知识内容的理解比较肤浅。学生如果接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感。 2、有利于逻辑思维的锻炼 在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。 3、有利于与其他学科的整合 在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。在信息技术课中整合其它学科的知识,发挥信息技术的优势。例如,在编写“一元二次方程求解”程序时,就复习了数学的相关知识。而在讲解逻辑运算的知识时,我们又可以利用物理中的电路知识进行讲解,起到意想不到的效果。 4、有利于治学态度的培养。 程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有百折不挠品格的锻炼。

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