c++程序设计做个通讯录管理。

来源:百度知道 编辑:UC知道 时间:2024/06/09 09:45:43
通讯录管理
1.主要功能:
(1)能建立、修改和增删学生通讯录:
(2)能够按多种方式进行查询
2.要求:界面友好,易于操作
要求:
1) 只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3) 学生可自动增加新功能模块(视情况可另外加分)
(4)设计要求数据用类组合数据与操作
(5)可以使用继承的方法构造类,应尽量使用已减少代码的冗余度
(6)对字符串类型的输入和输出,要求对“<<”和“>>”运算符进行重载。例如考虑到输人学号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求。
(7)写出课程设计报告,具体要求见相关说明文档.要有需求分析等不少于十页。正文包括以下7个内容:
1.需求分析
以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:
(1) 输入的形式和输入值的范围;
(2) 输出的形式;
(3) 程序所能达到的功能;
(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
2.概要设计
说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
3.详细设计
实现概要设计中定义的所有类,对每个操作只需要写出伪码算法;画出UML图 ,可采用流程图等进行描述,画出函数和过程的调用关系图。
4.调试分析
内容包括:
a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;
b.算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和 改进设想;
c.经验和体会等。
5.用户使用说明
说明如何使用你编写的程序,详细列出每一步的操作步骤。
6.测试结果
列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格,最好多于需求分析中所列。
7.参考文献
列出参考的相关

#include <stdio.h>
#include <stdio.h>
#include <string.h>
#define maxlen 100
struct persons
{ char name[10];
char addr[20];
char phnum[10];
}persons[maxlen];
;
;
;
typedef struct lnode{
char name[10];
char addr[20];
char phnum[10];
struct lnode *next;
}listnode,*linklist;
;
;
;
linklist head=NULL,r=NULL;
listnode *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7;
int i;
char name1[10],ch;
char str1[20];
FILE *fp; ;
void creat()
{ int j;
long k;
fp=fopen("people.txt","r+t");
if(fp!=NULL)
{for(i=1;i<maxlen;i++)
{ j=fgetc(fp);
if(j==EOF)
return;
k=i-1;
fseek(fp,k*sizeof(struct persons),0);
fread(&persons[i],sizeof(struct persons),1,fp);
s=(linklist)malloc(sizeof(listnode));
strcpy(s->name,persons[i].name);
strcpy(s->addr,persons