通讯录管理系统可行性分析报告
通讯录管理系统可行性分析报告
1、引言
为了方便管理联系人的手机、QQ 、邮箱、地址等信息特提出开发此系统。
1.1编写目的本产品是针对为能本地化无网络的获得通讯录信息的需求而设计的,主要功能包括对联系人的信息管理,实现对联系人进行搜索、输入、修改、删除、排序等功能,实现对联系人信息的管理。
1.2 项目背景
项目名称:通讯录管理系统项目的任务提出者:软件工程技术试验9 组开发者:软件工程技术试验9 组用户:一般个人
1.3参考资料《软件工程》清华大学出版社《实用软件工程》郑人杰清华大学出版社
《Visual C++ 高级编程》清华工业出版社《Visual C++ 信息系统设计与开发实力》机械工业出版社
《C语言程序设计》王曙燕曹锰王春梅等科学出版社
《C语言程序设计》谭浩强清华大学出版社
2、可行性研究的前提
2.1 要求功能:能够准确快速的记录联系人的相关信息,包括学号、姓名、性别、年龄、生日、电话号码、QQ 号码、E-mail 以及地址。
能轻易的查出联系人的相关信息,并对其进行修改或删除,最终以文件形式保存。
性能:实时控制,功能齐全,数据共享,操作简便,可靠性好,稳定快速输入/输出:英文和数字输入,英文和数字输出安全与保密要求:不能轻易被破坏,不能让除用户之外的其他人删改相关信息,需要用户名及密码登录。
2.2 目标
本系统要达到的目标有以下几点:
1.输入功能:可以一次完成无数条记录的输入。
2.插入功能:按学号由小到大插入任意条学生记录。
3.修改功能:查找学生对应学号,完成对学号、姓名、信息的修改。
4.删除功能:查找学生对应学号,删除学生相关各项记录。
5■查询功能:⑴通过学号或姓名查找学生记录并显示;
⑵显示全部学生的信息记录;
6.排序功能:按学生学号升序排列并显示学生信息;
7.保存功能:将学生记录保存在任何自定义的文件中。
8.读取功能:将保存在文件中的学生记录读取出来。
9.密码功能:设定密码,可以输入两次,若正确输入进入
程序,反之退出系统。
10.界面设置:一个主菜单可以任意调用 ,方便清晰美观。
2.3可行性研究的方法通过调查分析开发通讯录管理系统应具有的功能,性能及需求,确定总体结构,以最简洁最容易的方法,建议系统初步决定使用VC++ 编写程序使其成为一个初级的系统软件。
2.4 决定可行性的主要因素
通讯录数量、设备状况、操作人员技术、存储空间
3、对现有系统分析
3.1 工作负荷
由于数据量越来越大,人工记录不一定能适应目前的庞大数据量,工作负荷过大。
3.2 费用支出由于人工记录的工作负荷严重超载,而且易丢失,若投入的人力,设备,空间,材料,等等与其他的一系列支持性服务越来越大,导致开发费用支出巨大,严重影响经济可行性,很不划算。
3.3 人员设备鉴于原有记录方式的技术性含量比较低,故不需要多少高技术人员的操作,只是由于数据量的日益扩大,所需要的操作人员数量不断增大。
这一点已不再适应目前信息化时代的步伐。
设备的科技含量也比较低,没有达到大量的计算机普及程度。
3.4 局限性经过严谨的分析,可知原有的管理方式存在很大的局限性,比如修改删除不方便,查询效率低等等一系列缺点,所有这些都明确了需要一个新的适应新的信息化时代的系统。
所以开发这样一个系统还是很有必要的。
4、建议系统技术可行性分析
4.1 对系统的简要描述通讯录管理系统是对已有联系人数字化管理的一个重要步骤,它实现了相关信息的信息化管理,摆脱了以往的人工操作的许多不便。
本系统将方便使用读者的存储、查询,而且,也将大大提高联系人信息资源的利用率,也使得使用者能够更加方便的对相关信息进行个性化的管理。
4.2处理流程和数据流程
4.2.1系统框图
密■码
打开文件
主函数
按姓名查询
查询全部
4.2.2通讯录管理系统的具体流
开始
程
4.3 采用建议系统可能带来的影响使工作量大大降低,通讯录的管理更加有条理,可通过查询功能方便的找到联系人,而且可及时了解该联系人的相关信息。
4.4 技术可行性评价就目前使用的开发技术及开发环境来说建议系统的功能目标应该能够达到;利用现有的技术在规定的期限内开发工作基本能够完成;开发人员的数量和质量均符合要求。
5所建议系统经济可行性分析建议系统是为了方便用户在众多联系人中实现查找、修改等操作,所以该系统一经使用在经费支出方面并不需要投入很多。
6社会因素分析该项目为独立开发,在技术上没有使用任何现有的软件与方法。
所以在法律方面不会存在侵犯专利权、侵犯版权等问题,完全按照合同规定的责任履行。
7其他可供选择的方案
由于系统过于简单,所以开发小组没有提供其他的方案,只有一种开发方案。
8结论意见经过一系列的各个不同方面的可行性分析,分析员和用户及使用部门的负责人对需要解决的问题取得基本的一致看法,开发小组的开发方案的到批准,使用部门负责人同意开发工程继续进行下去。
班级通讯录可行性分析报告
班级通讯录可行性分析报告一、引言在当今数字化的时代,信息的快速传递和便捷获取对于班级的管理和同学之间的交流显得尤为重要。
班级通讯录作为一种集中存储和管理班级成员联系信息的工具,具有潜在的实用价值。
本报告旨在对班级通讯录的可行性进行全面分析,包括需求分析、技术可行性、经济可行性、操作可行性以及法律和社会可行性等方面,以确定是否值得投入资源来创建和维护这样一个通讯录。
二、需求分析1、方便沟通班级成员之间需要随时能够联系到彼此,无论是为了学习上的讨论、小组作业的协作,还是日常生活中的交流。
一个完整且准确的通讯录能够大大提高沟通的效率。
2、组织活动班级组织各种活动时,如聚会、体育比赛等,需要能够快速通知到所有成员。
通过通讯录,可以轻松地发送通知和邀请。
3、紧急情况联系在遇到紧急情况时,如同学突发疾病或其他突发事件,能够及时联系到其家人或监护人。
4、建立班级凝聚力通讯录可以作为班级成员之间联系的纽带,增强班级的凝聚力和归属感。
三、技术可行性1、数据存储可以使用多种方式来存储班级通讯录的数据,如电子表格(如Excel)、数据库管理系统(如 MySQL、Access)或在线协作工具(如Google Sheets、腾讯文档)。
这些工具都具有稳定的数据存储和管理功能,能够满足通讯录的基本需求。
2、数据更新通过设置权限和特定的更新流程,可以确保通讯录中的信息能够及时、准确地更新。
例如,可以指定班级负责人或班委负责收集和更新信息,或者允许同学们自行修改自己的部分信息,并经过审核后生效。
3、访问方式可以通过多种途径访问班级通讯录,如在班级的电脑上本地存储和访问,或者通过网络平台在线访问。
在线访问具有更大的灵活性,可以通过手机、平板电脑等设备随时随地获取信息。
4、安全与隐私保护采用适当的加密技术和访问控制措施,可以保障通讯录中个人信息的安全和隐私。
例如,设置密码访问、限制访问权限只给班级成员等。
四、经济可行性1、开发成本创建班级通讯录的初始开发成本相对较低。
班级通讯录管理系统课程设计分析报告
高级语言程序设计(1)课程设计专业班级学号姓名完成日期指导教师:1.程序设计说明书【设计题目】班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。
对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。
可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。
【基本要求】1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。
2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。
3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。
【算法思想】1.根据要求,通讯录数据以文本文件存放在文件中:2.需要提供文件的输入输出的等操作:3.还需要保存记录已进行修改,删除,查找的操作:4.另外还需提供键盘式选择菜单实现功能的选择。
【总体设计】图1系统功能模块图【详细设计】主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2.主函数流程图Voidmenu()/*主界面*/{intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch(); do{puts("\t*******菜单**************\t\n\n");puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t*****信息1002班通讯录*************\t\n");printf("请选择服务种类(1-7):[]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/【模块流程图】main函数delete函数search函数1”,进入新建联系人。
通讯录管理系统报告书
《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;}。
通讯录管理系统实验报告
实验报告----通讯录管理系统专业:计算机嵌入式班级:10455341日期2012-05-28一.实验目的1.通过这一项目的实现,进一步掌握利用连接都数据库进行访问。
2.掌握利用来操纵数据库中的数据的方法。
3.通过本次实验来提高编程能力和独立解决编程问题的能力。
二.实验内容1.设计并实现“通讯录管理系统”。
该系统提供多用户的通讯录管理,并能对通讯录中的联系人分组。
2.具体任务①完成“用户管理”窗口②完成“用户登录”窗口③完成“主窗体”窗口④完成“新增/修改联系人”窗口⑤完成“新增/修改分组”窗口(不在题目要求范围之内)⑥完成“查找联系人”窗口⑦完成“用户注册”窗口(为方便使用用户管理而添加的,不在题目要求范围之内)三.实验环境Microsoft Visual Studio 2008语言:C#四.实验分析、代码及运行结果本次实验实现通讯录管理系统的基本功能,包括用户管理、用户登录、修改/新增联系人、修改/新增分组、查找联系人、用户注册等。
本实验中所有数据全部放在ADDBRS数据库中,该库在Form1_Load中创建,并同时在库中创建Users和Groups两张表,在以后每注册一个用户的时候就同时创建一张以用户名命名的表,用于存储联系人的信息。
主界面中对分组和联系人的增删改已经查看的控件不止一个,但下面的空间均调用菜单栏中的方法来实现操作。
添加/修改联系人为同一个窗口,添加/修改分组为同一个窗口在centerData类中声明一个静态字符串centerData.constr来代替所有代码中连接数据库所用到的字符串。
1.登陆窗体①截图②代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data;using System.Data.SqlClient;namespace 通讯录管理系统1{ public partial class Form1 : Form{ public Form1(){ InitializeComponent(); }public void AddLink() //用于将所有注册过的联系人添加在combox1的下拉菜单中{ comboBox1.Items.Clear();SqlConnection con = new SqlConnection();con.ConnectionString = CenterData.constr;con.Open();SqlCommand cmd = new SqlCommand("select name from Users", con);SqlDataReader dr = cmd.ExecuteReader();while (dr.Read()){ comboBox1.Items.Add(dr[0]); }con.Close();}private void Form1_Load(object sender, EventArgs e){ try //该距用于判断数据库ADDBRS是否已经存在{ SqlConnection con = new SqlConnection();con.ConnectionString = CenterData.constr;con.Open();con.Close();}catch //如果不存在try运行出错,则运行该语句,创建数据库和两个表{ SqlConnection conn = new SqlConnection();conn.ConnectionString = "Data Source=localhost;User ID=sa;Password=sa;";onn.Open();SqlCommand cmd = conn.CreateCommand();mandText = "create database [ADDBRS] ";cmd.ExecuteNonQuery();mandText = @"use [ADDBRS] create table Users (name nvarchar(50) NOT NULL,password nvarchar(50) NOT NULL,maxMan int NOT NULL,maxGroup int NOT NULL) ";cmd.ExecuteNonQuery();//Users用于存储用户名、密码、最多组别、最多联系人mandText = @"use [ADDBRS] create table Groups (GroupName nvarchar(50) NOT NULL,UserName nvarchar(50) NOT NULL)";cmd.ExecuteNonQuery();//Groups用于存储每个所有用户的分组信息conn.Close();}finally{ // TODO: 这行代码将数据加载到表“ers”中。
通讯录管理系统实践报告
通讯录管理系统实践报告一、需求分析1、功能要求通讯录管理系统至少应具有以下功能:(1)、能通过键盘向通讯录输入数据。
要求随时都能使用该项功能实现记录输入,一次可以输入一条记录,也可以输入多条记录。
所谓一条记录,是指通讯录中一个人的完整信息。
每个通讯录记录包括如下信息:序号、姓名、电话、所在城市。
(2)、能按照“所在城市”排序顺序显示通讯录存储的记录信息。
(3)、能对通讯录的信息进行删除。
要求删除时以记录为单位,既能一次删除一条记录,也能一次删除多条记录。
2 技术要求(1)通讯录信息以磁盘文件的形式存储,文件名,文件格式由设计者确定。
(2)对于通讯录功能中的数据输入、显示、删除等功能,要求编写功能独立的函数予以实现,其所属的各项功能尽量由独立的函数实现。
(3)以菜单方式实现功能选择控制。
(4)通讯录管理结束后,能正常退出通讯录管理程序。
(5)本通讯录管理程序能够实现300条记录的管理。
程二、.各功能的具体说明如下:通讯录信息输入。
1、、通过显示信息项目,逐渐输入通讯录记录信息。
1)(、每次输入记录后,通过询问的方式决定是否继续进行记录(2)输入。
因此,使用该功能即可录入一条记录,也可连续录入多条记录。
3)每次录入记录之前,显示通信录种理由的记录数。
( 2 通讯录信息查询)按排列顺序显示,即对通讯录中的记录进行排序后,在按照1(排序显示不能但不管使用何种排序算法,排序结果显示出来。
改变通讯录记录的物理顺序。
条20)当通讯录信息较多时,实行分屏显示,每屛最多显示(2 记录信息。
)显示记录时,对每一条记录增加与现实顺序一致的序号。
3(通讯录信息查询3(1)提供按姓名查询(2)查找成功后显示每一条符合条件记录的完整信息,当一屛不能完成显示时,实行分屏显示,每屛最多显示20条符合条件的记录。
当找不到符合条件记录时,给出相应的提示信息。
4 通讯录信息删除(1)提供按姓名删除,当找到指定记录时,进行删除操作。
找不到指定记录时,给出相应的提示信息。
同学录管理系统可行性分析研究报告——胡振立
成绩录管理系统可行性分析研究报告本报告说明拟议中的软件项目在技术上、经济上和社会条件方面的可行性,评述各种可能的选择方案,并提出倾向性意见。
本报告由以下表格组成:本报告由受托单位提出,作为委托单位对拟议中系统开发的决策依据。
系统分析员:_______________________(签名)日期: 年月日1. 引言2. 可行性研究的前提2.1.项目基本要求2.2.项目基本目标2.3.项目开发条件、假定和限制3. 对现有系统的分析3.工作负荷现有系统需人工输入课程名称,且不能一次存储多项成绩,也不能同时存储多个学生的成绩,操作量大,容易出错,不能多项关键字查询学生信息,操作复杂。
4.费用开支由于系统老旧,操作复杂易出错,所以需大量的人员来管理,费用花费很大。
以及运行的不稳定性,需要经常更新硬件。
5.设备和人员需要大量的人员来管理,维护其数据,出错率较高。
出现很多冗余信息。
设备较老旧,不能满足该系统基本需求,所有经常超负荷工作,容易导致损坏。
6.局限性对人力资源进行大量的浪费,而且安全性不是很高。
处理时间赶不上需要,响应时间较长,数据存储能力不足,处理功能不够,该系统在最初的开发研究中就出现了很多不足,引发的以上的局限性已并非可以用简单维护来解决,这样只会增加经济负担和人员浪费,所以需重新开发该系统。
3.1. 现有系统的处理流程和数据流程主文档名称可行性分析研究报告主文档编号 A3.2. 现有系统简明情况4. 对所建议系统的分析4.1. 所建议系统的概述4.2. 所建议系统的处理流程和数据流程4.3. 改进、影响和局限性5. 可行性分析5.1. 技术条件可行性分析5.2. 经济可行性分析5.3. 社会因素方面的可行性分析6. 可行性分析结论。
通信录管理系统报告
程序设计报告题目:通信录管理系统告的设计通讯录管理系统一、课题内容和要求本课题是设计通信录管理系统。
从通信录的数据信息构成上,假设其有四项信息,数据类型均以字符串类型存储。
数据项:姓名、地址、邮政编码、电话号码数据类型:均为String类数据存储结构:单链表结合文本文件实现功能:数据项存取、显示、删除记录、查询记录等功能。
功能细则:增加功能:通讯录文件中,当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;显示功能:可显示通讯录中所有联系人;查询功能:输入某个人的姓名时,可以查询联系人相关信息;修改功能:输入某个人的姓名时,可对此人在通讯录中的相应数据进行修改;删除功能:输入某个人的姓名时,可对此人在通讯录中的相应数据进行删除。
主界面提供菜单选择的方法选择实现某一功能,一次运行程序能进行多次选择执行不同的功能。
二、需求分析本程序设计在Java project(H10000724)内共有两个类。
Linklist类:实现了单链表的存储结构。
Fileimport类:实现了主方法,以及各个功能的方法。
(对于主方法起名Fileimport表示抱歉,初衷只是想创建Import导入方法从文本文件向链表导入信息,后来思路改变,逐渐发展成主方法所在类)主方法(public static void main(String[] args))为Switch-Case选择语句与do-while循环构成的菜单。
添加方法对应Addperson(),可以将新增联系人添加到链表的最后,当联系人重复则取消添加。
显示方法对应Display(),可以打印出所有联系人的信息。
搜索方法对应Search(),当输入联系人姓名时可以搜索相关信息。
修改方法对应Update(),当输入联系人姓名时,可以根据操作提示修改联系人信息。
删除方法对应Delete(),输入联系人姓名可以删除此人相关信息。
导入方法Import(),将源文件所在目录下文本文件中的信息导入到链表中。
通讯录管理系统项目可行性分析
通讯录管理系统项目可行性分析一、引言通讯录是一种用于存储和管理联系人信息的工具。
随着社交网络的普及和移动通信技术的飞速发展,人们对于通讯录管理系统的需求越来越大。
通讯录管理系统项目旨在帮助用户高效地管理联系人信息,实现快捷、便利的联系方式。
二、项目背景随着互联网和移动通信技术的不断进步,人们越来越多地依赖于手机和其他移动设备进行沟通。
与此同时,人们的社交网络也变得更加庞大复杂。
传统的纸质通讯录已经无法满足用户的需求,通讯录管理系统成为了必需。
通过开发通讯录管理系统,可以帮助用户更方便地存储、管理和查找联系人信息,提高沟通的效率。
三、项目目标通讯录管理系统项目的目标是设计和开发一个功能完善、易于使用的系统,实现以下目标:1. 提供用户友好的界面,方便用户使用和操作。
2. 实现联系人信息的快速添加、编辑和删除功能。
3. 支持多种联系人信息的存储和管理,如电话号码、电子邮箱、地址等。
4. 提供快速搜索功能,方便用户按照关键字查找联系人。
5. 支持导入和导出联系人信息,方便用户在不同设备之间进行数据迁移。
6. 提供数据备份和恢复功能,确保联系人信息的安全性。
四、可行性分析1. 技术可行性本项目使用现代的软件开发技术,如Web开发、数据库设计等。
这些技术已经成熟并广泛应用,具备较高的稳定性和可靠性。
同时,开发团队具备相关的技术背景和经验,能够成功地完成项目。
2. 经济可行性通讯录管理系统是一种低成本、高效益的项目。
它可以帮助用户节省时间和精力,提高工作效率。
随着互联网和移动设备的普及,用户对于通讯录管理系统的需求越来越大,市场潜力巨大。
因此,从经济角度来看,该项目具备可行性。
3. 运营可行性通讯录管理系统具备较强的运营潜力。
通过广泛的宣传推广和用户口碑的传播,项目能够吸引更多用户使用,并持续增加用户数量。
同时,系统还可以与其他应用程序进行集成,提供更丰富的功能和更好的用户体验,进一步提高用户的黏性和忠诚度。
通讯录管理系统设计报告
淮南师范学院计算机与信息工程系《软件工程》课程设计通讯录管理系统项目软件工程报告专业班级:计算机科学与技术08(1)班项目组号:六组长:闫丙锋组员:闫丙锋、沈超、周世睿指导老师:***2011年6月20日总目录项目安排 (1)可行性分析 (2)需求分析 (7)结构设计 (21)编码 (33)测试 (42)项目总结 (55)通讯录管理系统项目软件工程分工安排1、需求分析负责人:沈超参与人:沈超、闫丙锋2、软件设计负责人:周世睿参与人:周世睿、闫丙锋3、编码工作负责人:闫丙锋参与人:闫丙锋4、测试工作负责人:闫丙锋参与人:闫丙锋通讯录管理系统项目软件可行性分析报告负责人:闫丙锋参与人:沈超、闫丙锋审核人:周世睿可行性分析目录1.1引言 (4)1.1.1背景 (4)1.1.2项目概述 (4)1.1.3文档概述 (5)1.2可行性分析的前提 (5)1.2.1项目要求 (5)1.2.2项目目标 (5)1.2.3 目的环境、条件、假定和限 (5)1.3可选的方案 (5)1.4经济可行性 (5)1.5技术可行性 (6)1.6法律可行性 (6)1.7用户可行性 (6)1.8结论 (6)2011年6月2日第1章可行性分析§1.1引言计算机已经升入到日常工作和生活的方方面面,已经成为我们学习和工作的得力助手,隔行隔夜的人们都在使用计算机完成许许多多的工作。
然而,虽然现在时间上的各种软件测出不穷,但它们依然不能满足用户的各种特殊需要,人们还得不得不开发适合自己特殊需要的软件。
通讯录管理系统是各种单位部门或家庭不可缺少的不分,它可以很方便的帮助单位中的工作人员管理各自的联系人。
通过市场调查,此类小型软件在各种公司的需求比较大,而且很多家庭也有此类需求各种联系人也不断增多,如上司,同事,家人,朋友和同学等,很大一部分人仍在使用普通的纸质通讯录来记录这些联系人的信息,这种方式存在如下缺陷。
◆存储信息量少,查找不方便;◆信息容易丢失,但不能存放纸质无法存储的东西;◆安全性不高,没有隐私性可言。
通讯录管理系统项目可行性分析
通讯录管理系统项目可行性分析概述通讯录管理系统作为一个小型的信息系统项目,主要目的是帮助用户集中管理通讯录信息,方便用户查询、维护及分享联系人信息。
本文将对该项目进行可行性分析,并对可能遇到的问题和解决方案进行探讨。
市场分析通讯录管理系统开发的目的是服务用户,因此首先要考虑的是市场需求。
当前,随着社交媒体、通信技术的迅猛发展,用户每天处理的信息量越来越大,通讯录的管理也变得越来越复杂。
同时,不同的用户还需要适用于不同终端的通讯录应用,如智能手机、电脑等。
因此,开发一个通用、易用的通讯录管理系统符合当前市场需求。
项目开发分析项目的开发涉及多个方面,包括系统架构设计、数据库设计、系统功能设计、应用程序开发等。
在进行项目开发之前,必须要进行可行性分析。
可行性分析包括以下几个方面:1. 技术可行性分析:该项目需要使用到的技术包括前端技术(HTML、CSS、JavaScript等)、后端技术(PHP、Java等)、数据库技术(MySQL、Oracle等)等。
技术上的可行性在于开发人员是否具备相关技术能力,并且这些技术是否能够实现该项目的要求。
2. 经济可行性分析:该项目的开发需要投入一定的资金和人力,因此需要对项目的经济可行性进行分析。
在开发初期需要编写详细的开发计划,并估算出开发成本和预期收益,分析是否值得开发。
3. 时间可行性分析:该项目的开发需要一定的时间,需要合理安排时间表,避免在开发过程中时间紧迫,导致开发质量降低。
4. 环境可行性分析:开发需要考虑使用哪种开发环境,如开发操作系统、Web服务器、数据库环境等问题,以确保项目能够达到预期的目标。
开发人员必须对以上四个方面进行合理的分析和评估,在评估出项目可行之后再开始开发。
问题与解决方案分析在开发过程中可能会遇到各种问题,需要及时进行解决。
以下是一些可能遇到的问题及解决方案:1. 数据库性能问题:随着数据量的增加,数据库的查询效率会越来越低。
解决方法是使用合适的数据库技术和优化数据库设计。
