| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

C语言实训报告(手机通讯录)

文***享

贡献于2021-07-28

字数:17526

通讯录
1问题定义
根需求该系统应包含信息
通讯录基信息:
姓名手机号码电话家庭住址
根需求该系统应实现功:
种基数录入:通讯录基信息录入
种基数修改:允许已录入数重新进行编辑修改例修改通讯录中张三电话信息
种基数删例张三信息通讯录中删
基种数查询例输入张三姓名查询张三手机号码电话址
显示全部记录功查通讯录中全部记录
模糊查找功例输入张分条显示全部姓张信息直户确认显示信息户找信息者提示:通讯录中没该信息
模糊删功:模糊查找类似知道信息某部分进查找删信息户确认否删
模糊修改功:模糊功类似知道信息某部分进查找修改信息户确认否修改

图11 通讯录功需求
2系统设计
2.1 总体设计
采模块化程序设计方法较务定原分较务然分设计务需注意划分出模块应该相独立相关容易理解模块化层次结构图(模块图)分析务划分般进行面层模块面层层模块逐步细化描述

图21 通讯录系统功模块图


2.2 详细设计
221数结构设计

变量定义
变量间关系更明采结构体定义变量
struct phone
{
char name[20] *姓名*
char mobile[15] *手机号码*
char phone[15] *家庭电话*
char address[50] *家庭住址*
struct phone *next
}
定义函数
void showmenu() *显示功菜单*
void creatnew() *添加纪录函数*
void save() *数写入文件函数*
void add( ) *控制添加记录函数*
void openfile() *输出文件链表函数*
void show() *显示全部记录函数*
void searchshow() *显示查找选项函数*
tel* searchname() *姓名查找记录函数*
tel* searchmobile() *手机号码查找记录函数*
tel* searchphone() *家庭电话查找记录函数*
tel* searchaddress() *址查找记录函数*
tel * search() *查找记录函数*
tel* dimsearch() *模糊查找记录函数*
void modify() *修改记录函数*
void del() *删记录函数*
void fre() * 释放链表空间函数*
void openfile() *读取文件链表*

222 控main()函数执行流程
开始





读方式开数文件




文件容读出
存入结构体中关闭文件





进入while(1)循环





调函数showmenu()输出菜单




输入[0~6]中数值
选择相应操作





输入否0 ?







调fre()函数

判断键值调相应函数
完成相应功







结束










通讯录执行流程图22示先读方式开数文件文件默认txltxt该文件存出提示开文件操作成功文件中读出全部记录添加结构体中然执行进入循环显示菜单操作输入(0~6)进行键判断输入0时系统会退出通讯录系统操作
选择1调void add()函数执行增加记录操作选择2调void modify()函数执行修改记录操作选择3调tel * search()函数执行查询记录操作选择4调void del()函数执行删记录操作选择5调void show()函数执行显示全部记录操作选择6调tel* dimsearch()函数执行模糊查找操作选择0调void save()void fre()函数执行保存记录释放链表空间操作输入0~6外值出选择错误提示
223 添加记录模块
程序开始默认文件调fsanf()函数读入记录(文件存记录)结构体中
添加条信息时均提示框显示相关提示户选择 0 退出添加记录时系统会清屏返回菜单供户次选择操作
224 查询记录模块
模块包括精确查询模糊查询两功通调tel * search()tel* dimsearch()实现查询记录模块实现显示结构体中成员信息通调tel * search()函数实现系统默认精确查找精确查找没匹配会提示户否进行模糊查找模糊查找系统会根户输入相关信息通调tel * dimsearch()函数分条显示该信息相关记录直户确认程序条记录
225 修改记录模块
模块通调tel * search()tel* dimsearch()实现查询记录模块实现显示结构体中成员信息通调tel * search()函数实现系统默认精确查找精确查找没匹配会提示户否进行模糊查找模糊查找系统会根户输入相关信息通调tel * dimsearch()函数分条显示该信息相关记录直户确认进行修改程序条记录
226 删模块
模块通调tel * search()tel* dimsearch()实现查询记录模块实现显示结构体中成员信息通调tel * search()函数实现系统默认精确查找精确查找没匹配会提示户否进行模糊查找模糊查找系统会根户输入相关信息通调tel * dimsearch()函数分条显示该信息相关记录直户确认进行删程序条记录
227 显示全部记录模块
模块通调show()函数记录(果记录)全部输入屏幕面否出相应提示
228 模糊查询模块
通调tel * dimsearch()函数实现模糊查找系统会根户输入相关信息通调tel * dimsearch()函数分条显示该信息相关记录直户确认该信息条记录


3系统实现
31编码
311 程序预处理
#include *标准输入输出库*
#include *界面处理库*
#include
#include *处理字符串函数库*
struct phone *定义结构体变量*
{
char name[20] *存放姓名*
char mobile[15] *存放手机号码*
char phone[15] *存放家庭电话*
char address[50] *存放家庭住址*
struct phone *next *存放节点址*
}

void showmenu() *显示功菜单*
void creatnew() *添加纪录函数*
void save() *数写入文件函数*
void add( ) *控制添加记录函数*
void openfile() *输出文件链表函数*
void show() *显示全部记录函数*
void searchshow() *显示查找选项函数*
tel* searchname() *姓名查找记录函数*
tel* searchmobile() *手机号码查找记录函数*
tel* searchphone() *家庭电话查找记录函数*
tel* searchaddress() *址查找记录函数*
tel * search() *查找记录函数*
tel* dimsearch() *模糊查找记录函数*
void modify() *修改记录函数*
void del() *删记录函数*
void fre() * 释放链表空间函数*
void openfile() *读取文件链表*

312函数main()
main()
{
int xm
openfile() *读取文件链表*
system(color 9a) *设置背景颜色字体颜色*
while(1) *设置循环条件真*
{
showmenu() *显示功*
fflush(stdin) *刷新缓存区*
printf(请作出您选择)
scanf(d&x)
if(x>0&&x<6)
{
switch(x)
{
system(cls)
case 1add()break *添加记录函数*
case 2modify()break *修改记录函数*
case 3search()break *查找记录函数*
case 4del()break *删记录函数*
case 5show()break *显示全部记录*
case 6dimsearch()break *模糊查找*
case 0fre()printf(\n\t\t欢迎次通讯录理系统见\n\n)exit(0)
}

}
else
printf(\n\n选择错误请次选择\n)
}

getch()
}
313 输出菜单
void showmenu()
{ int i
for(i0i<80i++)
printf(c16)
printf(\n)
printf(\t\t\t\t1添加记录\n)
printf(\n)
printf(\t\t\t\t2修改记录\n)
printf(\n)
printf(\t\t\t\t3查找记录\n)
printf(\n)
printf(\t\t\t\t4删记录\n)
printf(\n)
printf(\t\t\t\t5显示全部录\n)
printf(\n)
printf(\t\t\t\t6模糊查找\n)
printf(\n)
printf(\t\t\t\t0退出程序\n)
printf(请06选择:\n)
for(i0i<80i++)
printf(c17)

}

314添加功
添加入新记录(结构体成员包括: 姓名手机号码家庭电话家庭住址)
void creatnew() *添加记录姓名排序*
{
int n
tel *new*p1*p2
new(tel *)malloc(sizeof(tel)) *变量申请空间*
aa printf(\t\t\t请输入姓名)
scanf(snew>name)
printf(\t\t\t请输入手机号码)
scanf(snew>mobile)
printf(\t\t\t请输入家庭电话)
scanf(snew>phone)
printf(\t\t\t请输入家庭住址)
scanf(snew>address)
p1head *头指针次赋变量p1*
if(headNULL) *先判断否记录*
do
{
if((strcmp(p1>mobilenew>mobile))0||
(strcmp(p1>phonenew>phone))0) *判断记录否已存*
{
printf(记录已存\n)
printf(\n20s15s15s50s\n
p1>namep1>mobilep1>phonep1>address) *输出已存记录*
printf(否继续添加?1 继续添加\t数字键重新输入\n)
scanf(d&n)*确认否添加记录*
if(n1) *确认添加*
break
else *确认重新输入*
goto aa
}
p1p1>next
}while(p1NULL) *判断记录否存*
p1head *头指针次赋变量p1*
if(headNULL) *检测否空链表*
{
headnew *链表空插入结点作第结点*
new>nextNULL
}

else
{
while((p1>nextNULL)&&
(strcmp(p1>namenew>name)<0)) *新节点找插入位置*
{
p2p1
p1p1>next
}
if((strcmp(p1>namenew>name)>0))

{
if(headp1)
{
new>nexthead
headnew
}
else
{
p2>nextnew
new>nextp1
}
}
else
{
p1>nextnew
new>nextNULL
}
}


}
315修改功
void modify() *修改记录函数*
{
tel *newsearch() *调查找函数*
if(z0)

else
if(x0)

else if(z0&&x0) *根表计量判断指针*
else

{ if(newNULL) *修改头结点数*
{
printf(请输入新纪录:\n)
printf(\t\t\t请输入姓名)
scanf(shead>name)
printf(\t\t\t请输入手机号码)
scanf(shead>mobile)
printf(\t\t\t请输入家庭电话)
scanf(shead>phone)
printf(\t\t\t请输入家庭住址)
scanf(shead>address)
save()
}
else *修改结点数*
{
printf(请输入新纪录:\n)
printf(\t\t\t请输入姓名)
scanf(snew>next>name)
printf(\t\t\t请输入手机号码)
scanf(snew>next>mobile)
printf(\t\t\t请输入家庭电话)
scanf(snew>next>phone)
printf(\t\t\t请输入家庭住址)
scanf(snew>next>address)
save()
}
}
printf(\n\n)
printf(\t\t\t意键继续)
getch()
system(cls)
}
316查找功
tel * search()
{ int ij0
tel *p1NULL*p2NULL*pNULL
loop searchshow()

scanf(d&i)
if(i>1&&i<4)
switch(i)
{
case 1p2searchname()break
case 2p2searchmobile()break
case 3p2searchphone()break
case 4p2searchaddress()break
}
else
{
printf(选择错误请重新选择\n\n)
goto loop
}
p1head
while(p1NULL)
{
if((strcmp(p1>namep2>name))0||(strcmp(p1>mobilep2>mobile))0||
(strcmp(p1>phonep2>phone))0||(strcmp(p1>addressp2>address))0)
{
printf(找记录:\n)
printf(20s15s15s50s\n姓名手机号码电话号码家庭住址)
printf(\n20s15s15s50sp1>namep1>mobilep1>phonep1>address)
break
}
pp1
p1p1>next
}
if(p1NULL)
{
printf(\t\t\t电话中记录\n\n)
printf(\t\t否重新进行?1 继续\t数字键模糊查找\n\n)
scanf(d&i)
if(i1)
{
free(p2) *释放p2存储空间*
goto loop
}
else
{
system(cls) * 精确查找没记录进行模糊找找*
pdimsearch()

}
}
return p
}
317删功
void del() *删记录函数*
{
tel * p2search() *查找删结点*
int i
if(z0)

else
if(x0)

else if(z0&&x0) *根标记量判断删否头点*
else
if(p2NULL)
{
printf(\n\n\n确实删?\t1 删\t数字保留\n)
scanf(d&i)
if(i1)
headhead>next*修改删头结点指针*
save()
printf(\t\t\t意键返回)
getch()
system(cls)
}
else
{
printf(\n\n\n确实删?\t1 删\t数字保留\n)
scanf(d&i)
if(i1)
{
p2>nextp2>next>next*修改删头结点指针*
save()
}
printf(\t\t\t意键返回)
getch()
system(cls)
}
}
318显示全部记录
void show() *显示全部记录*
{
tel *p1head
if(headNULL) *判断否空链表*
{
printf(\n\t\t\t电话簿中没记录请输入纪录\n)
printf(\t\t\t意键返回)
getch()
system(cls)
return
}
printf(20s15s15s50s\n姓名手机号码电话号码家庭住址)
do
{ printf(\n20s15s15s50sp1>namep1>mobilep1>phonep1>address)
p1p1>next
}while(p1NULL)
printf(\t\t\t意键返回)
getch()
system(cls)
}
319模糊查找功
tel* dimsearch() *模糊查找*
{ int ij0m
tel *p1NULL*p2NULL*pNULL
searchshow()
lp
scanf(d&i)
if(i>1&&i<4)
switch(i)
{
case 1p2searchname()break
case 2p2searchmobile()break
case 3p2searchphone()break
case 4p2searchaddress()break
}
else
{
printf(选择错误请重新选择\n\n)
goto lp
}
p1head
while(p1NULL)
{
if((strstr(p1>namep2>name))||(strstr(p1>mobilep2>mobile))||
(strstr(p1>phonep2>phone))||
r(p1>addressp2>address)))*判断否相关信息*
{
printf(20s15s15s50s\n姓名手机号码
电话号码家庭住址)
printf(20s15s15s50s\np1>namep1>mobilep1>phonep1>address)
j1
printf(否条记录?确定条记录\t数字键继续)
scanf(d&m)
if(m1)
break
}
pp1
p1p1>next

}
printf(\n)

if(j0||p1NULL)
{if(j0&&p1NULL)
{printf(\t\t\t没找相关记录)
z0
}
if(j0&&p1NULL)
{
printf(\t\t\t没找相关记录)
x0
}
if(j0&&p1NULL)
{
printf(\t\t\t没找相关记录)
z0x0
}
}
printf(\n\n)

printf(\t\t\t意键返回)
getch()
system(cls)
return p

}
3.2 测试调试

321 概述
般情况解决问题编写程序代码较长包括百条甚成千万条语句检查排语法错误会易发现逻辑错误程序进行认真仔细测试调试
测试通运行程序发现错误程常见错误数溢出越界进入死循环语句序颠倒加少加{}等等调试确定测试中找错误性质改正错误程测试调试通常交进行测试——调试——测试——调试
检查出尚未发现种类型错误测试成功测试测试程序需测试例测试例公式表示:测试例=测试数+预期结果
测试例应该少测试数发现错误发现错误概率选择合适测试数系统运行时量执行条语句测试指令否正确应分测试输入合法数非法数时程序运行情况合法数考虑数般性特殊性求值问题应测试值前面面中间某位置情况
测试模块测试组装测试确认测试步骤进行
(1)模块测试分模块进行测试程编写模块应立进行测试时模块记忆深刻单模块相较容易构造测试数方便检查改正错误
(2)组装测试模块(应该通模块测试模块)预先制定计划逐步组装测试程般情况模块间相互传递数控制信息组装测试务发现模块接口中错误
(3)确认测试步骤般软件交付户前应确认软件否确实满足户求通常接实际例进行测试
VS2008环境 C序方法
● 时加印语句观察数显示屏幕
● F10F11分逐程逐语句执行程序
● Ctrl+B组合键新建断点
● 综合方法
测试程序时监视窗口时查变量表达式值时部分程序代码注释符暂时括起缩短程序便压缩出错代码范围
322 程序测试
·选择1 输入 asd 654 345 654

· 数字键

0

·选择2

选择1

·选择5

·选择3

1 输入 王五

·选择4

2 输入789

1

选择5

·选择6

2 输入 4

数字键

1


·选择0

·选择5


选择2 2输入4

数字键

数字键

1

意键 选择5

·选择5

意键选择42输入4

数字键2输入4

数字键

1

意键

1

意键

选择 5


4系统维护
测试调试确认软件错时开发告段落时交付软件供户软件程中会面更加漫长工作软件维护般维护工作:更改中发现错误适应实际环境程序进行修改满足新需求程序作必改进等等
5纳总结
5.1 开发验
通题目开发体会掌握点容
l 程序设计风格顶逐步细化模块化方法进行程序设计
l 编写函数进行测试调试调函数需调函数时遵循逐步细化原C语言提供丰富库函数编程序时善库函数避免必劳动
l 定义函数时应选参数数数类型
l 文件方法文件完毕应时关闭
5.2 实训中遇问题解决方法
进行文件操作通书网找例题解析终初步完成文件读写
输出图形黑白配知道色通百度知道通system(color XX)XX指代颜色颜色属性两十六进制数字指定 第背景第二前景
删第结点时会误删第二节点通增加标记解决问题
显示全部数时会显示屯字通调试知文件读取数时结尾少回车
.3 设计中尚存足处
关次程序足方
⑴没添加更特色功
⑵实现程序中查询界面够简洁
⑶程序代码写够规范
⑷操作界面够美观
5.4 感想心体会
通次实训感触甚深学理知识运解决实际问题仅付出艰辛劳动科学方法坚持懈努力次实训进步理解编程什编程编程目什……发现知识竟贫乏顿时感压力存激发学热情会成断进取永懈怠动力
实训程中良锻炼首先兴趣方面通编写通讯录理系统更加喜欢编程前迷茫状态中解脱出解编程真正意义想生着帮助次通编写通讯录理系统写程序定思路前手理解算法意义懂模块化思想处
通编写代码书知识更深理解甚懂问题程中然然理解刘欣老师悉心指导C语言更深刻理解程序算法数定义程序改错等方面力提高身注意力耐心编程兴趣增长获益匪浅
6参考资料
谭浩强C语言程序设计(第三版) 清华学出版社
7附源代码
#include
#include
#include
#include
char filename[20]E\\tx123txt
struct phone
{
char name[20]
char mobile[15]
char phone[15]
char address[50]
struct phone *next
}
typedef struct phone tel
tel *headNULL
int z1x1 *标记量XZ*
void showmenu()
{ int i
printf(\n)
for(i0i<80i++)
printf(c16)
printf(\n)
printf(\t\t\t\t1添加记录\n)
printf(\n)
printf(\t\t\t\t2修改记录\n)
printf(\n)
printf(\t\t\t\t3查找记录\n)
printf(\n)
printf(\t\t\t\t4删记录\n)
printf(\n)
printf(\t\t\t\t5显示全部录\n)
printf(\n)
printf(\t\t\t\t6模糊查找\n)
printf(\n)
printf(\t\t\t\t0退出程序\n)
printf(请6选择:\n)
for(i0i<80i++)
printf(c17)

}
void creatnew() *添加记录姓名排序*
{
int n
tel *new*p1*p2
new(tel *)malloc(sizeof(tel))
aa printf(\t\t\t请输入姓名)
scanf(snew>name)
printf(\t\t\t请输入手机号码)
scanf(snew>mobile)
printf(\t\t\t请输入家庭电话)
scanf(snew>phone)
printf(\t\t\t请输入家庭住址)
scanf(snew>address)
p1head
if(headNULL) *先判断否记录*
do
{
if((strcmp(p1>mobilenew>mobile))0||
(strcmp(p1>phonenew>phone))0)
{
printf(记录已存\n)
printf(\n20s15s15s50s\np1>namep1>mobilep1>phonep1>address)
printf(否继续添加?1 继续添加\t数字键重新输入\n)
scanf(d&n)
if(n1)
break
else
goto aa
}
p1p1>next
}while(p1NULL)
p1head
if(headNULL) *检测否空链表*
{
headnew *链表空插入结点作第结点*
new>nextNULL
}

else
{
while((p1>nextNULL)&&(strcmp(p1>namenew>name)<0))
{
p2p1
p1p1>next
}
if((strcmp(p1>namenew>name)>0))

{
if(headp1)
{
new>nexthead
headnew
}
else
{
p2>nextnew
new>nextp1
}
}
else
{
p1>nextnew
new>nextNULL
}
}


}

void save() *数写入文件*
{
tel *p1NULL
FILE *fp
if((fpfopen(filenamew))NULL)
{
printf(开文件\n)
return
}
p1head
for(p1NULLp1p1>next)
{
fprintf(fps\t\ts\t\ts\t\ts\n
p1>name
p1>mobile
p1>phone
p1>address)
}

printf(操作完毕\n)
fclose(fp)

}
void add( ) *控制添加记录*
{
int x1
printf(开始添加纪录添加记录程中0 停止添加\n)
while(x0)
{
do
{ creatnew()
printf(操作完成\n)
break
}while(1)
printf(结束添加 数字键继续添加\n)
scanf(d&x)
if(x0)
{
save()
system(cls)
}
}
}


void openfile() *输出文件链表*
{
FILE *fp
tel *p1NULL*p2NULL
headNULL
if((fpfopen(filenamer))NULL) *开文件*
{ *文件存表明第次电话簿*
printf(\n\t\t\t********新电话簿*********\n)
return
}
while(feof(fp) ) *循环读取文件数*
{
p1(tel*)malloc (sizeof(tel))
fscanf(fpssss\np1>namep1>mobilep1>phonep1>address)
if(headNULL)
{
headp1
p1>nextNULL
p2p1
}
else
{
p2>nextp1
p1>nextNULL
p2p1
}
}
fclose(fp)
}

void show() *显示全部记录*
{
tel *p1NULL
if(headNULL) *判断否空链表*
{
printf(\n\t\t\t电话簿中没记录请输入纪录\n)
printf(\t\t\t意键返回)
getch()
system(cls)
return
}
p1head
printf(20s15s15s50s\n姓名手机号码电话号码家庭住址)
do
{ * system(color 04)*
printf(\n20s15s15s50sp1>namep1>mobilep1>phonep1>address)
p1p1>next
}while(p1NULL)
printf(\t\t\t意键返回)
getch()
system(cls)

}
tel* searchname()*姓名查找*
{
tel *p2NULL
printf(\t\t请输入姓名)
p2(tel *)malloc(sizeof(tel))
scanf(sp2>name)
return p2
}
tel* searchmobile()*手机号码查找*
{
tel *p2NULL
printf(\t\t请输入手机号码)
p2(tel *)malloc(sizeof(tel))
scanf(sp2>mobile)
return p2
}

tel* searchphone()*家庭电话查找*
{
tel *p2NULL
printf(\t\t请输入家庭电话)
p2(tel *)malloc(sizeof(tel))
scanf(sp2>phone)
return p2
}

tel* searchaddress() *址查找*
{
tel *p2NULL
printf(\t\t请输入址)
p2(tel *)malloc(sizeof(tel))
scanf(sp2>address)
return p2

}
void searchshow() *显示查找选项*
{
system(cls)
printf(\t\t\t1 姓名\n)
printf(\t\t\t2 手机号码\n)
printf(\t\t\t3 家庭电话\n)
printf(\t\t\t4 家庭住址\n)
}
tel* dimsearch() *模糊查找*
{ int ij0m
tel *p1NULL*p2NULL*pNULL
searchshow()
lp
scanf(d&i)
if(i>1&&i<4)
switch(i)
{
case 1p2searchname()break
case 2p2searchmobile()break
case 3p2searchphone()break
case 4p2searchaddress()break
}
else
{
printf(选择错误请重新选择\n\n)
goto lp
}
p1head
while(p1NULL)
{
if((strstr(p1>namep2>name))||(strstr(p1>mobilep2>mobile))||
(strstr(p1>phonep2>phone))||(strstr(p1>addressp2>address)))
{
printf(20s15s15s50s\n姓名手机号码电话号码家庭住址)
printf(20s15s15s50s\np1>namep1>mobilep1>phonep1>address)
j1
printf(否条记录?确定条记录\t数字键继续\n)
scanf(d&m)
if(m1)
break
}
pp1
p1p1>next

}
printf(\n)

if(j0||p1NULL)
{if(j0&&p1NULL)
{printf(\t\t\t没找相关记录)
z0
}
if(j0&&p1NULL)
{
printf(\t\t\t没找相关记录)
x0
}
if(j0&&p1NULL)
{
printf(\t\t\t没找相关记录)
z0x0
}
}
printf(\n\n)

printf(\t\t\t意键返回)
getch()
system(cls)
return p

}

tel * search()
{ int ij0
tel *p1NULL*p2NULL*pNULL
loop searchshow()

scanf(d&i)
if(i>1&&i<4)
switch(i)
{
case 1p2searchname()break
case 2p2searchmobile()break
case 3p2searchphone()break
case 4p2searchaddress()break
}
else
{
printf(选择错误请重新选择\n\n)
goto loop
}
p1head
while(p1NULL)
{
if((strcmp(p1>namep2>name))0||(strcmp(p1>mobilep2>mobile))0||
(strcmp(p1>phonep2>phone))0||(strcmp(p1>addressp2>address))0)
{
printf(找记录:\n)
printf(20s15s15s50s\n姓名手机号码电话号码家庭住址)
printf(\n20s15s15s50sp1>namep1>mobilep1>phonep1>address)
break
}
pp1
p1p1>next
}
if(p1NULL)
{
printf(\t\t\t电话中记录\n\n)
printf(\t\t否重新进行?1 继续\t数字键模糊查找\n\n)
scanf(d&i)
if(i1)
{
free(p2)
goto loop
}
else
{
system(cls) * 精确查找没记录进行模糊找找*
pdimsearch()

}


}
return p

}

void modify() *修改记录函数*
{
tel *newsearch()
if(z0)

else
if(x0)

else if(z0&&x0)
else

{ if(newNULL)
{
printf(请输入新纪录:\n)
printf(\t\t\t请输入姓名)
scanf(shead>name)
printf(\t\t\t请输入手机号码)
scanf(shead>mobile)
printf(\t\t\t请输入家庭电话)
scanf(shead>phone)
printf(\t\t\t请输入家庭住址)
scanf(shead>address)
save()
}
else
{
printf(请输入新纪录:\n)
printf(\t\t\t请输入姓名)
scanf(snew>next>name)
printf(\t\t\t请输入手机号码)
scanf(snew>next>mobile)
printf(\t\t\t请输入家庭电话)
scanf(snew>next>phone)
printf(\t\t\t请输入家庭住址)
scanf(snew>next>address)
save()
}
}
printf(\n\n)
printf(\t\t\t意键继续)
getch()
system(cls)

}
void del() *删记录函数*
{
tel * p2search()
int i
if(z0)

else
if(x0)

else if(z0&&x0)
else
if(p2NULL)
{
printf(\n\n\n确实删?\t1 删\t数字保留\n)
scanf(d&i)
if(i1)
headhead>next
save()
printf(\t\t\t意键返回)
getch()
system(cls)

}
else
{
printf(\n\n\n确实删?\t1 删\t数字保留\n)
scanf(d&i)
if(i1)
{
p2>nextp2>next>next
save()
}
printf(\t\t\t意键返回)
getch()
system(cls)
}
}
void fre() * 释放链表空间*
{
tel *phead
while(headNULL)
{
headhead>next
free(p)
phead
}
free(head)
}
main()
{
int xm
openfile()
system(color 9a)
while(1)
{
showmenu()
fflush(stdin)
printf(请作出您选择)
scanf(d&x)
if(x>0&&x<6)
{
switch(x)
{
system(cls)
case 1add()break *添加记录函数*
case 2modify()break *修改记录函数*
case 3search()break *查找记录函数*
case 4del()break *删记录函数*
case 5show()break *显示全部记录*
case 6dimsearch()break *模糊查找*
case 0fre()printf(\n\t\t欢迎次通讯录理系统见\n\n)exit(0)
}
}
else
printf(\n\n选择错误请次选择\n)
}
getch()
}
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

计算机专业c语言实训报告

计算机专业c语言实训报告  通过c语言实训,让我加深了对c语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。  这次实训有很大的收获,让我对c语言有了更深的认识,平时在

向***刚 12年前 上传581   0

c语言实验报告

c语言实验报告  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:__________    成绩:__________  实验一  上机操作初步和简单的C程序设计  一、 实验目的  1、熟悉C语言运行环境Turbo C++3.0  2、会简单的程序调试  3、熟悉C语言

极***速 11年前 上传799   0

C语言实验报告《指针》

C语言实验报告《指针》  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:__________    成绩:__________  实验五  指针  一、 实验目的  1、掌握指针的概念、会定义和使用指针变量  2、掌握指向数组的指针变量  3、掌握字符串指针的使用  

D***1 11年前 上传960   0

C语言实验报告《数组》

C语言实验报告《数组》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________    成绩:__________  实验三  数组  一、 实验目的  1、掌握一维和二维数组的定义、赋值和输入输出  2、掌握字符数组和字符串数组的使用  3、掌握与数组有关的排

我***海 11年前 上传885   0

2021年C语言实训学习心得总结

 2021年C语言实训学习心得总结撰写人:___________日 期:___________2021年C语言实训学习心得总结在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期一周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明

n***e 3年前 上传500   0

C语言通讯录报告及源代码

XX学院《C语言程序设计》课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科班 学生姓名: 学 号: 设计地点(单位)________计算机基础自主学习中心 __ __设计题目:__ 个人通讯录设计_________________

文***享 3年前 上传357   0

C语言实验报告《函数》

C语言实验报告《函数》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________    成绩:__________  实验四  函数  一、 实验目的  1、掌握函数定义、调用和声明的方法  2、掌握实参和形参之间的传递方式  3、函数的嵌套调用  二、 实

t***g 12年前 上传1368   0

C语言实验报告《综合实验》

C语言实验报告《综合实验》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________    成绩:__________  实验六  综合实验  一、 实验目的  1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。  2、掌握C程序的结构化程序设计方法,能

q***u 10年前 上传871   0

C语言作业:学通讯录

学生通讯录一、 语言和环境1. 实现语言:C语言。2. 环境要求:devC++。二、 实现功能开发一套学生通讯录C语言系统,具体实现如下功能:1. 打开系统显示欢迎界面,以及功能菜单,用户输入需要操作的功能序号,根据用户选择的需要进行相应界面 如图1所示。图1 功能菜单2. 当用户输入序号1时进入到录入学生信息界面,用户输入学生的姓名,性别,年龄和电话,输入完毕保存学生信息,并

小***库 3年前 上传728   0

QQ手机通讯录产品体验

QQ手机通讯录体验优点1. 操作界面简洁明了,易于新上手的人使用2. 颜色搭配好看3. 选中某个联系人后,有拨打电话、拨打IP电话、发送信息、发送名片,联系人管理(编辑、删除、加入分组)五个选项,简洁易用4. 发送消息时,可以插入表情、图片、拍照和名片,很实用!5. “通讯录管理”中的“sim卡导入”功能,简洁易用,对于换手机的人而言简直就是福音!6. 有“常用公

y***r 10年前 上传519   0

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

 课程设计报告书 课程名称: C语言课程设计 班 级: 学 号: 姓 名: 指导老师: 设计时间:

文***品 5年前 上传2401   0

操作系统实验报告C语言实现银行家算法

实 验 报 告题 目名 称C语言实现银行家算法院 系信息科学与工程学院班 级完成时间指导老师本次实验成绩组长联系电话邮件地址组员(姓名,学号)主要任务程序算法的编写、实现、运行调试组员(姓名,学号)主要任务实验报告的完成组员(姓名,学号)主要任务实验报告的完成

文***品 3年前 上传471   0

2021年c语言实验报告分析总结

 2021年c语言实验报告分析总结撰写人:___________日 期:___________2021年c语言实验报告分析总结在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这

k***8 3年前 上传562   0

C语言实验报告《逻辑结构程序设计》

C语言实验报告《逻辑结构程序设计》  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:__________    成绩:__________  实验二  逻辑结构程序设计  一、 实验目的  1、学会正确使用逻辑运算符和逻辑表达式  2、熟练掌握if语句和switch语句 

s***0 12年前 上传746   0

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

C语言课程设计学生通讯录管理系统设计一、题目内容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。功能要求

文***享 4年前 上传722   0

C语言实践实习工作个人心得体会汇编

C语言实践实习工作个人心得体会 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面

/***. 5年前 上传1017   0

高考文言实词训练题

高考文言实词训练题总分:500分 限时:40分钟 答对一题得5分,答错倒扣2分,不答不得不扣分。1.选出与“向使三国各爱其地”的“爱”意义相同的一项是( ) A.秦爱纷奢 B.齐国虽褊小,我何爱一牛 C.予独爱莲之出淤泥而不染 D.爱而不见,搔首踯躅2. “安”意义相同的一组是( )

q***2 12年前 上传405   0

10干事通讯录

电子信息学院第九届干事通讯录 部门 姓名 班级 长号 短号 QQ号 寝室号 办公室 董立华 电信班 15072505868 619225 598373308 A1-310 杨  艳 印刷班 15072504715 619033 971973167 A1-314 陈青云 应用电子1班 15926949646   854768181 走读 陈晓丽

小***辉 5年前 上传1353   0

工作人员通讯录

工作人员通讯录张亮 62761361李沁陶晓琨 1275773383(传呼)宫巧荣 13911272466李志芳 62764631、13683116414秦川 62761342董智渊 62765287陈厚强 62765288

j***e 10年前 上传728   0

2014春节手机问候语

2014春节手机问候语  2014春节手机问候语&马年祝福语  玉马年,喜连连,快快乐乐贴春联;金虎去,玉兔来,东西南北换新颜;年丰收,吉祥言,春夏秋冬好运连;中国年,福连连,玉兔给力贺新年。  又一年花开花落,又一次辞旧迎新。在这梅花香飘千万里的季节里,请允许我托飘渺的雪花,带去我最真挚的祝福和最深情的问候:马年快乐,平安!  新的一年,新的起点;新的一年,走得更远;新的一年,

明***镜 10年前 上传341   0

手机拜年祝福语

手机拜年祝福语  不需要多么贵重的礼物,也不需要多么郑重的誓言,我只需要你一个甜甜的微笑,作为我新年最珍贵的礼物。  这一季,有我最深的思念。就让风捎去满心的祝福,缀满你甜蜜的梦境,祝你拥有一个灿烂的新年  让我这份新年的祝福通过电波,跨过重重高山,越过滔滔江水,掠过高楼大厦,飞到你身边。  千里试问平安否?且把思念遥相寄。绵绵爱意与关怀,浓浓情意与祝福。新年快乐!  愿我寄

x***i 9年前 上传435   0

手机开机问候语大全

手机开机问候语大全  哎,又过了一天。   别跟我谈感情。   别人的失败就是我的快乐。   宠爱自己多一些。   除白白以外人开机,此机5秒内自行爆炸。   电量不足,自动关机。   多伤钱那女子无才便是德。   鬼鬼飘呀飘。   欢迎老公光临指导。   继续走,继续失去,在我还没意识到的青春。   寂寞中,我的悲伤比湖水清澈。   今天遇见帅哥

l***l 11年前 上传727   0

蓝韵集团新员工入职特训方案——新员工特训班通讯录

新员工特训班通讯录序号姓 名性别部 门职 务QQ联系电话备注123456789

w***0 10年前 上传436   0

涉密通讯录保密管理工作自查报告

蔡官镇涉密通讯录保密管理工作自查报告  某某镇充分认识到做好保密工作的重要性,以高度的政治责任感加强对保密工作的领导,组织开展涉密通讯录管理自查,并加强保密通讯录的长效管理,确保涉密通讯录管理合乎规范,现将涉密通讯录管理工作自查报告如下:     一、领导高度重视,切实加强组织实施     为切实加强组织领导,落实工作责任,我镇成立了涉密通讯录清理工作领导小组,并对此次清理工作做了统一安排

c***b 11年前 上传12246   0

基于TCP协议的通讯录网络应用课程设计报告

网络应用课程设计报告系 (院): 计算机科学学院 专业班级: 计科 姓 名: 学 号: 指导教师: 设计时间: 2017.6.12 - 2

文***享 1年前 上传481   0