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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2727385.html】到电脑端继续下载(重复下载【60天内】不扣币)。

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C语言专业课程设计大作业.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言专业课程设计大作业.doc

1、 郑 州 大 学 课程汇报 课 程 名 称: C语言程序设计 专 业 班 级 : (15)班 学 生 姓 名 : 谢* 学 号 : 7611*** 任 课 教 师 : 赵** 学 期 : --2 课程汇报任务书 题 目 通讯录管理系统 关键 内容 开发一个通讯录管理系统,基础信息包含:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件

2、等基础信息(也能够依据自己情况进行扩充)。使之能提供以下基础功效: (1)通讯录等信息录入功效 (注:数据等要求用文件保留)--输入v (2)通讯录信息浏览功效--输出 (3)查询功效(最少一个查询方法)、排序功效(最少一个排序方法): l ①按电话号码进行查询 ②按姓名查询 等 ③ 根据年纪排序 ④按姓名排序等 (4)通讯录条目标删除和修改等 扩展功效:能够根据自己程度进行扩展。比如(1)简单权限处理 (2)报表打印功效(3)模糊查询,如姓张人员等;或给定电子邮件部分进行查询等(4)给定指定年纪范围之内查询等等。 总而言之,能够依据自己需求进行分析功效,成绩评定根据

3、难度进行区分。 任务 要求 一、提交材料应包含:(1)系统源代码 (2)课程汇报 二、整个设计过程具体要求 (1)需求分析 要求学生对案例系统进行分析,设计出需要完成功效,完善各个模块调用关系; (2)设计过程 要求学生深入明确各模块调用关系,深入完善模块函数细节(函数名、参数、返回值等) (3)实现过程 要求学生养成良好编码习惯、完成各个模块并进行测试,最终完成系统整体测试; (4)总结阶段 根据要求完成系统设计和实现汇报,并进行总结、答辩。 成绩 评定 汇报撰写情况(30分) 系统完成情况(30分) 答辩情况(40分) 总分 内容 20分 规范程度

4、 5分 程序测试 5分 基础功效20分 扩展功效10分 自述情况10分 答辩情况 30分 成绩评定老师: 一. 需求分析 1,含有数据插入、修改、删除、显示和查询功效电话簿管理程序。 2,数据包含:人名、工作单位、电话号码和E-MAIL地址。 3,可对统计中姓名和电话号码进行修改。 4,可增加和删除统计。 5,可显示全部保留统计。 6,可按人名或电话号码进行查询。 分析 提议采取结构体数组和文件系统实现。结构体组员包含人名、工作单位、电话号

5、码和E-MAIL地址。 依据题目标要求程序应该采取结构体数组和文件系统实现。应该有文件操作功效;在程序中应该包含输入、显示、删除、查询、添加、修改、保留、加载和退出功效。 二、概要设计 (1).程序模块组成及各个函数功效: 程序模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示统计函数:Display(); 删除统计函数:shanchu(); 查找统计函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar

6、); 修改数据函数:xiugai(); 保留数据函数:baocun(); 排序数据函数:paixu(); 各函数关键功效: 输出数据函数:随时输出数据; 读取数据函数:读取输入数据信息; 显示菜单函数:显示可供选择主菜单; 显示统计函数:显示通讯录全部输入信息; 删除统计函数:显示要删除通讯录全部输入信息; 查找统计函数:显示要查询通讯录全部输入信息; 自定义清屏函数:清除前面运行留下信息; 自定义输入函数:输入通讯录组员;; 字符输入函数:从终端输入一个字符,遇回车键返回; 修改数据函数:修改通讯录组员信息; 保留数据函数:保留通讯录组员信息; 排序数据函

7、数:排序通讯录组员信息; (2)程序中抽象数据类型定义: 用户状态结构 用户 { 编号: 姓名: 电话; 年纪; 邮箱: 地址; (3)总体步骤图 依据上面分析,能够将程序系统设计分为以下多个模块:插入、显示、删除、查询、修改、保留和退出。 通讯录管理系统 插入 显示 删除 查询 保留 修改 退出 } 三. 具体设计 (1). 主菜单; 主菜单通常设计得

8、比较简练,只提供输入,处理和输出部分函数调用。其中各功效模块用菜单方法选择。 步骤图 输入n,判定是否是0~6 开始 显示一系列功效选项 N 依据n值调用各功效模块函数 结束 Y 【程序】 Person pe[80]; int menu_select() { char c; do{ system("cls"); //清屏 printf("\t\t\t***********

9、\n");//窗口初始化 printf("\t\t\t********** 欢迎使用通讯录管理系统! ***********\n"); printf("\t\t\t*************┌───────┐***************\n"); printf("\t\t\t************** 1. 添加统计 ***************\n"); printf("\t\t\t**************│ 2. 显示统计│********

10、\n"); printf("\t\t\t**************│ 3. 删除统计│****************\n"); printf("\t\t\t**************│ 4. 查询统计│****************\n"); printf("\t\t\t**************│ 5. 修改统计│****************\n"); printf("\t\t\t**************│ 6. 保留统计│*****************\n"); printf("\t\t\t*****

11、│ 7. 排序统计│*****************\n"); printf("\t\t\t**************│ 0. 退出程序│*****************\n"); printf("\t\t\t**************└──────┘****************\n"); printf("\t\t请您选择(0-7):"); c=getchar(); }while(c<'0'||c>'7'); return(c-'0'); } (2)显示模块 此模块为显示全部统计,步骤图以下:

12、 选择显示功效 显示全部数据 回主菜单 void Display(Person per[],int n) { Inti; printf("----------------------------------------------------------------------\n"); //格式 printf("编号\t姓名\t年纪\t电话号码\t通讯地址\t电子邮箱\n"); printf("-----------------------

13、\n"); for(i=1;i1&&i%10==0)

14、 { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n")

15、 system("pause"); (3)修改模块 此模块先调用查找函数查找到所要修改信息,然后用户依据需要修改信息。步骤图以下: 开始 输入要修改统计姓名 是否找到信息 提醒未找到信息 显示要修改信息 修改需要修改条目,并保留 结束 N Y void xiugai(Person per[],int n) { char s[20]; int i=0; printf("\t请输入想修改统计中名字:"); scanf("%s",s); //输入修改人名字 whi

16、le(strcmp(per[i].name,s)!=0&&i

17、per[i].num); printf("\t通讯住址:"); scanf("\t%s",per[i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[i].email); printf("\t修改成功"); } (4)插入模块 此模块为插入信息模块,插入后再调用保留函数来保留所插入数据,支持多条信息插入。 步骤图 开始 输入要插入统计个数n i从0到n-1调用Input函数 i!=0吗? 返回主菜单 保留调用baocun函数

18、 结束 N YY int Input(Person per[],int n) { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t编号:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name);

19、printf("\t年纪:"); scanf("\t%s",per[n+i].age); printf("\t电话号码:"); scanf("\t%s",per[n+i].num); printf("\t通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign);

20、i++; } return(n+i); } (5)删除模块 此模块先利用查找模块找到所要删除信息,然后依据用户选择来确定是否删除信息,此种调用到Save函数。其步骤图以下: 开始 输入要删除信息名字 是否找到信息 提醒没有找到信息 N Y 显示找到信息 提醒是否删除 N Y 提醒未删除 提醒删除成功 结束 int shanchu(Person per[],int n) {

21、 char s[20]; int i=0,j; printf("\t请输入想删除统计中名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

22、 strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); } printf("\t\t\t已经成功删除!\n"); return(n-1); } (6) 查询模块 void chaxun(Person per[],int n) { int m; printf("\t\n请选择查询方法:\n"); printf("\t┌──────---┐\n"); prin

23、tf("\t│1------姓名查询│\n"); printf("\t│2------电话查询│\n"); printf("\t│3------地址查询│\n"); printf("\t│4------返回 │\n"); printf("\t└──────---┘\n"); printf("请选择:"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3&&m!=4) { printf("输入错误请重新选择:"); scanf("%d",&m); } if(m==1) { cha

24、r s[20]; int i=0; printf("\t请输入想查询姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i

25、 %s\n",per[i].num); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); } ; if(m==2) { char s[20]; int i=0; printf("\t请输入想查询电话:"); scanf("\t%s",s); while(strcmp(per[i].num,s)!=0&&i

26、 return; } printf("\t此人编号: %d\n",per[i].score); //输出查询结果 printf("\t此人姓名: %s\n",per[i].name); printf("\t此人年纪: %s\n",per[i].age); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); } ; if(m==3) { char s[20]; int i=0; printf

27、"\t请输入想查询地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i

28、f("\t电话号码: %s\n",per[i].num); printf("\t电子邮箱: %s\n",per[i].email); } ; } (7)排序模块 void paixu(Person per[],int n) { int i,j; // printf("\t\按编号排序:\n"); for(i=1;i0) { strcpy(per->num,per[

29、j].num); strcpy(per->name,per[j].name); strcpy(per->age,per[j].age); strcpy(per->adds,per[j].adds); strcpy(per->email,per[j].email); strcpy(per[j+1].num,per->num); strcpy(per[j+1].name,per->name); strcpy(per[j+1].age,per->age); strcpy(per[j+1].adds,per->adds); strc

30、py(per[j+1].email,per->email); } } printf("排序成功!\n"); } 五.测试结果 1.主菜单 2. 显示全部信息 3. 插入信息 4. 查找模块 第一步: 第二步: 第三步: 第四步: 5. 删除模块 6.修改模块 第一步 第二步 六. 课程心得总结 刚开始学习C语言,总认为极难了解,也极难学。在这之前,我们已经学习了一个学期,对C语言有了一定了解,不过也仅仅是停留在学习了解范围,

31、对里面好多东西还是很陌生,并不是很熟练,有着很多欠缺,更多在利用起来时候还是感到很不好动手。 这次程序设计试验是对我们进入大学以来学习程序设计语言结果一次大检验。自己动手发觉和处理问题。经过这,我发觉了自己很多不足,平时没有掌握好知识在这次试验中根本暴露出来,经过不停思索,不停查阅资料和上机运行处理其中大部分问题。当然,还存在部分问题没有处理。我相信在以后学习能够处理好它们。 课堂上很多相关C语言语法规则,听起来十分枯燥无味,也不轻易记住,死记硬背是不可取。然而要使用C语言这个工具处理实际问题,又必需掌握它。经过上机练习,对于语法知识有了感性认识,加深对它了解,在了解基础上就会自然而然地掌

32、握C语言语法要求。对于部分内容自己认为在课堂上听懂了,但上机实践中会发觉原来了解偏差,愈加巩固了学过知识,而且在设计时候学要系统知识,也是一个较大挑战,某首先知识欠缺全部将影响到整个程序设计。 这次大作业让我学到了很多有用东西,巩固了之前学习,经过这个程序学习,使我深入了解和利用结构化程序设计思想和方法。相信对以后初步掌握开发一个小型实用系统基础方法,学会调试一个比较长程序基础方法,学会利用步骤图表示算法,深入掌握和提升利用C语言进行程序设计能力。 我认为,这次实习对于我是很有意义,对我个人影响比较大,对我动手能力有了很大提升。经过这次课程设计,我对很多函数有了新认识,也学会了利用多个函数

33、最终感谢完成大作业过程中帮助过我老师和同学。 源代码: #include #include #include typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年纪*/

34、 char adds[20]; /*地址*/ }Person; Person pe[80]; int menu_select() { char c; do{ system("cls"); printf("\t\t\t**********************************************\n");//窗口初始化 printf("\t\t\t********** 欢迎使用通讯录管理系统! ***********\n"); printf("\t\t

35、\t*************┌───────┐***************\n"); printf("\t\t\t************** 1. 添加统计 ***************\n"); printf("\t\t\t**************│ 2. 显示统计│****************\n"); printf("\t\t\t**************│ 3. 删除统计│****************\n"); printf("\t\t\t**************│ 4. 查询统计│**

36、\n"); printf("\t\t\t**************│ 5. 修改统计│****************\n"); printf("\t\t\t**************│ 6. 保留统计│****************\n"); printf("\t\t\t**************│ 7. 排序统计│****************\n"); printf("\t\t\t**************│ 0. 退出程序│****************\n"); printf("\t\t\t***

37、└──────┘****************\n"); printf("\t\t请您选择(0-7):"); c=getchar(); }while(c<'0'||c>'7'); return(c-'0'); } void paixu(Person per[],int n) { int i,j; // printf("\t\按编号排序:\n"); for(i=1;i

38、um,per[j+1].num))>0) { strcpy(per->num,per[j].num); strcpy(per->name,per[j].name); strcpy(per->age,per[j].age); strcpy(per->adds,per[j].adds); strcpy(per->email,per[j].email); strcpy(per[j+1].num,per->num); strcpy(per[j+1].name,per->name); strcpy(per[j+1].age,per-

39、>age); strcpy(per[j+1].adds,per->adds); strcpy(per[j+1].email,per->email); } } printf("排序成功!\n"); } int Input(Person per[],int n) { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t编号:"); scanf("\t%d",&per[n+i].sco

40、re); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年纪:"); scanf("\t%s",per[n+i].age); printf("\t电话号码:"); scanf("\t%s",per[n+i].num); printf("\t通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[n+i].email); gets(x);

41、 printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i); } void Scan(Person per[],int n) { int i; FILE *fp; if((fp=fopen("record.txt","rb"))==NULL)//打开文件 { printf("不能打开文件!\n"); exit(1); } fs

42、canf(fp,"%d",&n);//读入统计数 //fseek(fp,0,1); for(i=0;i

43、 n) { int i; printf("----------------------------------------------------------------------\n"); /*格式*/ printf("编号\t姓名\t年纪\t电话号码\t通讯地址\t电子邮箱\n"); printf("-----------------------------------------------------------------

44、\n"); for(i=1;i1&&i%10==0)

45、 { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } int shanc

46、hu(Person per[],int n) { char s[20]; int i=0,j; printf("\t请输入想删除统计中名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

47、per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); } printf("\t\t\t已经成功删除!\n"); return(n-1); } void chaxun(Person per[],int n) { int m; printf("\t\n请选择查询方法:\n"); printf("\t

48、┌──────---┐\n"); printf("\t│1------姓名查询│\n"); printf("\t│2------电话查询│\n"); printf("\t│3------地址查询│\n"); printf("\t│4------返回 │\n"); printf("\t└──────---┘\n"); printf("请选择:"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3&&m!=4) { printf("输入错误请重新选择:"); scanf("%d",&m); }

49、 if(m==1) { char s[20]; int i=0; printf("\t请输入想查询姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i

50、 printf("\t电话号码: %s\n",per[i].num); printf("\t通讯地址: %s\n",per[i].adds); printf("\t电子邮箱: %s\n",per[i].email); } ; if(m==2) { char s[20]; int i=0; printf("\t请输入想查询电话:"); scanf("\t%s",s); while(strcmp(per[i].num,s)!=0&&i

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服