1、 Windows 7开发软件: VC6.0 方法需求分析该系统由于数据可能会很大,故采用文件操作,能够打开或修改指定文件及将多个文件组成一个文件。而联系人的信息则通过类的对象来保存,它完全使用类来实现,充分体现面向对象的程序设计特点。二、 系统主要功能?建立文件?存储文件可以使用默认文件名或指定文件名。可以不保存输入记录,但需要确认是否保存输入记录。如果已经有文件,只能在其后追加?新增的记录可以不存入原文件中,也可以用原来的文件覆盖内存的内容。可以将指定文件的内容追加到目前内存的链表后面。文件的存取和显示?可以单独存取文件。可以随时显示内存中记录的全部内容。可以直接存取默认文件或指定文件。删除
2、记录?可以按“姓名”方式删除记录并更新。能给出被删除记录的信息。如果已经是空表,删除时应该给出提示信息并返回主菜单。如果没有要删除的信息,输出“没有找到”的信息。查询记录?可以按“姓名”或“班级“方式查询记录。能给出查询记录的信息。如果查询的信息不存在,输出“没有找到“的信息。整体性能?应可以随时检索、删除或增加新记录,也可以保存或取消新的记录。姓名可由字符和数字混合编码。电话号码可由字符和数字组成。三、 流程图四、 数据结构设计软件中使用的结构体和结构体数组,如: strcpy(sti.name,name); strcpy(sti.sex,sex); strcpy(sti.birth,bir
3、th); strcpy(sti.school,school); sti.Class=Class; strcpy(sti.tel,tel); strcpy(sti.box,box); strcpy(sti.qq,qq); strcpy(sti.address,address);对用户的信息进行保存,他们都以二进制的形式读写。其中:coutpName; for(i=0;inum;i+)分别对姓名、地址、邮编、电话号码等进行储存在子函数中运用了结构体数组还运用了头文件:student.h其中还使用大量的子函数,例如: void input(); /增加一条通讯录信息 void search(); /
4、查询指定同学的信息 void modify(); /修改某一个同学的信息 void display(); /输出全部信息 void deletes(); /删除指定记录 void qingkong(); /清空所有记录 void menu(); /菜单选择 void biaotou(); /表头五、 类设计本程序有八个公有成员函数,九个私有成员。公有:void input();用于增加通讯录的成员。void search();用于查询通讯录中已经存入的成员。用于对已存入通讯录的成员进行修改。用于将保存的通讯录进行输出。用于删除通讯录中已有的成员。用于将通讯录中的所有成员清空。主菜单,用于用户对
5、功能的选择。链表的标头。私有:char name20; 存放姓名。 char sex4;存放性别 char birth10;存放生日 char school20;存放学校 int Class;存放班级 char tel15;存放电话号码 char box10;存放邮政编码 char qq15;存放QQ号 char address20;存放家庭地址下面贴上类的代码:class student public: /增加 /查询 /修改 /输出 /删除 /清空private: char name20; /姓名 /性别 /出生年月 /学校 /班级 /电话号码 /邮政编码 /QQ号 /家庭住址六、 主要算
6、法设计采用模块化设计思想,定义了一个学生类,然后分别在类中定义实现各个功能的函数。在个人类中定义了九个私有变量,分别是姓名,性别,出生年月,学校,班级,电话号码,邮政编码, QQ号,家庭住址。由主菜单选择进入通讯录,进行功能的实现。尽量使用简单明了的文字提示,让界面更加友好。七、 主要代码#if !defined _STUDENT_H_#define _STUDENT_H_#include iomanipfstreamstringusing namespace std;#endif/*/student.cpp#includestudent.hint num=0;int i=0;student
7、st100; /学生个数/* 学生通讯录信息的输入 */void student:input() fstream file; char ch=y /以输出方式打开文件,如果已经有此名字的文件,则其原有内容全部删除。 while(ch=|ch=Y) coutsti.name;t请输入性别:sti.sex;t请输入出生年月(如199109):sti.birth;t请输入学校:sti.school;t请输入班级(数字):sti.Class;t请输入电话号码:sti.tel;t请输入邮政编码:sti.box;t请输入QQ号:sti.qq;t请输入家庭住址:sti.address; filesti.na
8、me sti.sexsti.birth sti.schoolsti.Classsti.telsti.boxsti.qqsti.addresst继续输入?(Y/N):ch; num+=1; i+; coutt您一共输入了num个人学生的记录。n file.close(); menu();* 学生通讯录的修改 *modify()修改需密码,请输入(1): int p;p; if(p!=1)t*密码错误!* return; else if(strcmp(sti.name,pName)=0) break; else coutname;请输入修改后的性别:sex;请输入修改后的出生年月:birth;请输
9、入修改后的学校:school;请输入修改后的班级(数字):Class;请输入修改后的电话号码:tel;请输入修改后的邮政编码:box;请输入修改后的QQ号:qq;请输入修改后的家庭住址:address; strcpy(sti.name,name); for(i=0; filet*修改成功*n* 学生通讯录的查询 *search() char *inputname=new char20; file.open(d:student.txt,ios:in|ios:out);/以读的方式打开文件t1.按姓名查询 2.按班级查询 int a;a; if(a=1)t请输入您要查询的学生的姓名:inputna
10、me; int flag=0;=num; if(strcmp(sti.name,inputname)=0)t姓名为inputname的学生的信息如下: biaotou(); flag=1; if(flag!t对不起,您要查找的数据不存在! return; else if(a=2) int flag2=0;t请输入您要查询的学生的班级: int inputClass;inputClass; if(sti.Class=inputClass)t班级为inputClass flag2=1; if(flag2! coutsti.namesti.sexsti.birthsti.schoolsti.Clas
11、ssti.telsti.boxsti.qq* 学生通讯录的删除 *deletes() t需删除的学生的姓名是: char pName20; for(int i=0; if(strcmp(sti.name,pName)=0) break; for(int j=i;jj+)/将要删除的学生调至数组最后一位 student temp =stj; if(jnum-1) stj=stj+1; stj+1=temp; if(inum) num-=1;tt姓名为pName的学生已删除!t要删除的学生不存在!qingkong() num=0;t*通讯录已清空!*n/*表头*biaotou() 姓名 性别 出生
12、年月 学校 班级 电话号码 邮政编码 QQ号 家庭住址* 菜 单 选 择 函 数 *menu() while(1)t=zzia=zzia=zzia=zzia=zzia=zzia=nt| 制作者:黄逸雪 |nt| 录入纪录(I/i) |nt| 查询纪录(S/s) |nt| 修改纪录(M/m) |nt| 显示纪录(D/d) |nt| 删除纪录(X/x) |nt| 清空纪录(Q/q) |nt| 退出操作(E/e) |n李瑞晗 |nt| 欢迎您的使用 |n 请输入您的选择(I/i,S/s,M/m,D/d,X/x,Q/q,E/e,不区分大小写): char ch; switch(ch) casei caseI input();break;sS search();mM modify();dD
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1