欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    c语言程序设计实践报告.docx

    • 资源ID:13094292       资源大小:18.25KB        全文页数:13页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言程序设计实践报告.docx

    1、c语言程序设计实践报告中南大学C语言程序设计实践报告题 目 通讯录程序设计 学生姓名 指导教师 学 院 专业班级 完成时间 一、任务描述 通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能: (1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能二、算法描述设计一个实用的的小型通讯录程序必须具备系统以菜单方式工作、信息录入、信息浏览、信息查询、信息修改、系统退出功能,那么就需要这样的函数

    2、来实现。因此,我需要自定义这样的函数来解决问题,当然还会调用库函数。在定义函数的过程中会用到选择结构、循环结构等基本语句,以及对结构体数组的定义等。三、程序设计 /*头文件(.h)*/ #include stdio.h /*I/O函数*/ #include stdlib.h /*标准库函数*/ #include string.h/*字符串函数*/ #include ctype.h /*字符操作函数*/ #define M 50 /*定义常数表示记录数*/ typedef struct /*定义数据结构*/ char NAME20; /*姓名*/ char EMAIL30; /*邮箱*/ cha

    3、r TELE110; /*电话*/ char TELE210; /*电话*/ char HOMETOWN30; /*籍贯*/ DATA;/*以下是函数原型*/ int enter(DATA t); /*输入记录*/int add(DATA t,int n); /*添加记录*/int change(DATA t,int n); /*修改记录*/ int deleter(DATA t,int n); /*删除记录*/ void list(DATA t,int n); /*显示记录*/ void search(DATA t,int n); /*按姓名查找显示记录*/ void qseek(DATA

    4、t,int n); /*快速查找记录*/ void print(DATA temp); /*显示单条记录*/ int find(DATA t,int n,char *s) ; /*查找函数*/ int menu_select(); /*主菜单函数*/ /*主函数开始*/ main() int i; DATA dM; /*定义结构体数组*/ int length; /*保存记录长度*/ system(cls); for(;)/*无限循环*/ switch(menu_select() /*调用主菜单函数,返回值整数作开关语句的条件*/ case 1:length=enter(d);break;/*

    5、输入记录*/ case 2:length=add(d,length); break; /*添加记录*/ case 3:length=deleter(d,length);break; /*删除记录*/ case 4:list(d,length);break; /*显示全部记录*/ case 5:search(d,length);break; /*查找记录*/ case 6:qseek(d,length);break; /*快速查找记录*/ case 7:length=change(d,length);break; case 8:exit(0); /*如返回值为8则程序结束*/ /*菜单函数,函数

    6、返回值为整数,代表所选的菜单项*/ * *n); printf( * 1. 录入联系人数据 5.按姓名查找 *n); printf( * *n); printf( * 2. 添加联系人数据 6.快速查找 *n); printf(* *n); printf( * 3. 删除联系人数据 7.修改联系人数据 *n); printf( * *n); printf( * 4. 显示全部联系人 8.退出系统 *n); printf( * *n); printf(* *n); printf( *n); do printf(n 请输入您的选项(18):); /*提示输入选项*/ scanf(%s,s); /*

    7、输入选择项*/ c=atoi(s); /*将输入的字符串转化为整型数*/ while(c8); /*选择项不在17之间重输*/ return c; /*返回选择项,主程序根据该数调用相应的函数*/ /*输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/ int enter(DATA t) int i,n; system(cls); printf(n 请输入需录入数据的个数: ); /*提示信息*/ scanf(%d,&n); /*输入记录数*/ printf(n 请输入数据:n); /*提示输入记录*/ printf(n 姓名 邮箱 电话号码1 电话号码2 籍贯 n); prin

    8、tf(*-*-*-*-*-*n); for(i=0;in;i+) scanf(%s%s%s%s%s,ti.NAME,ti.EMAIL,ti.TELE1,ti.TELE2,ti.HOMETOWN); /*输入记录*/ printf(*-*n); return n; /*返回记录条数*/ /*显示记录,参数为记录数组和记录条数*/ void list(DATA t,int n) int i; system(cls); printf(nn *DATA*n); printf( 姓名 邮箱 电话号码1 电话号码2 籍贯n); printf( -n); for(i=0;in-1) /*如果整数i值大于n-

    9、1,说明没找到*/ printf(n 未查找到该记录! n); else print(ti); /*找到,调用显示函数显示记录*/ /*显示指定的一条记录*/ void print(DATA temp) system(cls); printf(*n); printf(姓名 邮箱 电话号码1 电话号码2 籍贯 n); printf(-n); printf(%-20s%-30s%-10s%-10s%-30sn,temp.NAME,temp.EMAIL,temp.TELE1,temp.TELE2,temp.HOMETOWN); printf(*end*n); /*查找函数,参数为记录数组和记录条数以

    10、及姓名s */ int find(DATA t,int n,char *s) int i; for(i=0;in-1) /*如果整数i值大于n-1,说明没找到*/ printf(n 未查找到该记录! n); else print(ti); printf( n); printf( 1代表修改姓名!n); printf( 2代表修改邮箱! n); printf( 3代表修改电话号码1! n); printf( 4代表修改电话号码2! n); printf( 5代表修改籍贯! n); printf( n); do printf(n 请输入您的选项(15):); /*提示输入选项*/ scanf(%d

    11、,&c); switch(c) case 1:strcpy(stu.NAME,ti.NAME);scanf(%s,ti.NAME);printf(修改成功!n);break; case 2:strcpy(stu.EMAIL,ti.EMAIL);scanf(%s,ti.EMAIL);printf(修改成功!n);break; case 3:strcpy(stu.TELE1,ti.TELE1);scanf(%s,ti.TELE1);printf(修改成功! n);break; case 4:strcpy(stu.TELE2,ti.TELE2);scanf(%s,ti.TELE2);printf(修

    12、改成功!n);break; case 5:strcpy(stu.HOMETOWN,ti.HOMETOWN);scanf(%s,&ti.HOMETOWN);printf(修改成功!n);break; while(c5); /*选择项不在15之间重输*/ return n;/*删除函数,参数为记录数组和记录条数*/ int deleter(DATA t,int n) char s20; /*要删除记录的姓名*/ int ch=0; int i,j; printf( 请输入删除联系人姓名: ); /*提示信息*/ scanf(%s,s);/*输入姓名*/ i=find(t,n,s); /*调用fin

    13、d函数*/ if(in-1) /*如果in-1超过了数组的长度*/ printf( n 未找到要删除的记录!n); /*显示没找到要删除的记录*/ else print(ti); /*调用输出函数显示该条记录信息*/ printf( 确认是否删除该联系人(10)n); /*确认是否要删除*/ printf( 请输入你的选项:); scanf(%d,&ch); /*输入一个整数0或1*/ if(ch=1) /*如果确认删除整数为1*/ for(j=i+1;j=i;j-) /*从最后一个结点开始向后移动一条*/ strcpy(tj+1.NAME,tj.NAME); /*将前记录的姓名复制到后一条*

    14、/ strcpy(tj+1.EMAIL,tj.EMAIL); /*将前记录的邮箱复制到后一条*/ strcpy(tj+1.TELE1,tj.TELE1); /*将前记录的电话复制到后一条*/ strcpy(tj+1.TELE2,tj.TELE2); /*将前记录的电话复制到后一条*/ strcpy(tj+1.HOMETOWN,tj.HOMETOWN); /*将前记录的籍贯复制到后一条*/ strcpy(ti.NAME,temp.NAME); /*将新插入记录的姓名复制到第i个位置*/ strcpy(ti.EMAIL,temp.EMAIL); /*将新插入记录的邮箱复制到第i个位置*/ strc

    15、py(ti.TELE1,temp.TELE1); /*将新插入记录的电话复制到第i个位置*/ strcpy(ti.TELE1,temp.TELE2); /*将新插入记录的电话复制到第i个位置*/ strcpy(ti.HOMETOWN,temp.HOMETOWN); /*将新插记录的籍贯复制到第i个位置*/ n+; /*记录数加1*/ return n; /*返回记录数*/ /*快速查找,参数为结构体数组和记录数*/ void qseek(DATA t,int n) char s20; int l,r,m; printf( 请输入需快速查找的联系人姓名:); /*提示输入*/ scanf(%s,

    16、s); /*输入待查找的姓名*/ l=0;r=n-1; /*设置左边界与右边界的初值*/ while(l=r) /*当左边界=右边界时*/ m=(l+r)/2; /*计算中间位置*/ if(strcmp(tm.NAME,s)=0) /*与中间结点姓名字段做比较判是否相等*/ print(tm); /*如果相等,则调用print函数显示记录信息*/ return ; /*返回*/ if(strcmp(tm.NAME,s)r) /*如果左边界大于右边界时*/ printf( 未查找到该联系人的相关记录!n); /*显示没找到*/ 四、运行结果五、总结 (一)设计过程中遇到的问题 对数组的调用:c语言规定只能逐个引用数组元素,而不能一次引用一个数组。自定义函数时需要有函数声明等问题。(二)、解决问题的过程


    注意事项

    本文(c语言程序设计实践报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开