通信程序设计实习报告

通信程序设计实习报告
通信程序设计实习报告

通信工程程序设计实习报告

经过为期十天的通信实习,我认识到了很多程序设计方面的东西,也学到了很多专业方面的知识。

从一开始上课时,我初步了解到了这几天的程序设计实习到底该做些什么,要做到什么样的程度,有些什么样的要求和内容。在老师所提供的几个选题中我们小组选择了现阶段使用的较多的语音查询系统“10086”,来进行我们的设计。

第一天实习,是比较手忙脚乱的,也是毫无头绪的,都是没头苍蝇乱撞。鉴于第一次在机房里头旁边还有个电话机,我还是有点小激动的,首先便把东进语音卡小玩了一下。平常编程时,编的都是一些比较小的程序,只是些简单的算法。在编语音卡程序时,我发现平常我们所学的东西好像实用性非常差,我的实践能力的缺乏。花了一天的时间,我就了解了一下语音卡使用的一部份内容,着重练习了MFC控件的使用。主要学习了如何添加按钮框,怎样实现点击按钮之后的内容的显示,以及按钮之间的内容的传递等。这一天的程序设计实习让我非常的担忧,我感觉我会的东西实在太少了,实在是不足以驾驭这样的实习,不过见大家都是这样,心情也没有那么差。

之后,我们便做了语音卡的放音,一开始我们先自己试着做,但是实在是由于对这个东西的了解太少了,搞了半天也实在是不知道从何处下手。然后我就试着从老师所给的语音卡实习指导书和DBDK编程参考手册中寻找解决方法,遇到不知道的问题或者不明白的东西就百度或者询问老师,开始我们找到了BOOL WINAPI StartPlayFile ( WORD wChnlNo, LPSTR FileName, DWORD StartPos )这个函数,但是对于函数的参数不了解,介于当时没有讲List,所以对于这样一个函数还是不知道从何下手的,上网百度后也没有找到比较好的讲解,正当我们手足无措的时候,老师给我们发过来一个示例,我们试运行了,直观地了解到了这个程序的功能。不过在运行时并没有直接的听到放音的效果,这下子又有点懵了,老师运行的时候明明是好的,怎么到了我们这儿就不行了呢?试了几次依然是什么声音都没有,我们便又开始寻找原因,对照函数看函数中的各个参数的意义,在看到通道号的时候,我们看了会儿才知道原来是通道号错了,是我们的通道号和老师所使用的机子不一样导致的,之后我们修改了,便运行正常。当时感觉就

是轻松啊,就一个放音就折腾了我们这么长时间,实在是令人费解。在这个过程中使用到的List控件,在对于UpdateData中的返回值及其含义在第一天的实习中我们就已经有了些许的了解。当返回值为TRUE时,表示将控件的内容保存到变量中;当返回值为FALSE时,表示将表示将变量的内容保存到控件中。当然在这个放音的制作过程当中,我们也运用到了列表框,这使得编写程序变得简单,而且很多功能也易于实现,显得更加简洁,这样会使得整个界面更加人性化。

在做语音卡放音的整个过程中,我们还遇到了一些比较重要的问题。

1.如何收号?

通过如下这样的一个函数来收号,前面的GetDtmfCode()函数的返回值是-1和1——16之间的数字,当有号收进去之后,则while判断成立,就继续进行下一个数字的录入,否则依然播放提示音要求用户的输入。

while((code=GetDtmfCode(m_ValidCh))!=-1)

{

Dtmf[len++]=ConvertDTMF(code);

m_List1.SetItemText(m_ValidCh,2,"收号");

}

2.收号之后在计算机中的存储与识别问题?

计算机中数字的存储是用ASCII码值来表示的,所以我们需要用到函数来进行数值的转换,以适应计算机的运行要求。因为GetDtmfCode()函数的返回值是这样表示的:

1~9:1~9键。10:0 键。11:*键。12:#键。13:A 键。14:B键。15:C键。16:D 键。

所以我们可以用这样的函数来进行转换:

char CMy2Dlg::ConvertDTMF(int ch)

{

char c;

switch(ch)

{

case 10:

c = '0';

break;

case 11:

c = '*';

break;

case 12:

c = '#';

break;

case 13:

case 14:

case 15:

c=ch-13+'a';

break;

case 0:

c='d';

break;

default:

c = ch + '0';//change DTMF from number to ASCII

}

return c;

}

3.DTMF缓存区的清空的相关问题?

在每次收号的时候都要做到对Dtmf缓存区的清空,只有这样才能准确的判断到底收了几位数,以便程序作出正确的响应,而不至于是程序无法进行。还有就是Dtmf缓存区他也有一定的长度,如果输入的数字过多,会导致在列表框里显示的时候,出现数字的乱码等问题,不能达到预期的结果。

4.如何做到按键的时候停止语音的播放?

我们可以设置在用户输入一个数字的时候则停止语音的播放,可以用if语句来判断,如果Dtmf的长度大于0,则停止语音的播放,但是收号继续,当收

号的长度达到指定之时,则继续下一阶段的提示音的播放。

5.用户摘机之后电话需要做出什么样的反应?

只是我们会使用到OffHookDetect()函数,当函数返回值为0时,表明用户未摘机,此时继续发送振铃音;若函数返回值为1,表明用户摘机,就停止对用户发送振铃音。然后则开始10086客户服务热线的欢迎词以及相关服务的提示音。

做完这个之后,我们便开始着手下一步的操作。当输入手机号码时,我们便会需要匹配,来确认数据库中是否有这样的手机号码,以防在接下来的操作中做无用功。遇到这样的问题,在一年的学习中,老师进场在一些这类的问题中提到数据库的使用,理所当然,我们首先想到的便是使用数据库,但是说会说,对数据库这个东西的使用确实不会的,所以我们便想到了数组,毕竟这东西是老生常谈的了。我们开始建立了个haoma[12]的数组,只是做了个最简单的只匹配一个手机号码的程序,用strcmp(Dtmf,haoma)进行比较,当函数值为零时,则提示输入密码,并进行密码的匹配,否则用m_ChState继续回到上一步。程序如下:if(strcmp(haoma,Dtmf)==0)

{

StartPlayFile(m_ValidCh,"shurumima",0L);

m_ChState=18;

strcpy(mima,"");

}

else

{

strcpy(mima,"");

m_ChState=19;

}

但是鉴于在实际使用中的电话号码不可能只有这么一点点,所以我们必须要导入数据库,将程序与数据库连接,通过数据库来实现号码与密码的匹配,这样才能大量的减少代码,提高代码的利用率,不至于拖沓冗长。在实验过程中我们连接的是Access数据库,所以我们在程序编写的时候需要添加文件的打开命令,

使我们能够在匹配密码时进入数据库调用。m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=myphone. mdb","","",adModeUnknown);。但是我们在导入数据库之后,并不是说我们就能够直接运用数据库里面的数,我们还需要将数据库里面的数取出来,并且转换成适合vc++使用的形式才可以。在匹配密码时编写这样的函数来获取数据库中的密码:

CString CMy2Dlg::getmima(CString ss)

{variant_t var;

//CString strName,strAge;

CString SQL,str;

str="";

int hh=0;

char*STRSQL;

//SQL="SELECT * FROM phone WHERE phonenum='"+shoujih+"'and password='"+mima+"'";//'"+shoujih+"'"

SQL="SELECT * FROM phone WHERE phonenum='"+ss+"'";

STRSQL=SQL.GetBuffer(SQL.GetLength());

//AfxOleInit();

m_pConnection.CreateInstance(__uuidof(Connection));

try

{

m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=myphone.mdb","","",adModeUnknown);

m_pRecordset.CreateInstance(__uuidof(Recordset));

m_pRecordset->Open(STRSQL,

m_pConnection.GetInterfacePtr(),

adOpenDynamic,

adLockOptimistic,

adCmdText);

while(!m_pRecordset->adoEOF)

{

//hh=1;

var = m_pRecordset->GetCollect(_T("mima"));

if(var.vt!=VT_NULL)

{

str= (LPCTSTR)_bstr_t(var);

}

m_pRecordset->MoveNext();

}

m_pRecordset->Close();

m_pRecordset = NULL;

if(m_pConnection->State)

m_pConnection->Close();

m_pConnection= NULL;

}

catch(_com_error *e)

{

AfxMessageBox(e->ErrorMessage());

}

return str;

}

同样以后的话费,余额中也是如此。只有这样才能将数据库中存储的字符串转换成程序中所要使用到的字符形式。当我们将密码从数据库中取出来,我们要做的就是将密码与相对应的号码进行匹配,从而进行下一步的操作,从相应的号码中取出相应的话费及余额的值提供给用户。密码匹配的程序代码如下:js=getmima(Dtmf);

if(strcmp(mima,js)==0) //字符串比较是否相等,进行密码的匹配

{

m_List1.SetItemText(m_ValidCh,2,"密码匹配上了");

m_ChState=18;

strcpy(mima,"");

}

else

{

m_List1.SetItemText(m_ValidCh,2,"密码不存在");

strcpy(mima,"");

m_ChState=19;

}

当我们做完密码的匹对之后,我们便开始着手下一步的操作,将话费和余额通过语音读出来呈现给用户。这中间有涉及到几个比较重要的问题:

1.如何将话费和余额读出来?

我们先用东进语音卡录入语音,然后将话费和余额读出来。这中间又会遇到两个问题:

(1).如何将数据库中的数转换成为适合vc++的形式

我们可以适应atoi函数进行转换,从而进行编辑。

(2).如何将从数据库中取出来的书拆分成一个个的数字

case 20:

m=atoi(str2);

if(m>=100) n=1;

else if(m>=10) n=2;

else n=3;

if(m==0){StartPlayFile(m_ValidCh,"0",0L);m_ChState=24;}

a=m/100;

b=(m-a*100)/10;

c=(m-a*100-b*10);

m_ChState=21;

break;

case 26:

m=atoi(str3);

if(m>=100) n=1;

else if(m>=10) n=2;

else n=3;

if(m==0){StartPlayFile(m_ValidCh,"0",0L);m_ChState=24;}

a=m/100;

b=(m-a*100)/10;

c=(m-a*100-b*10);

m_ChState=21;

break;

(3).如何将数字按照人们的读数习惯读出来?(主要是解决如何将数值中存在的“0”按照人们的习惯读通顺)

case 21:

if(n==1) k=a;

if(n==2) k=b;

if(n==3) k=c;

m_ChState=22;

if(n==4) m_ChState=24;

break;

case 22:

if((k==0&&c!=0&&b!=0)||(k==0&&c!=0))

StartPlayFile(m_ValidCh,"0",0L); //解决个位数十位数均为零和只有个位数为零时的读数问题

if(k==1) StartPlayFile(m_ValidCh,"1",0L);

if(k==2) StartPlayFile(m_ValidCh,"2",0L);

if(k==3) StartPlayFile(m_ValidCh,"3",0L);

if(k==4) StartPlayFile(m_ValidCh,"4",0L);

if(k==5) StartPlayFile(m_ValidCh,"5",0L);

if(k==6) StartPlayFile(m_ValidCh,"6",0L);

if(k==7) StartPlayFile(m_ValidCh,"7",0L);

if(k==8) StartPlayFile(m_ValidCh,"8",0L);

if(k==9) StartPlayFile(m_ValidCh,"9",0L);

m_ChState=23;

break;

case 23:

if(CheckPlayEnd(m_ValidCh))

{ StopPlayFile(m_ValidCh);

m_ChState=24;}

break;

case 24:

if(n==1){StartPlayFile(m_ValidCh,"百",0L);}

if(n==2&&b!=0){StartPlayFile(m_ValidCh,"十",0L);}//解决十位数为零的读数问题

if(n==3){StartPlayFile(m_ValidCh,"元",0L);}

if(n==4){StartPlayFile(m_ValidCh,"结束语",0L);}

n++;

m_ChState=25;

break;

case 25:

if(CheckPlayEnd(m_ValidCh))

{ StopPlayFile(m_ValidCh);m_ChState=21;}

if(n==5) {m_ChState=5;n=1;}

break;

case 5:

if(CheckPlayEnd(m_ValidCh))

{

StopPlayFile(m_ValidCh);

m_ChState=8;

}

break;

2.如果用户没有听清楚,我们该怎么办?

当用户没有听清楚时可以要求系统重新读一遍,以满足用户的需求。免得用户重新拨打浪费时间。在用户听完后,我们可以再放一段提示音,然后收号,当code==12时,我们则将m_ChState=22。这样就能够重新来读一遍了。

3.如何让用户选择自己所需要收听的内容,话费还是余额?

while((code=GetDtmfCode(m_ValidCh))!=-1)

{

Dtmf[len++]=ConvertDTMF(code);

m_List1.SetItemText(m_ValidCh,2,"收号");

if(code==1)

{

m_ChState=4;

i=4;

break;

}

else if(code==2)

{

m_ChState=6;

i=6;

break;

}

else if(code==3)

{

m_ChState=7;

i=7;

break;

}

4.当用户收听完毕之后,我们该是提示用户接下来该返回到上一层菜

单,还是什么也不说直接断线?

按照客户服务热线对用户提供的比较人性化的服务,我们必须做到更加友好的界面。程序如下:

while((code=GetDtmfCode(m_ValidCh))!=-1)

{

m_List1.SetItemText(m_ValidCh,2,"收号");

if(code==11)

{

m_ChState=12;

}

else if(code==12)

{

m_ChState=i;

}

else if(code==10)

{

StartPlayFile(m_ValidCh,"xiexie",0L);

m_List1.SetItemText(m_ValidCh,2,"感谢");

}

Dtmf[len]=0;

break;

}

做到这儿,我们已经做的差不多了,只是有点小问题需要自己来修正一下。在这次通信程序设计实习中,我学到了很多东西,在这次设计实习中,我充分的

将大一所学的C语言和C++结合到实际的应用中,在平常学习的基础上有了更深的了解和更加清晰的认识,不再像平常上课时的实验题那样针对性强,而是更加综合,更加要求我对所学内容的整合以及联系,这样会得到更加好的锻炼。通过这次在学校里的语音卡的实习,让我对通信这门专业有了稍微具体直观地认识,也会对我以后职业道路的专业知识以及实战经验方面的积累起到很大的作用。在这次实习中,我在遇到不会的问题以及记得不太清楚的问题时,就及时地想办法解答问题,这样对于知识的了解及消化有着相当好的帮助,能让自己更加好的掌握有关的知识。这次专业实习不仅让我体会到团队精神的重要性,更让我对自己所要学习的专业有了更加清醒地认识。

C语言课程设计报告—手机通讯录管理系统

C程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

一课程设计目的和内容概述 1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。 其中结构体,函数的调用,算法的设计是尤为重要的。 二题目 手机通讯录管理系统。 [问题描述] 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 [基本要求] 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名和电话号码 (3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类 当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三程序设计 1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计

通讯录管理系统课程设计报告书C语言

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: C语言课程设计 班级:

学号: 姓名: 指导老师: 月九年二〇〇九 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。. 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select())

通讯录管理系统课程设计报告完整版

通讯录管理系统课程设 计报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

设计课题题目 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main ()在程序设计中的实现思路和方法。 2. 课程设计要求 制作一个通讯录系统。 (1)该程序具有查找、添加、修改、删除功能。 (2)通讯录包括:姓名、电话、街道、城市、省、邮编等。 二、总体设计 根据系统的要求,系统总体设计如图1所示。 1

printf("\t--------------------\n"); printf("\t请您选择(0-7):"); scanf("%d",&c); }while(c>7&&c<0); return(c); } int Input(struct date per[10],int n) { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t姓名:"); scanf("%s",per[n+i].name); printf("\t电话号码:"); scanf("%s",per[n+i].phone); printf("\t电子邮箱:"); scanf("%s",per[n+i].email); printf("\tQQ:"); scanf("%s",per[n+i].QQ); gets(x); printf("\n\t是否继续添加?(Y/N)"); fflush(stdin); ame,per[i-1].phone,per[i-1].QQ,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } int Delete_a_record(struct date per[10],int n) { char s[20]; int i=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

通讯录设计报告

C程序设计报告 系(部、中心) 姓名学号 专业班级 课程名称 设计题目名称 起止时间 成绩 指导教师签名

目录 第1章题目与要求 (3) 1.1 基本要求(及格 (3) 1.2 高级要求(加分)... (3) 第2章用户需求分析 (3) 2.1 功能需求 (3) 第3章设计方案 (3) 3.1设计思路 (3) 3.2功能设计 (3) 第4章实施方案 (4) 第5章软件调试 (5) 5.1 错误介绍 (5) 5.2 错误分析及解决方案 (5) 第6章程序流程图及结构说明 (6) 第7章程序清单 (7) 第8章效果展示 (18)

第1章题目与要求 本次程序设计实践的题目是《通信录管理系统的设计》。 1.1基本要求(及格) (1)使用C语言,设计一个字符界面并带有菜单的通信录管理系统,每个记录中应包含:姓名、性别、年龄、联系电话、电子邮箱等项目。 (2)最大记录数:100。 (3)程序基本功能:显示记录、添加记录、删除记录。 1.2高级要求(加分) (1)以多文件方式设计该程序。 (2)对程序中的数据类型进行自定义(为方便程序的阅读和管理,定义自己的类型名)。 (3)能将该通讯录制作成文件保存于磁盘。 第2章用户需求分析 2.1 功能需求 通过《程序设计实践I(能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时用户需求的基本功能,要求系统需要有以下功能:(1)有菜单选择界面; (2)联系人信息修改简单方便,支持多种方式的修改; (3)方便的联系人信息查询,支持多种方式的查询; (4)联系人信息查看功能能供用户详细的查看; (5)退出时若用户更改了联系人相关信息或添加、删除联系人时,会提示用户联系人信息已更改是否保存; (8)有动态的开始界面。 第3章设计方案 3.1 设计思路 为了更好地实现上述内容,此程序采用了结构体、链表,来处理联系人的数据。结构体能够包含联系人的各项信息,如姓名、家庭地址、电话号码等,克服了数组只能包含同种类型的数据的缺点。链表数据的存放不需要连续的内存,相对于结构体数组减少了内存空间的浪费。利用fopen等函数创建文件、保存文件数据等,实现退出程序后联系人的数据能够保存,方便以后的查看、添加、修改等动作。采取多文件的方式,能够更好地对程序进行维护调试。 3.2 功能设计

C语言通讯录程序课程设计报告书

3.6 实例6 通讯录程序 本实例希望设计一个通讯录程序,要求实现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。 3.6.1. 设计目的 1、掌握结构体的基本工作原理和工作方式。 2、熟悉结构体与链表的使用方法。 3、熟悉C语言下数据的输入与输出。 4、掌握C语言下对TXT文件的读写操作。 5、熟悉函数的设计方法及调用方法。 3.6.2. 基本要求 1、本实例要求实现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。 3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。 4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。 5、系统设计完成后应实现类似下图所示界面。 3.6.3 设计结构及算法分析 在进行程序设计时,选择一种合理的数据存储结构是非常关键的。本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。 1、存储结构 本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所

示: struct stu { char name[20]; /*人名*/ char telephone[20]; /*电话*/ char sex[4]; /*性别*/ char company[20]; /*单位*/ struct stu *next; /*链表节点*/ }; typedef struct stu STU; 2、main()主函数 采用模块化设计,功能放在各模块函数中实现。主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。 3、mycreate()函数------创建链表函数 函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。链表建立完成后,可根据链表的头指针来添加后续指针。 4、myadd()函数------添加学生信息记录函数 函数根据用户输入信息,分配内存,将数据存储到结构体中,并建立新的链表节点,链接到已经建立好的链表尾部。 5、mydelete()函数------删除链表节点

C语言程序设计学生通讯录管理系统

C语言程序设计学生通讯录管理系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

#define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add();

int listbyname(); int dele(); int save(); int exit(); void main() { system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() {

char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录 \n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录 \n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n"); do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; } adduser()

C++-通讯录课程设计报告

C++面向对象程序设计 课程设计报告 》 设计题目:通讯录系统 学生学号: P P 学生姓名: 王元波次仁多布杰 专业班级:2009级计算机科学与技术(3)班学生成绩: 指导教师:蔡正琦 ] 计算机科学与信息工程学院 2010-6-26

一、设计任务分析 实现以下功能: · 1) 通讯录编辑(添加、删除); 2) 按不同的项进行查找; 3) 对已存在的通讯录按不同的项排序; 4) 将通讯录写入文件; 5) 从文件读入通讯录。 二、模块设计 本次程序设计主要设计了六个模块(主要是:(),(),(),(),(),(),())()函数用于通讯录中的信息进行添加,主要流程如下: — ()函数用于通讯录中的信息进行删除,主要流程如下:

()函数用于通讯录中的信息进行修改,主要流程如下: ()函数用于通讯录中的信息进行查找,主要流程如下:

~ ()函数用于通讯录中的信息进行排序,主要流程如下: ()函数用于从文本文件中读取信息,主要流程如下:

()函数用于将信息写入文本文件,主要流程如下:

三、… 四、主要数据结构 结构数组: struct student o<

通讯录C语言程序设计报告书

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j; fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

通讯录管理系统课程设计报告..

设计课题题目 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。 2. 课程设计要求 制作一个通讯录系统。 (1)该程序具有查找、添加、修改、删除功能。 (2)通讯录包括:姓名、电话、街道、城市、省、邮编等。 二、总体设计 根据系统的要求,系统总体设计如图1所示。

三、详细设计 1、数据结构设计 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" struct date //定义一个结构体类型数组 { char name[10]; /*姓名*/ char phone[12]; /*电话*/ char email[20]; /*邮箱*/ char QQ[20]; /*QQ*/ } per[10]; int menu() //主菜单选择函数 2.函数说明 (1) 主函数 main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。 (2)

四、程序清单 1、头文件 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" 2、主函数 void main() //主函数 { int n=0,i; while(1) { switch (menu()) { case 1: { printf("\n\t 通讯信息录入\n"); //信息录入 n=Input(per, n); } break; case 2: printf("\n\t\t\t 通讯录记录表\n"); //显示记录 Display(per,n); break; case 3: printf("\n\t保存功能\n"); WritetoText(per,n); //保存数据 printf("\t"); system("pause"); //操作完成后进行暂停 break; case 4: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(per,n); //删除记录 printf("\t"); system("pause"); break; case 5: printf("\n\t修改通讯录中的记录\n"); Change(per,n); //修改数据

通讯录系统程序设计报告

通讯录系统程序设计报告专业班级:电创新1301班 项目名称:通讯录系统程序设计 (address book system) 小组成员:陈灯念(组长) 罗晶晶 杨苒晨 于桐桐 盛超群 指导老师:张丽静 完成日期:2013年1月2日 教师评价:

目录 一、系统简介 1. 目标功能 2. 实现功能 3. 未实现功能 二、成员分工及完成情况 三、数据库 1. 登录数据库 2. 查询数据库 3. 老师通讯信息数据库 4. 同学信息数据库 四、具体模块设计 1. 登录部分 2. 主界面 3. 单击同学按钮 4. 单击老师按钮 5. 单击按姓名查找按钮 6. 单击按学号查找按钮功能 五、项目总结

一系统简介 ①目标功能: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2.登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“朋友”按钮,弹出对话框,可依次查看自己的朋友的通讯信息。 (4)单击“家人”按钮,弹出对话框,可依次查看自己的家人通讯信息。 (5)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 (6)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的学号,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 3. 点击同学,老师,朋友或家人按钮后,弹出对话框,可以单击“添 加”按钮或“删除”按钮添加或删除联系人或者单击“修改”按钮修 改联系人的信息。 ②实现功能: 通过本小组成员的通力合作,在看书和上网查询资料后,目前本通讯录实现的功能有: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2. 登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧”按钮,即弹出消息框显示被查询人的通讯信息。 (4)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须

java通讯录课程设计报告

JIANGXI AGRICULTURAL UNIVERSITY JA V A课程设计报告 题目:通讯录系统 二0一二年十二月 摘要 随着Internet速度的提高和使用的普及,网络上各式各样的应用层出不穷,通讯录系统就是其中的一种。在现实生活中,我们管理通讯录有多种方式,为了进一步提高管理通讯录的效率以及及时更新通讯录,特开发通讯录系统来方便用户使用和管理通讯录。 本系统采用Ecilpse编写程序,具有良好的程序结构和人机交互界面,通用性强。本文将从开发技术、需求分析、系统设计、编码实现和设计总结这几个方面,详细介绍

通讯录系统的设计和实现过程。 关键词:通讯录系统;JA V A;Eclipse;需求分析。

目录 1 绪论 (2) 1.1 概述 (2) 2 开发技术与工具选择 (2) 2.1 Eclipse介绍 (2) 2.1.1 Eclipse的基本概念 (2) 2.1.2 Eclipse 插件开发环境 (2) 2.1.3 Eclipse的主要组成 (2) 3 需求分析 (3) 3.1 概要说明 (3) 3.2 产品描述 (3) 3.3 系统功能列表 (3) 3.4 系统功能说明 (3) 3.4.1 <添加模块> (3) 3.4.2 <查询模块> (3) 3.4.3 <修改模块> (4) 3.4.4 <删除模块> (4) 3.5系统质量需求 (4) 4 系统设计 (4) 4.1说明 (4) 4.2总体设计结构图 (4) 4.3 总用例图 (5) 4.4 流程图 (5) 5 编码与实现 (8) 5.1包结构图 (8) 5.2主界面 (9) 5.3组操作的页面 (9) 5.4 好友操作界面 (10) 6 项目设计总结 (11) 6.1系统概述 (11) 6.2关键问题的分析和解决 (11) 6.3 系统展望 (11) 6.4 自身收获 (11) 致谢 (12) 参考文献 (13)

c语言课程设计学生通讯录管理系统精编版

c语言课程设计学生通讯录管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;

后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统; 设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20];

C语言程序的设计报告_个人通讯录

航空航天大学金城学院 《C语言程序设计》课程设计报告个人通讯录系统 学号:: 学号:: 日期:

目录 一、需求分析: (3) 二、程序的主要功能: (3) 三、程序运行平台: (3) 四、系统总框架图: (6) 五、程序类的说明: (6) 六、模块分析: (8) 七、比较有特色的函数: (9) 八、存在的不足与编程体会 (10) 九、程序源代码: (10)

一、需求分析 各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。 二、程序的主要功能 ?用户信息界面美观、简洁,采用菜单式显示功能选择; ?能够从磁盘文件输入和输出数据; ?能够对联系人信息进行增、删和改的操作; ?能够根据联系人的的拼音顺序从高到低排序; 三、程序运行平台 VC6.0 运行程序“perosnalcontact.exe”,进入登录界面如下 **************************** * * * * * 通讯录文件不存在! * * 通讯录文件已建立! * * * * * **************************** 按任意键进入主菜单 请输入您的数字选择: 一、按下任意键进入主菜单 您好! 欢迎使用通讯录! 1: 添加个人信息 2: 查询个人信息 3: 删除个人信息 4: 修改个人信息 5: 信息排序 6: 输出全部信息 7: 写入文件 8: 读取文件 9: 删除所有 0: 退出 请输入您的数字选择:

选择1进入添加信息模块: 请输入您要添加的联系人的信息: 请输入: 选择2进入查询个人信息模块: 欢迎使用查询菜单 1-按查询 2-按QQ查询 3-返回主菜单 请输入您的选择 选择3进入删除个人信息模块 删除菜单 1-删除单个 2-返回主菜单 请输入您的数字选择: 选择4.进入修改个人信息模块 1-按修改 请输入您的数字选择: 选择5.进入联系人排序模块 排序菜单 1-按排序 2-返回主菜单请输入您的数字选择: 选择6.进入输出信息模块 *************** 以下为通讯录所有信息************ ________________________________ 名字: 13213 性别: 2144444444444 手机: 44444444444 电子:44444444444 QQ:444444444 ________________________________ ************************************************ 请按任意数字键返回主菜单 选择7.进入写入文件模块

通讯录课程设计报告

大学 课程设计说明书 课程名称管理信息系统题目通讯录管理系统 学院 班级

学生姓名 指导教师 日期 目录 1.需求分析 (3) 2.系统分析 (4) 2.1.系统的可行性研究 (4) 2.2.功能需求分析 (4) 3.系统设计 (5) 3.1.系统模块设计 (5) 3.2.数据库设计 (5) 4.系统实施 (7) 4.1.开发环境 (7) 4.2.建立数据库 (7) 4.2.1.数据库创建代码 (7) 4.2.2.数据库表创建代码 (8) 4.3.程序设计 (10) 4.3.1.主程序的设计 (10) 4.3.2.登录界面的设计 (12) 4.4.系统测试 (19) 5.课程设计总结 (25)

6.参考文献 (26) 1.需求分析 随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须

经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。 通讯录管理系统是一个基于SQL数据库储存和JAVA界面模式的个人通讯录管理系统。它是将自己的联系人的具体信息集中管理,成为一个方便人们使用的小软件。在开发过程中主要运用Java, SQL Server技术,由于开发工具和数据库之间的良好使用,可以为开发带来方便,使之成为一个可施行的系统。从而达到开发的目的-----实现对通讯录信息的管理。 通过采用相关技术,以及老师的辅导和同学们的帮助,将系统设计的功能全部实现。功能包括:用户的登录, 添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯的联系人,并且可以根据数据表的各字段来查询你所要找的联系人等功能。 2.系统分析 2.1. 系统的可行性研究 目的:可行性研究的目的是用最小的代价在尽可能少的时间内确定问题是否能够解决。而该系统正式用比较简单的VFP语言来编写的小型的、实用的通讯录信息管理系统,既能很好地完成对用户信息的管理,又比较经济实惠。本系统采用的是VFP语言,在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上也有很丰富的相关资料,通过参考一些功能模块程序的设计,实现该系统是完全可以的。 本系统的设计是在windows XP中文版环境下,使用Visual开发的。它是可以运行于windows XP相关平台的数据库开发系统。Visual不仅可以简化数据库管理,而且应用程序的开发流程更为合理,它使组织数据,定义数据库规则和建立应用程序的工作变得简单易行,利用可视化的设计工具和向导,用户可以快速的创建表单、查询等。 2.2. 功能需求分析 本系统主要实现对通讯录信息进行管理,需要实现以下几个方面的管理功能: (1)通讯录管理信息:信息的添加、删除、浏览、修改和查询等操作。 (2)系统维护:包括用户登录,用户修改密码,数据的修改、浏览、添加、删除以及按姓名、联系方式、地址进行查询。

手机通讯录系统课程设计报告

课程名称: 程序设计基础课程设计 学院名称: 计算机科学与工程学院 专 业: 计算机科学与技术 课程设计报告 装 订 线

目录 一、绪论 (3) 二、设计内容 (4) 1、选题 (4) 2、系统功能 (4) 3、应用到的技术 (4) 三、设计要求 (4) 四、设计环境 (5) 1、操作系统 (5) 2、开发工具 (5) 3、PC机配置 (5) 五、系统结构图 (5) 六、功能实现 (6) 1、系统运行 (6) 2、添加联系人 (6) 3、修改联系人 (7) 4、删除联系人 (8) 5、查找联系人 (8) 6、查看所有联系人 (8) 7、对联系人在文件中的存储位置进行排序 (9) 8、系统运行结束 (9) 七、遇到的问题和解决的方法 (9) 八、设计心得 (10) 九、参考文献 (11) 十、附件 (12) 1、头文件 (12) 2、主函数 (12) 3、函数实现文件 (13)

需求分析 在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具。在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。这就有这么一个系统记录下人与人之间的多样联系方式——手机通讯系统。通过系统记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统电话簿,名片的累赘。从长远利益来看,可是意义重大的环保之举。 根据市场需求,手机通讯录管理系统所记录的信息一般分为个人、商业、办公三类。清晰了机主的联系方向。针对性的分门别类,使系统具有了方便了机主的存储和快速查阅优势功能,大大减少了在电话簿,名片上机械翻阅查找过程的时间。于此同时又根据手机随身携带的特殊性,在一定程度上比一般的制作文件又其次,因为手机是随身携带的通讯工具,这与记事本相比将在一定程度上保障联系人信息的安全性,相对避免了个人隐私信息外泄从而带来的损失。 综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。 友元重载常函数构造函数析构判断数据链表 手机通讯录管理系统 一、主要功能 模拟手机通信录管理系统,要求: (1)查看功能:选择此功能时,列出下列三类选择: A 办公类 B 个人类 C 商务类,当选中某类时,依次显示出此类所有数据中的姓名和电话号码 (2)增加功能:能录入新数据(包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。 ?当录入了重复的姓名和电话号码时,提示数据录入重复并取消录入; ?通信录容量限定在15条以内。 ?当存储信息超出存储空间,提示存储空间已满,不能再录入新数据; ?录入的新数据能按递增的顺序自动进行条目编号。 (3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动

通讯录程序设计报告

前言 一、设计内容与设计要求 1.设计目的: 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理而设计的。 通讯录管理系统的建立是可以有效节省同学、朋友、客户间日常交流的投资(指时间、精力),其设计理念很简单,变传统的纸张与笔录方式为计算机自动化进行通讯录信息管理系统,既省时间又提高效率。因此在系统构建时,只要我们本着丰富通讯录的信息资源,为用户提供最为方便的快捷的信息阅览途径和管理手段,去吸引用户,那么通讯录管理系统是完全可行的。 通讯录软件设计的灵感来源于生活和工作中的需要。如今,随着社会的飞速发展,信息时代改变着人们的各种生活方式。人们的联系信息,联系方式变得复杂而多样化,以前所使用的各种电话簿、通讯本等小册子由于查找不方便、功能单一等缺陷已经无法胜任它的“时代使命”,而现在各种手机,商务通内设的电话簿尽管携带方便却又挥之不去其“记录量少,界面小,浏览不方便”的缺点。工作中看到有些人巧妙地利用excell或者word制表格来建立通讯录,每逢用时再打开,可是查找极其不便,维护起来也麻烦。 通讯录系统设计,它的内容对于计算机来说是至关重要的,通讯录系统为计算机的使用者提供充足的信息和快捷的查询手段。用c语言构建的通讯录系统设计,通过课上学到的和查阅一些文献的一些关于结构体[1]、数组、指针、函数以及循环函数的运用[1]和字符串的处理[2]等基本知识可以初步的实现通讯录的输入、显示、查找、删除、快速查询等通讯录简单而用的一些实用的功能,给人们带来更多的方便。本管理系统设计合理、操作方便、运行稳定、功能完备,具有较高的实用价值。 2。设计内容: 设计与开发一个通讯录管理系统,对通讯录中的姓名、单位、电话、QQ 、mail等基本信息进行管理、主要功能如下:输入记录、显示记录、按姓名查找显示记录、删除记录、插入记录、记录保存为文件、从文件中读记录、按姓名排序、显示单条记录。

数据结构课程设计报告通讯录.doc

数据结构课程设计报告 专业:计算机科学与技术 年级: 课题名称:通讯录 小组成员1: 小组成员2: 小组成员3: 信息技术学院专业教研室一 一、问题描述

设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。 设计内容:本系统应完成一下几方面的功能: 1) 输入信息——enter(); 2) 显示信息———display( ); 3) 查找以姓名作为关键字———search( ); 4) 删除信息———delete( ); 5) 存盘———save ( ); 6) 装入———load( ) ; 设计要求: 1) 每条信息至包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项 2) 作为一个完整的系统,应具有友好的界面和较强的容错能力 3) 上机能正常运行,并写出课程设计报告 二、需求分析 A,添加: 系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名(name),街道(street),城市(city),邮编(eip),国家(state). B,删除: 首先由用户输入要删除的人员的姓名,然后调用删除函数,删除该人员的所有相关资料. C,显示所有人员信息: 该功能将显示已经保存的所有人员的姓名,街道,城市,邮编及国家. D,查询: 可由用户输入要查找的人员姓名,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息. E,退出系统 关闭通讯录管理系统. 三、概要设计 六个函数的实现: void enter(); 新添纪录

相关文档
最新文档