C++语言课程设计说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++程序设计课程设计说明书
通讯录管理
指导教师:陈淑鑫
专业班级:通信094班
设计者:组长:肖鹏飞
组员:宋超梁国峰
设计时间:2010年9月 20日至2010年9月 24日
通讯录管理
一、需求分析
在本系统中完成通讯录相关操作
(1)本系统将使用结构体类型来描述描述通讯录某个功能的基本情况,因为结构体能包括各种不同类型的数据便于对问题的描述。

(2)本系统将对用户信息管理,因此采用类来存放数据。

(3)由于是一个操作系统,所以系统将对数据在程序运行后应能保存,以备使用。

因此数据必须以文件形式保存到磁盘里。

二、系统的软硬件环境
1 软件环境:(1)WINDOWSXP操作系统(2)visaul C++6.0以上版本
2 硬件环境:兼容机Intel(R)Pentium(R)4,硬盘80G, CPU2.93GHz,256MB
内存配置。

三、系统模块功能
一、组员分工
1)、肖鹏飞主要负责总体设计,主程序、用户信息模块和管理模块程序的编码与调试,编写说明书、任务书、开题报告。

2)、宋超,负责用户信息输入模块和信息查询模块程序的编码与调试
3)、梁国峰负责信息删除模块程序的编码与调试。

二、模块功能及程序操作步骤(设计思路和程序框图)
1)程序运行后的结果,显示相关功能的使用方法(如图一)
图一
2)用户信息的输入模块,实现用户基本信息(包括用户姓名、地址、固定电话号码、邮政编码)的输入(如图二)
图二
3)分屏显示模块,完成行内间的显示功能。

按2后按Enter键即可实行, (如图三)
图三
4)信息查询模块,完成用户对通讯信息的查询功能。

按0返回业务页面后,按3后按Enter键即可实行(如图四)
图四
5)、删除联系人信息模块,完成的是用户对联系信息删除功能。

按0返回业务页面后,按4后按Enter键即可(如图五)
图五
6)、信息修改模块,完成的是用户信息修改功能。

按0返回业务页面后,按6后按Enter键后在按相应的提示按键即可(如图六)
图六
四、使用范围
1)描述使用方法
先对程序运行,得出运行结果,按相应数字就可执行相应模块功能
2)在执行每一项模块时,都有相应的数字控制,在执行其中一个模块后会返回到主菜单,根据需要选择你想要执行的下一个模块。

五、结束语
一)、本程序实现了用户信息的输入,运用了很多模块管理系统内部结构,实现了相应功能。

本程序的优点:
1) 界面新颖,比较通用。

2)程序简单,易懂,容易维护。

3)便于操作。

二)、我组员在此次学习中学习到了很多知识,相应的运用了很多我们曾学习的知识三)、不过还是有不足的地方,在录入源程序时会经常漏掉一些字母和符号(尤其是语句后的结束符号“;”),忘记字母的大小写,这些影响后来的程序运行分析,在链接、运行时会有错误显示,使之不能运行出结果。

但在大家的共同努力下找出了错误并将其改正。

附:打印源程序代码
//*********************************************************
//*程序名:5.cpp *
//*作者:肖鹏飞,宋超,梁国峰//*编制时间:2010年9月22日*
//*主要功能:课程设计——通讯录管理*
//*********************************************************
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n=0;
struct person
{char name[20];
char WP[20];
char PN[20];
char PC[20];
};
void fun1 (struct person b[100],int B[100])
{int i=0;
int H;
do
{printf("请输入第%d个联系人的信息\n",i+1);
printf("请输入姓名:");
scanf("%s",b[B[i]].name); printf("\n");
printf("请输入工作地址:");
scanf("%s",b[B[i]].WP); printf("\n");
printf("请输入固定电话号码:");
scanf("%s",b[B[i]].PN); printf("\n");
printf("请输入邮政编码:");
scanf("%s",b[B[i]].PC); printf("\n");
i++;n++;
printf("1继续输入;0退出\n");
scanf("%d",&H);
}while(H!=0);
printf("\n");
}
void fun2 (struct person F[100],int h[100])
{int i=0,t,k,p,m;
t=n/10;
printf("所有联系人的信息如下:\n");
printf("姓名\t单位\t固定电话\t邮政编码\n");
if(t==0)
{for(i=0;i<n;i++)
printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[h[i]].name,F[h[i]].WP,F[h[i]].PN,F[h[i]].PC);}
else
{for(k=0;k<t;k++)
{for(i=0;i<10;i++)
printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[h[10*k+i]].name,F[h[10*k+i]].WP,F[h[10*k+i]].PN,F[h[1 0*k+i]].PC);
printf("输入‘1’显示下一页\n");
scanf("%d",&p);
if(p==1)
system("cls");}
m=10*t;
for(i=0;m<n;m++)
printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[h[m]].name,F[h[m]].WP,F[h[m]].PN,F[h[m]].PC);} }
void fun3(struct person d[100],int e[100])
{char x[20],p[2];
int D,i;
do{int m=0;
printf("请输入要查找的信息:\n");
scanf("%s",&x);
for(i=0;i<n;i++)
if(!strcmp(d[e[i]].name,x)||!strcmp(d[e[i]].WP,x)||!strcmp(d[e[i]].PN,x)||!strcmp(d[e[i]].PC,x)) {D=e[i];
printf("要查询的联系人信息如下:\n");
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",d[D].name,d[D].WP,d[D].PN,d[D].PC);}
printf("输入Y或y继续查询,输入N或n退出\n");
scanf("%s",&p);
}while(!strcmp(p,"Y")||!strcmp(p,"y"));
}
void fun4(struct person c[100],int k[100])
{char d[20]; char p[2];
int t(10),j,i,x;
do{printf("请输入要删除的联系人信息:\n");
scanf("%s",&d);
for(i=0;i<n;i++)
if(!strcmp(d,c[k[i]].name)||!strcmp(d,c[k[i]].WP)||!strcmp(d,c[k[i]].PN)||!strcmp(d,c[k[i]].PC))
j=k[i];
for(x=j;x<n;x++)
k[x]=x+1;
n--;
printf("输入Y或y继续,输入N或n退出\n");
scanf("%s",&p);
}while(!strcmp(p,"Y")||!strcmp(p,"y"));
}
void fun5(struct person b[100],int B[100])
{int H;
do
{printf("请输入添加联系人的信息\n");
printf("请输入姓名:");
scanf("%s",b[B[n]].name); printf("\n");
printf("请输入工作地址:");
scanf("%s",b[B[n]].WP); printf("\n");
printf("请输入固定电话号码:");
scanf("%s",b[B[n]].PN); printf("\n");
printf("请输入邮政编码:");
scanf("%s",b[B[n]].PC); printf("\n");
n++;
printf("1继续添加;0退出\n");
scanf("%d",&H);
}while(H!=0);
printf("\n");
}
void fun6(struct person T[100],int r[100])
{char p[2],d[20];
int i,t;
do
{printf("请输入要修改联系人信息:\n");
scanf("%s",&d);
for(i=0;i<n;i++)
if(!strcmp(d,T[r[i]].name)||!strcmp(d,T[r[i]].WP)||!strcmp(d,T[r[i]].PN)||!strcmp(d,T[r[i]].PC)) {t=r[i];
printf("请输入改后联系人的信息\n");
printf("请输入姓名:");
scanf("%s",T[t].name); printf("\n");
printf("请输入工作地址:");
scanf("%s",T[t].WP); printf("\n");
printf("请输入固定电话号码:");
scanf("%s",T[t].PN); printf("\n");
printf("请输入邮政编码:");
scanf("%s",T[t].PC); printf("\n");
}
printf("输入Y或y继续,输入N或n退出\n");
scanf("%s",&p);
}while(!strcmp(p,"Y")||!strcmp(p,"y"));
}
void main()
{struct person a[100];
int A[100],i,X;
for(i=0;i<100;i++)
A[i]=i;
do
{printf("*************************菜单************************\n"); printf(" 请选择要进行的操作\n");
printf(" 1 : 输入联系人信息\n");
printf(" 2 :分屏显示所有联系人信息\n");
printf(" 3 : 查找联系人信息\n");
printf(" 4 : 删除联系人信息\n");
printf(" 5 : 增加联系人信息\n");
printf(" 6 : 修改联系人信息\n");
printf(" 0 :退出\n");
scanf("%d",&X);
printf("*************************菜单************************\n"); switch(X)
{case 1: fun1(a,A);break;
case 2: fun2(a,A);break;
case 3: fun3(a,A);break;
case 4: fun4(a,A);break;
case 5: fun5(a,A);break;
case 6: fun6(a,A);break;
}
}while(X!=0);
}。

相关文档
最新文档