ImageVerifierCode 换一换
格式:DOC , 页数:49 ,大小:1.85MB ,
资源ID:2864423      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

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

注意事项

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

专业课程设计专业资料.doc

1、 成 绩 评 定 表学生姓名马舒阳班级学号专 业电子信息科学与技术课程设计题目编程技术基本实训评语组长签字:成绩日期 年 月 日课程设计任务书学 院信息科学与工程学院专 业电子信息科学与技术学生姓名马舒阳班级学号课程设计题目编程技术基本实训实践教学规定与任务:运用C语言编写下题代码。题目名称:设计求两数之差绝对值函数和学生成绩记录程序内容及规定:(1)题目一内容和规定:1).设计一种选取式菜单。栈子系统* 1 入栈 * 2 出栈 * 3 显示 * 4 数制转换 * 0 返回 *请选取菜单号(04):2).设计一种整型数据元素链栈。3).编写入栈、出栈和显示栈中所有元素程序。4).编写一种把十进

2、制数转换成八进制数应用程序。(2)题目二内容和规定:通讯录实质上是一种线性表,由于通讯录长度不拟定,且插入或删除操作比较频繁,因而,采用单链式存储构造。规定实现如下功能:1).设计一种选取式菜单。通讯录管理系统* 1 通讯录单链表建立 * 2 通讯者插入 * 3 通讯者删除 * 4 通讯者查询 * 0 退出 *请选取菜单号(04):2).编程实现通讯录单链表建立、通讯者插入、通讯者删除、通讯者查询、通讯录输出。工作筹划与进度安排:第1天:1、指引教师布置课程设计题目及任务2、查找有关资料第24天:1、依照详细设计题目进行详细分析2、对设计题目进行编码和调试3、指引教师进行验收第5天:1、指引教

3、师针对课程设计进行答辩2、完毕课程设计报告指引教师: 月 日专业负责人: 月 日学院教学副院长: 年 月 日目 录一、课程设计目-1二、课程设计内容和规定-1三、题目一设计过程-2四、题目二设计过程-24五、设计总结-36六、参照文献-36题目 栈子系统、通讯录管理系统一、课程设计目本学期咱们对数据构造这门课程进行了学习。这门课程是一门实践性非常强课程,为了让人们更好地理解与运用所学知识,提高动手能力,咱们进行了本次课程设计实习。这次课程设计不但规定学生掌握数据构造中各方面知识,还规定学生具备一定C语言基本和编程能力。(1)题目一目: 1.掌握栈特点及其描述办法2.掌握链式存储构造实现一种栈3

4、.掌握链栈各种基本操作4.掌握栈典型应用算法(2)题目二目: 1.掌握线性表特点2.掌握线性表顺序存储构造和链式存储构造基本运算3.掌握线性表基本操作二、课程设计内容和规定(1)题目一内容和规定:1).设计一种选取式菜单。栈子系统* 1 入栈 * 2 出栈 * 3 显示 * 4 数制转换 * 0 返回 *请选取菜单号(04):2).设计一种整型数据元素链栈。3).编写入栈、出栈和显示栈中所有元素程序。4).编写一种把十进制数转换成八进制数应用程序。(2)题目二内容和规定:通讯录实质上是一种线性表,由于通讯录长度不拟定,且插入或删除操作比较频繁,因而,采用单链式存储构造。规定实现如下功能:1).

5、设计一种选取式菜单。通讯录管理系统* 1 通讯录单链表建立 * 2 通讯者插入 * 3 通讯者删除 * 4 通讯者查询 * 0 退出 *请选取菜单号(04):2).编程实现通讯录单链表建立、通讯者插入、通讯者删除、通讯者查询、通讯录输出。三、题目一设计过程1、题目分析本题规定合理地设计一种栈构造及入栈、出栈、删除、查找等基本操作,并运用此构造实现数制转换。2、 算法描述一方面定义一种结点构造体,指针域涉及两个指针,分别指向前驱结点和后继结点,数据域为一种DataType类型变量,其中DataTYpe类型为宏定义;在定义一种栈构造体,构造体内涉及两个指针,分别为栈顶指针和栈低指针,尚有一种int

6、型记录栈长度。欢迎界面后,进入主菜单,主菜单用switch设计,其中调用函数NUM,该函数可返回有效菜单号,可屏蔽并提示错误信息及重新输入,菜单下调用了其她功能函数,菜单内除退出和初始化函数外所有功能函数均存储在FUN.c.下。下面仅详细阐述一下各功能模块工作原理。入栈为栈初次赋值,运用dowhile();可按需求循环输入多组信息,并及时退出返回到主菜单,在实现循环多组输入时调用了函数Push,Push为机械入栈一种新元素,将参数nn,入栈到栈tt内,栈长度加一。出栈函数Pop中,一方面判断栈与否为空,为空时,不可出栈;非空时,输出栈顶元素及栈长度,并删除栈顶节点,栈长度减一。信息输出完毕后按

7、任意键返回主菜单。显示函数Show中,即运用do.while循环多次调用出栈函数,每次输出时要按任意键继续一次,以保障画面整洁。信息输出完毕后按任意键返回主菜单。数制转换函数chang中,大体构造涉及一种大do.while容许多次使用信息转换,do中一方面输入数及其进制和预期进制,然后判断与否为十进制,经费是禁止数字转换为十进制,再将其循环除以预期进制,将别的数存在新建号栈中,直到余数为零,停止循环,然后依次出栈,将栈顶元素依次显示出来,即转换结束。可选N或Y,继续下一次转换,或者返回主菜单。3、 源代码ST.h :#ifndef ST_H#define ST_H#include#includ

8、e#include#includetypedef int DataType;typedef struct Nodestruct Node *pro;DataType data;struct Node *next; NN;/双向链栈结点typedef structNN *top;NN *base;int size; ST;/栈/main.c:主函数/Menu.c:框架界面函数和初始化退出函数void Initiate(ST *tt);/栈初始化 及 双向链初始化void JM();/界面int Num();/菜单序号选取void Exit();/退出/FUN.c:详细功能函数void Input

9、(ST *tt);/入栈void Push(ST *tt,DataType nn);/机械入栈int Pop(ST *tt);/机械出栈void Show(ST tt);/显示void change(ST tt);/数制转换#endifMenu.c:#includeST.Hvoid JM()/界面函数int ch;ST tt;Initiate(&tt);printf(nnnnnnnntt欢迎您使用 栈子系统 !nnn );printf(tttt设计者:马舒阳()n);getch();dosystem(cls);printf (nntttt栈子系统n);printf (t*n);printf (

10、t* 1 入栈 *n);printf (t* 2 出栈 *n);printf (t* 3 显示 *n);printf (t* 4 数制转换 *n);printf (t* 0 返回 *n);printf (t*n);printf (t* 提示:本系统仅可用于整型数数据储存,望谅解。*tn);printf (t*n);ch=Num();switch(ch)case 1 :Input(&tt);break;case 2 :Pop(&tt);break;case 3 :Show(tt);break;case 4 :change(tt);break;case 0 :Exit();case -1:;whi

11、le(ch);int Num()/判断菜单号int k;printf(ntt请选取菜单号(04):);scanf(%d,&k);getchar();if(k5)printf(ntt输入错误!按任意键继续.);getch();return (-1);elsereturn k;void Initiate(ST *tt)/栈空初始化 注意:此函数内tt为栈型指针,不同于JM内tttt-base = (NN*)malloc(sizeof (NN);tt-top = tt-base;tt-size=0;void Exit()/退出system(cls);printf(nnnnnntt谢谢使用 程序退出!

12、);printf(nnnnnnttt);printf(按任意键继续.);getch();main.c:#includeST.Hint main()JM();return 0;FUN.c:#includeST.Hvoid Input(ST *tt)/栈初始化DataType nn;int ch;system(cls);printf(nntt教师早安!开始入栈!nn);doprintf(ntt请输入新栈顶数据 : );scanf (%d,&nn);/%dgetchar();Push(tt,nn);/调用入栈函数doprintf(ntt继续? );ch = getchar();getchar();i

13、f(ch != N & ch != Y)printf(ntt请输入 Y 或 N !n);elsebreak;while(1);while (ch = Y);void Push(ST *tt,DataType nn)/将nn入栈到tt所指栈 (栈中top指向尚未赋值结点)NN *p;p = (NN *)malloc(sizeof (NN);tt-top-data = nn;p-pro = tt-top;(tt-top)-next = p;tt-top = p;tt-size+;int Pop(ST *tt)/出栈NN *p;if (tt-size=0)printf (ntt对不起,此栈已空!n)

14、;getch();return 0;elseprintf(ntt栈顶元素为 %d n,tt-top-pro-data);/%dp = tt-top;tt-top = tt-top-pro;free(p);tt-top-next=NULL;if (!(tt-top-next)tt-size-;printf(ntt出栈成功!栈中尚有%d个元素!按任意键继续.n,tt-size);getch();return 1;void Show(ST tt)/显示 所有出栈system(cls);doif (!tt.size)break;elsePop(&tt);while(1);printf(ntt马舒阳报告

15、完毕完毕!按任意键继续.n);getch();void change()/数值转换ST cc;NN *p;int i,nn,zz,yy,tem_1,tem_2,tem_3;char ch;Initiate(&cc);dosystem(cls);printf(nntt欢迎进入数据转换!nntt(请注意:系统暂不支持十以上进制转换!)n);printf(nntt请输入一种数字! );scanf(%d,&nn);/%dgetchar();printf(nntt请问已输入数字是什么进制呢? );scanf(%d,&zz);/%dgetchar();printf(nntt请问您想要转换到几进制呢? );

16、scanf(%d,&yy);/%dgetchar();if(zz10 | yy10)printf(ntt待转换数字进制输入不合理!按任意键回到主菜单.);getch();return ;if(zz!=10)/若不是十进制 要转换成十进制tem_3=1;/变量含义:进制数n次方tem_2=0;/变量含义:暂时存储和tem_1=1;/变量含义:各项数for(i=0;nn;nn/=10)tem_1=(nn%10)*tem_3 ;tem_2+=tem_1;tem_3*=zz;nn=tem_2;for(;nn;nn/=yy)/大除法入栈if(nn%yypro;printf(%d,p-data);/%dc

17、c.top = p;free(p-next);cc.size-;doprintf(nntt继续? );ch = getchar();getchar();if(ch != N & ch != Y)printf(ntt请输入 Y 或 N !n);elsebreak;while(1);while (ch = Y);4、 运营成果欢迎界面,如图所示。图1-1 按任意键继续后进入主菜单,选取菜单号1,进入入栈模块,如图所示。图1-2 开始入栈,输入新栈顶元素(整型),并输入Y或N选取与否继续,此过程中,输入错误有提示,如图所示,以1,3,5,7,9,2,4,6,8,入栈为例。图1-3图1-4图1-5 选

18、取N,输入结束,然后回到主菜单,下面选取菜单号2,进入出栈模块。图1-6按任意键继续后,回到主菜单,选取菜单号3,显示栈内剩余信息。图1-7图1-8其间,每一次输出可按需要按任意键输出,并显示剩余信息。图1-9图1-10报告完毕后,即栈已空,按任意键返回到主函数,选取菜单号4 ,进入数制转换模块。图1-11输入被转换数字,被转换数字数制及预期数制,并可按需求输入Y或N选取继续或退出。图1-12图1-13退出后返回主菜单,选取0,即可退出程序。图1-14图1-15四、题目二设计过程1、题目分析本题规定建立链表,以存储联系人信息,并设计出对其建立,插入删除显示等基本操作即可。2、 算法描述一方面定

19、义一种链表结点构造体,指针域涉及一种next指针,数据域涉及个人姓名及联系方式。欢迎界面后,进入主菜单,主菜单用switch设计,其中调用函数NUM,该函数可返回有效菜单号,可屏蔽并提示错误信息及重新输入,菜单下调用了其她功能函数,菜单内除退出和初始化函数外所有功能函数均存储在Fx.c.下。下面仅详细阐述一下各功能模块工作原理。函数Build,一方面判断该表与否已建立过,即表内与否有一种空结点(头结点),表未初始化时便建立一种空表,否则提示“表已存在,无需建立”。提示后延时2s自动跳转到主菜单。插入函数Insert,一方面输入有效信息,然后运用头插法将其插入到头指针下一种结点,再输出提示,提示

20、顾客选取N或Y,判断与否继续,若要继续,则递归本函数,否,直接返回主菜单。删除函数Delete,一方面判断表与否为空,表为空时,不容许删除,并弹出提示,按任意键继续后后跳转到主菜单;表非空时,输入要删除人姓名,运用循环查找表中人信息(暂不支持多元素查找与删除),若查找成功则输出提示,询问与否拟定删除,按需求,删除该结点(暂不支持误删恢复)或取消操作;若查找失败,不存在该联系人,则输出提示。最后按任意键退回到主菜单。查询函数Search,一方面判断表与否为空,表为空时,不容许查找,并弹出提示,按任意键继续后后跳转到主菜单;表非空时,输入要查询人姓名,运用循环查找表中人信息(暂不支持多元素查找),

21、然后输出信息,按任意键退回到主菜单。退出函数Exit,先输出表内所有信息,信息输出完毕后,按任意键结束程序。3、源代码MSY.h:#ifndef MSY_H#define MSY_H#include #include /#include #include #define N 20typedef struct Nodechar nameN;char numN;struct Node *next;NODE;void Welcome();void jiemian();int Num();void Build(NODE *head);void insert(NODE *head);void Delet

22、e(NODE *head);void Find(NODE *head);void Exit(NODE *head);/待改进:多元素查询/待改进:当head没有初始化,要直接关闭,不容许进行插入和删除等操作#endifFx.c:#include MSY.hvoid jiemian()static NODE *head=NULL;system(cls);printf(nntttt通讯录管理系统n);printf(*n);printf(* 1 通讯录单链表建立 *n);printf(* 2 通讯者插入 *n);printf(* 3 通讯者删除 *n);printf(* 4 通讯者查询 *n);pr

23、intf(* 0 退出 *n);printf(*n);printf(t提示:在2,3,4功能执行前,须先执行1.操作! *n);printf(*n);switch(Num()case 1:Build(&head);break;case 2:insert(&head);break;case 3:Delete(head);break;case 4:Find(head);break;case 0:Exit(head);break;int Num()int k;printf(ntt请选取菜单号(04):);scanf(%d,&k);getchar();if(k4)printf(ntt输入错误!按任意键

24、继续.);getch();system(cls);jiemian();elsereturn k;void Build(NODE *head)/建立一种有头结点链表(以头结点与否已存在为鉴定根据)system(cls);if(*head)!=NULL)printf(nnnn*链表已存在,无需创立!*n);else(*head)=(NODE *)malloc(sizeof(NODE);if( (*head) )(*head)-next=NULL;printf(nn#n);printf(# - 创立成功! - #n);printf(#n);elseprintf(tt内存分派失败!);Sleep();

25、jiemian();void insert(NODE *head)char ch;NODE *p;system(cls);printf(#n);printf(#-INSERT NEW CONTACT-#n);printf(#n);p=(NODE *)malloc(sizeof(NODE);printf(ntt请输入新联系人姓名(1%d位字母或数字):,N-1);/待改进 鉴定溢出 及 字符或是数字scanf(%s,&(p-name);printf(nntt请输入新联系人电话号码(1%d位数字):,N-1);scanf(%s,&(p-num) );getchar();p-next=(*head)

26、-next;(*head)-next=p;if(p=(*head)-next)printf(nn= 插入成功!=n);elseprintf(nn= 插入失败!=n);Sleep(1500);dosystem(cls);printf(#n);printf(#n);printf(nntt与否继续? );ch=getchar();getchar();if(ch!=N & ch!=Y)printf(ntt输入有误,按任意键继续);getchar();else if(ch=Y)insert(head);break;while(1);jiemian();void Delete(NODE *head)NOD

27、E *n,*p;char ch,nameN;system(cls);printf(#n);printf(#-DELETE-#n);printf(#n);if(!(head-next)printf(nnnnt*通讯录为空!快加入新联系人吧!*n);printf(ntt按任意键继续.);getch();jiemian();printf(nntt请输入欲删除联系人姓名:);scanf(%s,name);getchar();p=head;doif(!strcmp(p-name,name)break;elsen=p;p=p-next;while(p);if(!p)printf(nn-您所输入联系人不存在

28、,请查证!-n);elseprintf(nnttTA电话号码是%s,您拟定要删除吗? ,p-num);scanf(%c,&ch);getchar();if(ch!=Y & ch !=N)printf(ntt输入错误!按任意键继续.);getch();else if(ch=N)printf(nn-删除未成功!- n);else n-next=p-next;free(p);printf(nn - 删除成功! - n);printf(ntt按任意键继续.);getch();jiemian();void Find(NODE *head)NODE *p;char nameN;system(cls);printf(#n);printf(#-SEARCH-#n);printf(#n);if(!(head-next)printf(nnnn*通讯录为空!快加入新联系人吧!*n);printf(ntt按任意键继续.);getch();jiemian();printf(nntt请输入TA姓名:);scanf(%s,name);getchar();p=head;while(p)if(!strcmp(name,p-name)break;p=p-next;if(p)printf(nttTA电话号码为%s!n,p-num);else

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服