欢迎来到天天文库
浏览记录
ID:12386374
大小:941.47 KB
页数:48页
时间:2018-07-16
《杭电-数据结构课程设计报告模板(内附c代码)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构课程设计报告学院专业:软件工程班级:学号:学生姓名:指导老师:彭伟民日期:2016.01.01目录1猴子吃桃子问题31.1需求分析31.2程序设计思想31.3程序源代码31.4程序运行结果52进制数转化问题52.1需求分析52.2程序设计思想62.3程序源代码62.4程序运行结果73长整数运算83.1需求分析83.2程序设计思想83.3程序源代码83.4程序运行结果124学生成绩管理系统134.1需求分析134.2程序设计思想134.3程序源代码144.4程序运行结果205哈夫曼编码应用225.1需求分析225.2程序设计
2、思想225.3程序源代码235.4程序运行结果246学校超市选址问题266.1需求分析266.2程序设计思想266.3程序源代码266.4程序运行结果307学生成绩管理系统307.1需求分析307.2程序设计思想307.3程序源代码307.4程序运行结果368排序综合378.1需求分析378.2程序设计思想388.3程序源代码388.4程序运行结果469课程设计总结471猴子吃桃子问题1.1需求分析有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少
3、个桃子。1.2程序设计思想已知第十天只余下1个桃子,第一天开始每天都吃当前桃子一半再多一个,那么就只需要从第十天开始倒推即可,用链表、数组、递推、常规方法都可以采用这种思路实现计算第一天桃子数量。1.3程序源代码#includeusingnamespacestd;//有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。//链表方法实现typedefstruct{intbase;inttop;}Stack;voidInitS
4、tack(Stack&s){s.base=(int)malloc(sizeof(int));if(s.base)s.top=s.base;else{printf("空间分配错误!");exit(0);}}//入栈voidPushStack(Stack&s,intdata){s.top++=data;}//出栈intPopStack(Stack&s){return(--s.top);}intmain(){intpeach=0;voidshuZu();intdigui(inti,intj);intchanggui();shuZu(
5、);peach=digui(1,1);cout<<"递归方法实现结果:"<1){data=PopStack(s);//出栈一个元素保存在data中PushStack(s,2(data+1));//再将2(data+1)入栈}//最后栈中剩余的那个元素就是第1天摘的桃子数cout<<"链表方法实现结果:"<6、out<<"常规方法实现结果:"<=0;i--){peach[i]=(peach[i+1]+1)2;}cout<<"数组方法实现结果:"<7、gui(peach,++day)+1)2;returnpeach;}intchanggui(){intpeach=1;for(inti=1;i<10;i++){peach=(peach+1)2;}returnpeach;}1.1程序运行结果2进制数转化问题2.1需求分析任意给定一个M进制的数x,请实现如下要求1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)1.1程序设计思想假如N为输入的数,n为要转换为的进制,若要将8、十进制231转换为8进制数,过程如下;NN/nN%n2312872834303则输出为347,可以看出,首先得到的应该是7,然后才是4,最后是3,但是要逆序显示,自然就类似压栈出栈的数据结构了。所以,只需要初始化栈后,将N%n不断的压入栈底,需要注
6、out<<"常规方法实现结果:"<=0;i--){peach[i]=(peach[i+1]+1)2;}cout<<"数组方法实现结果:"<7、gui(peach,++day)+1)2;returnpeach;}intchanggui(){intpeach=1;for(inti=1;i<10;i++){peach=(peach+1)2;}returnpeach;}1.1程序运行结果2进制数转化问题2.1需求分析任意给定一个M进制的数x,请实现如下要求1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)1.1程序设计思想假如N为输入的数,n为要转换为的进制,若要将8、十进制231转换为8进制数,过程如下;NN/nN%n2312872834303则输出为347,可以看出,首先得到的应该是7,然后才是4,最后是3,但是要逆序显示,自然就类似压栈出栈的数据结构了。所以,只需要初始化栈后,将N%n不断的压入栈底,需要注
7、gui(peach,++day)+1)2;returnpeach;}intchanggui(){intpeach=1;for(inti=1;i<10;i++){peach=(peach+1)2;}returnpeach;}1.1程序运行结果2进制数转化问题2.1需求分析任意给定一个M进制的数x,请实现如下要求1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)1.1程序设计思想假如N为输入的数,n为要转换为的进制,若要将
8、十进制231转换为8进制数,过程如下;NN/nN%n2312872834303则输出为347,可以看出,首先得到的应该是7,然后才是4,最后是3,但是要逆序显示,自然就类似压栈出栈的数据结构了。所以,只需要初始化栈后,将N%n不断的压入栈底,需要注
此文档下载收益归作者所有