设计实现简单的通讯录C++课程设计

  • 格式:doc
  • 大小:96.50 KB
  • 文档页数:21

《计算机科学与应用系程序类课程设计》 设计报告书 题 目:设计并实现简单的通讯录 指导教师: 姓 名: 学 号: 日 期: 2013/5/16 计算机科学与应用系 2012-2013学年第二学期 一、 需求分析 ●功能需求分析: 通讯录主要有一下模块:录入纪录、查询纪录、修改纪录、显示纪录、删除纪录、

清空纪录、退出操作,其中姓名可以由字符和数字混合编码,电话号码可由字符和数字组成。 ○通讯录界面设计 主要功能是设计通讯录的界面,能够提示用户的实际操作等。我采用的是按照序号来实现相应的操作的,其中:录入纪录(I/i),查询纪录(S/s),修改纪录(M/m),显

示纪录(D/d),删除纪录(X/x),清空纪录(Q/q),退出操作(E/e)。 ○通讯录添加联系人模块 主要功能是添加联系人模块,添加操作是根据用户的要求实现的。按实际情况,将通讯录的录入选项加多,包括添加联系人的姓名,性别,出生年月,学校,

班级,电话号码,邮政编码, QQ号,家庭住址 ,最后输入完成后,将提示是否继续输入! ○通讯录查询联系人模块 主要功能是查询已添加的联系人。其中包括按名字查找和按班级查找。如果没有这条记录,将提示 对不起,你要查找的数据不存在! 反之,将分条显示该成员的数据。 ○通讯录修改联系人模块 主要是修改联系人的信息,界面提示要输入密码(1)和学生姓名,如果不正确,显示 要修改的学生不存在。如果正确,则显示出改联系人的所有信息,并提示根据下面提示修改信息,姓名,性别,出生年月,学校,班级,电话号码,邮政

编码, QQ号,家庭住址。 ○通讯录删除联系人模块 主要功能是删除不再需要的联系人。其中包括输入你要删除输入电话或电话号码如果没有的话,将提示:要删除的学生不存在!如果找到,则提示删除联系人的所有信息和这个人的信息已经从你的通讯录中删除的信息! ○通讯录显示所有联系人模块 显示所有的联系人的信息,包括姓名、电话、QQ、邮编、地址并提示所有联系人已经全部显示出来!! ○通讯录关闭通讯录模块 提示谢谢您的使用!

● 环境需求分析: 操作系统: Windows 7 开发软件: VC6.0

● 方法需求分析 该系统由于数据可能会很大,故采用文件操作,能够打开或修改指定文件及将多个文件组成一个文件。而联系人的信息则通过类的对象来保存,它完全使用类来实现,充分体现面向对象的程序设计特点。

二、 系统主要功能

●?建立文件??

○?存储文件可以使用默认文件名或指定文件名。??

○?可以不保存输入记录,但需要确认是否保存输入记录。??

○?如果已经有文件,只能在其后追加??

○?新增的记录可以不存入原文件中,也可以用原来的文件覆盖内存的内容。??

○?可以将指定文件的内容追加到目前内存的链表后面。??

●?文件的存取和显示?? ○?可以单独存取文件。??

○?可以随时显示内存中记录的全部内容。??

○?可以直接存取默认文件或指定文件。??

●?删除记录??

○?可以按“姓名”方式删除记录并更新。??

○?能给出被删除记录的信息。??

○?如果已经是空表,删除时应该给出提示信息并返回主菜单。??

○?如果没有要删除的信息,输出“没有找到”的信息。???

●?查询记录??

○?可以按“姓名”或“班级“方式查询记录。??

○?能给出查询记录的信息。??

○?如果查询的信息不存在,输出“没有找到“的信息。??

●?整体性能??

○?应可以随时检索、删除或增加新记录,也可以保存或取消新的记录。??

○?姓名可由字符和数字混合编码。??

○?电话号码可由字符和数字组成。?? 三、 流程图 总菜单选项 input( ) 添加 search ( ) 查找 deletes ( ) 删除 modify () 修改 display () 输出 qingkomg() 清空

Exit选项

主函数

四、 数据结构设计 软件中使用的结构体和结构体数组,如: strcpy(st[i].name,name); strcpy(st[i].sex,sex); strcpy(st[i].birth,birth); strcpy(st[i].school,school); st[i].Class=Class; strcpy(st[i].tel,tel); strcpy(st[i].box,box); strcpy(st[i].qq,qq); strcpy(st[i].address,address); }; 对用户的信息进行保存,他们都以二进制的形式读写。 其中:cout<<"请输入要修改的学生的姓名:\t"; char pName[20]; cin>>pName; for(i=0;i分别对姓名、地址、邮编、电话号码等进行储存 在子函数中运用了结构体数组 还运用了头文件:student.h 其中还使用大量的子函数,例如: void input(); //增加一条通讯录信息 void search(); //查询指定同学的信息 void modify(); //修改某一个同学的信息 void display(); //输出全部信息 void deletes(); //删除指定记录 void qingkong(); //清空所有记录 void menu(); //菜单选择 void biaotou(); //表头 五、 类设计 本程序有八个公有成员函数,九个私有成员。 公有:void input();用于增加通讯录的成员。 void search();用于查询通讯录中已经存入的成员。 void modify();用于对已存入通讯录的成员进行修改。 void display();用于将保存的通讯录进行输出。 void deletes();用于删除通讯录中已有的成员。 void qingkong();用于将通讯录中的所有成员清空。 void menu();主菜单,用于用户对功能的选择。 void biaotou();链表的标头。 私有:char name[20]; 存放姓名。 char sex[4];存放性别 char birth[10];存放生日 char school[20];存放学校 int Class;存放班级 char tel[15];存放电话号码 char box[10];存放邮政编码 char qq[15];存放QQ号 char address[20];存放家庭地址 下面贴上类的代码: class student { public: void input(); //增加 void search(); //查询 void modify(); //修改 void display(); //输出 void deletes(); //删除 void qingkong(); //清空 void menu(); //菜单选择 void biaotou(); //表头 private: char name[20]; //姓名 char sex[4]; //性别 char birth[10]; //出生年月 char school[20]; //学校 int Class; //班级 char tel[15]; //电话号码 char box[10]; //邮政编码 char qq[15]; //QQ号 char address[20]; //家庭住址 }; 六、 主要算法设计 采用模块化设计思想,定义了一个学生类,然后分别在类中定义实现各个功能的函数。在个人类中定义了九个私有变量,分别是姓名,性别,出生年月,学校,班级,电话号码,邮政编码, QQ号,家庭住址。 由主菜单选择进入通讯录,进行功能的实现。尽量使用简单明了的文字提示,让界面更加友好。 七、 主要代码 student.h #if !defined _STUDENT_H_ #define _STUDENT_H_ #include #include #include #include using namespace std; class student { public: void input(); //增加 void search(); //查询 void modify(); //修改 void display(); //输出 void deletes(); //删除 void qingkong(); //清空 void menu(); //菜单选择 void biaotou(); //表头 private: char name[20]; //姓名 char sex[4]; //性别 char birth[10]; //出生年月 char school[20]; //学校 int Class; //班级 char tel[15]; //电话号码 char box[10]; //邮政编码 char qq[15]; //QQ号 char address[20]; //家庭住址 }; #endif /*******************************************************************/ student.cpp

#include"student.h" int num=0; int i=0; student st[100]; //学生个数 /***************************** * 学生通讯录信息的输入 * *****************************/ void student::input() { fstream file; char ch='y'; //以输出方式打开文件,如果已经有此名字的文件,则其原有内容全部删除。