资源描述:
《需求分析-需求分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、不賀片衣遂TALYVANTNTVERH1TYQVTECHNOLOGY《程序设计》课程设计姓名:李抱朴学号:2012006232班级:软件工程1205班指导教师:宋春花成绩:2014年6月目录保龄球计分1)需求分析12)概要设计13)详细设计34)调试分析55)用户使用说明56)测试结果67)附录6统计数字1)需求分析2)概要设计3)详细设计4)调试分析5)用八使用说明6)测试结果错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。7)附录错误!未定义书签。背包问题1)需求分析2)概要
2、设计3)详细设计4)调试分析5)用户使用说明6)测试结果错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。7)附录错误!未定义书签。保龄球计分题目:设计一个保龄球计分程序1)需求分析此次课程设计的主要内容是模拟保龄球计分系统。打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10轮,每轮可滚球1次或2次,以击到的瓶数为依据计分。一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还口J能与后一轮或后两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数
3、不仅要计入本轮得分,述可能会计入前一轮或两轮得分。计分规则如下:①若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第十轮还需加2次滚球),该轮得分为木次击倒瓶数10与以后2次滚球所击倒瓶数之和;②若某一轮的第一次滚球未击倒全部10个瓶,则对剩下未倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则木轮不再滚球(若是第十轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数Z和;③若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。测试数据:(5,5),(3,6),(8,9)
4、,(0,9),(8,7),(10,),(0,10),(2,2),(2,3),(4,5)错误数据:(1,12)2)概要设计类抽象数据类型的定义:typedefunsignedcharMKByte;#dcfincSUCCESS0/*Noerror*/#defineMFAILED1/*Generalfailure*/#defineMNOMEMORY2/*Outofmemory*/确保初始化:#dcfincDcclarcTwoDAiTay(ATYPE,inamc)ATYPE**inamc=NULL〃定义口己的malloc和free,确保内存止确操
5、作#defineMKMALLOC(nsize)malloc(nsize)#defineMKFREE(name)if(NULL!=namc)free(name);ame=NULL实现:intMKCreatArray(intnsize,intX,intY,void***parray){void**tdarray=NULL;MKByte*tmparray=NULL;inti=0;*parray=NULL;分配指针数组讦(!(tdarray=(void**)MKMALLOC(sizeof(MK_Byte*)*Y))){returnMNOM
6、EMORY;}〃分配实际数组空间if(!(tmparray=(MK_Byte*)MKMALLOC(nsize*(X*Y)))){MKFREE(tdarray);returnMNOMEMORY;}初始化内存memset(tmparray?0x00,nsize*(X*Y));指针数组赋值for(i=0;i7、E((*parray)[O]);MKFREE((*parray));使用voidtestTwoDArray(){声明数组DeclareTwoDAiTay(int,a);DeclareTwoDArray(float,b);创建整型数组MKCreatArray(sizeof(int),3,2,&a);a[l][2]=10;a[0][l]=23;printf(”%d,%d”,a[1][2],a[0][1]);使用完一定要FREEMKFreeArray(&a);重新分配数组MKCreatArray(sizeof(int),6,6,&a);a[
8、5][5]=234;a[4][0]=567;printf「%d,%d”,a[5][5],a[4][0]);MKFreeArray(&a);本程序在设计中主要利用二维数组分别存储文件信息,通