文档库 最新最全的文档下载
当前位置:文档库 › 小型通讯录管理

小型通讯录管理

小型通讯录管理
小型通讯录管理

/*

第3题小型通讯录管理

设计一个实用的小型通讯录管理程序。该程序应该具有下列功能:

(1)能建立、修改、增删通讯录中条目,通讯录中的信息包括类别、编号、姓名、班级、电话、

住址等;

(2)能够按多种方式进行查询(如姓名、电话);

(3)能够对已有信息进行修改、删除;

(4)按指定关键字排序。

(5)统计每种类别的人数(如同学、网友……),输出数量最多的类别名称及人数。

(6)原始数据输入和结果输出使用文件存放。

*/

/*创建时间:2011-9-3~~~2011-9-28*/

/*创建人:*/

#include

#include

#include

typedef struct person /*通讯录结构中结点的定义*/

{

char name[10]; /*姓名*/

char clas[30]; /*班级*/

char num[15]; /*学号*/

char addr[15]; /*宿舍*/

char phnum[15]; /*电话*/

char type[20]; /*类别*/

struct person *next;

}listnode,*listlink;

struct People /*通讯录记录结构*/

{

char name[10]; /*姓名*/

char clas[30]; /*班级*/

char num[15]; /*学号*/

char addr[15]; /*宿舍*/

char phnum[15]; /*电话*/

char type[20]; /*类别*/

};

/*

函数功能:将文件的信息读出并转存入链表中

函数参数:无

函数返回值:无

*/

listlink readfp()

{

FILE *fp; /*定义文件指针*/

struct People persons;

listnode *s;

listlink head=NULL,end=NULL;

fp=fopen("people.txt","rb"); /*(只读)为输入打开一个二进制文件*/

if(fp==NULL)

{

printf("文件打不开!\n");

return head;

}

fread(&persons,sizeof(struct People),1,fp);

while(!feof(fp)) /*判断文件是否结束*/

{

s=(listnode*)malloc(sizeof(listnode)); /*动态申请内存*/

strcpy(s->name,https://www.wendangku.net/doc/1b17066240.html,);

strcpy(s->clas,persons.clas);

strcpy(s->num,persons.num);

strcpy(s->addr,persons.addr);

strcpy(s->phnum,persons.phnum);

s->next=NULL;

if(head==NULL) /*用尾插法将其插入链表中*/ head=end=s;

else

{

end->next=s;

end=s;

}

fread(&persons,sizeof(struct People),1,fp);

}

return head;

}

/*

函数功能:保存信息

函数参数:链表头指针

函数返回值:无

*/

void Save(listlink head)

{

FILE *fp;

struct People persons;

listlink p1;

fp=fopen("people.txt","wb"); /*(只写)为输出打开一个二进制文件*/

for(p1=head;p1!=NULL;p1=p1->next); /*将链表中的信息存入文件*/

{

strcpy(https://www.wendangku.net/doc/1b17066240.html,,p1->name);

strcpy(persons.clas,p1->clas);

strcpy(persons.num,p1->num);

strcpy(persons.addr,p1->addr);

strcpy(persons.phnum,p1->phnum);

fwrite(&persons,sizeof(struct People),1,fp); /*将信息写入文件*/

}

fclose(fp); /*关闭文件*/

}

/*

函数功能:建立通讯录函数

函数参数:无

函数返回值:无

*/

listlink create()

{

listlink s;

listlink head=NULL,end=NULL;

printf("\n通讯录文件\n");

while(1) /*使函数可以无限循环*/

{

s=(listlink)malloc(sizeof(listnode));

printf("\n");

printf("姓名('end'is end):");

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

if(strcmp(s->name,"end")==0)

{

printf("\n"); /*换行*/

break;

}

else

{

printf("班级:");

scanf("%s",s->clas);

printf("学号:");

scanf("%s",s->num);

printf("宿舍:");

scanf("%s",s->addr);

printf("电话:");

scanf("%s",s->phnum);

printf("类别:");

scanf("%s",s->type);

}

s->next=NULL;

if(head==NULL)

head=end=s;

else

{

end->next=s;

end=s;

}

}

return(head);

}

/*

函数功能:显示信息

函数参数:链表头指针

函数返回值:无

*/

void Show(listlink head)

{

listnode *p1;

p1=head;

printf("\n **************************************************\n");

printf(" 小型通讯录管理\n");

printf("\t姓名\t班级\t学号\t宿舍\t电话\t类别\n");

printf(" ------------------------------------------------\n");

while(p1!=NULL)

{

printf("\t %s",p1->name);

printf("\t %s",p1->clas);

printf("\t %s",p1->num);

printf("\t %s",p1->addr);

printf("\t %s",p1->phnum);

printf("\t %s",p1->type);

p1=p1->next;

printf("\n");

}

printf(" **************************************************\n");

printf("\n");

}

/*

函数功能:根据姓名或学号删除信息

函数参数:链表头指针

函数返回值:无

*/

void Delete(listlink head)

{

listlink p1,p2;

char mm[10]; /*将要删除人的姓名或学号存入该数组*/ p1=p2=head;

if(p1==NULL)

{

printf("无记录\n");

return;

}

printf("\n\t删除---请输入学号或姓名:");

scanf("%s",mm); /*输入要删除人的姓名或学号*/

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

{

p2=p1;

p1=p1->next;

}

if(strcmp(p1->name,mm)==0 || strcmp(p1->num,mm)==0) /*根据判断情况做相应处理*/

{

if(p1==head)

p1=p1->next;

else

p2->next=p1->next;

free(p1); /*释放内存*/

printf("\t删除成功\n");

Show(head);

}

else

printf("\n要删除的记录不存在\n");

printf("\n");

}

/*

函数功能:根据姓名或学号查找信息

函数参数:链表头指针

函数返回值:无

*/

void Find(listlink head)

{

listlink p1;

char nn[10]; /*将要查找的人的姓名或学号存入该数组*/

while(1) /*使函数无限循环*/

{

p1=head;

printf("\n查找---请输入学号或姓名:");

scanf("%s",nn); /*输入查找人的姓名*/

if(strcmp(nn,"end")==0)

{

printf("\n");

}

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

p1=p1->next;

if(strcmp(nn,p1->name)!=0 && strcmp(nn,p1->num)!=0)

printf("\n要查找的信息不存在!\n");

else

{

printf("\n\t姓名\t班级\t学号\t宿舍\t电话\t类别\t\n");

printf("\t%s",p1->name);

printf("\t%s",p1->clas);

printf("\t%s",p1->num);

printf("\t%s",p1->addr);

printf("\t%s",p1->phnum);

printf("\t%s",p1->type);

printf("\n");

}

return;

}

printf("\n");

}

/*

函数功能:向通讯录中追加信息

函数参数:链表头指针

函数返回值:无

*/

void Input(listlink head) /*在链表末尾追加信息*/ {

listlink s,end;

s=(listlink)malloc(sizeof(listnode)); /*为新信息插入申请内存*/

do

{

printf("\n插入---请输入待插入人的信息:");

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

if(strcmp(s->name,"end")==0)

return;

printf("\n");

end=head;

if(end==NULL)

break;

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

end=end->next;

}while(strcmp(end->name,s->name)==0);

printf("班级:");

scanf("%s",s->clas);

printf("学号:");

scanf("%s",s->num);

printf("宿舍:");

scanf("%s",s->addr);

printf("电话:");

scanf("%s",s->phnum);

printf("类别:");

scanf("%s",s->type);

s->next=NULL;

end->next=s; /*将新信息置于表尾*/ printf("\n");

}

/*

函数功能:根据姓名改变信息

函数参数:链表头指针

函数返回值:无

*/

void Change(listlink head) /*改变一个人的信息*/

{

listlink p1;

char name1[10],num1[15],addr2[15],phone3[15],clas2[5];

printf("更改---请输入要更改的人的姓名:");

scanf("%s",name1); /*输入要修改人的姓名*/

p1=head;

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

p1=p1->next;

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

{

printf("此人信息不存在!\n");

}

else

{

printf("输入要修改人的信息\n");

printf("班级:");

scanf("%s",clas2);

printf("学号:");

scanf("%s",num1);

printf("宿舍:");

scanf("%s",addr2);

printf("电话:");

scanf("%s",phone3);

strcpy(p1->name,name1);

strcpy(p1->clas,clas2);

strcpy(p1->num,num1);

strcpy(p1->addr,addr2);

strcpy(p1->phnum,phone3);

}

printf("\n");

}

/*

函数功能:显示主菜单

函数参数:无

函数返回值:无

*/

void Menu()

{

printf("\t\t************小型商品管理系统*************\n"); /*菜单选择*/ printf("\t\t| 1. 显示信息|\n");

printf("\t\t| 2. 删除信息|\n");

printf("\t\t| 3. 查找信息|\n");

printf("\t\t| 4. 插入信息|\n");

printf("\t\t| 5. 更改信息|\n");

printf("\t\t| 6. 号码排序|\n");

printf("\t\t| 7. 类别统计|\n");

printf("\t\t| 0. Quit |\n");

printf("\t\t*****************************************\n");

printf("\n 请输入您的选择(0-7):");

}

/*

函数功能:类别统计

函数参数:链表头指针

函数返回值:整型数

*/

int Type(listlink head)

{

listnode *temp=head;

int a[10];

int i=0,max;

char p[10][10];

strcpy(p[0],temp->type);

temp=temp->next;

for(;temp!=NULL;)

{

if(strcmp(temp->type,p[i])!=0)

{

i++;

strcpy(p[i],temp->type);

a[i]++;

temp=temp->next;

}

else

{

a[i]++;

temp=temp->next;

}

}

max=0;

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

{

if(a[max]

max=i;

if(i==0)

break;

}

printf("%s最多,共%d人.",p[max],a[max]);

return 1;

}

/*

函数功能:按姓名排序

函数参数:链表头指针

函数返回值:整型数

*/

int Sort(listlink head)

{

listnode *q,*min;

listnode temp;

FILE *fp;

min=head->next;

if(min->next==NULL)

return 0;

q=min->next;

while(min!=NULL) /*这里用的双层while循环,每一趟扫描后,将最小的和min 指针所指的结点进行数值交换,然后min指针指向下一个结点*/

{

while(q!=NULL)

{

if(strcmp(min->name,q->name)>0)

{

strcpy(https://www.wendangku.net/doc/1b17066240.html,,q->name);

strcpy(temp.phnum,q->phnum);

strcpy(temp.type,q->type);

strcpy(temp.clas,q->clas);

strcpy(temp.num,q->num);

strcpy(q->name,min->name);

strcpy(q->phnum,min->phnum);

strcpy(q->type,min->type);

strcpy(q->clas,min->clas);

strcpy(q->num,min->num);

strcpy(min->name,https://www.wendangku.net/doc/1b17066240.html,);

strcpy(min->phnum,temp.phnum);

strcpy(min->type,temp.type);

strcpy(min->clas,temp.clas);

strcpy(min->num,temp.num);

}

q=q->next;

}

min=min->next;

if(min!=NULL)

q=min->next;

}

if((fp=fopen("number.txt","w"))==NULL)

printf("无法打开文件!");

q=head->next;

printf("通讯录列表:\n");

while(q!=NULL)

{

fwrite(q,sizeof(listnode),1,fp);

printf("学号:%s\n班级:%s\n姓名:%s\n电话:%s\n类别:%s\n\n",q->num,q->clas,q->name,q->phnum,q->type);

q=q->next;

}

fclose(fp);

return 1;

}

main()

{

listlink head=NULL;

int ch;

int op;

head=readfp(); /*将文件的信息读出并转存入链表中*/

if(head==NULL) /*如果头指针为空,建立通讯录函数*/

head=create();

do

{

Menu(); /*显示主菜单*/

scanf("%d",&ch); /*输入选择*/

switch(ch)

{

case 1:Show(head);

getchar();

break;

case 2:Delete(head);

break;

case 3:Find(head);

getchar();

break;

case 4:Input(head);

break;

case 5:Change(head);

break;

case 6:if(Sort(head)==1)

printf("\n号码排序成功!\n");

else

printf("\n号码排序失败!\n");

getchar();

getchar();

break;

case 7:op=Type(head);

if(op==1)

printf("\n类别统计成功!");

else

printf("\n类别统计失败!");

getchar();

getchar();

break;

case 0:Save(head);

}

}while(1);

}

个人通讯录管理系统c语言源程序优秀版)

#include /*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件#include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/

void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/

电话号码管理系统

课程设计 课程名称面向对象程序设计题目名称电话号码管理系统专业班级 学生姓名 学号 指导教师 二○一六年十二月十日

目录 一、引言.............................................................................................................. - 2 - 二、课程设计报告................................................................................................ - 3 - 2.1.课程设计目的 ................................................................................................ - 3 - 2.2.课程设计内容 ................................................................................................ - 3 - 2.3.系统总体方案 ................................................................................................ - 4 - 2.4详细设计 ....................................................................................................... - 4 - 2.4.1.模块化设计................................................................................................. - 4 - 2.4.2.模块图与流程图.......................................................................................... - 5 - 三、系统调试与测试 ............................................................................................ - 8 - 四、总结体会..................................................................................................... - 13 - 五、参考文献..................................................................................................... - 14 - 附录代码.............................................................................................................. - 15 -

电话簿管理系统

xxxxxxxx学院C/C++程序设计训练电话簿管理系统 学生姓名×××× 学号×××× 所在学院xx工程 专业名称xx工程 班级xxxx级xx班 指导教师xx xxxxxxxxxxxxxxx学院 二○一三年十二月

目录 1.前言 (3) 2.设计目的 (3) 3.功能描述 (3) 4.总体设计 (4) 4.1、功能模块设计 (4) 4.2、数据结构设计 (8) 4.3、函数功能描述 (9) 5.程序实现 (9) 5.1、源程序(略) (9) 5.2、运行结果 (9) 6.小结 (12)

1.前言 随着科技的进步和信息产业的飞速发展,电话簿成为了现代生活中一个重要的工具。本电话簿管理系统利用计算机对通讯录进行统一管理,包括添加、修改、查询记录等功能,实现通讯录管理工作的系统化、规范化和自动化,为人们的工作和生活提供便利。本程序是利用结构数组实现此电话簿管理系统。 2.设计目的 本程序旨在训练基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现电话簿管理的原理,为进一步开发出高质量的信息管理系统打下坚实的基础。 3.功能描述 如图1所示,电话簿管理系统主要利用数组来实现,其数组元素是结构体类型,整个系统由如下几大功能模块组成。 图1 电话簿管理系统功能模块 (1)输入记录模块。输入记录模块主要完成将数据存入数组中的工作。在此电话簿管理系统中,记录可以从以文本形式存储的数据文件中读入,也可从键盘逐个输入记录。记录由与联系人有关的基本信息字段构成。当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到结构体类型的数组元素中。

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现 问题描述: 纸质的通讯录已经不能满足实际需求,容易丢失,查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其它一些需要使用的通讯录的人员进行管理和应用的一种应用程序。 需求分析: 1)输入数据建立通讯录。 2)查询通讯录中满足要求的信息。 3)插入新的通讯录信息。 4)删除不需要的通讯录信息。 5)查看所有的通讯录信息。 主界面设计要求: 1)通讯录的建立 2)插入通讯录记录 3)查询通讯录记录 4)删除通讯录记录 5)显示通讯录记录 6)退出系统 设计要求: A.建立通讯录时,每个学生的信息包括:学号,姓名,电话。

B.查找时,学号、姓名、电话均能够作为查询字段。 C.查看所有的通讯录信息时,所有记录需要时有序的(按学号排序,按姓名排序(字典序),按电话号码排序)。 D.存储结构:要求使用顺序存储结构。 E.数据使用:使用本班级的具体信息。 需求分析: 本次设计目的是学生信息管理系统,可存入每个学生的基本信息,所有学生信息都可根据名字、学号、电话、邮箱进行查询,也都能够根据这四个基本信息检索到一个学生并删除其数据。输入形式:student.txt,以文件形式进行输入。 输出形式:根据不同的输入进行不同的操作。 达到功能:能插入一个学生的信息,能删除一个学生的信息,能查询一个学生的信息。 测试数据:班上70个同学的基本数据。 概要设计: 数据类型:顺序链表 ArrayList类 学生数据结构:StuData类包含name、id、phone、email四个String基本类型。 所有操作写在Structure中,包含insert、remove、query、printAll。 Main函数用Java标准输入,循环输入,用switch判断输入进行

软件体系结构 个人通讯录管理系统

课程实验报告 软件系统结构 专业 软件工程 学生姓名 张伯虎 班级 B 软件121 学 号 1210701128 指导老师 孙莉

实验一 C/S结构应用设计 一、实验目的 设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。 二、实验原理 1、C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。 2、C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。 (1)二层客户/服务器风格 (2

三、主要仪器及耗材 每人一台计算机 四、实验步骤及内容 需要实际设计开发出一个简单的基于二层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下: 1、在 SQL Server 2000中建立数据库Contact,建立表friend。 建立数据库Contact: create database Contact use contact go 建立表friend: Create table friend( Fid int identity(1,1) not null,--编号信息 Fname varchar(8) not null,--姓名信息 Fphone varchar(12) ,--电话信息 Faddress varchar(100) –地址信息 ) go 2、在Visual Studio 2000中用C#语言建立用户界面层(UI)程序:Contact 项目,主要呈现用户操作界面。

电话簿需求

一、需求说明 1.1电话簿管理系统需求说明 随着科学技术的进步,电话薄已经成为了现代生活中的一个重要的工具。这里要求设计一个电话薄管理系统,改写哦能够具有输入、显示、查找、删除、插入、保存、读入、排序和退出等功能,实现通讯录管理工作的系统化,为人们的工作和生活提供便利。 二、功能描述 2.1电话薄管理系统主要利用机构体实现,程序有密码验证和输入模块、查询模块、 更新模块和输出模块组成,如图所示。 (1)密码验证。密码验证模块主要完成对密码的验证工作。系统初始的登陆密码有自己设置。 (2)输入模块。输入模块只要实现对电话薄信息的输入工作。 (3)查询模块。查询模块主要实现对电话薄内容的查询工作,可以通过姓名查询和电话查询。 (4)更新模块。更新模块主要对电话薄信息里的原有的信息进行修改、删除和排序工作。 (5)输出模块。输出模块主要实现对信息的屏幕输出和文件输出。 2.2商品管理系统主要利用机构体实现,程序由输入模块、查询模块、更新模块、 统计模块和输出模块组成。如图所示:

C 实训报告 专业班级:java 技术09-01班 姓名:秦尧尧 学号:540913100131 2 (1) 输入模块。输入模块主要实现对商品信息的输入工作。 (2) 查询模块。查询模块主要实现对商品信息的查询工作,可以通过商品代码和商品 姓名查询。 (3) 更新模块。更新模块主要实现对商品信息的及时更新,可以对原有信息进行删除、 修改、插入、和排序工作。 (4) 统计模块。统计模块主要实现对商品销售情况统计前五名和后五名。 (5) 输出模块。输出模块主要是输出商品的信息。 三、系统设计及实现 1.1、全局数据结构设计 系统定义了结构体tele ,用于存放电话薄的信息。 typedef struct tele {int num; char name[10]; char phonenum[15]; char address[20];} telebook;

个人通讯录管理系统

C语言程序设计 课程设计报告 个人通讯录管理系统设计 专业__网络工程___ _____ 班级___(3)班___________ 学号__3148119322 姓名__吴道金 _ 学号_ 3148119319 _姓名_ 林东垚 ___ 学号_ 3148119359 _姓名__ 林家勇 __ 学号__3149119349__________姓名___上官景铨_____ ______ 福建工程学院软件学院 2015年月日 (正文部分)

一、需求分析 建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。功能要求(1) 通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。 (2) 输入功能:可以一次完成若干条信息的输入。 (3) 显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示) (4) 查找功能:可以按姓名等多种方式查找通讯信息 (5) 增加、删除、修改功能:完成通讯录信息的多种更新 二、总体设计

三、详细设计 void menu(); /*菜单*/ void Add(); /*添加记录*/ void print(); /*输出记录*/ void Find(); /*查找记录(按姓名)*/

void Delete(); /*删除记录*/ void SaveFree(); /*保存到文件*/ void Creat(); /*打开文件*/

四、程序源代码 #include #include #include

C++电话簿管理系统

电话簿管理系统 一、课程设计题目: 电话簿管理系统 二、目的与要求: 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 4、写出设计说明书 三、设计方法和基本原理: 1、问题描述(功能要求): 电话簿记录按姓名排序存放,显示时每屏不超过20个记录,超过时分屏显示。 增加记录修改功能,能选择修改用户的姓名、电话,在修改或删除之前需要用户进一步确认,确认无误后再进行操作。增加录入时间的显示及存储。增加默认的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块;

(7)完成系统总结报告以及系统使用说明书。 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 2.编程体会: 电话簿管理程序较长,算法比较复杂,调试的过程中遇到了各种各样的问题。各种各样的小错误寻找起来十分困难。在今后编写程序时应当随编随找错。不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。课设让我们把这一学期所学的C++知识得到了很好的应用,开拓了我们的思路,所谓温故而而知新,这次课设也让我们对以前的知识有了一个全面的回顾,加深了对已学知识的理解。课设过程艰辛,花费时间很长,需要很强的耐力和信心。而这也是对我们的一次考验,养成了坚持不懈和吃苦耐劳的精神。通过这次课程设计的实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C++语言这门课程开始,已发现程序设计的乐趣,在学习C++语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。 在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。在具体操作中

个人通讯录管理(c语言课程设计)

安徽工业大学 《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统 实习成员:王刚 学号: 109074372 专业班级: 网络工程103班 指导教师: 郑啸老师

目录 一.问题描述 (2) 二. 各功能流程图与设计思路 (3) 2.1显示模块 (3) 2.2查找模块……………………………………………4.. 2.3添加模块 (6) 2.4删除模块 (8) 2.5修改模块 (9) 三、文件的读取与保存 (11) 四、程序源代码 (12) 五、调试与运行结果 (18) 六、计算机学院课程设计评定意见 (24) 一.问题描述

设计通讯录包含以下功能: (1)通讯录的每一条信息包括姓名、单位、固定电话、移动手 机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ 等。 (2)输入功能:可以一次完成若干条信息的输入。 (3)显示功能:完成全部通讯录信息的显示。 (4)查找功能:可以按姓名等多种方式查找通讯信息。 (5)增加、删除、修改功能:完成通讯录信息的多种更新。 二.各功能流程图与设计思路 Menu菜单:

运用switch()进行操作: case'1': 显示功能,list()函数 说明:利用for循环,逐个输出已保存的内容 代码如下: //*****************显示通讯录中的内容************* void list() { printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n"); for(i=0;i

C++课程设计电话本管理

VC++ 课程 实 验 报 告 专业班级: 学号: 报告人:

C++课程实验报告 一、实验题目:电话本管理 二、功能描述: 这是一个电话簿管理小程序,利用文本文件储存电话簿数据,具有添加、删除、显示和查询联系人电话号码功能。在这个小型管理程序中,类与类之间通过链表将各个数据相连接,形成一个通畅的应用小程序!在程序中,对于用户需求尽可能的予以满足. 三、算法设计与实验步骤 四、流程图: 按ENTER进入电话本功能界面 电话本功能界面(用户根据界面说明进行选择操作) 0 进入帮助1 添 加 联 系 人 2 查 找 并 修 改 3 姓 名 查 找 联 系 人 4 首 字 母 近 似 查 找 5 显 示 全 部 记 录 6 删 除 记 录 用户根据帮助程序根据 提示 用户 新建 联系 人姓 名和 电话 号码 输入 联系 人姓 名,查 找修 改 输入 姓名 查找 输入 首字 母匹 配查 找 显示 电话 薄全 部数 据 逐一 删除 联系 人数 据, 首先 输入 联系 人姓 名 7 退 出 电 话 簿 程 序 并 保 存 电 话 簿 数 据

四、类与对象结构描述,核心程序代码(需要有相应的注释) 1.程序中所定义的类 (1)电话簿记录类 class CTelRecord { private: int nYear,nMonth,nDay,nHour,nMinute,nSecond; //时间单元 char szName[20]; //电话簿数据:姓名和电话号码 char Last[20]; char szNumber[20]; public: CTelRecord(){} //构造函数 CTelRecord(char *name,char *number); void SetRecord(char *name,char *last,char *number); //输出时间 int Compare(char *name); //根据姓名查找 void SetName(char *name){strcpy(szName,name);} void SetNum(char *num){strcpy(szNumber,num);} void SetLast(char *last){strcpy(Last,last);} char *GetName(void){return szName;} //需通过函数访问的私有成员 char *GetLast(void){return Last;} char *GetNum(void){return szNumber;} int GetYear(void){return nYear;} int GetMonth(void){return nMonth;} 用户选择0后进入帮助界面 1 怎样产生一个新纪录 2 怎样显示我的电话本 3 什么时候我有一种新版面 4 什么时候有一种新版面 5 退出帮助进入电话簿功能界面 电话本功能界面

个人通讯录管理系统C语言源程序优秀版

个人通讯录管理系统C语言源程序优秀版 Last revision date: 13 December 2020.

#i n c l u d e/*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件 #include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/ void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/

个人通讯录管理系统java源代码

package cn pab import java.util.List; import java.util.Scanner; import cn.pab.dao.PersonDao; import cn.pab.dao.TypeDao; import https://www.wendangku.net/doc/1b17066240.html,erDao; import cn.pab.dao.impl.PersonDaoImpl; import cn.pab.dao.impl.TypeDaoImpl; import https://www.wendangku.net/doc/1b17066240.html,erDaoImpl; import cn.pab.entity.Person; import cn.pab.entity.Type; /** * 业务类 */ public class PABmanager { /** * 系统启动 */ public static void main(String[] args) { Scanner input = new Scanner(System.in); UserDao userDao = new UserDaoImpl(); TypeDao typeDao = new TypeDaoImpl(); PersonDao personDao = new PersonDaoImpl(); System.out.println( " System.out.print("\ n 欢迎使用个人通讯录管理系统**********"); 请选择操作(1. 系统登录 2. 密码修改 3. 取消):"); String in = input.next(); if ("1".equals(in)) { boolean islogin = userDao.login(); if(islogin){ System.out.println("******** *** 成功登录个人通讯录管理系统 nm\、\ ? //System.out.print(" \n 退出系统):"); }else{ System.out.println(" System.exit(-1); } }else if ("2".equals(in)) { 请选择操作(1. 类别管理 2. 联系人管理 3. 用户名或密码错误,不能登录!");

个人通讯录管理系统课程设计报告示例

个人股权转让协议书 转让方: 受让方: ____________________________________ 公司(以下简称合营公司),于______年____月_____日成立,由甲方与________________合资经营,注册资金为_____币_________万元,投资总额_______币_________万元,实际已投资_____币________万元。甲方愿将其占合营公司____ %的股权转让给乙方;经公司董事会通过,并征得他方股东的同意,现甲乙双方协商,就转让股权一事,达成协议如下: 一、股权转让的价格、期限及方式 1、甲方占有公司____%的股权,根据原合营公司合同书规定,甲方应投资____币______万元。现甲方将其占公司____%的股权以____币______万元转让给乙方。 2、乙方应于本协议生效之日起____天内按第一条第一款规定的货币和金额以银行转帐方式分____次付清给甲方。 二、甲方保证对其拟转让给乙方的股权拥有完全、有效的处分权,保证该股权没有质押,并免遭第三人追索,否则应由甲方承担由此引起的一切经济和法律责任。 三、有关公司盈亏(含债权债务)的分担(任选一款)。 1、本协议生效后,乙方按股份比例分享利润和分担风险及亏损(含转让前该股份应享有和分担公司的债权债务)。

2、股权转让前,聘请在中国注册的会计师(或其他方式)对公司进行审计,乙方按双方认可的审计报告表的范围承担甲方应分担的风险、亏损和享有权益。股权转让生效后,若发现属转让前,审计报告表以外的合营公司的债务,由乙方按股权比例代为承担,但应由甲方负责偿还。股权转让生效后,乙方取得股东地位,并按股份比例享有其股东权利和承担义务。 3、股权转让前,聘请在中国注册的会计师(或公司董事会组织)对公司进行审计,甲方按审计报告表的范围承担应分担的风险、亏损和享有权益,甲方应分担的债权债务,应在其股权款中扣除。本协议生效后,尚未清结的以及审计报告以外属甲方应分担的债权债务,均由乙方按股权比例享有和承担(或由乙方先行承担,然后由乙方向甲方追偿)。 四、违约责任 如乙方不能按期支付股权价款,每逾期一天,应支付逾期部分总价款千分之______的逾期违约金。如因违约给甲方造成经济损失,违约金不能补偿的部分,还应支付赔偿金。 五、纠纷的解决(任选一款) 凡因履行本协议所发生的争议,甲乙双方应友好协商解决如协商不成: 1、向_______人民法院起诉; 2、提请仲裁委员会仲裁; 六、有关费用负担

个人通讯录管理系统设计说明书

个人通讯录管理系统系统设计说明书 班级 07软工A2 组号第 1 组 拟制人张超 审核人郁盈盈 2010年10月25日

目录 1 引言 (1) 1.1编写目的 (1) 1.2项目背景 (1) 1.3预期读者 (1) 1.4参考文献 (1) 2任务概述 (2) 2.1目标 (2) 2.2运行环境 (2) 2.3需求概述 (2) 2.4条件与限制 (3) 3总体设计 (3) 3.1功能模块分析 (3) 3.1.1功能分配 (3) 3.1.2模块设计 (5) 3.2总体结构及模块结构 (5) 4数据结构设计 (8) 4.1逻辑模型设计 (8) 4.2物理模型设计 (9) 4.3数据库设计 (9) 5接口设计 (10) 5.1外部接口设计 (10) 5.1.1界面设计及说明 (10) 5.1.2软件接口 (17) 5.1.3硬件接口 (17) 5.2内部接口设计 (18) 6运行设计 (18) 6.1运行模块的组合 (18) 6.2运行控制 (18) 6.3运行时间 (18) 7出错处理设计 (18) 7.1出错输出信息 (18) 7.2出错处理对策 (18) 8安全保密设计 (19) 9维护设计 (19)

1 引言 1.1编写目的 本说明是个人通讯录管理系统软件产品的总体设计和实现说明,记录了系统整体实现上技术层面上的考虑,并且以需求说明作为依据,同时该文档将作为产品实现、特性要求和控制的依据。 软件开发小组的每一位参与开发成员应该阅读本说明,以清楚产品技术方面和实现策略,本手册将进行技术评审和技术的可行性检查,同时个人通讯录管理系统软件的开发途径和应用方法,以求在最短的时间高效开发个人通讯录管理系统。 1.2项目背景 本项目的名称:个人通讯录管理系统 本项目的任务提出者及开发者是07软工A2第一小组 用户是一般个人。 本产品是针对为能本地化无网络的获得通讯录信息的需求而设计的,主要功能包括,对联系人的信息管理,实现各种搜索方式及排序,实现联系人分组及组管理等功能。 1.3预期读者 本说明书的预期读者是项目的开发人员,测试人员和维护人员。 1.4参考文献 [1]. 《https://www.wendangku.net/doc/1b17066240.html, 2.0网络编程从基础到实践》马颖华苏贵洋袁艺苏桂涛编著 [2]. 《UML基础与Rose建模教程》蔡敏徐惠惠黄炳强编著 [3]. 《C#数据库系统开发完全手册》明日科技张跃延许文武王小科编著

通讯录管理系统

测试与光电工程学院 课程设计任务书 测控技术与仪器系 100814 班学号 100814415 姓名邓志扬 课题名称:通讯录管理系统的设计 课题要求: 使用C语言设计一个班级通讯录,通迅录数据信息构成内容可自行设计(如:姓名、邮政编码、电话号码等等),通信录数据类型定义为结构体类型或用数组实现。要求实现存取、显示、删除记录、查询记录等功能。 (1)查看功能,选择此功能是列出下列三类选择 A、办公类 B、个人类 C、商务类当选中某类时,显示出此类中所有数据中的姓名和电话号码 (2)增加功能能录入新数据(一个节点包括姓名,电话号码,分类(可选项有:A、办公类,B、个人类,C、商务类)、电子邮件) 例如:杨春商务类 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入,当通讯录中超过15条信息时,存储空间已满,不能自录入新数据了。 (3)拨号功能能显示出通讯录中所有人的姓名,当选中某个人的姓名时,屏幕中模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声音 (4)修改功能选中某个人的姓名时,可对此人的数据进行相应修改 (5)删除功能选中某个人的姓名时可对此人的相应数据进行删除并自动调整后续条目的编号 课题进程: 1)回顾C语言设计及数据结构设计的相关知识。2周 2)设计基本架构。4周 3)调试、完善、撰写报告。3周 主要参考资料: [1] 谭浩强主编. C语言程序设计(第二版).清华大学出版社, 2005. [2] 谭浩强.C程序设计题解与上机指导(第三版)[M]北京:清华大学出版社,2005年7月 指导教师:付跃文

目录 一、设计目的 (4) 二、设计要求与功能描述 (4) 1.设计要求 (4) 2.功能描述 (5) 三、系统分析与设计 (6) 1、功能模块的设计分析 (6) 2、数据结构设计分析 (9) 3、函数功能描述 (9) 四、系统调试与运行 (11) 五、总结 (18) 六、源程序清单: (19)

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

个人通讯录管理软件功能 设计说明书 一.系统名称 个人通讯录管理 二.系统分析 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保存通讯录信息包括,职务,职称,工作单位,通讯地址,邮政编码等。

通讯录管理制度

1.目的 为增强对公司通讯录发放、更新等管理,特制定此制度。 2.适用范围 公司通讯录。 3.职责 3.1行政人事部负责本制度拟定、完善、更新及下发。 3.2行政人事助理负责定期更新、发放通讯录。 3.3各部门负责人负责本部门工作联系更新信息传递至行政人事助理。 3.4各员工负责自身联系更新信息传递至行政人事助理。 4.工作程序 4.1通讯录版本及内容 4.1.1公司通讯录分为“内部”和“外部”二个版本。“内部”通讯录记录公司所有人员的通讯信息,仅发放于公司总部相关部门;“外部”通讯录记录部门负责人、部门助理,及经常与办事处沟通人员的通讯信息,发放于办事处。 4.1.2公司通讯录按照部门顺序记录以下内容:大部名称、部门名称、姓名、岗位、分机、手机、固定电话、传真、邮箱等信息。 4.2通讯录更新 4.2.1行政人事助理依据上周发生的人员入职、离职、调岗等信息更新通讯录,于每周一下班前以邮件方式发放最新通讯录。 4.2.2公司各员工在自身通讯方式发生变更三个工作日内,把更新通讯信息传递至行政人事助理处。 4.2.3各部门对外工作联系信息,包括但不限于办公地址、办公电话、传真等发生变化时,由部门负责人或部门助理在变更后三个工作日内传递更新信息至行政人事助理处。

4.2.4公司部门架构、公司对外工作联系信息等发生变化时,经CEO审批后,由行政人事助理直接更新。 4.3通讯录发放接收人员 4.3.1《通讯录(内部)》发放接受人员为:CEO、CTO、COO;各大部总监;部门经理;需与外部经常联系的部门助理、岗位人员。 4.3.2《通讯录(外部)》发放接受人员为:大区经理、办事处经理、办事处文秘。 4.4通讯录管理 4.4.1公司通讯录为公司受控文件,严禁接受人员随意转发。如发现转发的,处于200元/次经济处罚。 4.4.2如因正常工作需要,需取得通讯录的,由行政人事部总监审批。 4.4.3工作之外,要求取得通讯录的,由行政人事部总监审核后,由CEO审批。 5.相关记录 通讯录(内部) 通讯录(外部)

课程设计电话簿管理系统

一.程序功能简介 一个基本的电话簿管理程序,具有插入、删除、显示、修改和查询联系人电话码的功能。 主菜单如右图所示,每个菜单项功能如下: 1.增加记录菜单:请输入用户姓名,如果该用户已经存在则添加失败,否则,输入用户的电话号码,进行添加。 2.修改某条记录:请输入用户姓名,如果没有该用户显示“该用户不存在”信息,否则,输出原电话号码,然后输入新的电话号码,进行修改。 3.删除记录: 输入用户姓名,进行删除(删除时要进行确认)。 4.查询:输入用户姓名,进行查找。 5.排序:根据子菜单,选择不同的排序方式。 6.显示:逐屏显示(每屏显示10条记录)。 7.全删:进行全部删除(要确认)。 二.课程设计要求 请选择以下功能 1- 增加记录 2- 修改记录 3- 删除记录 4- 查找(按姓名) 5- 排序 6- 显示记录 1.用汉化菜单实现。 2.提供按姓名查询电话号码的功能。 3.显示功能(提供逐屏显示的功能,每屏显示10条记录)。 4.删除和修改时要进行确认。 5.将电话簿记录以文件的形式存在磁盘上;每次操作时将电话簿调出,操作完毕后存盘。 三.课程设计说明 1.程序采用数组数据结构实现。 2.用类来实现数据的封装。 四.参考数据结构 1.“电话簿”称为用户信息表,用数组实现。用户信息表由若干用户信息构成,每个用户信息是一个数组元素。 2.“user.txt”是一个文件,用于保存“用户信息表”中的信息。当系统启动时,从该文件中读入信息,当退出系统时,将“用户信息表”中的信息写到该文件中。该文件中信息存放形式如下: ZhangHong 5221369

LiLi 84891112 ZhaoQiang 5221498 其中 name(姓名)占20列 phone_num(电话号码)占12列 五.具体功能及实现 定义Fphone类,通过其私有成员数组name[20]和phone[12]分别记录用户姓名与电话号码,定义UserDatabase类记录用户信息,通过公有成员函数实现对数据的操作。 六.源程序及注释 #include #include #include #include #include #define M 20 #define N 12 #define MAX 100 class Fphone //用户信息类的定义 { char name[M]; // 姓名 char phone_num[N]; //电话号码 public: Fphone(char *na="",char *ph="") { strcpy(name,na); strcpy(phone_num,ph); } char*getname(); //获取姓名 char*getphone_num(); //获取电话号码 void setname(char*a); //设置姓名 void setphone_num(char*a); //设置电话号码 void disp(); //显示用户信息 }; char *Fphone::getname() { return name; } char *Fphone::getphone_num() { return (phone_num); } void Fphone::setname(char *a) { strcpy(name,a);

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