当前位置:文档之家› 通讯录管理系统源代码

通讯录管理系统源代码

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

源代码:

#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输入e-mail:");

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\te-mail:%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\te-mail:%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\te-mail:%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输入e-mail:");

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\te-mail:%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\te-mail:%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.doczj.com/doc/3610749692.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了…所以….唉,都是题外话,不说了。

通讯录管理系统

课程设计任务书 题目C语言课程设计 系(部) 信息科学与电气工程学院 专业计算机科学与技术 班级计职141 学生姓名王雪 学号140819139 06 月21 日至07 月04 日共 2 周 指导教师 院长 2015 年6月23日

一、课程设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。 (6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序和修改程序。 设计功能 录入联系人信息(包括姓名、电话号码、地址等信息);通讯录管理系统要求实现以下功能: 1、输入每一位联系人记录,将其信息存入文件中。 2、查询所有联系人的信息,并按可选的自定义规则进行排序; 3、记录修改,将修改的记录信息保存于文件中。 设计要求 1、设一个通信录由以下几项数据信息构成: 数据项类型 姓名字符串 地址字符串 邮政编码字符串 电话号码字符串 试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。 2、要求:界面友好,易于操作 总体设计 系统功能模块图:

通讯录管理系统实验报告

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

个人通讯录管理系统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.doczj.com/doc/3610749692.html,erDao; import cn.pab.dao.impl.PersonDaoImpl; import cn.pab.dao.impl.TypeDaoImpl; import https://www.doczj.com/doc/3610749692.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");

题目通讯录管理系统

题目 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)可选择是否保存并退出系统。 三.模块设计

(完整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;

通讯录管理系统需求分析

通讯录管理系统需求分析 项目编号: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()菜单函数

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

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

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

管理信息系统-通讯录管理系统

昆明理工大学管理信息系统课程设计通讯录管理系统 学院计算机科学与技术学院 姓名黄亚军 学号200910405229 指导教师姓名王剑 2012年05月27日

昆明理工大学管理信息系统课程设计 (1) 摘要 参考文献 (25)

摘要: 通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。 随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。 关键词:通讯录管理信息系统计算机科学用户 一、前瞻 1.开发背景简介 随着信息活动在国民经济中主导地位的确立和信息产业的崛起信息资源管 理(Informetion Resouces Management,简称IRM)作为一个专有名词和独立的学科逐渐发展起来。如何积极开发、合理配置和有效利用信息资源,日益成为社会生活中亟待解决的问题。由于计算机和通信技术的高速发展,推广应用计算

通讯录管理系统课程设计报告书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())

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.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

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

通讯录管理系统课程设 计报告 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

个人通讯录管理系统,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{ } } } }

联系人管理系统

联系人管理系统设计报告 程珠 200907260203 信管0901 一、实验目地 通过本课程设计,要求熟悉管理信息系统开发的原理,掌握系统分析、系统设计、系统编程与调试等方法。能够完成一个中小型信息系统的规划与分析设计工作,或者能够开发一个小型的管理信息系统,提高分析问题与解决问题的能力。 二、实验内容 1.业务简介 (1)公司联系人 A.公司联系人类型构成:公司联系人类型标识,公司联系人类型 B.公司联系人构成:公司联系人标识,公司联系人名称,地址,出生日期,公司联系 人类型标识 C.查询构成:公司联系人标识,公司联系人类型标识 (2)客户 A 客户构成:客户标识,客户名称,客户地址,客户电话 (3)客户联系人 客户联系人构成:客户联系人标识,客户联系人姓名,客户联系人地址,客户联系人电话 2.系统功能 A 查看和修改公司联系人、客户、客户联系人 B添加和删除公司联系 人、客户、客户联系人 C退出系统 通过联系人管理系统,可以查询和修改公司联系人、客户、客户联系人。添加和删除公司联系人、客户、客户联系人,给企业或学校提供一个良好的人力资源管理环境。 也可以清晰地了解到三者的关系。除了可以查看公司联系人名称,地址,出生日期,公

司联系人类型还可以查看联系人的公司信息和家庭信息,如联系人的上级和下级信息,父母信息等等。以及联系人的毕业信息和在学校、公司的突出表现。方便企业对公司联系人更好的了解和统计。通过客户信息可以查找与公司有业务来往的客户信息。 三、实验过程 1. 系统分析(以公司联系人为例)

ER图 2.系统设计(以公司联系人为例) 模块结构设计 数据库设计

个人通讯录管理系统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.doczj.com/doc/3610749692.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.doczj.com/doc/3610749692.html,yout.edit); setTitle("添加联系人"); //从已设置的页面布局查找对应的控件 nameEditText=(EditText)findViewById(https://www.doczj.com/doc/3610749692.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

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