• 376.00 KB
  • 2022-09-27 发布

《数据结构》课程设计报告-运动会分数统计 一元多项式 迷宫求解 文章编辑 纸牌游戏等

  • 35页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
《数据结构》课程设计报告南京林业大学数据结构课程设计报告专业:计算机科学与技术课程名称:数据结构姓名:学号:指导老师:时间:2011年1月34\n《数据结构》课程设计报告目录要点:一.具体内容(题目)……………………………………1二.需求分析(功能要求)………………………………2三.概要设计(程序设计思想)…………………………3四.详细设计(源代码)……………………………………6五.调试分析(运行结果显示及说明)………………31六.课设总结………………………………………………34具体内容:题目1:运动会分数统计**任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7,5,3,2,1,取前三名的积分分别为:5,3,2,;哪些取前五名或前三名由学生自己设定。(m〈=20,n〈=20);题目2:一元多项式**任务:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加,相减,并将结果输入;题目4:迷宫求解任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;题目5:文章编辑**功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行;题目6:Joseph环任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有的人出列为止。设计一个程序来求出出列的顺序。34\n《数据结构》课程设计报告题目7:猴子选大王**任务:一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。  题目8:建立二叉树,层序、先序遍历(用递归或非递归的方法都可以)**任务:要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;题目9:纸牌游戏**任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?需求分析:运动会分数统计1)可以输入前三名或前五名的成绩;2)能统计各学校总分;3)可以按学校编号,学校总分,男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询查询取得前三名或前五名的学校。规定:输入数据形式和范围:20以内的整数输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求;一元多项式计算能够完成两个多项式的相加,相减,并将结果输入;迷宫求解要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;文章编辑(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数并输出该次数,用函数letter_num(),figure_num(),space_num(),total_num()来实现。(3)删除某一子串,并将后面的字符前移,用delstr()来实现。存储结构使用线性表,分别用几个子函数实现相应的功能;34\n《数据结构》课程设计报告输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;Joseph环利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。输入数据:建立输入处理数据,输入m的初值,n,输入每个人的密码,建立单循环链表。输出是什么:建立一个输出函数,将正确的输出序列;猴子选大王 输入数据:输入m,nm,n为整数,n#include#include#include#include#defineMAX50#defineNULL0typedefstructnode1{intschool;/*学校编号*/intrecord;/*项目成绩*/structnode1*next;}Schools;typedefstruct{intitem;/*项目编号*/Schools*firstschool;}ITEM;typedefstruct{intz;/*项目总数*/ITEMa[MAX];}ALLitems;typedefstructnode2{intitem;/*该学校获奖的项目*/intrecord;/*项目成绩*/structnode2*next;}Items;34\n《数据结构》课程设计报告typedefstruct{intschool;/*学校编号*/intscore;/*学校总分*/intboys;/*男团体总分*/intgirls;/*女团体总分*/Items*firstitem;}SCHNode;typedefstruct{intn;/*学校总数*/SCHNodeb[MAX];}ALLNode;ALLitems*g1;ALLNode*g2;voidfunct1(ALLitems*g1,ALLNode*g2)/*输入各个项目成绩*/{Schools*p1;Items*p2;inti,j,k,m,w,h,x;printf("\n***entertheinformationofeveryitem***\n\n");printf("enterthetotalnumberofmale-itemsm:");scanf("%d",&m);if(m<0||m>20){printf("entererror,m<=20,pleaseenteragain:");scanf("%d",&m);}printf("enterthetotalnumberoffemale-itemsw:");scanf("%d",&w);if(w<0||w>20){printf("entererror,w<=20,pleaseenteragain:");scanf("%d",&w);}printf("enterthetotalnumberofschoolsn:");scanf("%d",&g2->n);if(g2->n<0||g2->n>20){printf("entrerror,n<=20,pleaseenteragain:");scanf("%d",&g2->n);}g1->z=m+w;34\n《数据结构》课程设计报告printf("itemnumberforboys1-%d,girls%d-%d",m,m+1,g1->z);printf("\n\n***record***\n(0standsforending)");for(k=1;k<=g1->z;k++)/*对两个邻接表置初态*/{g1->a[k].item=k;g1->a[k].firstschool=NULL;}for(k=1;k<=g2->n;k++){g2->b[k].school=k;g2->b[k].firstitem=NULL;g2->b[k].score=g2->b[k].boys=g2->b[k].girls=NULL;}g2->b[0].score=g2->b[0].boys=g2->b[0].girls=NULL;while(i!=0){printf("\nitem:");scanf("%d",&i);if(i!=0){printf("1.thethreeor2.thefive\n");printf("pleasechoose1or2:");scanf("%d",&j);if(j!=1&&j!=2){printf("entererror,pleaseenteragain:");scanf("%d",&j);}if(j==1)/*该项目只有前三名时执行此语句*/{h=3;do{printf("arrange%d:school(schoolisnumber)",h);scanf("%d",&x);p1=(Schools*)malloc(sizeof(Schools));p1->school=x;p2=(Items*)malloc(sizeof(Items));p2->item=i;if(h==3)p2->record=p1->record=2;if(h==2)p2->record=p1->record=3;if(h==1)p2->record=p1->record=5;p1->next=g1->a[i].firstschool;g1->a[i].firstschool=p1;p2->next=g2->b[x].firstitem;34\n《数据结构》课程设计报告g2->b[x].firstitem=p2;g2->b[x].score=g2->b[x].score+p2->record;/*累计总分*/if(i<=m)g2->b[x].boys=g2->b[x].boys+p2->record;/*累计男团体总分*/elseg2->b[x].girls=g2->b[x].girls+p2->record;/*累计女团体总分*/h--;}while(x!=0&&h!=0);}if(j==2)/*该项目有前五名时执行此语句*/{h=5;do{printf("arrange%d:school(schoolisnumber)",h);scanf("%d",&x);p1=(Schools*)malloc(sizeof(Schools));p1->school=x;p2=(Items*)malloc(sizeof(Items));p2->item=i;if(h==5)p2->record=p1->record=1;if(h==4)p2->record=p1->record=2;if(h==3)p2->record=p1->record=3;if(h==2)p2->record=p1->record=5;if(h==1)p2->record=p1->record=7;p1->next=g1->a[i].firstschool;g1->a[i].firstschool=p1;p2->next=g2->b[x].firstitem;g2->b[x].firstitem=p2;g2->b[x].score=g2->b[x].score+p2->record;/*累计总分*/if(i<=m)g2->b[x].boys=g2->b[x].boys+p2->record;/*累计男团体总分*/elseg2->b[x].girls=g2->b[x].girls+p2->record;/*累计女团体总分*/h--;}while(x!=0&&h!=0);}}}}voidsave()/*存储数据文件*/{FILE*fp1,*fp2;if((fp1=fopen("sports1","wb"))==NULL){printf("cannotopenfile.\n");return;}34\n《数据结构》课程设计报告if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1)printf("filewriteerror.\n");fclose(fp1);if((fp2=fopen("sports2","wb"))==NULL){printf("cannotopenfile.\n");return;}if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1)printf("filewriteerror.\n");fclose(fp2);}voidfunct2(ALLNode*g2)/*输出各学校总分*/{intk;printf("\n\n***outputthescore***\n");printf("school\tscore\n");for(k=1;k<=g2->n;k++)printf("%d\t\t%d\n",k,g2->b[k].score);printf("\n");printf("pressanybuttertothemainmenu......");getch();}voidfunct3(ALLNode*g2)/*按学校编号排序输出*/{intk;Items*p2;printf("\n\n***arrangingoutputbyschool***\n");printf("school\t\t\tthegradeofitem\n");for(k=1;k<=g2->n;k++){printf("%d\t",k);p2=g2->b[k].firstitem;while(p2!=NULL){printf("item%d:getthegradeof%d",p2->item,p2->record);p2=p2->next;}printf("\n");}printf("\n");printf("pressanybuttertothemainmenu......");34\n《数据结构》课程设计报告getch();}voidfunct4(ALLNode*g2)/*按学校总分排序输出*/{inti,j,k;printf("\n\n***arrangingoutputbythescore***\n");printf("school\tscore\n");for(i=2;i<=g2->n;i++){g2->b[0].score=g2->b[i].score;g2->b[0].boys=g2->b[i].boys;g2->b[0].girls=g2->b[i].girls;g2->b[0].school=g2->b[i].school;j=i-1;while(g2->b[0].scoreb[j].score&&j>0){g2->b[j+1].score=g2->b[j].score;g2->b[j+1].boys=g2->b[j].boys;g2->b[j+1].girls=g2->b[j].girls;g2->b[j+1].school=g2->b[j].school;j--;}g2->b[j+1].score=g2->b[0].score;g2->b[j+1].boys=g2->b[0].boys;g2->b[j+1].girls=g2->b[0].girls;g2->b[j+1].school=g2->b[0].school;}for(k=1;k<=g2->n;k++)printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].score);printf("pressanybuttertothemainmenu......");getch();}voidfunct5(ALLNode*g2)/*按男团体总分排序输出*/{inti,j,k;printf("\n***arrangingoutputbyboys***\n");printf("school\tboys\n");for(i=2;i<=g2->n;i++){g2->b[0].score=g2->b[i].score;g2->b[0].boys=g2->b[i].boys;g2->b[0].girls=g2->b[i].girls;34\n《数据结构》课程设计报告g2->b[0].school=g2->b[i].school;j=i-1;while(g2->b[0].boysb[j].boys&&j>0){g2->b[j+1].score=g2->b[j].score;g2->b[j+1].boys=g2->b[j].boys;g2->b[j+1].girls=g2->b[j].girls;g2->b[j+1].school=g2->b[j].school;j--;}g2->b[j+1].score=g2->b[0].score;g2->b[j+1].boys=g2->b[0].boys;g2->b[j+1].girls=g2->b[0].girls;g2->b[j+1].school=g2->b[0].school;}for(k=1;k<=g2->n;k++)printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].boys);printf("pressanybuttertothemainmenu......");getch();}voidfunct6(ALLNode*g2)/*按女团体总分排序输出*/{inti,j,k;printf("\n***arrangingoutputbygirls***\n");printf("school\tgirls\n");for(i=2;i<=g2->n;i++){g2->b[0].score=g2->b[i].score;g2->b[0].boys=g2->b[i].boys;g2->b[0].girls=g2->b[i].girls;g2->b[0].school=g2->b[i].school;j=i-1;while(g2->b[0].girlsb[j].girls&&j>0){g2->b[j+1].score=g2->b[j].score;g2->b[j+1].boys=g2->b[j].boys;g2->b[j+1].girls=g2->b[j].girls;g2->b[j+1].school=g2->b[j].school;j--;}g2->b[j+1].score=g2->b[0].score;34\n《数据结构》课程设计报告g2->b[j+1].boys=g2->b[0].boys;g2->b[j+1].girls=g2->b[0].girls;g2->b[j+1].school=g2->b[0].school;}for(k=1;k<=g2->n;k++)printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].girls);printf("pressanybuttertothemainmenu......");getch();}voidfunct7(ALLNode*g2)/*按学校编号查询学校某个项目情况*/{inti,j,k;Items*p2;printf("\n***lookforthegradeofaitembyschool***\n");printf("entertheschoolyouarelookingfor:");scanf("%d",&i);printf("entertheitemyouarelookingfor:");scanf("%d",&j);p2=g2->b[i].firstitem;while(p2!=NULL){if(p2->item==j)printf("school:%d\titem:%d\trecord:%d\n",i,p2->item,p2->record);p2=p2->next;}printf("\n");printf("pressanybuttertothemainmenu......");getch();}voidfunct8(ALLitems*g1)/*按项目编号查询取得名次的学校*/{inti,k;Schools*p1;printf("\n***lookforthewin-schoolbyitem***\n");printf("entertheitemyouarelookingfor:");scanf("%d",&i);printf("item\t\t\tthewin-school\n");printf("%d\t",i);p1=g1->a[i].firstschool;while(p1!=NULL)34\n《数据结构》课程设计报告{printf("school%d:getthegradeof%d",p1->school,p1->record);p1=p1->next;}printf("\n\n");printf("pressanybuttertothemainmenu......");getch();}voidmain(){intt;ALLitems*g1;ALLNode*g2;for(;;){printf("\t\tthescoreofthesports\n");/*运动会分数统计*/printf("\t\t*****************************\n");printf("\t\t\n");printf("\t\t*****************************\n");printf("\t\t*1.enteringeachrecordandsaveit*\n");/*.输入各个项目成绩并存储文件*/printf("\t\t*2.accumulatingthescoreofeachschool*\n");/*统计各学校总分*/printf("\t\t*3.arrangingoutputbytheschool*\n");/*按学校编号排序输出*/printf("\t\t*4.arrangingoutputbythescore*\n");/*按学校总分排序输出*/printf("\t\t*5.arrangingoutputbyboys*\n");/*按男团体总分排序输出*/printf("\t\t*6.arrangingoutputbygirls*\n");/*按女团体总分排序输出*/printf("\t\t*7.lookingforthescoreofaitembyschool*\n");/*按学校编号查询学校某个项目情况*/printf("\t\t*8.lookingforthewin-schoolbyitem*\n");/*按项目编号查询取得名次的学校*/printf("\t\t*0.exit*\n");printf("\t\t*****************************\n");printf("\t\tpleasechoose(0-8):");loop:scanf("%d",&t);switch(t)34\n《数据结构》课程设计报告{case1:funct1(g1,g2);save();break;case2:funct2(g2);break;case3:funct3(g2);break;case4:funct4(g2);break;case5:funct5(g2);break;case6:funct6(g2);break;case7:funct7(g2);break;case8:funct8(g1);break;case0:exit(0);default:{printf("entererror,pleaseenteragain:");gotoloop;}}}}2.一元多项式计算#include#include#include#defineLENsizeof(structpoly)structpoly{intcoef;intindex;structpoly*next;};voidprint_poly(structpoly*head){structpoly*p1;printf("%d次%d项式:",head->index,head->coef);p1=head->next;while(p1!=NULL){if(p1->coef>0){if(p1->index!=1&&p1->index!=0)printf("%dx^%d+",p1->coef,p1->index);elseif(p1->index==1)printf("%dx+",p1->coef);elseprintf("%d+",p1->coef);}elseif(p1->coef<0){if(p1->index!=1&&p1->index!=0)printf("(%d)x^%d+",p1->coef,p1->index);elseif(p1->index==1)printf("(%d)x+",p1->coef);34\n《数据结构》课程设计报告elseprintf("(%d)+",p1->coef);}p1=p1->next;}printf("\b\n");}structpoly*creat_poly(){structpoly*p1,*p2,*head;head=(structpoly*)malloc(LEN);head->coef=head->index=0;head->next=NULL;printf("请输入要创建的多项式(如A(x)=5x^17+9x^8+3x+7,请输入\"5^179^83^17^00^0\":\n");p1=(structpoly*)malloc(LEN);scanf("%d^%d",&p1->coef,&p1->index);while(p1->coef!=0){p2=head;while(p2->next!=NULL){if(p2->next->indexindex)break;p2=p2->next;}p1->next=p2->next;p2->next=p1;(head->coef)++;if(p1->index>head->index)head->index=p1->index;p1=(structpoly*)malloc(LEN);scanf("%d^%d",&p1->coef,&p1->index);}p1->next=NULL;return(head);}structpoly*add_poly(structpoly*head1,structpoly*head2){structpoly*p1,*p2,*head3,*p3;p1=head1->next;p2=head2->next;head3=(structpoly*)malloc(LEN);p3=head3;34\n《数据结构》课程设计报告head3->coef=head3->index=0;head3->next=NULL;while(p1!=NULL&&p2!=NULL){if(p1->index>p2->index){p3->next=p1;(head3->coef)++;p1=p1->next;p3=p3->next;}elseif(p1->index==p2->index){if(p1->coef+p2->coef!=0){p3->next=(structpoly*)malloc(LEN);(p3->next)->coef=p1->coef+p2->coef;(p3->next)->index=p1->index;(head3->coef)++;p3=p3->next;}p1=p1->next;p2=p2->next;}elseif(p1->indexindex){p3->next=p2;(head3->coef)++;p2=p2->next;p3=p3->next;}}if(p1==NULL)p3->next=p2;elseif(p2==NULL)p3->next=p1;p3=p3->next;while(p3!=NULL){(head3->coef)++;p3=p3->next;}if(head3->next!=NULL)head3->index=head3->next->index;return(head3);}structpoly*sub_poly(structpoly*head1,structpoly*head2){structpoly*p1,*head3;34\n《数据结构》课程设计报告p1=head2->next;while(p1!=NULL){p1->coef=0-p1->coef;p1=p1->next;}head3=add_poly(head1,head2);return(head3);}intmain(){structpoly*head1,*head2,*head3;charflag;printf("正在创建多项式一:\n");head1=creat_poly();printf("您创建的多项式为:\n\t");print_poly(head1);printf("\n正在创建多项式二:\n");head2=creat_poly();printf("您创建的多项式为:\n\t");print_poly(head2);do{printf("\n请选择运算符号(+或-):");getchar();flag=getchar();if(flag!='+'&&flag!='-')printf("\n输入错误!请重新输入!\n");}while(flag!='+'&&flag!='-');switch(flag){case'+':head3=add_poly(head1,head2);break;case'-':head3=sub_poly(head1,head2);break;}printf("\n计算的结果是:\n");print_poly(head3);printf("\n按[Enter]结束。");getchar();getchar();}4.迷宫求解#include34\n《数据结构》课程设计报告#include#defineM10/*10*10*/#defineOK1#defineERROR0#defineOVERFLOW-1#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10intfindway(int);intNextStep(int*,int*,int);typedefstruct{intx,y;/*location*/intdir;/*directions*/}ElemType;typedefstructStackNode/*构造栈*/{ElemType*base;ElemType*top;intstacksize;}SqStack;intInitStack(SqStack*S){S->base=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));if(!S->base){printf("memoryallocationfailed,goodbye");exit(1);}S->top=S->base;S->stacksize=STACK_INIT_SIZE;returnOK;}intPush(SqStack*S,ElemTypee){if(S->top-S->base>=S->stacksize){S->base=(ElemType*)realloc(S->base,(S->stacksize+STACKINCREMENT)*sizeof(ElemType));if(!S->base){printf("memoryallocationfailed,goodbye");exit(1);}S->top=S->base+S->stacksize;34\n《数据结构》课程设计报告S->stacksize+=STACKINCREMENT;}*S->top++=e;returnOK;}intPop(SqStack*S,ElemType*e){if(S->top==S->base){returnERROR;}*e=*--S->top;printf("%d\n",e);returnOK;}intStackEmpty(SqStack*S){if(S->top==S->base)returnOK;elsereturnERROR;}voidInput(charb[M][M])/*输入一圈'#'当作迷宫的墙*/{inti,j;printf("pleaseentertheshapeofthebuilding:\n");for(i=0;i#include#defineMAX500typedefstruct{charstr[MAX];34\n《数据结构》课程设计报告intlen;}sstring;sstringA,B;intletter_num(sstringA){intln,l;ln=0;for(l=0;l<=A.str[A.len-1];l++)if((A.str[l]>=65&&A.str[l]<=90)||(A.str[l]>=97&&A.str[l]<=122))ln=ln+1;return(ln);}intfigure_num(sstringA){intfn,f;fn=0;for(f=0;f<=A.str[A.len-1];f++)if(A.str[f]>=48&&A.str[f]<=57)fn=fn+1;return(fn);}intspace_num(sstringA){intsn,s;sn=0;for(s=0;s<=A.str[A.len-1];s++)if(A.str[s]==32)sn=sn+1;return(sn);}char*DelStr(char*s1,constchar*s2){intdstLen=0,quit=0;char*p,*src=s1;constchar*q;q=s2;while(*q!='\0'){++dstLen,++q;}p=src;q=s2;34\n《数据结构》课程设计报告while(!quit){if(*q=='\0'){p-=dstLen;q=s2;}else{if(*src=='\0'){quit=1;}if(*src!=*q){q=s2;}else{++q;}*p++=*src++;}}returns1;}intmain(){{inti;charc;printf("pleaseinputtheessay:\n");for(i=0;i<500;i++){scanf("%c",&A.str[i]);if(A.str[i]=='#')break;}A.str[i]=0;A.len=i-1;for(i=0;i<=A.len;i++){printf("%c",A.str[i]);if((i+1)%80==0)printf("\n");}printf("\nletternumber=%d",letter_num(A));printf("\nfigurenumber=%d",figure_num(A));printf("\nspacenumber=%d",space_num(A));printf("\ntotalnumber=%d\n",A.len);printf("pleaseinputthestringyouwanttodelete:\n");34\n《数据结构》课程设计报告fflush(stdin);for(i=0;ipassword=x;p->num=i;if(i==1)head=p;elseq->next=p;q=p;i++;}prior=q;q->next=head;}statusdelete(intn){linkp,q;inti=1;p=q=head;if(p!=p->next){if(n==1){printf("%disthedeletenumber\n",head->num);n=head->password;prior->next=q->next;head=q->next;free(q);}else{while(inext;i++;}q=p->next;n=q->password;p->next=q->next;head=q->next;prior=p;printf("%disthedeletenumber\n",q->num);34\n《数据结构》课程设计报告free(q);}returnn;}elseprintf("%disthedeletenumber\n",p->num);}main(){intn,c,i,j;printf("pleaseinputthenumberofthepeople:");scanf("%d",&n);creat(n);printf("pleaseinputthefirstpassword:");scanf("%d",&c);for(i=1;i<=n;i++){j=delete(c);c=j;}}7.猴子选大王#includeintking(intm,intn){intk=0;inti;for(i=2;i<=m;i++)k=(k+n)%i;return++k;}voidmain(){intm,n;printf("enterthenumberofmonkeyandN:");scanf("%d,%d",&m,&n);printf("thekingofthemonkeyis%d\n",king(m,n));}34\n《数据结构》课程设计报告8.建立二叉树#include#includetypedefstructBiTNode{chardata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;typedefstructQNode{BiTNodedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{QueuePtrfront;QueuePtrrear;}LinkQueue;/*队列的头尾指针*/voidInitQueue(LinkQueue*Q)/*创建队列*/{Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));Q->rear->next=NULL;}voidEnQueue(LinkQueue*Q,BiTNodee)/*入队操作*/{QueuePtrp;p=(QueuePtr)malloc(sizeof(QNode));p->data=e;p->next=NULL;Q->rear->next=p;Q->rear=p;}BiTNodeDeQueue(LinkQueue*Q)/*出对操作*/{BiTNodee;QueuePtrp;p=Q->front->next;e=p->data;Q->front->next=p->next;if(Q->rear==p)Q->rear=Q->front;free(p);return(e);34\n《数据结构》课程设计报告}intQueueEmpty(LinkQueue*Q)/*判断队列是否为空*/{if(Q->front==Q->rear)return1;elsereturn0;}BiTreeCreateBiTree()/*创建二叉树*/{charp;BiTreeT;scanf("%c",&p);if(p=='')T=NULL;else{T=(BiTNode*)malloc(sizeof(BiTNode));T->data=p;T->lchild=CreateBiTree(T->lchild);T->rchild=CreateBiTree(T->rchild);}return(T);}voidPreOrder(BiTreeT)/*先序*/{if(T!=NULL){printf("%c",T->data);PreOrder(T->lchild);PreOrder(T->rchild);}}voidLevelOrder(BiTreeT)/*层序*/{LinkQueueQ;BiTNodep;InitQueue(&Q);EnQueue(&Q,*T);while(!QueueEmpty(&Q)){p=DeQueue(&Q);printf("%c",p.data);if(p.lchild!=NULL)EnQueue(&Q,*(p.lchild));if(p.rchild!=NULL)EnQueue(&Q,*(p.rchild));}}voidmain()34\n《数据结构》课程设计报告{BiTreeTa;Ta=CreateBiTree();printf("levelorder:");printf("\n");LevelOrder(Ta);printf("\n");printf("preorder:");printf("\n");PreOrder(Ta);}9.纸牌游戏#includemain(){intarr[53],i,k,j;k=2;for(i=1;i<=52;i++)arr[i]=i;for(i=2;i<=52;i++){for(j=k;j<=52;j++){if(j%k==0){if(arr[j]==0)arr[j]=j;elsearr[j]=0;}}k+=1;}printf("number:\n");for(i=1;i<=52;i++){if(arr[i]==0)continue;printf("%4d",arr[i]);}getch();}34\n《数据结构》课程设计报告调试分析、运行后的菜单展示(注意:T2、T5在DEV-C++环境下运行成功,其他在TC2.0环境下运行成功)1.运动会分数统计2.一元多项式计算4.迷宫求解34\n《数据结构》课程设计报告屏幕上方为任意输入的迷宫图形。5.文章编辑6.joseph环34\n《数据结构》课程设计报告7.猴子选大王8.二叉树的建立及遍历9纸牌游戏思考:(1)语法错误语法错误相对来说要好调试一些的,但有两点需要特别指出:一是应该用规范化的格式输入源程序,增强的程序的可读性。二是应该注意函数的实参与形参的传递问题,要尽量保持两者类型的匹配。当不需要改变形参时,只需传入变量,如果你想在函数体内改变函数的外部变量,则传入指针;(2)指针问题及主函数中各函数模块的调用应特别注意指针指向的地址。;34\n《数据结构》课程设计报告课设总结数据结构课设总结杨佳英课程设计的目的在于熟练掌握数据结构这门课程,掌握经性表、栈、队列、串、数组、广义表、树和二叉树以及图等基本类型的数据结构及其应用。我们需要基本掌握程序设计的基本思路和方法。并利用所学的基本知识和技能,解决简单的程序设计问题各算法描述和培养我们的数据抽象能力。要提高自己的编程能力,你必须亲自去体验、去设计、编辑、编译、调试、运行。我觉得自己对C语言的操作并不太熟练,在学习编程方面还有很多的不足,在编程过程中遇到了一系列问题,也学到很多东西。每一个人都是在失败、尝试、失败、尝试与收获中成长起来的。编程之道漫漫无边,吾将上下而求索.当你看着自己把功能一个个实现,把错误一个调试出来,那种感觉给了自己某种安慰,还有自信!此次课程设计使我对数据结构方面的知识有了更深入的了解,也使我认识到自己的不足。今后我要多读一些编程方面的书籍,不能只拘泥于课本上的知识,并注重理论与实践的结合,多上机练习编写程序,提高自己的实际动手能力和独立思考的能力,不断充实自己,更好的掌握编程思想。34

相关文档