文档库 最新最全的文档下载
当前位置:文档库 › 通讯录管理系统源代码

通讯录管理系统源代码

通讯录管理系统源代码
通讯录管理系统源代码

源代码:

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#include "conio.h"

#include "stdlib.h"

#define null 0

struct record

{

char name[20];

char phone[20];

char adress[40];

char postcode[10];

char e_mail[30];

}student[500];

struct LinkList

{

struct record US;

struct LinkList *next;

}a;

struct LinkList *head=null;

int num=0;

FILE *fp;

int menu_select();

int adduser();

int list();

int search();

int display();

int add();

int listbyname();

int dele();

int save();

int exit();

void main()

{

system("cls");

for(;;)

{

switch(menu_select())

{

case 0:adduser();break;

case 1:list();break;

case 2:search();break;

case 3:display();break;

case 4:add();break;

case 5:listbyname();break;

case 6:dele();break;

case 7:save();break;

case 8:exit(0);

}

}

}

menu_select()

{

char s[80];

int a;

printf("*_* press any key enter menu! *_* \n");

getch();

system("cls");

printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\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 8. Quit\n");

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

printf("\n Enter you choice(0~11):");

scanf("%s",s);

a=atoi(s);

}

while (a<0||a>11);

return a;

}

adduser()

{

printf("\n\t\t**************** 请输入用户信息 ****************\n"); printf("\n\t\t输入:");

scanf("%s",&student[num].name);

printf("\n\t\t输入:");

scanf("%s",&student[num].phone);

printf("\n\t\t输入地址:");

scanf("%s",&student[num].adress);

printf("\n\t\t输入邮编:");

scanf("%s",&student[num].postcode);

printf("\n\t\t输入:");

scanf("%s",&student[num].e_mail);

num++;

printf("\n\t\t是否继续添加?(Y/N):");

if (getch()=='y')

adduser();

return(0);

}

list()

{

int i;

system("cls");

if(num!=0)

{

printf("\n\t\t*************** 以下为通讯录所有信息************"); for (i=0;i

{

printf("\n\t\t: %s",student[i].name);

printf("\n\t\t: %s",student[i].phone);

printf("\n\t\t地址: %s",student[i].adress);

printf("\n\t\t邮编: %s",student[i].postcode);

printf("\n\t\t:%s",student[i].e_mail);

printf("\t\t");

if (i+1

{

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

system("pause");

}

}

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

else

printf("\n\t\t通讯录中无任何纪录");

printf("\n\t\t按任意键返回主菜单:");

getch();

return(0);

}

search()

{

int mark=0;

int i;

int a=0;

printf("\n\t\t***************** 按查找 *******************");

char name[20];

printf("\n\t\t请输入:");

scanf("%s",name);

for(i=a;i

{

if (strcmp(student[i].name,name)==0)

{

printf("\n\t\t************* 以下是您查找的用户信息 ***********"); printf("\n\t\t: %s",student[i].name);

printf("\n\t\t: %s",student[i].phone);

printf("\n\t\t地址: %s",student[i].adress);

printf("\n\t\t:%s",student[i].e_mail);

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

if ((i+1)

{

printf("\n\t\t是否继续查找相同名字的用户信息:(y/n)");

if (getch()=='y')

{

a=i;

continue;

}

else

return(0);

}

else

{

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

}

}

if(mark!=0)

{

printf("\n\t\t没有相同的用户纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

else

{

printf("\n\t\t没有相同的用户纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

}

display()

{

int mark=0;

int i;

int a=0;

printf("\n\t\t****************** 按查找 ******************");

char phone[10];

printf("\n\t\t请输入:");

scanf("%s",phone);

for(i=0;i

{

if (strcmp(student[i].phone,phone)==0)

{

printf("\n\t\t************** 以下是您查找的用户信息 **********"); printf("\n\t\t: %s",student[i].name);

printf("\n\t\t: %s",student[i].phone);

printf("\n\t\t地址: %s",student[i].adress);

printf("\n\t\t:%s",student[i].e_mail);

printf("\n\t\t************************************************"); printf("\n\t\t按任意键返回主菜单:");

mark++;

getch();

return(0);

}

}

if (mark==0)

{

printf("\n\t\t没有改用户的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return(0);

}

return(0);

}

add()

{

int i;

if ((fp=fopen("student.bin","wb"))==NULL)

{

printf("\n\t\t文件打开失败");

}

for (i=0;i

{

if (fwrite(&student[i],sizeof(struct record),1,fp)!=1)

{

printf("\n\t\t写入文件错误!\n");

}

printf("\n\t\t**************** 请输入用户信息 ****************\n"); printf("\n\t\t输入:");

scanf("%s",&student[num].name);

printf("\n\t\t输入:");

scanf("%s",&student[num].phone);

printf("\n\t\t输入地址:");

scanf("%s",&student[num].adress);

printf("\n\t\t输入邮编:");

scanf("%s",&student[num].postcode);

printf("\n\t\t输入:");

scanf("%s",&student[num].e_mail);

num++;

printf("\n\t\t是否继续添加?(Y/N):");

if (getch()=='y')

adduser();

return(0);

}

fclose(fp);

printf("\n\t\t通讯录文件已保存");

printf("\n\t\t按任意键退出程序\n\t\t");

exit(0);

return(0);

}

void deletebyphone()

{

int i,j;

int deletemark=0;

char phone[20];

printf("\n\t\t请输入要删除用户:");

scanf("%s",phone);

if(num==0)

{

printf("\n\t\t对不起,文件中无任何纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

for (i=0;i

{

if (strcmp(student[i].phone,phone)==NULL)

{

printf("\n\t\t以下是您要删除的用户纪录:"); printf("\n\t\t: %s",student[i].name);

printf("\n\t\t: %s",student[i].phone);

printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\t:%s",student[i].e_mail);

printf("\n\t\t是否删除?(y/n)");

if (getch()=='y')

{

for (j=i;j

student[j]=student[j+1];

num--;

deletemark++;

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

printf("\n\t\t是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

}

else

return;

}

continue;

}

if (deletemark==0)

{

printf("\n\t\t没有该用户的纪录");

printf("\n\t\t是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

}

}

void deletebyname()

{

int a=0;

int findmark=0;

int j;

int deletemark=0;

int i;

char name[20];

printf("\n\t\t请输入要删除用户:");

scanf("%s",name);

for (i=a;i

{

if (strcmp(student[i].name,name)==NULL)

{

printf("\n\t\t以下是您要删除的用户纪录:");

findmark++;

printf("\n\t\t________________________________"); printf("\n\t\t: %s",student[i].name);

printf("\n\t\t: %s",student[i].phone);

printf("\n\t\t地址: %s",student[i].adress);

printf("\n\t\t:%s",student[i].e_mail);

printf("\n\t\t________________________________"); printf("\n\t\t是否删除?(y/n)");

if (getch()=='y')

{

for (j=i;j

student[j]=student[j+1];

num--;

deletemark++;

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

if((i+1)

{

printf("\n\t\t是否继续删除相同的用户信息?(y/n)"); if (getch()=='y')

{

a=i;

continue;

}

}

printf("\n\t\t是否继续删除?(y/n)");

if (getch()=='y')

deletebyname();

return;

}

if((i+1)

{

printf("\n\t\t是否继续删除相同的用户信息?(y/n)"); if (getch()=='y')

{

a=i;

continue;

}

}

}

else

continue;

}

if ((deletemark==0)&&(findmark==0))

{

printf("\n\t\t没有该用户的纪录");

printf("\n\t\t是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

return;

}

else if (findmark!=0)

{

printf("\n\t\t没有重名信息");

printf("\n\t\t没有该用户的纪录");

printf("\n\t\t是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

return;

}

}

dele()

{

char choic;

printf("\n\t\t1-按删除 2-按删除");

printf("\n\t\t请选择:");

choic=getch();

switch (choic)

{

case '1':deletebyphone();break;

case '2':deletebyname();break;

}

return(0);

}

listbyname()

{

int i,j;

struct record tmp;

for (i=1;i

{

if(strcmp(student[i].name,student[i-1].name)<0)

{

tmp=student[i];

j=i-1;

do

{

student[j+1]=student[j];

j--;

}while ((strcmp(https://www.wendangku.net/doc/b68729162.html,,student[j].name)<0&&j>=0)); student[j+1]=tmp;

}

}

printf("\n\t\t排序成功,是否显示?(y/n)");

if (getch()=='y')

list();

return(0);

}

save()

{

int j;

FILE*fp;

fp=fopen("student.txt","w");

if (fp==NULL)

printf("can't open the file.");

if(num!=0)

{

for(j=0;j

{

fwrite(student,sizeof(student),1,fp);

}

}

printf("保存成功!");

fclose(fp);

return(0);

}

通讯录源代码详解

首先,对于stdlib.h头文件,你们不需要知道别的,只要了解,它里面高喊有申请动态内存空间的函数malloc() 就可以了。所以,想要使用该函数,必须加此头文件,就像想要使用printf() 和scanf()必须要加上stdio.h一样。同样,string.h头文件里也包含有好多函数,在本程序里面用的是strcmp() strcpy(),strlen()等等。 下面讲讲#define。这就是传说中的宏定义了。(额外讲一点,之所以称之为“传说中”,是因为我在接触它之前,感觉有多么多么神秘,但真正了解了,其实也没啥神秘可言)。好了不废话了,举个例子#define MAXQQ11.其中,MAXQQ 是宏名,11 是宏体,用宏名可以代替宏体。如若有一下语句:#define M 10 int a =M;则a的值就为10了;理解了吧?或许你们会问:为什么要用那么一大串字母代替一个数字呢?不麻烦么?直接a = 10;不更简单么?呵呵,其实这正是为了修改的方便才用的。比如,一个很大的程序里面多次用到常量10,但后来需要把10改为11,那么只要修改开头部分的#define M 11就可以了,而大可不必在程序中一个一个的闷着头在那里一个劲的傻找。是吧? 下面是结构体,tpyedef struct _person {…}person;至于typedef语句,我想,理论是不能解开困惑的,还是举个例子吧:如有typedef int LIKAI;LIKAI a; 语句就等同于:int a; 两位聪明的三姐四姐,明白了没?总之一句话:typedef就是为数据类型取个别名,(刚刚讲的宏定义是给常量(或表达式)取个别名);所以,我们看到下面的一个结构体里的person per;语句就等同于struct _person per; 还有再下面的addr_book *head =NULL;就等同于struct addr_book *head =NULL啦!这样可以少写一些代码(这里其实也就是少写了一个单词而已)再下面从void add()~void input_person(person *p); 都是函数声明,这一点徐慧丽同学比较了解,有疑问可以问她。 再下面是定义的多个字符串数组,其长度已经隐式的指出,就是下面所以字符个数之和。再下面就是主函数main()了,对了,关于函数的调用,三位同学还是有必要再了解一下的,但是限于篇幅,老师在这里就不再赘述。希望掌握欠佳的同学课后自行温习一下。main()函数开头,调用perint_welcome()函数,我们跳到这个函数里面看一看它的运行机制:外重for 循环内的变量i控制着屏幕的行数,在第四行(i从0~3),开始打印,if里面的三个打印字符串都打印完了呢,就直接跳到第七行,退出外重for循环,打印“回车键进入…”,等用户敲回车时,该函数执行完毕,返回到main()里调用它的地方。 然后进入while循环,循环条件永远为真,因为里面的switch语句里包含很多break语句,所以我们并不怕陷入死循环的泥沼中,嘿嘿,(因为我们不知道用户会输入多少条命令,所以要用while循环),在switch语句里,开关的钥匙是一个函数的返回值,这样可以少定义一个变量,代码也变得精简多了,好了,我们再跳到print_menu()函数里面看看:首先,清屏函数system(“cls”),(我帮你们想好了。要是老师问你们,你们只需说这是个清屏函数,是你们需要清除Dos窗口内的字符的时候,请教高人才得以知道的,嘿嘿),printf(menu);函数打印主菜单界面,并等待用户选择命令,若不在1~8的命令范围只内,提示有误,并请求再次输入,当输入命令合法的时候,返回该命令数字。然后我们在跳回主函数的switch 语句里,可以看到,无论用户选择那个命令,都会调用一个函数,这就是面向过程程序设计的一个特点,(徐慧丽同学现在知道了所谓的函数串的概念了吧?)而C++则不同,它所操作的都是由一个个类所定义的对象,而每个对象都有自己的“方法”(“方法”就是成员函数的一种牛叉的叫法,即专业名词,呵呵),体现了C++不同于C的一个特点:封装性。其实我想我们以开始学C的相对于一开始学C++的同学还是很幸运的,因为我们首先接触的是面向过程程序设计,C++ 我们以后一定会学(会了C还怕不会C++?),而我们有C的基础,可以透过语法结构,从思想上、跟不上区别于二者,对照其异同点,效果会更好,而对于他们一开始就学C++的同学,此生恐怕没有机会接触C了…所以….唉,都是题外话,不说了。

个人通讯录管理系统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/b68729162.html,erDao; import cn.pab.dao.impl.PersonDaoImpl; import cn.pab.dao.impl.TypeDaoImpl; import https://www.wendangku.net/doc/b68729162.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. 用户名或密码错误,不能登录!");

手机通讯录源代码

#include #include #include #include #define N 15 //最大容量为15 typedef struct //定义一个结构 { char name[10]; char haoma[15]; char leibie[10]; char dizhi[20]; }ren; //菜单 void menu() //目录 { system("cls"); //清屏 printf(" ######### 欢迎使用手机通讯录#########\n"); printf("\n"); printf("======================================================================= =======\n"); printf(" 1.~~查询~~ \n"); printf(" 2.~~添加~~ \n"); printf(" 3.~~拨号~~ \n"); printf(" 4.~~修改~~ \n"); printf(" 5.~~删除~~ \n"); printf(" 0. ~~退出~~ \n"); printf("======================================================================= =======\n"); printf("\n"); printf(" 个人通讯录\n"); printf("\n"); printf(" ~~请选择相应的功能~~:"); } void input() //查询 { int help=0; //帮助指令,如果查找所找的类别中没有数据,显示 ren ry; FILE *fp; char leibie[10]; system("cls");

通讯录管理系统

通讯录管理系统说明书 一、使用的技术和开发平台: 基于https://www.wendangku.net/doc/b68729162.html,技术开发的数据库应用程序。开发平台为windows,使用的语言为C#2008,数据库为:MSSQL SERVER2008 二、系统功能模块 本系统是使用c#2008和MSSQL SERVER2008开发的一个数据库应用程序,其主要功能是实现对不同组别的联系人信息进行管理,具体来说分如下几个功能模块: 1、后台管理模块 对系统管理员账户的添加、删除、修改等操作 2、登录验证系统 系统启动时,将出现登录窗口,要求用户输入正确的用户名和密码,否则无法进入系统。 2、联系人管理系统 登录成功后将进入系统的主窗口(FormMain.cs),如下图所示: 其中组别是对联系人分的类,根据添加到数据库中的所有联系人的组别确定,是可以更改的。主窗口第一次显示时,默认显示第一个组别的所有联系人。可以在左边树形列表中选择不同的组别,同时右边的ListView自动显示不同组别的所有联系人。在联系人菜单下可以实现新增联系人、删除联系人、修改或查看联系人以及搜索,不论是新增、删除还是修改联系人完毕后,下面的ListView会同时更新显示联系人及组别。状态栏显示登录账户名和选中组别包含的联系人个数。 当用户单击新增联系人菜单项时,弹出如下窗体(FrmAdd.cs),以实现新增:

其中组别是根据数据库中已有的组别自动加载到组合框中的。当用户在ListView中选择某个联系人后再单击删除联系人菜单项,可将该联系人删除。当用户在ListView中双击某个联系人或单击修改或查看联系人菜单项,会弹出如下窗体(FrmMod.cs),以实现修改或查看联系人:不论是添加还是修改联系人时,组别都是可以修改的,注意姓名和组别不能为空。

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

课程实验报告 软件系统结构 专业 软件工程 学生姓名 张伯虎 班级 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 项目,主要呈现用户操作界面。

(完整word版)通讯录管理系统源代码

源代码: #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" #include "stdlib.h" #define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add(); int listbyname(); int dele(); int save(); int exit(); void main() {

system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:display();break; case 4:add();break; case 5:listbyname();break; case 6:dele();break; case 7:save();break; case 8:exit(0); } } } menu_select() { char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\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 8. Quit\n"); printf("\t\t***********************************************\n"); do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a;

[计算机]同学通讯录信息管理

题目:同学通讯录信息管理 一、课程设计时间 2010~11第2学期第15周,即6月13日~6月17日,共计1周,20学时。 二、课程设计内容 用C语言编写软件完成以下任务: 能够对同学的通讯录信息进行数字化管理,人数不少于五人。通讯信息应保存到文件myfile.dat中。 三、课程设计要求 程序质量: ?贯彻结构化的程序设计思想。 ?用户界面友好,功能明确,操作方便。 ?用户界面中的菜单至少应包括“同学信息录入”、“同学信息修改”“同 学信息查询(根据姓名,或编号等)”、“显示全部同学信息”、“退出” 5项 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: ?课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容 参见提供的模板。 四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、成绩 六、教师评语

目录 一、需求分析 (1) 二、设计分析 (3) 三、主要界面截图 (12) 四、技术要点 (16) 五、个人总结 (17) 六、参考文献 (19) 七、源程序 (19)

一、需求分析 经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块, 其中每个程序对应一个函数,他们的功能分别是:同学信息录入,同学信息修改,同学信息查询,显示全部同学信息以及退出保存。在这些函数中,前两个函数的实现是整个程序的核心,较为复杂。 1. 同学信息录入主要实现程序最初运行时学生通讯录的录入以及其后的运行中学生通讯录的追加功能。 2. 同学信息修改实现的功能是将错误的同学信息进行修改,加以完善 3. 显示学生通讯录主要功能是将学生的全部通讯录信息显示出来。 4同学信息查询实现的功能是按照学号或姓名对学生的通讯录记录进行查询。 5保存退出实现功能为将通讯录进行保存到文件中,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

个人通讯录管理系统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) /*只写方式判断*/

通讯录管理系统需求分析

通讯录管理系统需求分析 项目编号:S1-BS-HTML-001 l项目概述 1.引言 1.1编写目的 在完成了针对通讯录管理系统的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。 此需求规格说明书对《通讯录管理系统》软件做了通讯录管理系统的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。 本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用。本文也是项目完成后系统验收的依据。

1.2项目背景 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(mis),要求应用程序功能完备,易使用等特点。 1.3定义 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。 2.任务概述 2.1目标 实现通讯录管理系统的基本功能,可以实现电话用户的查询、电话号码的查询、电话号码所在地的查询、电话号码的添加及删除等功能,以方便人们的记录和通讯。 2.2运行环境 2.2.2.1服务端 A. 操作系统:Windows 2003 Server 2.2.2.2客户端 A. Windows 95/98/me/Xp/2000/2003, Unix, Linux,Vista,Mac OS各版 2.3条件与限制 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(mis),要求应用程序功能完备,易使用等特点。 3.数据描述 开始 3.1数据流图 以可读写的方式打开一个数据文件 将此文件的内容读出,并存入一个新的结构体类型的数组中。 调用menu()菜单函数

题目通讯录管理系统

题目 2 通讯录管理系统 一.设计要求 1、问题描述 设有一通讯录,记录联系人的联系信息,包括联系人姓名、联系人多个联系电话、邮箱、联系地址以及所属群组。联系人按姓氏序列升序排列并按顺序编号。使用者能根据姓名或编号对联系人信息进行增删改查。请编制一程序模拟该通讯录的管理。 2、设计要求 1)基本要求 (1) 新建联系人。输入联系人的姓名、电话、email、地址和分组等信息, 并插入通讯录的正确位置。 (2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号 码、修改或删除email、地址和分组等信息。 (3) 删除联系人。可按姓名或序号删除联系人的信息。 (4) 查询联系人。可按姓名或序号查询联系人的信息并输出。 (5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移 除群组,并可按群组查询联系人信息。 (6) 输出通讯录。按顺序输出通讯录的全部信息。 2)以下为选做: (7) 按姓名查询联系人时可进行模糊查询。 (8) 通过文件读写实现通讯录信息的读取和记录。 二.概要设计 1.主界面设计 为了实现通讯录管理系统,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主菜单运行界面如下图

所示。 2.存储结构设计 本系统主要采用链表结构类型存储联系人信息。 3.系统功能设计 本系统分为以下7个功能模块。 (1)添加联系人:添加联系人子模块可完成添加联系人姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。 (2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。 (3) 删除联系人。可按姓名或序号删除联系人的信息。 (4) 查询联系人。可按姓名或序号查询联系人的信息并输出。 (5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。 (6) 输出通讯录。按顺序输出通讯录的全部信息。 (7)可选择是否保存并退出系统。 三.模块设计

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

设计课题题目 一、课程设计目的与要求 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源代码

/** * 业务类 */ public class PABmanager { /** * 系统启动 */ public static void main(String[] args) { Scanner input = new Scanner(System.in); String num = input.next(); if ("1".equals(num)) { String lbmc = input.next(); String lbsm = input.next(); String lbbz = input.next(); Type type = new Type(lbmc,lbsm,lbbz); typeDao.createType(type); }else if ("2".equals(num)) { List types = typeDao.queryType(); for (int i = 0; i < types.size(); i++) { Type type =types.get(i);

} }else if ("3".equals(num)) { String lbmc = input.next(); Type type = new Type(lbmc,null,null); typeDao.deleteType(type); }else if ("4".equals(num)) { break; }else{ } } }else if ("2".equals(in2)) { break; }else{ } } }else if ("3".equals(in2)) { System.exit(-1); }else{ } } } }

学校通讯录管理系统数据库设计

数据库设计 在本实例中使用的是SQLServer 2000数据库管理系统。数据库服务器安装的位置为本机,数据库名称为commu ni catio nserver 。下面将介绍数据库分析和设计、数据表的创建、数据表关系图和创建存储过程的内容。 4.2.1 数据库分析和设计 在本节中,将根据上一节系统功能的设计分析创建各数据表的实体E-R关系图,它是数 据库设计非常重要的一步,下面用E-R图的形式表示出各实体的属性。 1. 用户E-R实体图 用户的实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,ER图如图4-5所示。 图4-5 用户E-R实体图 2. 地区E-R实体图 地区的实体具有地区编号、地区名称2个属性,E-R图如图4-6所示。 图4-6 地区E-R实体图 3. 职务E-R实体图 职务的实体具有职务编号、职务名称2个属性,E-R图如图4-7所示。 图4-7 职务E-R实体图 姓名用户权限性别 1 用户E-mail 地区 职务职务名称

4. 学校E-R 实体图 学校的实体具有学校名称、学校所在地区、在校学生人数3个属性,可用 E-R 图表示, 如图4-8所示。 (学校名称X 学校一(在校学生人数 图4-8 学校E-R 实体图 5. 通讯录E-R 实体图 通讯录的实体具有联系人姓名、地址、联系电话、所属职务、所在学校、所在单位、所 属地区7个属性,E-R 图如图4-9所示。 图4-9 通讯录E-R 实体图 4.2.2 数据表的创建 在上面一节中讲解了实体的 E-R 图,本节中将根据E-R 图的内容,创建企业信息管理系 统中的各数据表,在此系统中共涉及到 5个数据表的应用,分别为如下。 1、 字段采用camel 风格定义 2、 用不同颜色区分字段 主键:蓝色 外键:白色 既是主键又是外键:淡蓝色 普通字段:青绿 学校编号 学校所在地区 联系电话 通讯录 所在单位 * 所在学校 彳所属职务

通讯录管理系统

淮北师范大学 软件系列课程设计 通讯录管理系统 学院计算机科学与技术学院学生姓名陈文超 学号20081201011 指导教师姓名陈美荣 2010年06月20日

目录 摘要........................................................ 1.绪论....................................................... 1.1 开发背景简介......................................... 1.2 管理系统的发展趋势……………………………………………… 1.2 目的目的和意义........................................ 2. 开发工具的选择............................................ 3.系统分析................................................... 3.1题目需求分析............................................ 3.2系统功能分析............................................ 4.系统总体规划............................................... 4.1概要设计............................................... 5.系统设计................................................... 5.1系统操作流程图.......................................... 5.2系统详细设计............................................ 6.调试....................................................... 7.全文总结................................................... 8.致谢..................................................... 参考文献.....................................................

个人通讯录管理系统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 通讯录文件不存在"); /*判断结论*/

手机通讯录开发源代码

设计开发源代码 1.AddContactsActivity类 package .demo.pr3; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import android.widget.Toast; import .demo.pr3.datax.ContactsTable; import https://www.wendangku.net/doc/b68729162.html,er; /*增加记录操作界面*/ public class AddContactsActivity extends Activity { private EditText nameEditText; //输入框 private EditText mobileEditText; //手机输入框 private EditText qqEditText; //qq private EditText danweiEditText; //单位 private EditText addressEditText; //地址 Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.wendangku.net/doc/b68729162.html,yout.edit); setTitle("添加联系人"); //从已设置的页面布局查找对应的控件 nameEditText=(EditText)findViewById(https://www.wendangku.net/doc/b68729162.html,); mobileEditText=(EditText)findViewById(R.id.mobile); danweiEditText=(EditText)findViewById(R.id.danwei); qqEditText=(EditText)findViewById(R.id.qq); addressEditText=(EditText)findViewById(R.id.address); } /*创建菜单 */ public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE,1, Menu.NONE, "保存"); menu.add(Menu.NONE,2, Menu.NONE, "返回"); return super.onCreateOptionsMenu(menu); } /* 菜单事件*/ public boolean onOptionsItemSelected(MenuItem item){ // TODO Auto-generated method stub

通讯录管理制度

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.相关记录 通讯录(内部) 通讯录(外部)

C语言通讯录管理系统程序代码

一、课程设计题目及要求 题目通讯录管理系统 任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等;; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供按姓名或电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 二、系统设计方案 (一)总体框架图: 通讯录管理系统:1、录入通讯录信息 2、修改通讯录信息 3、查询通讯录信息 4、浏览通讯录信息 5、增加通讯录信息 6、推出系通讯录统 (二)模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:录入通讯录信息 声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt" 模块三:通讯录信息的查找 声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支 模块四:通讯录信息的修改

声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目模块五:通讯录信息按学号排序 声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息 声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环 模块七:通讯录信息 声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。 模块八:示学生信息 通过display()函数输出通讯录信息 模块九;存信息 通过fp=fopen("student.txt","w");写入信息 模块十:界面菜单 通过switch(num)调用,以上各函数,实现功能 三、设计详情 1.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

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