通讯录管理系统项目计划书
文档编号: CMS—1
版本号: V1.0
文档名称:通讯录项目开发计划书
项目名称:通讯录管理系统
项目负责人:周帅
编写:周帅2017年10月10日
校对:周帅2017年10月10日
审核:周帅2017年10月10日
批准:周帅2017年10月10日
开发单位:昆明学院信息技术学院14计本三班
项目开发计划书
1引言
1. 1编写目的
编写本文档的目的是根据系统分析工程师和客户沟通的结果,对用户需求进行了全面细致的分析,深入描述《通讯录管理系统》软件的功能和性能与界面,确定该软件设计的限制和定义软件的其他有效性需求。
该需求规格说明书的读者对象是通讯录管理系统的系统管理员及用户。
根据编写本文档的目的是根据系统分析工程师和客户沟通的结果,对用户需求进行了全面细致的分析,对开发计划进行了总体的规划。
该需求规格说明书的读者对象是通讯录管理系统软件小组的研发工程师、测试工程师、销售工程师,版权归上述成员所有,严禁外传。
1.2 背景
当今时代,网络已经成为人们生活中不可缺少的一部分,世界上的第三媒体——Internet ,它打破了地域时间限制,改变了人们的工作和生活方式,制作站点是企业和个人的宣传自己的重要手段,同时也学习信息的重要手段,今年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化.计算机在管理中应用的普及,利用计算机实现各种管理势在必行,对于机关单位来说,利用计算机支持高效率完成通讯录,是适应社会制度要求、推动机关单位信息利用计算机支持高效率完成通讯管理,是适应现在社会制度要求、推动机关单位信息管理走向科学化、规范化的必要条件。
随着社会的发展及知识经济时代的到来,管理信息系统在各行各业发挥着越来越重要的作用。
通信录管理系统是典型的信息管理系统。
通信录管理系统的水平,是衡量公司发展水平的一个重要指标。
通信录管理系统工作烦琐,包含了大量的信息数据,因此就需要一个完善的职工信息管理系统来实现对这些数据的有效管理,满足公司管理者的需求。
1.3定义
文档中采用的专门术语的定义及缩略词简要如下:
CMS:Contacts Management System,通讯录管理系统
1. 4参考资料
[1]郑人杰,殷人昆,陶永雷。
《实用软件工程》(第二版)。
北京:清华大学出版社,1997。
[2]王立福,麻志毅,张世琨。
《软件工程》(第二版)北京:北京大学出版社,2002。
2项目概述
2.1工作内容
《通讯录管理系统》针对联系人较多的客户的需求而设计的,可以有效管理通讯录成员。
本系统可以删除联系人、增加联系人、查看联系人等功能,进行必要的系统操作。
2. 2主要参加人员
参加本项目开发的主要人员:Meiko,Uzi,StoryAC。
2.3产品
2.3.1程序模块
程序名称:通讯录管理系统,使用Java编写,中间引用了MySQL数据库,通过Java与数据库的连接传输数据,实现系统各项功能。
1. 对本系统的功能进行分析后可作如下的模块化设计:
2. 输入模块实现功能:
按顺序将有姓名(name )、地址(address)、年龄(age)、电话(tel)、电子邮箱(E-mail)依次输入,并建立链表将其连接。
当输入数据完毕时Enter,输入结束。
3. 删除模块实现功能:
在已经存储的文件中删除指定的通信录信息,并释放内存空间。
删除所有相关通信录信息。
4. 查找模块实现功能:
在已经存储的文件中查找指定的通信录信息。
可以按照查找姓名或方法进行。
5. 输出模块实现功能:
在输入特定的文件名之后,输出该文件中所包含的全部通信录信息。
6. 添加模块实现功能:
添加相应信息保存操作,链表中的信息以文件形式被长期。
保存。
7. 主序模块实现功能:
完成系统的界面处理,包括开始界面和主菜单界面。
2.3.2文件
《可行性研究报告》
《项目开发计划书》
《项目需求分析规格说明书》
《项目概要设计规格说明书》
《项目详细设计规格说明书》
《项目测试计划》
2.3.3服务
本软件为用户提供培训安装、维护和运行支持等,并定期向客户了解系统使用情况。
2.4完成项目的最迟期限
本项目完成最后期限:2017年12月10日2.5本计划的批准者和批准日期
本计划批准者:陈星园
本计划批准日期:2017年10月10日
3实施计划
3.1工作任务的分解与人员分工
需求分析:周帅,Meiko
文档编写:周帅,Meiko,Uzi
代码编写:周帅,Meiko,Uzi
软件测试:StoryAC
3. 2进度。
3.3预算
考虑到不需要再添加开发设备及软件,开发周期短,开发风险低,所以支出费用不高。
4支持条件
4.1计算机系统支持
IntelCorei5以上系列、AMD A8以上系列等PC台式机和便携式电脑;
运行时占用内存:≤5MB;
所需硬盘空间:≤25MB;
软件平台:中文Windows7、Windows8.1、Windows10或更高版本;4.2需由用户承担的工作
用户具备一定的计算机知识,对应用软件有所了解,对通讯录管理的流程也要有一定的了解。
通讯录管理系统课程设计c语言
通讯录管理系统课程设计c语言一、课程目标知识目标:1. 理解通讯录管理系统的基础概念,掌握C语言实现通讯录管理的核心功能;2. 学会使用结构体、数组、文件操作等C语言基础知识,实现数据的存储与读取;3. 掌握函数的定义与调用,能运用模块化编程思想设计通讯录管理系统。
技能目标:1. 能够运用所学知识独立设计并实现一个简单的通讯录管理系统;2. 培养良好的编程习惯,编写规范、可读性强的代码;3. 提高问题分析能力,通过编写程序解决实际问题。
情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习热情,树立编程自信心;2. 培养学生的团队协作意识,学会在团队中发挥个人优势,共同解决问题;3. 培养学生严谨、踏实的学术态度,养成勤奋思考、乐于探究的良好习惯。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握C语言在通讯录管理系统中的应用。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生实际编程能力。
通过分解课程目标为具体学习成果,使学生在完成课程学习后,能独立设计并实现一个简单的通讯录管理系统。
二、教学内容1. 通讯录管理系统概述- 了解通讯录管理系统的基本功能与需求;- 掌握系统设计的基本流程与模块划分。
2. C语言基础知识回顾- 结构体、数组的使用;- 文件操作(读写、打开、关闭文件);- 函数的定义与调用。
3. 通讯录管理系统核心功能实现- 设计并实现数据结构存储通讯录信息;- 编写功能函数,包括增加、删除、修改和查询联系人;- 实现数据的持久化存储。
4. 系统测试与优化- 学习测试方法,对系统进行功能测试;- 分析测试结果,优化代码与算法。
5. 编程规范与团队协作- 学习编程规范,编写高质量的代码;- 了解团队协作的重要性,培养团队协作能力。
教学内容安排与进度:第1周:通讯录管理系统概述与需求分析;第2周:C语言基础知识回顾;第3周:设计数据结构与功能函数;第4周:实现通讯录管理系统核心功能;第5周:系统测试与优化;第6周:总结与团队协作。
通讯录管理系统报告书
《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编写目的 1背景 11.2 项目概述 1工作内容 1主要参加人员 1产品 2服务 2验收标准 2本计划的批准者和批准日期 2 1.3 实施计划 2 工作任务的分配与人员分工 2进度 31.4 支持条件 3计算机系统支持 3第二章可行性分析 42.1 可行性研究前提 4 2.2 对现有系统的分析 4 2.3 建议新系统 4新系统说明 4新系统的流程图 5 2.4 经济上可行性 5 2.5 技术可行性 5 2.6 开发工具的选择 6 2.7 新系统的影响 6 2.8 结论 6第三章需求分析 7 3.1 市场需求分析 7 3.2 系统功能性需求分析 7功能划分 7功能描述 73.3 系统非功能性需求 7可用性 7可靠性 83.4 数据字典 83.5 实体-联系图 9 第四章系统设计 104.1 总体设计 10需求概述 10联系人管理系统功能设计 10 4.2 功能模块的设计与实现 11 用户注册模块 11用户登录模块 11用户管理自己联系人信息模块 12 第五章系统测试 135.1 测试的作用和意义 13 5.2 测试方法 135.3 测试内容 135.4 测试结果 14注册和登录模块测试 14查询模块测试 14联系人信息添加、修改和删除模块测试 155.5 结论 15第六章总结 16参考文献 17附录:程序主要部分源代码 17 第一章项目开发计划书1.1 引言编写目的通讯录管理系统是一个专门针对存储用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅功能,大大缩减了查找时间,方便了人们的生活。
背景日益繁多的人际交往使得我们很难搞清楚每个人之间的联系方式,特别是对于经常出差的人来说更难,所以,通讯录能够便捷的提供给我们所需要的相关信息。
java课程设计(通讯录管理系统)
掌握Java语言基础
理解面向对象编程思 想
掌握数据库操作技术
提高团队协作和沟通 能力
完成一个实用的通讯 录管理系统
联系人管理:添加、删除、修改、查询联系人信息 联系人分组:创建、删除、修改、查询联系人分组 联系人搜索:根据姓名、电话、邮箱等信息进行搜索 联系人导出:将联系人信息导出为Excel、CSV等格式的文件 联系人导入:从Excel、CSV等格式的文件中导入联系人信息 系统设置:修改系统语言、主题、字体等设置
数据库类型:MySQL
数据库表结构:用户表、 联系人表、分组表等
主键和外键:用户ID、联 系人ID、分组ID等
数据库操作:增删改查等 基本操作
数据库优化:索引、缓存、 分表等优化措施
数据库安全:用户权限管 理、数据加密等安全措施
界面布局:简洁 明了,易于操作
色彩搭配:协调 统一,易于阅读
功能模块:联系 人管理、分组管 理、搜索功能等
汇报人:
添加标题
添加标题
查询方式:支持模糊查询和精确查 询
查询优化:使用索引提高查询效率
功能描述:删除指定联系人信 息
实现方法:调用数据库删除接 口
操作步骤:选择联系人,点击 删除按钮,确认删除
注意事项:确保删除操作不会 影响其他数据完整性
添加联系人:输入姓名、电话、邮箱等信 息
修改联系人:修改姓名、电话、邮箱等信 息
删除联系人:删除指定联系人
查询联系人:根据姓名、电话、邮箱等信 息进行查询
导出联系人:将联系人信息导出为Excel 或CSV文件
导入联系人:将Excel或CSV文件中的联系 人信息导入到系统中
修改模块界面:提供用户友 好的界面,方便用户操作
c课程设计通讯录管理系统
c 课程设计 通讯录管理系统一、课程目标知识目标:1. 让学生掌握通讯录管理系统的基础知识,包括系统结构、功能模块和数据存储方式。
2. 了解并运用编程语言(如Python)实现通讯录的增、删、改、查功能。
3. 学会运用算法和数据处理技巧优化通讯录管理系统的性能。
技能目标:1. 培养学生运用所学知识独立设计和编写通讯录管理系统的能力。
2. 提高学生的问题解决能力,能够针对实际需求调整和优化系统功能。
3. 培养学生的团队协作能力,学会在项目中进行有效沟通和分工。
情感态度价值观目标:1. 培养学生对信息技术课程的兴趣,激发学习热情。
2. 增强学生的自信心,让他们在完成项目的过程中感受到成就感。
3. 培养学生的责任心,使他们认识到技术对社会发展的积极作用,并关注信息安全问题。
课程性质:本课程为信息技术课程,旨在让学生通过实践操作,掌握通讯录管理系统的设计与实现方法。
学生特点:六年级学生已具备一定的计算机操作基础和编程能力,对新鲜事物充满好奇,喜欢挑战。
教学要求:结合学生特点,注重实践操作,鼓励学生独立思考和团队协作,提高解决问题的能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效指导和评估。
二、教学内容1. 系统分析与设计:- 理解通讯录管理系统的需求分析,明确系统功能。
- 学习UML类图、用例图等工具进行系统设计。
2. 数据存储结构:- 掌握使用数组、链表等数据结构存储通讯录信息。
- 分析不同存储结构的优缺点,选择合适的数据结构。
3. 编程语言实现:- 运用Python等编程语言编写系统功能代码。
- 掌握面向对象编程思想,实现类和对象的设计。
4. 功能模块实现:- 实现通讯录的增、删、改、查功能。
- 学习使用异常处理、文件操作等技术解决实际问题。
5. 系统优化:- 分析算法性能,优化查询速度。
- 掌握排序、查找等算法在通讯录管理系统中的应用。
6. 项目实战与团队协作:- 按照教学大纲,分阶段完成通讯录管理系统的开发。
通讯录管理系统c语言课程设计报告
通讯录管理系统c语言课程设计报告通讯录管理系统C语言课程设计报告1. 项目概述•本项目是一个通讯录管理系统,旨在提供用户管理通讯录的功能。
•使用C语言开发,具有良好的跨平台兼容性。
•主要功能包括添加联系人、查找联系人、编辑联系人、删除联系人等。
2. 项目背景•通讯录是现代社会必不可少的工具,用于管理个人和组织的联系人信息。
•传统的纸质通讯录已不能满足日益增长的信息管理需求。
•本项目旨在开发一款方便、高效的电子通讯录管理系统,满足人们对联系人信息管理的需求。
3. 技术实现•采用C语言作为开发语言,具有良好的跨平台兼容性和高效的执行速度。
•主要采用文件存储方式,将联系人信息保存在本地文件中。
•使用结构体来表示联系人信息,方便管理和操作。
4. 功能模块添加联系人•用户可以通过输入姓名、电话号码、电子邮件等信息,添加新的联系人。
•程序将自动生成一个唯一的联系人ID,并将联系人信息保存到文件中。
查找联系人•用户可以通过姓名、电话号码等条件进行查找联系人。
•程序将根据用户输入的条件,在通讯录中查找符合条件的联系人,并将结果返回给用户。
编辑联系人•用户可以选择要编辑的联系人,并进行修改联系人信息的操作。
•程序将根据用户输入的联系人ID,找到对应的联系人并允许用户修改其信息。
删除联系人•用户可以选择要删除的联系人,并进行删除操作。
•程序将根据用户输入的联系人ID,找到对应的联系人并从通讯录中删除。
5. 实施计划需求分析•确定系统所需的功能模块和用户需求,并进行详细的功能需求分析。
概要设计•设计系统的整体结构,包括模块划分、数据结构设计等。
详细设计•对每个模块进行具体的设计,包括函数接口定义、算法流程图等。
编码实现•根据详细设计的结果,使用C语言进行编码实现。
调试测试•对编码实现的程序进行测试和调试,修复可能出现的问题。
文档撰写•撰写项目的相关文档,包括使用说明、技术文档等。
6. 总结与展望•本项目成功开发了一个通讯录管理系统,具有简洁、高效的特点。
C#通讯录管理系统课程设计
项目目标
掌握数据库设计的基本原理 和方法
理解面向对象编程的思想和 方法
掌握C#编程语言的基本语 法和特性
掌握Windows Forms应 用程序的开发方法和技巧
掌握软件工程和项目管理的 基本知识和技能
提高团队协作和沟通能力, 培养解决问题的能力
联系人分组:工作、生活、 学习等
联系人搜索:根据姓名、 电话、地址等搜索联系人
联系人管理:添加、修改、 删除、查询等操作
数据备份与恢复:定期备 份数据,防止数据丢失
系统架构设计
架构设计原则:高内聚、低耦 合、可扩展、可维护
架构设计方法:分层架构、模 块化设计、服务化设计
架构设计要素:用户界面、业 务逻辑、数据存储、通信协议
架构设计工具:UML、Visio、 PowerDesigner等
数据库设计
数据库类型:SQL Server 数据库结构:用户表、联系人表、分组表等 数据库字段:用户名、密码、联系人姓名、电话、邮箱等 数据库操作:增删改查、排序、筛选等
界面设计
主界面:显示联系人列表、搜索框、添加联系人按钮等 联系人详情界面:显示联系人信息、编辑按钮、删除按钮等 添加联系人界面:输入联系人姓名、电话、邮箱等信息 编辑联系人界面:修改联系人信息 删除联系人界面:确认删除联系人 搜索联系人界面:输入关键词,显示符合条件的联系人列表
单元测试
单元测试的概念:对软件中的最 小可测试单元进行测试
单元测试的方法:白盒测试、黑 盒测试、灰盒测试
添加标题
添加标题
添加标题
添加标题
单元测试的目的:验证软件单元 的功能是否正确
单元测试的工具:NUnit、JUnit、 Te s t N G 等
学生通讯录管理系统说明书
家庭地址:
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;
课程设计-通讯录管理系统设计与实现
数据结构课程设计任务书课程设计成绩评定表1引言通讯录是用来记载、查询联系人通讯信息的工具。
电子通讯录已成为手机、电子词典等电子设备中不可缺少的工具软件。
通讯录管理系统能有效地管理通讯录相关信息,包括输入、查询、添加、修改、删除等功能,该软件给用户提供了一个简单的人机界面,用户可以根据提示信进行各种操作。
本次设计使用的编程语言是C语言。
通过设计"通讯录管理系统"使其具有数据输入、修改、删除、添加、显示和查询等功能。
我们可以进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
这个设计可以使我们掌握软件设计的基本内容和设计方法;使我们的软件设计的能力得到规范;使我们掌握使用各种计算机资料和有关参考资料,提高我们进行程序设计的基本能力。
2问题分析本题目主要涉及线性表的基本操作。
通讯录中的记录通常按记载顺序先后有序,因此选用线性表;如果考虑到很少删除联系人,并且新增联系人又添加在表尾,则可采用顺序表;但是如果考虑到在任何位置插入或删除操作,因涉及经常性的插入和删除,则应优先考虑采用链表。
通过上述分析,我选择了单链表存储结构,通讯录存储结构如下struct record{char name[20];char phonenum[20];char type[20];char email[20];}student[50];struct slnode{record date;struct slnode *next;struct slnode *prior;};typedef slnode * linklist;linklist l;通讯录中需要有查询功能、增加功能、删除功能和修改功能,所以要建立具有这些功能的子函数,对程序实现模块化。
这其中要用到对链表的删除、插入等知识。
删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的,若相等就删除,不相等则后移指针,直至表尾。
毕业设计论文(通讯录管理系统)
毕业设计(论文)题目通讯录管理系统的设计与实现姓名车维学号 0810311313所在学院计算机学院专业班级 08计算三班指导教师谢芳日期 2012年 5 月 30 日毕业设计(论文)任务书院(系) 计算机学院指导教师谢芳职称讲师学生姓名车维专业(班级)08计算3班学号0810311313 设计题目通讯录管理系统设计内容、目标和要求通讯录管理系统在如今信息繁乱的社会是一款不可或缺的软件,为了能及时找到自己所需联系的人,为了储存以后可能对自己有帮助的人脉等等。
为了以后能更方便人们之间的联系,所以我的选题就是通讯录管理系统。
本次设计的目标在于研究通讯录管理系统方案的设计,实现一个简洁的界面模式系统。
本系统包含以下几个功能模块:系统管理、信息管理、查询系统。
进度要求:1)收集相关材料阶段:2012.3.10—2012.3.202)需求分析与构造原型阶段:2012.3.21—2012.3.263)系统设计阶段:2012.3.27—2012.4.24)数据库设计阶段:2012.4.3—2012.4.105)系统实现阶段:2012.4.11—2012.5.136)毕业论文初稿书写:2012.5.14—2012.5.207)系统与毕业论文完善:2012.5.21—2012.5.31指导教师签名:年月日基层教学单位审核院(系)审核毕业设计(论文)学生开题报告课题名称通讯录管理系统课题来源相关资料课题类型D指导教师谢芳学生姓名车维学号0810311313专业班级08计算3班本课题的研究现状、研究目的及意义随着网络及现代通信技术的发展,人们之间的联系越来越便捷,这也使得同时与许多人保持联系成为可能,而单纯依靠人脑已经很难记住所有人的联系方式,使用传统的纸面的方式记录联系人信息时,在联系人比较多时查找将非常困难。
因此,本软件形式实现的通讯录成为了许多人保持联系方式的首选。
当前在许多软件中都附带了通讯录功能,部分手机及一些PDA类的产品也提供了功能不尽一致的通讯录功能。
