ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:75.91KB ,
资源ID:9190996      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9190996.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电话薄管理系统.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

电话薄管理系统.docx

1、电话薄管理系统郑州轻工业学院实 训 报 告实训名称: 电话薄管理系统 姓 名: 院 (系): 专业班级: 学 号: 指导教师: 成 绩: 时间: 实训报告:一、 需求分析设计一个电话薄管理系统,实现通讯录管理工作的系统化,为人们的工作和生活提供便利。二、 功能描述该系统具有输入、显示、查找、删除、插入、保存、读入、排序和退出等功能。三、总体设计设计思路:(1)、输入模块。主要完成将数据存入数组中的工作。记录既可以从以文本格式存储的数据文件中读入,也可以从键盘逐个输入。记录由于联系人有关的基本信息字段构成。(2)、查询模块。查询模块主要完成在数组中查找满足相关条件的记录。用户可以按照联系人姓名或

2、者联系人号码在数组中进行查找。(3)、更新模块。更新模块主要实现对记录的修改、删除、插入、和排序。在进行更新操作只好,需要将修改的数据存入源数据文件。(4)输出模块。实现对记录的存盘,并以表格的形式将记录信息打印在屏幕上。主控函数流程图:程序实现: 在判断键值是,有效输入为08之间的任意整数,其他输入都被视为错误案件。若输入为0,则会判断在对记录进行了更新操作之后知否进行了存盘操作。若未存盘,系统会提示用户是否需要进行数据存盘操作,用户输入Y或y,系统会进行存盘操作。最后系统执行退出电话薄管理系统的操作。 若选择1,执行增加记录操作;若选择2,执行以表格形式打印输出记录至屏幕的操作;若选择3,

3、执行删除记录操作;若选择4,执行查询记录操作;若选择5,执行修改记录操作;若选择6,执行插入记录;选择7,执行按升序排序的操作;选择8,执行存储记录的操作;若输入哦08之外的整数,给出案件错误的提示。程序主菜单如下: 欢迎使用电话薄管理系统 *电话薄主菜单* * * 1 增加记录 2 显示记录 * * * * 3 删除记录 4 查询记录 * * * 5 修改记录 6 插入记录 * * * * 7 排序记录 8 存储记录 * * * * 0 退出系统 * * * *实训感想1、巩固和强化了个人程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技

4、能。2、培养和训练了个人综合利用所学基本知识和基本技能进行小型应用程序开发的技能。3、培养个人适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。附录(代码)#include stdio.h /标准输入输出函数库#include stdlib.h /标准函数库#include string.h /字符串函数库#include conio.h /屏幕操作函数库#define HEADER1 -电话簿-n#define HEADER2 | 编号 | 姓名 | 电话号码 | 地址 | n#define HEADER3 |-|-|-|-| n#define FORMAT | %-8s|

5、%-10s| %-11s | %-18s | n#define DATA p-num,p-name,p-phonenum,p-address#define END -n#define N 250int saveflag=0; /是否需要存盘的标志变量/定义与职工有关的数据结构typedef struct telebook /标记为telebookchar num4; /记录编号char name10; /联系人姓名char phonenum15; /联系人电话号码char address20; /联系人地址TELEBOOK;void menu() /主菜单system(cls); /调用DOS

6、命令,清屏.与clrscr()功能相同system(color 1a);cprintf( 欢迎使用电话薄管理系统 n);cprintf( n); cprintf( *电话薄主菜单*n);cprintf( * *n);cprintf( * 1 增加记录 2 显示记录 *n);cprintf( * *n);cprintf( * 3 删除记录 4 查询记录 *n);cprintf( * *n);cprintf( * 5 修改记录 6 插入记录 *n);cprintf( * *n);cprintf( * 7 排序记录 8 存储记录 *n);cprintf( * *n);cprintf( * 0 退出系

7、统 *n);cprintf( * *n);cprintf( *n); /cprintf()送格式化输出至文本窗口屏幕中void printheader() /格式化输出表头 printf(HEADER1); printf(HEADER2); printf(HEADER3);void printdata(TELEBOOK pp) /格式化输出表中数据 TELEBOOK* p; p=&pp; printf(FORMAT,DATA);void Disp(TELEBOOK temp,int n) /显示数组temp中存储的记录,内容为电话薄结构中定义的内容 int i; if(n=0) /表示没有电话

8、簿记录 printf(n=无电话号码记录!n); while(getchar()!=n) continue; printf(输入回车键继续); getchar(); return; printf(nn); printheader(); /输出表格头部i=0;while(i没有相关记录,请按回车键继续!n);/作用:用于定位数组中符合要求的记录,并返回保存该记录的数组元素下标值/参数:findmess保存要查找的具体内容; nameorphonenum保存按什么在数组中查找int Locate(TELEBOOK temp,int n,char findmess,char nameorphonen

9、um) int i=0; if(strcmp(nameorphonenum,phonenum)=0) /按号码记录编号查询 while(in) if(strcmp(tempi.phonenum,findmess)=0) /若找到findmess值的号码记录编号 return i; i+; else if(strcmp(nameorphonenum,name)=0) /按号码记录姓名查询 while(in) if(strcmp(tempi.name,findmess)=0) /若找到findmess值的号码记录姓名 return i; i+; return -1; /若未找到,返回一个整数-1/

10、输入字符串,并进行长度验证(长度lens) printf(n 超出长度! n);/进行长度校验,超过lens值重新输入 while(strlen(n)lens); strcpy(t,n); /将输入的字符串复制到字符串t中 /增加电话号码记录int Add(TELEBOOK temp,int n) char ch,num10; int i,flag=0; system(cls); Disp(temp,n); /先打印出已有的电话号码记录 while(1) /一次可输入多条记录,直至输入号码记录编号为0的记录结束添加操作 while(1) /输入电话号码编号,保证该编号没有被使用,若输入编号为0

11、,则退出添加记录操作 stringinput(num,10,(输入0返回主菜单)请输入n编号:); /格式化输入编号并检验 flag=0; if(strcmp(num,0)=0) /输入为0,则退出添加操作,返回主界面 return n; i=0; while(i该编号%s已存在,是否重新输入?(y/n):,num); scanf(%c,&ch); if(ch=y|ch=Y) continue; else return n; else break; strcpy(tempn.num,num); /将字符串num复制到tpn.num中 stringinput(tempn.name,10,姓名:)

12、; /输入姓名 stringinput(tempn.phonenum,15,电话号码:); /输入电话号码 stringinput(tempn.address,20,地址:); /输入家庭地址 saveflag=1; n+; return n;/按电话薄号码编号或姓名,查询记录void Qur(TELEBOOK temp,int n) int select; /:按编号查,2:按姓名查,其他:返回主界面 char searchinput20; /保存用户输入的查询内容 int p=0; if(n没有相关记录,请按回车键继续!n); getchar(); return; system(cls);

13、 printf(n =1 按姓名查找 =2 按号码查找n); printf( 请选择1,2:); scanf(%d,&select);if(select=1) /按姓名查询 stringinput(searchinput,10,请输入存在的姓名:); p=Locate(temp,n,searchinput,name); /在数组temp中查找编号为searchinput值的元素,并返回该数组元素的下标值 if(p!=-1) /若找到该记录 printheader(); printdata(tempp); printf(END); printf(输入回车键返回); getchar(); else

14、 Nofind(); getchar();else if(select=2) /按电话号码查询 stringinput(searchinput,15,请输入存在的电话号码:); p=Locate(temp,n,searchinput,phonenum); if(p!=-1) printheader(); printdata(tempp); printf(END); printf(输入回车键返回); getchar(); else Nofind(); getchar();else Wrong(); getchar(); /删除记录:先找到保存该记录的数组元素的下标值,然后在数组中删除该数组元素i

15、nt Del(TELEBOOK temp,int n) int sel; char findmess20; int p=0,i=0; if(n没有任何记录!n); getchar(); return n; system(cls);Disp(temp,n); printf(n =1 按姓名删除 =2 按号码删除n); printf( 请选择1,2:); scanf(%d,&sel);if(sel=1)/先按姓名查询到该记录所在的数组元素的下标值 stringinput(findmess,10,请输入存在的姓名:); p=Locate(temp,n,findmess,name); getchar(

16、); if(p!=-1) for(i=p+1;i删除成功,请输入回车键返回!n); n-; getchar(); saveflag=1; else Nofind(); getchar(); else if(sel=2) /先按电话号码查询到该记录所在的数组元素的下标值 stringinput(findmess,15,请输入存在的电话号码:); p=Locate(temp,n,findmess,phonenum); getchar(); if(p!=-1) for(i=p+1;i删除成功,输入回车键返回!n); n-; getchar(); saveflag=1; else Nofind();

17、getchar(); return n;/修改记录:先按输入的电话编号查询到该记录,然后提示用户修改编号之外的值,编号不能修改void Modify(TELEBOOK temp,int n)char findmess20;int p=0;if(n无号码记录,请按回车键继续!n); getchar(); return ; system(cls); printf(修改号码记录); Disp(temp,n); stringinput(findmess,10,请输入存在的姓名:); /输入并检验该编号 p=Locate(temp,n,findmess,name); /查询到该数组元素,并返回下标值if

18、(p!=-1) /若p!=1,表明已经找到该数组元素 printf(编号:%s,n,tempp.num); printf(姓名:%s,tempp.name); stringinput(tempp.name,10,请输入新姓名:); printf(姓名:%s,tempp.phonenum); stringinput(tempp.phonenum,15,请输入新电话号码:); printf(姓名:%s,tempp.address); stringinput(tempp.address,20,请输入新地址:); printf(n=修改成功,输入回车键返回!n); Disp(temp,n); getc

19、har(); saveflag=1;else Nofind(); getchar(); return ;/插入记录:按号码编号查询到要插入的数组元素的位置,然后在该编号之后插入一个新数组元素。int Insert(TELEBOOK temp,int n) char ch,num10,s10; /s保存插入点位置之前的编号,num保存输入的新记录的编号 TELEBOOK newinfo; int flag=0,i=0,kkk=0; system(cls); Disp(temp,n); while(1) stringinput(s,10,请输入要插入哪位编号之后:); flag=0;i=0; wh

20、ile(i该编号%s不存在,重新尝试?(y/n):,s); scanf(%c,&ch); if(ch=y|ch=Y) continue; else return n; /以下新记录的输入操作与Add()相同 while(1) stringinput(num,10,请输入要插入的编号:); i=0;flag=0; while(i对不起,你输入的编号%s已存在,请重新输入!(y/n):,num); scanf(%c,&ch); if(ch=y|ch=Y) continue; else return n; else break; strcpy(newinfo.num,num); /将字符串num复制

21、到newinfo.num中 stringinput(newinfo.name,10,姓名:); /输入姓名 stringinput(newinfo.phonenum,15,电话号码:); /输入电话号码 stringinput(newinfo.address,20,地址:); /输入地址 saveflag=1; /在main()有对该全局变量的判断,若为1,则进行存盘操作 for(i=n-1;ikkk;i-) /从最后一个组织元素开始往向移动一个元素的位置 strcpy(tempi+1.num,tempi.num); strcpy(tempi+1.name,tempi.name); strcp

22、y(tempi+1.phonenum,tempi.phonenum); strcpy(tempi+1.address,tempi.address); strcpy(tempkkk+1.num,newinfo.num); /在kkk的元素位置后插入新记录 strcpy(tempkkk+1.name,newinfo.name); strcpy(tempkkk+1.phonenum,newinfo.phonenum); strcpy(tempkkk+1.address,newinfo.address); n+; Disp(temp,n); printf(nn输入回车键返回); getchar(); return n;/利用选择排序法实现数组的按记录编号或姓名的升序排序void SelectSort(TELEBOOK temp,int n)int i=0,j=0,flag=0,indexmin,selec

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2