C课程设计 编程技术基础实训_第1页
C课程设计 编程技术基础实训_第2页
C课程设计 编程技术基础实训_第3页
C课程设计 编程技术基础实训_第4页
C课程设计 编程技术基础实训_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、题目二的内容和要求:通讯录实质上是一个线性表,由于通讯录长度不确定,且插入或删除操作比较频繁,因此,采用单链式存储结构。要求实现如下功能:1).设计一个选择式菜单。通讯录管理系统*1通讯录单链表的建立2通讯者的插入3通讯者的删除4通讯者的查询0*请选择菜单号(。-4):2).编程实现通讯录单链表的建立、通讯者的插入、通讯者的删除、通讯者的查询、通讯录的输出。工作计划与进度安排:第1天:1、指导教师布置课程设计题目及任务2、查找相关资料第24天:1、根据具体设计题目进行具体分析2、对设计题目进行编码和调试3、指导教师进行验收第5天:1、指导教师针对课程设计进行答辩2、完成课程设计报告指导教师:专

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

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

5、理系统*1通讯录单链表的建立2通讯者的插入3通讯者的删除4通讯者的查询0退出*请选择菜单号(034):2).编程实现通讯录单链表的建立、通讯者的插入、通讯者的删除、通讯者的查询、通讯录的输出。三、题目一设计过程1、题目分析本题要求合理地设计一个栈的结构及入栈、出栈、删除、查找等基本操作,并运用此结构实现数制转换。算法描述首先定义一个结点结构体,指针域包括两个指针,分别指向前驱结点和后继结点,数据域为一个DataType类型的变量,其中DataTYpe类型为宏定义;在定义一个栈结构体,结构体内包括两个指针,分别为栈顶指针和栈低指针,还有一个int型记录栈的长度。欢迎界面后,进入主菜单,主菜单用s

6、witch设计,其中调用函数NUM,该函数可返回有效的菜单号,可屏蔽并提示错误信息及重新输入,菜单下调用了其他功能函数,菜单内除退出和初始化函数外所有的功能函数均存放在.下。下面仅详细阐述一下各功能模块的工作原理。入栈为栈的首次赋值,利用dowhile();可按需求循环输入多组信息,并及时退出返回到主菜单,在实现循环多组输入时调用了函数Push,Push为机械入栈一个新元素,将参数nn,入栈到栈tt内,栈的长度加一。出栈函数Pop中,首先判断栈是否为空,为空时,不可出栈;非空时,输出栈顶元素及栈的长度,并删除栈顶节点,栈的长度减一。信息输出完毕后按任意键返回主菜单。显示函数Show中,即利用d

7、o.while循环多次调用出栈函数,每次输出时要按任意键继续一次,以保障画面整洁。信息输出完毕后按任意键返回主菜单。数制转换函数chang中,大体结构包括一个大的do.while允许多次使用信息转换,do中首先输入数及其进制和预期进制,然后判断是否为十进制,经费是禁止的数字转换为十进制,再将其循环除以预期进制,将其余数存在新建号的栈中,直到余数为零,停止循环,然后依次出栈,将栈顶元素依次显示出来,即转换结束。可选N或Y,继续下一次转换,或者返回主菜单。源代码#ifndefST_H#defineST_H#include<>#include<>#include<>

8、;#include<>typedefintDataType;typedefstructNodestructNode*pro;DataTypedata;structNode*next;NN;.");getch();return(-1);elsereturnk;voidInitiate(ST*tt).");getch();#include""intmain()JM();return0;#include""voidInput(ST*tt).n",tt->size);getch();return1;voidShow

9、(STtt).n");getch();voidchange().");getch();return;if(zz!=10).");getch();return;printf("nntt转换结果为");设计者:马舒阳1213307。1雕)望谅解欢迎您使用栈子系统for(请选菜单号(E,F:'应用程序数据结构浮没卷exe老师早安,开始入栈?回 23请输入新栈顶数据:1继续?<vorN>F:'应用程序数据结构浮没废.exe请输入新栈顶数据:1继续?<VorN>丫请输入新栈顶数据:3继续?<vorN>&

10、#165;请输入新栈顶数据:5继续?<VorN>丫请输入新栈顶数据:7继续?<yorN>¥请输入新栈顶数据:9继续?<VorN>Y请输入新栈顶数据:2继续?<丫orN>V请输入新栈顶数=|0|S?UFAS用过序C3据则演设此栈子系统换 。转 患一看回 入出显数返F:'应用程序数据结构浮没卷exe栈子系统换转 曹谕回显数返12 3 4 0*提示:本系统仅可用于整型数数据的储存,望谅解。*请选择采单号(0-4):k结*没建seI=0.sI栈顶元素为6出栈成功,栈中还有衿元素?按任意键维续栈顶元素为4出栈成功1栈中还有6个元素,按任意

11、键继续.栈顶元索为2出栈成功,栈中还有5个元素,按任意键继续一.栈顶元素为9出栈成功峨中还有,个元素,按任意键继续钱顶元素为?出栈成功,栈中还有3个元素?按任意犍继续.栈顶元素为5出栈成功,栈中还有2个元素,按任意键继续.栈顶元素为3出校成功峨中还有1个元素哦任意键继续栈顶元素为1出中玄成功1栈中还有0个元素,按任意键继续.马舒阳汇报完毕完毕,技任意磁继续上作用程序质寂结构涕设噗exu栈子系统换转 宜杳回 入出显患12 3 4 0“提示,本系统仅可用于整型数数据的储存,望谅解,“请选择菜单号(i0:4F:施用财值*J设校。xe欢迎进入数据转换,请注意:系统暂不支持十以上进制转换”谓辅入一个数字

12、,223请问已输入的数字是什么进制呢?19请问您想要转换到几进制的呢?2转换结果为11111811101继续?<YorN>N»-ap_r_'i_ar_rj»r一r_wj«-arjr_rr_»=jr_j_»_ai_».»_r-»=j=ihj_»«-r»»工=-»i«-rm-'nf-tjar_njjr_-r_»-a=LTP.内产1Hi一尸"t,'*!,F*尸色产一.ft'.尸T-"*请选

13、择菜单号(卧F.01234M换转酱看回入出显量-提示:本累统仅可用于整型数数据的储存,里谅解,*F:V5用哈”鑫曲3;集嘎理。士谢谢使用程序退出,检年意键续.一下面仅具体阐述一下各功能模块的工作原理。函数Build,首先判断该表是否已建立过,即表内是否有一个空结点(头结点),表未初始化时便建立一个空表,否则提示“表已存在,无需建立”。提示后延时2s自动跳转到主菜单。插入函数Insert,首先输入有效信息,然后利用头插法将其插入到头指针的下一个结点,再输出提示,提示用户选择N或Y,判断是否继续,若要继续,则递归本函数,否,直接返回主菜单。删除函数Delete,首先判断表是否为空,表为空时,不允许

14、删除,并弹出提示,按任意键继续后后跳转到主菜单;表非空时,输入要删除人的姓名,利用循环查找表中人的信息(暂不支持多元素的查找与删除),若查找成功则输出提示,询问是否确定删除,按需求,删除该结点(暂不支持误删恢复)或取消操作;若查找失败,不存在该联系人,则输出提示。最后按任意键退回到主菜单。查询函数Search1首先判断表是否为空,表为空时,不允许查找,并弹出提示,按任意键继续后后跳转到主菜单;表非空时,输入要查询人的姓名,利用循环查找表中人的信息(暂不支持多元素的查找),然后输出信息,按任意键退回到主菜单。程序。退出函数Exit,先输出表内所有信息,信息输出完毕后,按任意键结束3、源代码#if

15、ndefMSY_H#defineMSY_H#include<>#include<>作!*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;case0:Exit(head);break;intNum()intk;printf("ntt请选择菜单号(0-4):");scanf("%d&qu

16、ot;,&k);getchar();if(k<0|k>4)printf("ntt输入错误!按任意键继续.");getch();system("cls");jiemian();elsereturnk;voidBuild(NODE*head).");getch();jiemian();printf("nntt请输入欲删除联系人姓名:");scanf("%s",name);getchar();p=head;doif(!strcmp(p->name,name)break;elsen=p;

17、p=p->next;while(p);if(!p)printf("nn您所输入的联系人不存在,请查证!n");elseprintf("nnttTA的电话号码是s,您确定要删除吗<YorN>",p->num);scanf("%c",&ch);getchar();if(ch!='Y'&&ch!='N')printf("ntt输入错误!按任意键继续.");getch();elseif(ch='N')printf("n

18、n删除未成功!n");elsen->next=p->next;free(p);printf("nn删除成功!n");printf("ntt按任意键继续.");getch();jiemian();voidFind(NODE*head)NODE*p;charnameN;system("cls");printf("#n");printf("#SEARCH#n");printf("#n");if(!(head->next)printf("nnnn

19、*通讯录为空!快加入新联系人吧!*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);elseprintf("nn您所输入的联系人不存在,请查证!n"

20、);printf("ntt按任意键继续.");getch();jiemian();voidExit(NODE*head)NODE*p;system("cls");printf("#n");printf("#ALLCONTACTS#n");printf("#n");p=head->next;while(p)printf("ntt%s的电话号码为%sn",p->name,p->num);p=p->next;.");getch();system(&

21、quot;cls");printf("nnnnnntt谢谢使用程序退出!");printf("nnnnnnttt");printf("按任意键继续.");getch();exit(0);#include""voidmain()Welcome();jiemian();voidWelcome。printf("nnnnnnntt欢迎您使用通讯录管理系统!nnn");printf("tttt设计者:马舒阳(02)n");getch();运行结果首先是欢迎界面,如图2-1所示

22、。(见下页)图2-1进入主菜单后,选择菜单号1,进入创建模块。如图2-2所示通讯录管理系统-建E白一O?者者讯讯讯一通通通12340提示;在03,4功能执行前,须先执行。操作,请选择菜单号(0-4),1图2-2创建成功(图2-3)!延时2s后回到主菜单图2-3-F;Wf鼻金孙具也通讯录寻系统改进中D*ug谑河录寻至福ek通讯录管理系统77_B- a 的 XI «s>- Op者者 讹讯讯 第«-图12 3 4 0BtAwBtH提示,在九3,4功能执行前,须先执行。操作,请选择菜单号(04):9图2-41F;YC鼻舒B小其通讯录管理至统改进中Debug调讯录管理藕施,。/

23、通讯录管理系统方E-3 的 SAI 链白.善者者 讹讯讯提示在2.3,4功能执行前,须先执行。操作?请选择菜单号(0-'4)匕9输入错误,按任意键继续-图2-5选择菜单号2,已插入可供操作的有效信息(图2-6)通讯录管理系统二一立-建的E白-一善者者讯讯讯一通通通r-J12340提示在2.3.4功能执行前,须先执行。操作M请选择菜单号(0-4).2图2-6*F4应用程序通讯录管建系统迂材INSERTNEUCONTACT#请输入新联系人的姓名HZ皿位字母或敖字九图2-7输入姓名,和联系方式后,选择Y,同上操作输入多组信息(图2-82-10)S3 |回 F:gi用程序遇讯信管理系统看xe图

24、2-9选才¥N后可跳转到主菜单,选择菜单号3即可进入删除模块,删除界面如下,查询到有此人时会询问是否删除(如图2-10)。F:晦用程序国讯录管理系统.exeRtDELETE北请输入欲删除联系人姓名;SHUT甘的电话号码是1344444,您确定要删除吗?"orM>图2-10查无此人时,会显示错误提示(图2-11)图2-11图2-12SEARCH返回主菜单,选择4菜单号4,进入查询模块。查询界面如下(图2-13)用程序傲谎"母禁统出双图2-130面请输入T的姓名ANGT的电话号码为1招HSE”按任意键继续.-F;WC鼻行阳层网遁H录苜室系统改进中'Debug谑河录寻至福exe”CZIttALL CONTACTSttGR。的电话号码为1到8888ZHOU的电话号码为1377777LIU的电话号码为1366666Y*HG的电话号码为1355555MR的电话号码为1333稣3马舒阳汇报完毕,按任意键退出程序.一图2-14图2-15设计总结设计过程上,遇到的最大的问题就是由于没看到有要求,便自己开始设计程序,就在即将调试完毕的时候,发现题目要求,由于存储方式和框架结构相差甚远,不得不重新再来。所以,以后一定要更认真一些,清楚了需求,再着手

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论