通讯录编程作业概要.docx
《通讯录编程作业概要.docx》由会员分享,可在线阅读,更多相关《通讯录编程作业概要.docx(16页珍藏版)》请在冰豆网上搜索。
通讯录编程作业概要
能动46
丁济同
2140301156
目录
一·题目及功能描述--------------------3
二·模块划分与算法说明----------------4
三·数据结构类型定义及基本操作定义----5
四·程序代码--------------------------6
五·调试过程屏幕截图-----------------11
六·小结-----------------------------20
一·题目及功能描述
本程序题目为通讯录管理系统。
该程序是简单易操作的通讯录管理系统,且可以大致覆盖联系人的基本信息。
用户可将联系人的编号,姓名,性别,电话,通讯地址,邮箱存入线性表中。
并可按指定步骤显示出已存通讯录的全部信息,同时可以查询某个联系人的全部信息。
同时用户可以对线性表做出必要的修改。
修改范围是待该联系人的电话以及通讯地址。
并且用户还可以在所指定编号的联系人后面添加新的联系人。
对于可删除信息的联系人,用户可按指定步骤删除联系人。
二·模块划分与算法说明
Sub子程序过程
(1)subprint
该过程为帮助用户显示全部通讯录信息。
过程引用线性表,根据下标从小到大的顺序(下标从零开始)依次显示。
(2)subprint1
该过程为帮助用户显示指定联系人的通讯录信息。
由于联系人是指定的,因而过程在引用线性表的同时要引用联系人的下标(下标由自定义函数function1以及用户提供的联系人姓名找出)。
通过下标显示出该下标对应的联系人的通讯录信息。
Function函数过程
(1)functionfind
该函数引用线性表以及用户提供的联系人的姓名。
该姓名与线性表中的姓名依次比较(按下标的顺序),若该姓名与线性表中某一下标的姓名一致,则返回该下标。
若线性表中无姓名与该姓名对应,则返回-1.
(2)functionfind1
该函数过程与“functionfind”类似。
唯一不同的是该函数引用的是用户提供的联系人的编号,而不是姓名。
三·数据结构类型定义及基本操作定义
DimlistAsNewList(Ofperson)
*数据结构类型:
list类。
List中储存的是person(联系人)数据。
Structureperson
DimnumberAsString
DimnameAsString
DimgenderAsString
DimtelnumAsString
DimaddressAsString
DimemailAsString
EndStructure
*单个数据person中包含联系人的通讯录信息。
Nunber----编号
Name----姓名
Gender----性别
Telnum----电话
Address----通讯地址
Email----邮箱
四·程序代码
ModuleModule1
Structureperson
DimnumberAsString
DimnameAsString
DimgenderAsString
DimtelnumAsString
DimaddressAsString
DimemailAsString
EndStructure
Subprint(ByVallAsList(Ofperson))
DimiAsInteger
Fori=0Tol.Count-1
Console.WriteLine("编号:
{0}姓名:
{1}性别:
{2}电话:
{3}通讯地址:
{4}邮箱:
{5}",l(i).number,l(i).name,l(i).gender,l(i).telnum,l(i).address,l(i).email)
Next
EndSub
Subprint1(ByVallAsList(Ofperson),ByValnAsInteger)
Console.WriteLine("编号:
{0}姓名:
{1}性别:
{2}电话:
{3}通讯地址:
{4}邮箱:
{5}",l(n).number,l(n).name,l(n).gender,l(n).telnum,l(n).address,l(n).email)
EndSub
SubMain()
DimlistAsNewList(Ofperson)
DimaAsInteger
DimbAsperson
While(True)
Console.WriteLine("************电话薄管理系统************")
Console.WriteLine("--------------------------------------")
Console.WriteLine("1.创建通讯录")
Console.WriteLine("2.显示通讯录信息")
Console.WriteLine("3.修改通讯录信息")
Console.WriteLine("4.插入通讯录信息")
Console.WriteLine("5.删除通讯录信息")
Console.WriteLine("6.查询通讯录信息")
Console.WriteLine("7.退出通讯管理系统")
Console.WriteLine("--------------------------------------")
Console.WriteLine("请选择1-7")
a=Console.ReadLine
Ifa=7Then
End
ElseIfa=1Then
Console.WriteLine("请输入编号")
b.number=Console.ReadLine()
Console.WriteLine("请输入姓名")
b.name=Console.ReadLine()
Console.WriteLine("请输入性别")
b.gender=Console.ReadLine()
Console.WriteLine("请输入电话")
b.telnum=Console.ReadLine()
Console.WriteLine("请输入通讯地址")
b.address=Console.ReadLine()
Console.WriteLine("请输入邮箱")
b.email=Console.ReadLine()
list.Add(b)
Console.WriteLine("操作成功")
Console.ReadKey()
ElseIfa=2Then
print(list)
Console.WriteLine("操作成功")
Console.ReadKey()
ElseIfa=6Then
DimmAsString
DimnAsInteger
Console.WriteLine("请输入带查询人姓名")
m=Console.ReadLine()
n=find(m,list)
Ifn>=0Then
print1(list,n)
Console.WriteLine("操作成功")
Else
Console.WriteLine("操作失败")
EndIf
Console.ReadKey()
ElseIfa=5Then
Console.WriteLine("请输入待删除联系人姓名")
DimpAsString
DimqAsInteger
p=Console.ReadLine()
q=find(p,list)
Ifq>=0Then
list.RemoveAt(q)
Console.WriteLine("操作成功")
Console.ReadKey()
Else
Console.WriteLine("通讯录中无此人")
EndIf
Console.ReadKey()
ElseIfa=3Then
Console.WriteLine("请输入待修改联系人编号")
Dimc,dAsString
Dimb2Asperson
c=Console.ReadLine()
d=find1(c,list)
Ifd>=0Then
b2=list(d)
Console.WriteLine("请输入修改后的电话")
b2.telnum=Console.ReadLine()
Console.WriteLine("请输入修改后的通讯地址")
b2.address=Console.ReadLine()
list.Insert(d,b2)
list.RemoveAt(d+1)
Console.WriteLine("操作成功")
Else
Console.WriteLine("通讯录中无此人")
EndIf
Console.ReadKey()
ElseIfa=4Then
DimfAsInteger
DimeAsString
Console.WriteLine("请输入待添加联系人编号")
e=Console.ReadLine()
f=find1(e,list)
Iff>=0Then
b.number=list(f).number
Console.WriteLine("请输入姓名")
b.name=Console.ReadLine()
Console.WriteLine("请输入性别")
b.gender=Console.ReadLine()
Console.WriteLine("请输入电话")
b.telnum=Console.ReadLine()
Console.WriteLine("请输入通讯地址")
b.address=Console.ReadLine()
Console.WriteLine("请输入邮箱")
b.email=Console.ReadLine()
Console.WriteLine("操作成功")
list.Insert(f,b)
Else
Console.WriteLine("通讯录中无此人")
EndIf
Console.ReadKey()
EndIf
EndWhile
EndSub
Functionfind(ByValxAsString,ByVallAsList(Ofperson))AsInteger
DimiAsInteger=0
WhileiIfx=l(i).nameThen
Returni
EndIf
i=i+1
EndWhile
Return-1
EndFunction
Functionfind1(ByValaAsString,ByVallAsList(Ofperson))AsInteger
DimiAsInteger
WhileiIfa=l(i).numberThen
Returni
EndIf
i=i+1
EndWhile
Return-1
EndFunction
EndModule
五·调试过程屏幕截图
(1)创建通讯录
(2)显示通讯录
(3)修改通讯录信息
(4)插入通讯录信息
插入后
(5)删除通讯录信息
删除后
(6)查询通讯录信息
(7)退出通讯录
#实际界面
六·小结
通过这次通讯录的设计,本人不仅掌握了数据结构中线性表的知识,同时也复习了前一阶段基本语句的设计,以及子程序过程和函数过程。
不管在哪个程序设计中,几个基本的语句都是常用的,例如定义,读取。
再者对于子过程而言,参数的引用的规则显得极为重要,通过此次程序设计,再次领悟byval及byref的功能与区别。
即使简单的程序背后还是有冗长的编程语言,程序的成功背后有无数次的调试与无数次的修改,从此深刻体会出耐心与毅力对于任务成功的重要性。