通讯录管理系统数据库分析与设计说明书

合集下载

通讯录系统设计说明书

通讯录系统设计说明书

通讯录系统设计说明书(不少于2500字)一、设计思想通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。

作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。

开发这一系统的好处大约有以下几点:第一、可以存储大量的通讯录信息,安全、高效;第二、只需一档案录入员即可操作系统,节省人力;第三、可以迅速查到所需通讯录信息。

二、系统架构及运行环境系统架构:运行环境:1、操作系统:Microsoft Windows Server 2008,Windows XP,Windows 7,Windows 8,Windows 102、技术平台:.Net Framework 3.5三、系统数据库介绍用户:用户名,密码联系人:联系电话,姓名,工作单位,电子邮件,头像用户登录联系人数据库表结构:登录表联系人表四、系统功能模块介绍本系统由1个功能模块(主界面)和5个表单(新增联系人,删除联系人,修改联系人信息,视图,搜索联系人)组成。

主要功能:(1)录入所有通讯人员的相关信息,当单击新增按钮时,就会弹出增加信息的窗体。

(2)修改当前记录:当选择功能菜单时,会出现一个新用户界面对话框用户根据对话框提示进行当前记录的数据的修改直到修改完所有的信息(3)删除记录:当用户选择要删除人员的姓名即可删除(4)查询记录:本程序可以通过姓名、电话进行查询。

五、系统主要功能模块详细设计及实现登录窗体主窗体增加联系人窗体删除联系人窗体查询联系人窗体六、心得体会1、心得体会2、技术总结。

通讯录管理系统报告书

通讯录管理系统报告书

《C++程序设计》课程设计通讯录管理系统学院信息与电气工程学院专业电子信息工程年级大一学号0808140208班级电子081姓名蒋明阳200 9年7月目录一.设计项目名称二.课程设计目的三.需求分析及规格说明3.1 需求分析3.2 详细功能3.3 规格说明四.概要设计4.1 通讯录管理系统说明图4.2 数据的结构和各模块分析4.3 数据保存方式及格式4.4 实现各模块功能的相应程序五.详细设计的部分六.调试分析及心得体会6.1 调试分析6.2 心得体会七.使用说明7.1 运行环境7.2 系统操作说明八.全部源代码一.设计项目名称:通讯录管理系统二.课程设计目的:通过设计一个《通讯录管理系统》,进一步熟悉C++中类的概念、基本知识和技能,类的封装、继承的实现方式。

掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。

了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。

三.需求分析及规格说明:3.1,需求分析:● 3.11设计一个实用的小型学生通讯录管理系统,用文件来存储学生的姓名,电话,QQ号码,邮编,地址等信息,完成对信息的添加,删除,查询,显示所有信息,退出及用双向链表来处理修改等操作.● 3.12 详细功能如下:● A.添加:系统将提示用户输入新添加学生信息,输入到文件中,学生信息数据包括姓名,电话号码,QQ号,邮编,地址.● B.删除:首先由用户输入要删除的学生的姓名或者电话号码,然后调用删除函数,删除该学生的所有相关资料.● C.显示所有人员信息:该功能将显示已经保存的所有学生的姓名,电话,QQ号,邮编及地址.● D.修改:首先由用户输入要修改的学生姓名或者电话号码,然后系统用修改函数查找,显示该名同学的资料,然后系统提示用户输入需要修改的人员的相关信息.并用双向链表来实现修改功能● E.查询:可由用户输入要查找的学生姓名或电话号码,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.● F.退出系统关闭通讯录管理系统.3.2.规格说明:● 3.21:要有一个菜单,用于选择各项功能:其中包括:.a:添加新联系人;.b:删除联系人;.c:显示所有人员信息;.d:修改人员信息;. e: 查询联系人;.f:关闭通讯录.● 3.22:采用面向对象的程序设计方法,a,b,c,d,e,这五项菜单都调用一个函数来实现.四.概要设计:4.1.通讯录管理系统功能说明图:4.2.数据的结构及各模块分析:● 4.21:设计类,对象及基本数据类型:● 4.211创建一个book类,它有五个私有数据成员:string name; 姓名string address; 家庭地址string personalnumber; 本人联系电话string class; 班级string university; 就读大学名称string homepnumber 家庭电话string major 专业string post 邮编包含七个公有成员函数:功能如下:char inter_face(); 首页void add_person(); 添加联系人void del_person(); 删除联系人void show_all(); 显示所有联系人void alter(); 修改信息void select(); 查询联系人void save_new(); 保存新增加的联系人在主函数main()之中,.book obj; 创建名为obj的对象4.212.结构体:struct record{book object; object对象作为结构体record的一个成员record *prior; 定义一个指向前驱的结构体指针record *next; 定义一个指向后继的结构体指针};该结构体是在alter()修改函数中用来处理相关信息的修改.● 4.213 .字符串变量: str,record;字符变量: choose;布尔型变量:flag;4.3.数据保存方式以及格式:该通讯录管理系统将把输入的人员信息保存为pbook.txt 文本文件,在文件读取时系统将会把该文件中相关信息读出,并在屏幕上显示出相关信息.4.4.实现各模块功能的相应程序:● 4.41,界面:inter_face(){system("cls");cout<<endl;cout<<"\t\t★★★★★★★★★★★★★★★★★★★★….. ……fflush(stdin);return choose;}● 4.42添加联系人:add_person(){cout<<endl<<"根据下面… …. … ….save_new(){ofstream outData("pbook.txt", ios::app);if(!outData)… …outData.close();}cout<<endl<<"新联系人信息已经保存好!!!"<<endl<<endl;system("pause");}● 4.43删除联系人del_person(){ofstream outData("temp.txt", ios::out);… …cout<<endl<<"这个人的信息已经从你的通迅录中删除!!!"<<endl<<endl;}system("pause");}● 4.44显示所有联系人:show_all(){ifstream inData("pbook.txt",ios::in);… …cout<<"所有联系人已经全部显示出来!!!"<<endl;}system("pause");}● 4.45修改信息alter(){ifstream inData("pbook.txt", ios::in);… …cout<<endl<<"信息已经修改完成!!!"<<endl<<endl;system("pause");}}● 4.46查询联系人select(){ifstream inData("pbook.txt",ios::in);… …}system("pause");}五.详细设计的部分:现将“修改”功能模块详解如下:void book::alter(){ifstream inData("pbook.txt", ios::in);//打开文件pbook.txt,进行读操作if(!inData)//判断文件打开是否成功{cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;//如果打开失败,输出“对不起不能打开文件!!!”system("pause");//屏幕暂停return;}string sign;//定义字符串变量signcout<<endl<<"请输入你想要修改的联系人的姓名或电话号码:";cin>>sign;//输入变量signfflush(stdin);//清空缓冲区record *H=new record;//新建结构体指针变量H,并为其分配空间record *p=H;//使p指针指向指针Hrecord *q=H;//使q指针也指向指针Hbool flag=true;//定义布尔型变量flag.while(inData>>p->>>p->object.number>> p->object.qq >>p->object.post>>p->object.address)//读取文件中一个人的信息{p->next=new record; //建立双向链表p=p->next;p->prior=q;q->next=p;q=p;}p->next=NULL;//使p的next成员指向NULL.inData.close();//关闭pbook.txt文件p=H;//使指针变量P指向结构指针H的头节点while(p)//当p不为空时{if((p->==sign)||(p->object.number==sign))//判断输入是否为空.{if(flag){cout<<endl<<"你想修改你联系人的信息如下:"<<endl<<endl;cout<<setiosflags(ios::left)<<setw(17)<<p-><<""<<setw(16)<<p->object.class<<" "<<setw(18)<<p->object.personalnumber<<" "<<setw(14)<<p->object.post<<""<<setw(20)<<p->object.address<<setw(15)<<p->objiet.homepnumber<<setw(15)<<p->object.university<<setw(15)<<p->object.major<<endl;//输出要修改的人的信息flag=false;}cout<<endl<<"请根据下面提示修改信息: "<<endl;cout<<"姓名:" ;cin>>p->;fflush(stdin);cout<<"个人联系方式:";cin>>p->object.personalnumber;fflush(stdin);cout<<"家庭地址:";cin>>p->object.adress;fflush(stdin);cout<<"邮编:";cin>>p->object.post;fflush(stdin);cout<<"家庭电话:";cin>>p->object.homepnumber;fflush(stdin);cout<<”就读大学”;cin>>p->object.university;fflush(stdin);cout<<”班级”cin>>p->object.classfflush(stdin);cout<<”专业”;cin>>p->object.majorbreak;//根据提示进行修改}p=p->next;//使结构体指针p指向该指针的末尾}if(flag){cout<<endl<<"你的通迅录中没有你找的联人!!!";cout<<endl<<endl;system("pause");return;}else{ofstream out("pbook.txt",ios::out);//打开文件pbook.txt,进行写操作if (!out) //判断文件打开是否成功打开{cout <<endl <<"对不起!!!不能打开文件!!!!" <<endl;system("pause");return;}p=H; //使结构体指针p指向被修改的人的记录的首地址.while(p)//如果p不为空,则执行以下语句{out<<setiosflags(ios::left)<<setw(17)<<p-><<" "<<setw(16)<<p->object.number<<" "<<setw(18)<<p->object.qq<<" "<<setw(14)<<p->object.post<<" "<<setw(20)<<p->object.address<<endl;将修改后的信息保存到原来位置p=p->next;//使用p指针指向其本身的末尾}out.close();//关闭pbook.txt文件cout<<endl<<"信息已经修改完成!!!"<<endl<<endl;system("pause");//屏幕暂停}}六.调试分析及心得体会:6.1.调试分析:● 6.11 函数: fflush(stdin);功用: stdin是默认的输入流文件,对应输入缓冲区就是清空输入缓冲区,避免缓冲区内残存读取函数无法取走的内容! 也就是在添加人员信息(见下程序段)时,如果加入该函数,则输入的信息如:姓名,电话等,文件调用该函数时,就可以把缓冲区的内容全部送入文件.……cout<<"姓名: ";cin>>name;fflush(stdin);cout<<"电话: ";……● 6.22. 函数alter();中,用指针来处理双向链表时.相关程序及分析如下:record *H=new record;//新建一个结构体指针,作用是为了指向要修改的人员的记录record *p=H;……//令p结构体指针指向结构体指针H,为了用p来建立双向链表…p=H;//再次使用p指向H的头节点,为了在while(){}循环中输出要修改的整个人员的信息while(p){}…… //依次输出要修改信息,并进行修改.……………p=H; //又令p指针指向H指针的头节点,为了将修改后的信息输出到修改while(p ) //前的位置{out<<setiosflags(ios::left)<<s………cout<<endl<<"信息已经修改完成!!!"<<endl<<endl;……6.2.心得体会:● 6.21,程序的编写应是:三分编写,七分调试;● 6.22,程序编写之前需求分析,至关重要,将关系这整个项目的成败.● 6.33,一名优秀程序员的成长,需要付出很多很多,编程是每天必做之事,就像一位程序大师所说: “After three days without programming,ife becomes meaningless. 三日不编程,食肉无味”● 6.34,熟能生巧,这次在用指针处理双向链表时,以前对这块内容并不十分清楚,,这次感觉很吃力,所以在今后的编程之中,尽可能把基本技能练习熟练.● 6.35,做软件最终是满足用户的需求,所以做软件时应一切应以用记为导向.七.使用说明:7.1运行环境:Microsoft Visual C++6.07.2在此,把软件使用过程写出,并对此程序的一些细节和具体的操作方法加以说明,说明如下:●7.21将软件进行初始化,即在VC++6.0中运行该程序,进入程序主界面,界面显示的是“一个通讯录系统”,总的操作流程有七个方面:1,添加新联系人2,删除联系人3,显示所有联系人4,修改信息5,查询联系人6,关闭通讯录7,最后是提示用户选择要使用的功能7.22. 输入和存取人员信息,选择菜单界面的第1个选择,按Enter键进入此选择界面,根据提示,输入信息相关信息,出现以下界面:●7.23 显示所有人的信息,按“3”,出现以下界面:●7.24要修改人员信息就按“4”,根据提示输入相关信息: 如下:7.25要查找相关人员信息就按“5”,根据提示输入信息,将出现以下界面●7.26,要删除相关人员信息,按“2”,根据提示输入信息,将出现以下界面7.27要退出该程序,按“6”.八.全部源代码://C++课程设计---通讯录#include <iostream> #include <string>#include <iomanip>#include <fstream>#include <cstdlib>using namespace std;class book{public:book();char inter_face();void add_person();void del_person();void show_all();void alter();void select();void save_new();private:string name;string address;string homepnumber;string post;string class;string university;string personalnumber;class major;};struct record{book object;record *prior;record *next;};book::book(){name="\0";address="\0";number="\0";post="\0";qq="\0";}char book::inter_face(){system("cls");cout<<endl;cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl<<"\t\t※※"<<endl<<"\t\t※欢迎使用小小通讯录※"<<endl<<"\t\t※※"<<endl<<"\t\t※ 1. 添加新联系人. 4. 修改信息. ※"<<endl<<"\t\t※※"<<endl<<"\t\t※ 2. 删除联系人. 5. 查询联系人. ※"<<endl<<"\t\t※※"<<endl<<"\t\t※ 3. 显示所有联系人. 6. 关闭通讯录. ※"<<endl<<"\t\t※※"<<endl<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl<<endl<<"\t\t选择:";char choose;cin>>choose;fflush(stdin);return choose;}void book::add_person(){cout<<endl<<"根据下面提示输入新联系人信息"<<endl;cout<<"姓名:" ;cin>>p->;fflush(stdin);cout<<"个人联系方式:";cin>>p->object.personalnumber;fflush(stdin);cout<<"家庭地址:";cin>>p->object.adress;fflush(stdin);cout<<"邮编:";cin>>p->object.post;fflush(stdin);cout<<"家庭电话:";cin>>p->object.homepnumber;fflush(stdin);cout<<”就读大学”;cin>>p->object.university;fflush(stdin);cout<<”班级”cin>>p->object.classfflush(stdin);cout<<”专业”;cin>>p->object.majorsave_new();cout<<endl<<"新联系人信息已经保存好!!!"<<endl<<endl;system("pause");}void book::save_new(){ofstream outData("pbook.txt", ios::app);if(!outData){cout<<endl<<"对不起!!!打开文件失败!!!"<<endl<<endl;system("pause");return;}outData<<cout<<setiosflags(ios::left)<<setw(17)<<p-><<""<<setw(16)<<p->object.class<<" "<<setw(18)<<p->object.personalnumber<<" "<<setw(14)<<p->object.post<<""<<setw(20)<<p->object.address<<setw(15)<<p->objiet.homepnumber<<setw(15)<<p->object.university<<setw(15)<<p->object.major<<endloutData.close();}void book::del_person(){ofstream outData("temp.txt", ios::out);ifstream inData("pbook.txt", ios::in);if(!outData||!inData){cout<<endl<<"对不起!!!找不到文件!!!"<<endl;system("pause");return;}string sign;cout<<endl<<"你要删除输入姓名或电话号:";cin>>sign;bool flag=true;string str;while(inData>>name>>personalnumber){getline(inData, str);if((sign==name)||(sign==personalnumber)){cout<<endl<<"你想删除的联系人:"<<endl<<endl;cout<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;flag=false;break;}outData<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;}if(flag){cout<<endl<<"对不起!!!联系人中没你找的人!!!"<<endl<<endl;}else{while(getline(inData, str)){outData<<str<<endl;}outData.close();inData.close();ofstream out("pbook.txt", ios::out);ifstream in("temp.txt", ios::in);if(!out||!in){cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;system("pause");return;}while(getline(in, str)){out<<str<<endl;}out.close();in.close();cout<<endl<<"这个人的信息已经从你的通迅录中删除!!!"<<endl<<endl;}system("pause");}void book::alter(){ifstream inData("pbook.txt", ios::in);if(!inData){cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;system("pause");return;}string sign;cout<<endl<<"请输入你想要修改的联系人的姓名或电话号码:";cin>>sign;fflush(stdin);record *H=new record;record *p=H;record *q=H;bool flag=true;while(inData>>p->>>p->object.personalnumber>>p->objec t.class>>p->object.post>>p->object.address>>p->object.homep number>>p->university>>p->major){p->next=new record;p=p->next;p->prior=q;q->next=p;q=p;}p->next=NULL;inData.close();p=H;while(p){if((p->==sign)||(p->object.number==sign)){if(flag){cout<<endl<<"你想修改你联系人的信息如下:"<<endl<<endl;cout<<setiosflags(ios::left)<<setw(17)<<p-><<""<<setw(16)<<p->object.class<<" "<<setw(18)<<p->object.personalnumber<<" "<<setw(14)<<p->object.post<<""<<setw(20)<<p->object.address<<setw(15)<<p->objiet.homepnumber<<setw(15)<<p->object.university<<setw(15) <<p->object.major<<endlflag=false;}cout<<endl<<"请根据下面提示修改信息: "<<endl;cout<<"姓名:" ;cin>>p->;fflush(stdin);cout<<"个人联系方式:";cin>>p->object.personalnumber;fflush(stdin);cout<<"家庭地址:";cin>>p->object.adress;fflush(stdin);cout<<"邮编:";cin>>p->object.post;fflush(stdin);cout<<"家庭电话:";cin>>p->object.homepnumber;fflush(stdin);cout<<”就读大学”;cin>>p->object.university;fflush(stdin);cout<<”班级”cin>>p->object.classfflush(stdin);cout<<”专业”;cin>>p->object.majorbreak;}p=p->next;}if(flag){cout<<endl<<"你的通迅录中没有你找的联系人!!!"<<endl<<endl;system("pause");return;}else{ofstream out("pbook.txt",ios::out);if (!out){cout <<endl <<"对不起!!!不能打开文件!!!!" <<endl;system("pause");return;}p=H;while(p){out<< cout<<setiosflags(ios::left)<<setw(17)<<p-><<""<<setw(16)<<p->object.class<<" "<<setw(18)<<p->object.personalnumber<<" "<<setw(14)<<p->object.post<<""<<setw(20)<<p->object.address<<setw(15)<<p->objiet.homepnumber<<setw(15)<<p->object.university<<setw(15) <<p->object.major<<endlp=p->next;}out.close();cout<<endl<<"信息已经修改完成!!!"<<endl<<endl;system("pause");}}void book::select(){ifstream inData("pbook.txt",ios::in);if(!inData){cout<<endl<<"对不起!!!!文件找不到!!!"<<endl;system("pause");return;}string sign;cout<<endl<<"输入你想查找的联系人的姓名或电话号码: ";cin>>sign;fflush(stdin);bool flag=true;string str;while (inData>>name>>personalnumber){getline(inData, str);if((name==sign)||(personalnumber==sign)){cout<<endl<<"你要查找的联系人是: "<<endl<<endl;cout<<setiosflags(ios::left)<<setw(17)<<name<<personalnumber<<str< <endl;flag=false;break;}}system("pause");}void book::show_all(){ifstream inData("pbook.txt",ios::in);if(!inData){cout<<endl<<"对不起!!!没有找到文件!!!"<<endl;system("pause");return;}bool flag=true;string record;while(getline(inData, record)){if(flag){cout<<"所有联系人信息如下:"<<endl;}cout<<record<<endl;flag=false;}if(flag){cout<<endl<<"你的通迅录中没有联系人!!!"<<endl<<endl;}else{cout<<"所有联系人已经全部显示出来!!!"<<endl;}system("pause");}int main(){char choose;book obj;while(choose=obj.inter_face()){switch (choose){case '1':obj.add_person();break;case '2':obj.del_person();break;case '3':obj.show_all();break;case '4':obj.alter();break;case '5':obj.select();break;case '6':cout <<endl <<"谢谢使用!!!"<<endl <<endl;exit(0);break;default:break;}}return 0;}。

通讯录管理系统数据库设计说明

通讯录管理系统数据库设计说明
通讯录管理系统数据库设计与实现
1
1.1
通讯录管理系统
分 组 基 本 信 息








联系人基本信息管

















添 加 联 系 人



















1.2
功能中涉及的数据项说明。
1.用分组基本信息(Admin):包括 分组号、分组名;
2.用户基本信息(Dormitory):包括账号、密码、昵称、个性签名,这样可以 方便分清用户记录的联系人;
3.联系人基本信息(linkman):包括、性别、关系、手机号、座机号、QQ E-mail、
生日、工作单位、地址、所属用户、所属分组;
1.3
数据项列表
数据项编号
数据项名
数据项含义
与其它数据项的关系
存储结构 别名
TXL-1
G_nu mber
分组号
CHAR(10)
TXL-2
G_name
分组名
CHAR(20)
TXL-3
ID
所属用户
等同于账号ID
CHAR(10)
TXL-4
ID
账号
CHAR(10)
TXL-5
Nickname
昵称
CHAR(20)
TXL-6
Password
密码
CHAR(20)

智灵通讯录管理系统设计说明书

智灵通讯录管理系统设计说明书

智灵通讯录管理系统设计说明书一、需求分析本通讯录是一款具有基本通讯信息管理功能的系统。

包括基本添加,修改,删除,查询和输出等功能。

其中联系组是为了更好地管理联系人信息,如常用的组有亲戚,家人,朋友,同学等。

用户添加的信息存储到文件当中,本系统的数据存储文件包括group.dat和linkman.dat,其中group.dat存储组信息;而linkman.dat则存储联系人的信息。

用户登陆系统后,根据需要,选择操作类型。

系统一启动,便将相关数据文件装载进内存,如果数据文件不存在,系统将会创建新的数据文件。

并将数据文件内的记录存放在链表数据结构类型中,接下来用户所有的操作,都是对链表的操作。

当用户退出系统时,系统将自动将链表的信息存进数据文件。

本系统中包含两个链表:group链表和linkman链表,分别对应group,dat和linkman,dat两个数据文件。

1、组信息管理模块:◎添加新组信息:当用户添加一个新组时,这个新组将被添加到group.dat文件的末尾,如果添加的组已存在则返回出错信息。

◎修改已有组信息:用户首先输入所要修改的联系组,然后系统查询该联系组存不存在。

若存在,则要求用户输入新的信息,并进行替换;若不存在,则返回错误信息。

◎删除已有组:用户首先输入所要删除的组,然后系统查询该组存不存在。

如果存在,则先删除该组下的所有联系人的信息,再删除该组;如果所要删除的信息不存在,则返回错误信息。

◎删除所有已有组信息:该操作没有输入值。

如果原来group.dat文件中没有联系组,返回错误信息;否则,删除所有联系组,同时删除各个组下的联系人信息。

◎组查询功能:按用户输入的查询条件,在group.dat文件中查询相关信息。

若存在符合条件的组,则输出相应的组信息;若不存在,则返回出错信息。

◎输出所有组信息:将group.dat中所有组全部输出来。

2、联系人信息管理模块:◎添加联系人:当用户添加一个新联系人时,这个联系人的信息将被添加到group.dat 文件的末尾,若添加的联系人已存在,则返回出错信息。

通讯录管理系统任务需求分析说明书

通讯录管理系统任务需求分析说明书

通讯录管理系统通讯录是现代日常生活中不可或缺的部分,除了常规的姓名、电话外,通讯录还能存储联系人的所在城市、所在单位、家庭地址等,从而提高工作与社交的效率。

鉴于此,单条通讯录信息可被定义为一个结构体。

本实验要求设计一个简单的通讯录管理系统,涉及函数、结构体、链表、文件等方面的知识,学习利用链表处理数据的方法,熟练掌握文件操作,构建综合程序设计的思路及框架,提高综合设计软件系统的能力。

1.数据格式与功能描述1.1数据文件格式每条通讯录记录包括如下信息:序号、姓名、性别、年龄、电话号码、所在城市、所在单位、住址。

多条通讯录信息存储在一个txt文件中,本系统涉及多个这样的txt文件。

单条通讯录示例格式如图1-1所示。

图1-1 单条通讯录信息本实验中,要求自行创建5个txt文件,分别命名为a.txt, b.txt.. e.txt,分别表示5个人a,b,c,d,e的通讯录信息,每一个人的通讯录中,既可以有其他4人中部分人(1-3人)的信息,也可以有此5人之外其他人的信息,通讯录具体内容可以自行设定。

1.2功能描述设计一个通讯录管理系统,利用单链表来处理联系人信息,要求实现如下系统功能。

(1)初始化菜单程序开始运行后显示菜单,要求菜单能完全展示本系统的功能,尽力做到设计美观。

(2)选择待操作的文件考虑到本系统有多个文件,需要提示用户输入来选择需要操作的通讯录文件。

(3)查询通讯录信息选择通讯录文件后,按姓名、性别、城市查询联系人所有信息。

提示用户输入待查人员的姓名、性别、城市,显示符合条件的联系人所有信息。

如果没有满足要求的联系人,输出提示信息。

可输出全部联系人信息,若当前通讯录没有联系人,输出提示信息。

(4)删除通讯录记录信息按指定的姓名、工作单位、城市删除通讯录中对应记录,删除时应删除该联系人的所有信息并提示删除成功。

若此联系人不存在,输出提示信息。

(5)修改通讯录记录信息修改指定通讯录的信息。

提示用户输入要修改的姓名,若此人存在,则提示选择修改通讯录中的电话号码、所在单位、所在城市或者家庭地址。

通讯录管理系统课程设计报告书 (2)

通讯录管理系统课程设计报告书 (2)

数据结构课程设计报告题目:通讯录管理系统设计学院信息工程学院 __________ 专业计算机科学与技术_______________ 年级班别 _ 12级四班___________学号 _2012051419________学生姓名张海涛_____指导教师米文丽___成绩 _2013年12月通讯录管理系统一.需求分析设计题目及要求:◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。

系统功能需求分析:主要包含一下多种功能:添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件二.概要设计系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。

显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件三.详细设计(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");n=Delete_a_record(pe,n); /*删除记录*/printf("\t");system("pause");break;case 4:printf("\n\t在通讯录中查找记录\n");Query_a_record(pe,n); /*查找记录*/printf("\t");system("pause");break;case 5:printf("\n\t修改通讯录中的记录\n");Change(pe,n); /*修改数据*/printf("\t");system("pause");break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n); /*保存数据*/printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/printf("\n\t\t");system("pause");exit(0);}}}(2).工作流程图:①添加:添加通讯录记录②显示:显示通讯录记录③删除:删除通讯录记录④查询:查询通讯录记录先选择查询方式,以姓名查询方式为例⑤修改:修改通讯录记录四.测试数据及其结果分析测试:1).显示的主菜单界面2).添加界面:3).显示界面:4).删除界面:删除后,通讯录里的显示记录:5).查询界面:以姓名查询方式为例:6).修改界面:修改后,通讯录里的显示记录:7).保存界面:tongxunlu.txt文件截图:问题思考:1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。

通讯录管理系统数据库课程设计

通讯录管理系统数据库课程设计

通讯录管理系统数据库课程设计一、课程设计背景随着互联网和智能手机的普及,通讯录成为人们日常生活中不可或缺的一部分。

而对于企业和组织来说,通讯录更是必不可少的管理工具。

为了提高学生对数据库课程的实际应用能力,本课程设计旨在设计一个通讯录管理系统数据库,作为学生课程设计的项目,帮助学生深入理解数据库的概念和操作。

二、课程设计目标本课程设计的目标是让学生通过实际设计一个通讯录管理系统数据库,掌握数据库设计的基本原理和方法,包括数据库的规范化、关系模式的设计、SQL语言的应用等方面的知识。

通过完成课程设计,学生将能够提高解决问题的能力,锻炼团队合作和交流能力。

三、课程设计内容1. 系统需求分析1.1 确定系统的功能和性能需求1.2 确定系统的使用环境和用户特点2. 数据库设计2.1 确定数据库的实体和关系2.2 设计数据库的表结构和约束条件2.3 进行数据库规范化设计3. 系统实现3.1 使用MySQL或Oracle等数据库管理系统搭建数据库3.2 使用Java、C#等编程语言编写系统的界面和逻辑代码3.3 实现系统的基本功能,包括添加通信人、编辑通信人信息、查找通信人、删除通信人等功能4. 系统测试4.1 对系统进行功能测试和性能测试4.2 修复系统中出现的bug和问题5. 系统部署5.1 部署系统到本地服务器或云服务器5.2 进行系统的上线和维护四、课程设计流程1. 分组确定课程设计题目学生按照班级和兴趣分组,确定课程设计的具体题目和要求。

2. 系统需求分析学生对系统的功能和性能需求进行分析,编写系统需求规格说明书。

3. 数据库设计学生根据系统需求规格,设计系统的数据库结构和约束条件,完成数据库设计文档。

4. 系统实现学生根据数据库设计文档,使用相应的数据库管理系统搭建数据库,编写系统的界面和逻辑代码。

5. 系统测试学生对系统进行功能测试和性能测试,并记录测试结果,修复系统中出现的bug和问题。

6. 系统部署学生将完成的系统部署到本地服务器或云服务器,并进行上线和维护。

学生通讯录管理系统说明书

学生通讯录管理系统说明书

家庭地址:
IDC_CURRENTADDRESS
当前地址:
IDC_EDIT_QQ
IDC_EDIT_EAMIL
IDC_EDIT_HOME
IDC_EDIT_CURRENT
No.8
OnRecAdd()函数的内容和功能:由于增加和显示记录在同一个界面出现,容易造成 误操作。因此,在修改和添加记录数据之前,往往设计一个对话框用于获得所需要的数 据,然后用该数据进行当前记录的编辑。这样就能避免它们的相互影响,且保证代码的 相对独立性。获得所需数据的对话框名为“联系人信息表”,对话框资源的 ID 号是 IDD_INFO_TABLE,对话框资源对应的类名为 CInfoDlg,要进行添加操作,首先为这个类 添加一个对象[2],以便引用控件变量,添加完信息确定之后,“联系人信息表”的内 容传值给主界面对应的变量,如 m_pSet->m_ptelephone=dlg.m_strPersonTelephone。
能为空!"), MessageBox("没有查到你要找的联系人!")用于反馈用户操作。
在主界面上选择添加按钮如图 6 所示
添加的控件 输入框
下Hale Waihona Puke 列表框 按钮 按钮 文本框 文本框
图 6 添加记录
ID 号 IDC_DEIT_NAME
IDC_COMBO_GENDER IDOK
IDCANCEL IDC_NAME1 IDC_GENTER
沈阳大学
课程设计说明书
No.5
分解,提高数据操作效率和存储空间的利用率。 2.2.3 连接数据库
#define Provider "Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;

通讯录详细设计说明书

通讯录详细设计说明书

通讯录详细设计说明书第一篇:通讯录详细设计说明书通讯录管理系统详细设计说明书组员: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 程序描述给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如是常驻内存还是非常驻?是否子程序?是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发处理等)。

通讯录管理系统课程设计说明书

通讯录管理系统课程设计说明书

摘要随着计算机技术的飞速发展和计算机在信息管理中应用的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便,于是利用计算机实现通讯录管理与应用系统势在必行。

Visual FoxPro是一种用于数据库设计、创建和管理的软件,利用它可以对各种事务管理工作中的大量数据进行有效的管理并满足数据检索的需要。

本系统就是根据日益繁多的人际交往的需要,用Visual FoxPro 6.0开发一个通讯录管理系统与应用来实现对通讯信息准确、高效的管理和维护。

整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成通讯应用管理的全过程,包括数据的浏览、修改、添加和删除,利用不同方式对信息进行管理和查询以及用户管理权限的改变等。

本文主要介绍了本课题的开发背景,系统的设计思路、总体设计。

重点说明了系统的各个功能模块的设计与实现,并对系统进行了测试和运行说明。

关键词:Visual FoxPro 6.0,通讯录,管理与应用,信息测试。

目录摘要 (I)目录 (II)1绪论 (1)1.1研究背景 (1)1.2开发意义 (1)1.3本文结构 (1)2需求分析 (3)2.1系统的可行性分析 (3)2.2功能需求分析 (3)3概要设计 (4)3.1系统功能模块设计 (4)3.1.1系统数据流程 (4)3.1.2用户权限修改模块 (4)3.2系统模块结构图 (5)3.2.1系统功能结构模块 (5)3.2.2用户功能模块 (5)3.3数据库的设计 (5)4详细设计 (7)4.1主程序的设计 (7)4.2登录界面的设计 (8)4.2.1用户登录模块 (8)4.2.2用户注册模块 (10)4.3主界面设计 (11)4.4用户密码管理模块 (12)4.5查询管理模块 (13)4.6系统退出管理模块 (15)4.7系统打印的报表输出 (16)5系统连编与运行 (17)5.1连编与运行 (17)结论 (18)参考文献 (19)1绪论1.1 研究背景通讯录管理是一个专门针对人际交往问题、存储用户信息以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。

通讯录管理系统说明书

通讯录管理系统说明书

一、设计题目商品库存管理系统二、设计目的通过本课程设计所要求达到的目的是:通过该课程设计,学习java语言设计工具的使用,搞清程序设计的基本方法、步骤和数据库设计各阶段的任务,完成对某一小型设计和相应文档的编写工作。

使学生更加深入地掌握程序系统分析与设计的基本概念和基本方法,提高从事程序系统建设和管理工作的基本技能和能力。

商品库存管理是整个企业中重要的环节以及不可或缺的部分,是推动企业走向信息化、规范化的必要条件,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,它的内容对于企业的决策者和管理者来说都至关重要。

随着企业的不断扩大以及人们对商品日益增长的需求,。

要对这些货品进行统一、高效的管理,靠人工完成工作量庞大、难免有错漏之处,企业现有对商品库存管理主要是靠人利用计算机半手工操作,从生产出产品到送货到本公司的仓库,到入库登记,到销售出库的记录全由手工利用电脑的办公软件,加上计算机完成,这一管理不仅繁琐、效率低,而且缺乏库存管理的一些基本手段,给企业在一定程度上造成了管理方面的落后,以及经济利益上的损失,所以我们需要对货物的基本信息管理、出库入库管理进行完整的监控,也就是需要建立一个商品库存管理系统以提高企业对工作的管理效率,这样可以方便的进行货物进库入库、出库、查询、修改等各种信息,商品库存管理系统是典型的信息管理系统(MIS),其中主要包括后台数据库的建立和维护以及前端应用程序的开发两方面。

这样的一套管理系统具有很多无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高仓库货物管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,使用自动化商品信息管理系统就显得势在必行,所以,开发一套这样的的管理软件是一件非常有必要的事情。

三、系统的需求分析3.1需求分析(1)数据需求通过与商品库存管理系统用户交谈等方式以及对商品库存管理的分析,可以得到商品库存管理数据库系统的数据需求。

通讯录系统的设计说明书

通讯录系统的设计说明书

通讯录系统的设计说明书R—日11级1班11号金伯胤1概述 (3)1.1系统简述 (3)1.2软件设计目标 (3)1.3参考资料 (3)1.4版本记录 (3)2术语表 (3)3用例 (4)3.1系统用例图 (4)3.2用例描述 (4)3.2.1添加联系人 (4)3.2.2删除联系人 (5)3.2.3查找联系人 (5)3.2.4修改联系人 (6)4设计概述 (7)4.1简述 (7)5静态模型 (7)5.1系统类图 (7)6动态模型 (8)6.1场景 (8)6.1.1场景1:用户浏览通讯录 (8)6.1.2场景2:生成授权码 (9)6.1.3场景3 : 使用授权码 (10)6.2状态图 (11)6.2.1系统登录状态图 (11)6.2.2联系人状态图 (12)6.2.3用户状态图 (13) (13)7非功能性需求 (13)7.1.系统未来的方向 (13)1概述1.1系统简述本系统是市面上常见的也被广为人用使用的通讯录系统。

但是它与其他通讯录不同的一点的特点就是通过网络“分享”自己的联系人。

想象一个场景,添加联系人时往往会遇到对方名字打不出来的尴尬,或是开会时,大家分享一位联系人时要记录姓名、电话、宅电、公司、地址等等。

很不效率。

通过本系统用户只要输入一段特的数字或扫一下二维码就可以将一位或多位特定的联系人同步到自己的通讯录中,是不是很方便。

通过网络,将自己本地的通讯录上传到“云端”,用户可以在更换设备时就不必再次手动录入通讯录了,只要一键同步到本地即可。

还有更多功能等待你去探索。

科技本该让生活跟简单。

1.2软件设计目标由于通讯录系统已经非常成熟了,本次设计希望突出“分享”这个功能,并且使用交互式设计更加人性化,其他通讯录的基本功能就不赘述。

1.3参考资料2014年暑季课程设计《普通通讯录系统的设计》1.4版本记录本文档于15.01.13完成文档中的参考绘图与15.01.10完成2术语表联系人被此系统使用查找、添加、删除、修改等功能的信息。

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

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

电子信息职业技术学院C#课程设计设计(论文)课题:通讯录管理系统:贾顺杰学号:8班级:软件S13-2班导师:郎振红课程设计日期:2016年2月14日目录摘要 (3)一.整体设计 (4)1.1设计构思 (4)1.2系统数据流图: (5)1.3开发及运行环境: (5)2.1 数据库需求分析 (6)2.2 E-R图 (7)2.3 数据表设计 (7)2.4 管理员信息表(db.Admin): (7)2.5 用户信息表(er): (8)2.6 资料信息表(db.Records): (8)三.通讯录管理系统的实现 (9)3.1 类的编写 (9)3.2 系统用户功能模块设计: (9)3.3 系统管理员功能模块设计: (11)3.4 系统设计运行过程中所遇到的问题: (16)3.4.1 数据库的连接问题 (16)3.4.2 登录模块出现角色选择问题 (17)3.4.3 用户信息添加模块问题 (20)四. C#课程设计总结 (26)五.主要参考书及手册 (28)六.致 (29)摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。

而随着计算机的普及,人们的生活摆脱了传统式的记事本、簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。

这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。

通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。

一.整体设计1.1设计构思通讯录管理系统功能需求分析:通讯录管理系统主要功能分为三个模块:用户登录、系统维护以及数据的备份输出。

用户登录:实现管理员用户与游客用户的不同权限,对系统的实用权的区别系统维护:包括对用户的添加,信息添加、删除、、查找、排序、修改,修改密码,注销等操作数据的备份:主要是对相关信息的备份,输出,打印。

课程设计说明书—通讯录系统

课程设计说明书—通讯录系统

唐山学院软件工程课程设计题目通讯录信息系统系(部)计算机科学与技术系班级07计本2班姓名杨芳芳学号4070206208指导教师王永强2010年7月5日至7月9日共1周2010年7月9日软件工程课程设计任务书一、设计题目、内容及要求题目:通讯录信息系统内容:本题目适合于个人通讯录的管理。

要求通讯录中包含编号、姓名、单位、通信地址、邮箱和联系电话等基本信息,程序具有数据录入、删除、修改、浏览、查找、以及数据保存等功能。

要求:程序结构合理、算法准确、语法正确,并生成可执行文件。

二、要求的设计成果(课程设计说明书、设计实物、图纸等)1.课程设计说明书:课程设计说明书1份,不少于2000字。

说明书中要包含需求分析、总体设计、详细设计以及主要的算法描述等内容。

2.源代码:通讯录信息程序清单三、进程安排星期1(7.5):完成需求分析和程序总体设计。

星期2(7.6):完成数据录入、删除、修改、插入和显示功能模块的设计。

星期3(7.7):程序调试无误。

星期4(7.8):撰写课程设计说明书初稿。

星期5(7.9):提交课程设计说明书、程序和数据。

四、主要参考资料【1】C++语言程序设计(第二版)钱能清华大学出版社【2】C++语言课程设计案例精编郭翠英中国水利水电出版社【3】VISUAL C++数据库系统开发案例精选宋坤人民邮电出版社【4】VISUAL C++面向对象与可视化课程设计(第二版)黄维通清华大学出版社指导教师(签名):教研室主任(签名):课程设计成绩评定表出勤情况出勤天数缺勤天数一引言1开发目的人是社会动物,在社会活动中就免不了与人交往联系,要交往联系就必须了解别人的联系方式等信息,比如电话、通讯地址、生日等。

随着与之交往的人增多,如果单纯的靠人的大脑来记忆愈来愈多的联系方式等信息是不现实的,因此人们便需要一个能帮自己记录众多信息东西,这就是通讯录。

设计一个通讯录信息系统,并利用vc++6.0开发出具有相应功能的应用程序,这个系统能帮助人们记录联系方式等信息,如电话、通讯地址、QQ号码、电子邮件等,还可以对个人信息进行检索,对信息进行增加、删除,可以让人们更好更清楚的记住别人的联系方式等信息,在交往活动中更加如鱼得水。

通讯录管理系统说明书

通讯录管理系统说明书

计算机语言课程设计任务书及说明书设计题目:通讯录管理系统学院专业、年级学生学号指导教师时间 2010 年春季学期1摘要 (2)2 前言 (3)3 正文 (4)3.1系统分析 (4)3.2总体设计 (5)3.3详细设计 (7)3.4系统调试与测试.........................................................10. 4参考文献 (13)附录:源程序 (14)随着通讯录在管理上越来越深入而广泛的应用,管理通讯录系统的实施在技术上已逐步成熟。

任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的通讯录管理系统。

本人设计的是一个关于通讯录管理的数据库系统,通过这个系统管理员可以简捷、方便的添加、删除和修改通讯录信息,而用户也可以通过这个系统按照不同方式进行通讯录查询。

关键词:通讯录;管理;系统通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

得到软件工程的综合训练,提高解决实际问题的能力3.1系统分析设计一个实用的信息管理系统,能以简便高效的方式对职工信息进行管理和检索,具体功能如下:1、系统以菜单方式工作,要求界面友好,易于操作;2、能将通讯录保存在文件中;3、提供添加、删除和修改通讯录信息;4、能够按照不同方式查询;5、能够按表格方式输出通讯录信息。

3.2总体设计主要功能模块的算法设计思路如下: 1、添加信息函数(void Add(Link l)) (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息;(4)调用保存函数,打开文件,保存输入信息。

2、修改信息函数(void Modify(Link l)) (1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数; (3)根据要修改的编号查找对应结点;创建通讯录通讯录管理 通讯录查询添加信息修改记录删除记录显示记录按姓名查询按编号查询按地址查询将信息存入文件(4)修改信息;(5)打开文件,保存修改记录。

手机通讯录管理系统

手机通讯录管理系统

目录1.引言 (1)1.1编写目的 (1)1.2背景说明 (1)1.3参考资料 (1)2.系统功能需求分析 (2)2.1 功能分析 (2)2.2 安全性要求 (2)2.3完整性要求 (2)3.结构化分析与设计 (3)3.1手机通讯录系统H图及简介 (3)3.2手机通讯录系统ER图 (5)3.3数据流图 (6)4.面向对象的分析与设计 (7)4.1用例图 (7)4.2用例描述 (7)4.3 面向对象的类图 (9)4.4数据库表设计 (10)5.课程设计总结 (13)6.附录 (13)1.引言1.1编写目的本份分析设计说明书是分析与设计手机通讯录管理系统,使手机通讯录的功能更为强大和方便。

1.2背景说明随着科学技术的发展及人们生活水平的提高,手机已成为人们使用最为频繁的工具之一,其主要作用是为了让人们更为方便相互联系。

每个手机都具有一个或者多个通讯录。

一个好的通讯录能够提供方便,快捷的操作来帮助人们提高工作效率,节省时间。

本次课程设计是建立一个对手机联系人进行管理的通讯里系统。

在本手机通讯里中,可以将自己的亲朋好友的姓名、群组、手机、座机、E-mail、QQ、生日,家庭住址等信息保持到终极资料库中,并随时进行登录、退出、查看、添加、编辑、删除、查询、排序、个人设置等操作在满足人性化的时候也具备一定的安全性(用户需要进行登录),防止他人盗窃隐私。

1.3参考资料a.《软件工程》作者:张海潘出版社:人民邮电出版社b.《软件工程》作者:鄂大伟出版社:清华大学出版社c.《软件工程导论》作者:张海潘2.系统功能需求分析2.1 功能分析登陆管理:登陆或退出通信录。

通讯录管理:添加删除联系人,编辑备份联系人信息,将联系人分组。

通讯录查询:实现按姓名或者按手机号码进行快速查询,查看通信录所有成员,将联系人按一定属性排序。

设置管理:用户名及密码修改,个人隐私设置。

联系管理:对联系人进行语音或者短信联系。

2.2 安全性要求系统中设置访问用户的标识以鉴别该用户是否是合法用户(以正确的账号密码登陆的)并要求用户设置密码,以防信息被盗。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2基本数据信息描述
2.1数据元素
数据元素(data element)是计算机科学术语。

它是数据的基本单位,在计算机程序常作为一个整体进行考虑和处理。

本系统的数据元素有:
●用户的ID、密码、、性别、、E-mail、用户权限;
●通讯录的联系人、地址、联系、所属职务、所在单位、所属地区。

2.2数据组织
数据组织 data 0rganization :按照一定的方式和规则对数据进行归并、存储、处理的过程。

3综合业务流程
整个系统的数据流程图如下:
4.数据库结构设计
4.1概念结构设计
概念设计是把用户的需求进行综合、归纳与抽象,统一到一个整体概念结构中,形成数据库的概念模型。

图4-7 E-R实体图
4.2.3概念模型
概念模型是在对用户需求分析之后,通过画出本系统抽象出的E-R图,由概念模型辅助工具PowerDesigner进行设计,通过具体地设置和绘画,最后就形成了如下所示的概念模型图,生成的概念结构就能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据处理要求,是对现实世界的一个真实模型。

如图所示:
4.3逻辑结构设计
现在需要将上面是数据库概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。

4.3.1关系模式识别
设计数据库应用系统的一项重要工作是设计关系模式,也就是设计一组二维表的表头。

用户(用户ID,密码,,性别,,E-mail、用户权限)
通讯录(联系人,地址,联系,所属职务,工作单位,QQ)
4.3.2关系模式转换
“用户”实体到关系模式的转换
从图4-1可以看出,“用户”实体具有用户ID、密码、、性别、、E-mail、用户权限7个属性,其中用户ID是其关键属性。

●“通讯录”实体到关系模式的转换
从图4-5可以看出,通讯录的实体具有联系人、地址、联系、所属职务、工作单位、QQ6个属性。

联系人是其关键属性。

4.3.3主键,外键,域,规则,默认值等约束描述确认
●“用户”表中用户ID是其主键,并给“性别”列添加CHECK约束,规定“性
别”只能为“男”或“女”。

●通讯录表中联系人是其主键。

4.3.4物理模型
将生成的概念模型通过单击PowerDesigner工具菜单栏上的Tools选项,在选择Generate Physical Data Model选项,就可以转换为物理模型,生成的最后结果具体如图:
2、系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。

3、强壮的事务处理功能,采用各种方法保证数据的完整性。

4、支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。

SQLServer以其置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台
5.2.2库实现
在企业管理器下创建“通讯录管理”数据库或在查询分析器中用以下语句创建:
CREATE DATABASE ’通讯录管理’
5.2.3表实现
创建用户信息表 TB_Users
create table TB_Users
(
sUserID varchar(10),
sUserName varchar (20),
sUserPassword varchar(10),
sUserSex char(2),
sUserEmail varchar(20),
sUserPhone varchar(20),
sUserPurview char(1)
)
图5-1 TB_Users
●创建地区信息表 TB_Area
create table TB_Area
(
sAreaID varchar(20),
sAreaName varchar(50)
)
图5-2 TB_Area
●创建职务信息表 TB_Duty
create table TB_Duty
(
sDutyID varchar(20),
sDutyName varchar(50)
)
图5-3 TB_Duty
●创建学校信息表 TB_School
create table TB_School
(
sSchoolID varchar(20),
sSchoolName varchar(50),
iStudentNum int,
sAreaID_FK varchar(20)
)
图5-4 TB_School
创建通讯录信息表 TB_AddrList
create table TB_AddrList
(
iAddrID int,
sLinkName varchar(50),
sAddress varchar(20),
sLinkPhone varchar(20),
sUnitName varchar(50),
sSchoolID_FK varchar(20),
sDutyID_FK varchar(20),
sAreaID_FK varchar(20)
)
图5-5 TB_AddrList 共五表如下:
图5-6用户表建立关系图如下:
图5-7 关系图所建CHECK约束如下:
图5-8 CHECK约束
5.2.4视图实现
创建学校信息视图表V_SchoolInfo,包含sSchoolName,sAreaName,sLinkName,sDutyName,sLinkPhone五列,来自
TB_AddrList,TB_School,TB_Duty,TB_Area四个表。

create view V_SchoolInfo
as
select sSchoolName,
sAreaName,
sLinkName,
sDutyName,
sLinkPhone
from TB_AddrList,TB_School,TB_Duty,TB_Area
where TB_AddrList.sSchoolID=TB_School.sSchoolID
and
TB_AddrList.sDutyID=TB_Duty.sDutyID
And
TB_AddrList.sAreaID=TB_Area.sAreaID
图5-9 学校信息视图表V_SchoolInfo
5.2.5存储过程实现
根据“4.4.5用户常用存储过程设计”中给出的代码,在SQL SERVER 2000中执行以实现存储过程,执行语句如下:
EXEC AddTB_Users
●EXEC AddTB_Area
图5-10 AddTB_Area
●EXEC AddTB_Duty
图5-11 AddTB_Duty
●EXEC AddTB_School
图5-12 AddTB_School
●EXEC AddTB_AddrList
图5-13 AddTB_AddrList
●EXEC UpdateTB_Users
图5-14 UpdateTB_Users
●EXEC UpdateTB_Area
图5-15 UpdateTB_Area。

相关文档
最新文档