• 66.54 KB
  • 2022-04-22 11:36:47 发布

工程设计实践文档模板.docx

  • 27页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'工程设计实践文档模板目录项目任务书1项目组成员表4项目策划书5需求分析7计算机系项目状态报告表9项目沟通会议纪要12系统详细设计16项目总结表18参考文献20致谢2126 项目任务书一、项目基本情况项目编号项目名称21点纸牌项目起止日期2015.4-2015.6项目指导老师陈科杨菊英二、项目描述1、项目背景与目的设计一款以21点玩法为主的纸牌类游戏,该程序是一个21点的扑克牌游戏,玩家一共可以要5张牌,如果牌的点数超过21,则暴了,自动出局;在不超过21点的情况下,玩家与庄家(计算机)比较牌点数的大小,大者为赢。附加要求:(1)程序中一共有52张扑克牌可以随机抽取,大于10的点数为10,现要求大于10的点数全部为半点;(2)高级玩家可以查看下一张牌,即按H键,然后要求输入密码,密码正确可以看牌,并决定是否要牌。当然,在游戏规则上不能泄露这个秘密;(3)可以编写作弊程序,即按某一个键(自定)去查看计算机的牌面,并根据计算机所得的牌来输入自己想要的牌,当然,在界面上不能显示这点秘密(看过后即清屏);(4)每次要牌后可以设定下注值,即如果开始下的是10金币的注,如果牌好,你可以要求再下注,当然不能超过你所有的总钱数。注意:为避免信息的丢失,基本信息需要在存储在磁盘文件中。2、项目目标1、显示扑克牌牌面信息该模块为系统启动界面,在游戏启动之初,游戏界面可以显示所有扑克牌的牌面(同时以文字形式描述游戏规则)。2、随机抽取扑克牌该模块可以实现52张扑克牌的随机抽取(一场游戏中玩家随机抽取的扑克牌数量不能超过5张)。3、查看下一张随机抽取扑克牌牌面信息该模块结合键盘H键实现下一张随机抽取的扑克牌牌面信息的提取(需要在程序中设计下一张牌26 信息提取的密码)。4、牌面点数总和计算该模块实现每一轮发牌之后的牌面点数总和计算操作(主要针对庄家,即计算机)。5、作弊程序该模块实现的具体功能参考上文附加要求的第三点。6、下注值设定该模块实现游戏启动之后的赔率设定,需要玩家给出一个初始下注值(该初始值不能超过玩家拥有金币的上限),每一轮要牌之后可以追加投注(投注金币值不能超过玩家拥有金币的上限)。7、金币设定该模块实现游戏启动初始阶段玩家拥有的金币数量(一般设定为100金币,要求保存在磁盘文件中)和庄家(计算机)拥有的金币数量(一般设定为1000金币)。8、输赢判定该模块实现游戏结束之后玩家与庄家(计算机)之间的输赢判断,赢家可以获取输家的所有下注金币(该金币值不设上限)。若庄家(计算机)金币已输完,则游戏开始下一轮,玩家的金币累计到下一轮,不重置为初始值。9、界面风格每一组项目任务组根据自己组员的喜好设定个性化的界面UI、背景音乐等。三、项目任务分工1、工程设计I实践课程目的《工程设计1》开设的宗旨秉承计算机系人才培养方案宗旨,培养和输送合格的软件工程师,所以该课程的开设就是让学生在该实践类课程中,熟悉并充分掌握软件开发流程中的每个环节和步骤,主要目的如下:(1)巩固和加深对基本知识的理解,提高综合运用课程知识的能力。(2)掌握软件设计的基本内容和设计方法,并培养规范化软件设计的能力。(3)掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。(4)达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及团队合作能力。项目角色职责投入工作量A完成需求分析、程序整体框架设计,设计程序模块35%B理解程序整体框架,设计程序模块20%26 C理解程序整体框架,设计程序模块20%D理解程序整体框架,设计程序模块,撰写项目文档25%四、项目评价标准(1)每组必须有可运行的程序(25分);(2)每组必须提交各项软件开发文档,包括《项目策划书》、《项目组成员表》、《需求分析》、《系统详细设计》、《项目总结表》、《小组项目沟通会议纪要》、《项目状态报告表》(50分)(3)每组有PPT演示,答辩时能回答老师提出的问题(30分)2.评分标准(1)教师要不定期检查项目完成进度,团队协作情况,进行严格的监督和审查,并记录平时成绩。(2)程序完成情况及运行结果;(3)按照要求认真完成各项软件开发文档,能够对自己的程序设计思想通过PPT进行展示并能回答教师提问。注意:总分不足60分视为不通过。以上三项缺一不可,否则视为不通过,不能到得相应学分。26 项目组成员表一、项目基本情况项目编号项目名称21点纸牌项目起止日期2015.4-2015.6项目组组长学号1440610729项目组组长姓名何吉贵项目指导老师陈科、杨菊英二、项目组成员成员学号成员姓名项目角色职责投入工作量联系电话1440610730何吉贵项目组长总体负责系项目想30%183280647001440610725刘胡科项目核心成员研发支持项目25%184283281291440610727杨伟项目核心成员研发支持20%1440610729谢熙项目核心成员测试支持25%18328064465备注:1、项目角色分为:项目组长、项目核心成员、项目非核心成员、项目其他人员、项目赞助人2、职责根据实际情况填写,参考职责有:总体负责、研发支持、客户关系、供应链支持、产品技术支持、接待策划3、投入工作量根据实际情况填写,以百分比%形式,所有成员的总和为100%26 项目策划书一、项目基本情况项目编号项目名称21点纸牌项目起止日期2015.4——2015.6项目指导老师1、陈科、杨菊英二、项目描述1、项目背景与目的“21点”是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的总分为21而不超过这个数值。扑克牌的分值取它们的面值,A充当1分或11分(由玩家自己选择一种分值),J、Q和K人头牌都是10分。庄家对付1—7个玩家。在一局开始时,包括庄家在内的所有参与者都有两张牌。玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐藏的。接下来,只要愿意,各个玩家都有机会再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只要庄家的总分等于或小于16,那么他就必须再拿牌。如果庄家引爆,那么还没有引爆的所有我玩家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家和庄家打成平局。综合应用所学的C语言程序设计及数据结构知识,自行设计并实现一个较为完整的21点纸牌游戏系统。通过系统分析、系统设计、编程实现,写实验报告等环节,初步掌握初级游戏软件系统的设计方法和步骤,提高灵活运用程序语言进行软件开发的技能,提高程序设计水平和分析问题、解决问题的能力。2、拟用关键技术:数组,文件。3、项目目标软件名称:21点纸牌用户文档:任务书、进度计划表、项目组成员表、项目策划书、需求分析书、项目状态报告表、项目沟通会议纪要、系统详细设计、项目总结表、教师审查表。26 其它:(1)提供友好的用户界面,使操作人员的工作量最大限度的降低;(2)有良好的可扩充性,可以容易地加入其他系统的应用;(3)平台设计具有一定灵活性和超前性;(4)强化团队协作能力,提高软件开发能力。三、项目评价标准1、软件能正常运行,基本实现各功能模块功能;2、项目策划书、需求分析、详细设计文档等资料;软件能正常运行,文档资料描述清晰可视为合格。对于以上项目前期策划书内容,项目组成员及指导老师一致同意通过!成员学号成员姓名项目角色职责学生签字确认项目策划书1440610730何吉贵项目组长总体负责1440610725刘胡科核心成员研发支持1440610727杨伟核心成员研发支持1440610729谢熙核心成员测试支持指导教师签字确认项目策划书1、2、26 需求分析一、项目开发背景当今计算机已经在全国大部分地区得到了广泛的普及,为满足人们对21点纸牌游戏的软件使用需求,21点游戏的软件开发又是一件十分急迫又有前景的开发。随着社会的发展科技的进步,计算机的应用在社会各领域中都得到了普及。越来越多的人都感受到利用计算机来玩各种游戏的快捷,且更能满足人们消耗业余时间的心理。21点游戏是一款典型的纸牌游戏,其使用面积极广,应用人说极多,界面要求低,是一款不错的上机编写程序实例。二、功能概述21点纸牌游戏最多允许7位玩家,在开始时每一位玩家都先发两张牌,只有庄家的第一张牌隐藏,其余的牌都是明着的,接下来,只要愿意,各个玩家都有机会依次再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只有庄家的总分等于或小于16,那么他就必须再拿牌。如果庄家引爆了,那么还没有引爆的所有玩家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家与庄家打成平局。26 电子科技大学成都学院计算机系项目状态报告表填表日期:2015年6月5日项目编号项目名称21点纸牌当前项目状况□按计划进行□比计划提前□落后计划一、当前任务状态(简要描述任务进展情况)关键任务状态描述1.分析项目背景,做准备工作对项目背景进行分析,简单了解此项目的需求。2.需求分析根据项目任务书分析了项目中的功能模块,精细化需求。3.技术支持的学习对功能模块所需要用到的知识进行学习。二、存在的困难1、由于不能实地调研,可能项目背景分析和调研的数据不是很准确。2、开发平台不是很熟练,不过正在努力解决。3、由于缺少经验,文档格式和书写存在不规范的地方。以上内容由学生填写,以下内容由老师填写检查评语检查教师签名教务科科长签字盖章说明:1.本表内容如实填写;2、本表应妥善保管,以便装订;26 电子科技大学成都学院计算机系项目状态报告表填表日期:2015年6月10日项目编号项目名称21点纸牌当前项目状况□按计划进行□比计划提前□落后计划一、当前任务状态(简要描述任务进展情况)关键任务状态描述1.需求分析对需求进一步核实。2.准备工作落实准备工作进一步落实。3.技术知识的巩固对技术知识进一步学习掌握。二、存在的困难1.对软件需求理解不是很透彻;2.工作落实不太彻底;3.技术知识不太熟练;以上内容由学生填写,以下内容由老师填写检查评语检查教师签名教务科科长签字盖章说明:1.本表内容如实填写;2、本表应妥善保管,以便装订;26 电子科技大学成都学院计算机系项目状态报告表填表日期:2015年6月15日项目编号项目名称21点纸牌当前项目状况□按计划进行□比计划提前□落后计划一、当前任务状态(简要描述任务进展情况)关键任务状态描述1.需求分析检测各个模块的功能。2.详细设计完善项目详细设计。3.熟悉开发环境对源程序在开发环境下运行调试二、存在的困难1.模块不够完善;2.系统数据分析;3.对开发环境不熟练;以上内容由学生填写,以下内容由老师填写检查评语检查教师签名教务科科长签字盖章说明:1.本表内容如实填写;2、本表应妥善保管,以便装订;26 项目沟通会议纪要一、基本信息会议名称项目启动会召集人陈科、杨菊英会议日期2015年5月11日会议时间18:00会议地点二教108记录人何吉贵会议参会人(学生签字)1何吉贵2刘胡科3杨伟4谢熙5678二、会议目标分析项目背景,分配准备工作,讨论需求分析和详细设计三、会议概要(发言人的观点、意见和建议)陈老师:向我们介绍了工程设计1设计项目的相关内容,包括项目的背景与目的,项目的目标,和项目的评价标准。讲解了下我们还需要掌握什么知识。分组并系统自己抽题目。四、会议决议(会议结论)经过这次会议,我们大致了解了毕业设计项目的事宜,分析了项目的任务,初步理解了文档的格式与写法,清楚了各自初期项目的任务。26 一、基本信息会议名称详细设计检查召集人陈老师、杨老师会议日期2015年6月5日会议时间12:00会议地点二教108记录人何吉贵会议参会人(学生签字)1何吉贵2刘胡科3杨伟4谢熙5678二、会议目标检查项目完整性及催促进度三、会议概要(发言人的观点、意见和建议)杨老师:进一步检查项目进度,督促我们加快步伐。最后,老师对项目人员分工进行了微调,进一步明确了任务。何吉贵:针对系统详细设计和老师进行了讨论,修改和添加了部分内容。刘胡科:利用开发工具,练习编程,为系统开发做最后准备。谢熙:测试练习。四、会议决议(会议结论):快点做项目沟通会议纪要一、基本信息会议名称编码召集人陈老师、杨老师会议日期2015年6月15日会议时间12:00会议地点二教108记录人何吉贵26 会议参会人(学生签字)1何吉贵2刘胡科3杨伟4谢熙5678二、会议目标老师检查我们的项目进度,学生提出项目中遇到的问题三、会议概要(发言人的观点、意见和建议)陈老师、杨老师:检查了我们的项目进度,和同学探讨系统开发过程中遇到的问题,并一一解答。组员:小组成员相互配合,演示系统编写情况,对遇到的问题向老师进行了询问,在老师的帮助下得到了解决;对部分模块的功能进行了调整。四、会议决议(会议结论)通过这次会议,基本改正了开发过程中不足的地方,项目开发进入后期修改阶段。26 系统详细设计1数据定义系统中主要涉及到玩家人数、扑克牌分值、玩家分值,而这些数据由多个类型不相同的函数实现,具体如下:intcompare(charsum1,charsum2)intbreakal(intsum)charchange(intcard)voidgame()intmain()2函数定义系统采用面向过程形式实现,每一功能编写成一个函数,在main函数中利用选择来进行不同的跳转,实现相应功能,具体如下:(1)main():系统实现入口;(2)voidgame():游戏实现函数;3系统实现(1)系统主界面(2)关键代码段:voidgame(){charname[20];26 printf("请输入你的名字:n");scanf("%s",name);printf("Hello,%s你的名字%s,真是一个不错的名字。让我们开始吧n",name,name);inti,k,n;charhost_ch,player_ch,host_card[15],player_card[15];inthost_sum=0,player_sum=0;srand(time(NULL));for(i=0;i<2;i++){int(10.0*rand()/(RAND_MAX+1.0));player_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));player_ch=change(player_card[i]);if(player_card[i]>1&&player_card[i]<10)//输出玩家抽到的牌的点数printf("您抽到的第%d张牌是%dn",i+1,player_card[i]);elseif(player_card[i]==10)printf("您要到的第%d张牌是%cn",i+1,player_ch);elseprintf("您要到的第%d张牌是An",i+1);if(player_ch=="A")//询问判断玩家的A的点值为1或11{printf("您有一张A,您想要A作1还是11?n");printf("1.1n");printf("2.11n");if(scanf("%d",&n)&&n==1)player_card[i]=1;else26 player_card[i]=11;}host_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));host_ch=change(host_card[i]);if(host_ch=="A")//电脑自动判断庄家的A的点值为1或11{k=1+int(rand()/(RAND_MAX+1.0));if(k==1)host_card[i]=11;elsehost_card[i]=1;}player_sum+=player_card[i];//分别对庄家和玩家的点数求和host_sum+=host_card[i];}printf("您现在的总面值为%dn",player_sum);//输出玩家的总面值for(i=2;i<5;i++){if(host_sum<18&&host_sum>0)//电脑自动判断庄家是否要牌{host_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));host_ch=change(host_card[i]);if(host_ch=="A")//电脑自动判断庄家的A的点值为1或11{26 k=1+int(rand()/(RAND_MAX+1.0));if(k==1)host_card[i]=11;elsehost_card[i]=1;}host_sum+=host_card[i];}printf("您还要继续要牌吗?n");printf("1.要n");printf("2.不要n");scanf("%d",&k);if(k==1){{player_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));player_ch=change(player_card[i]);if(player_ch=="A")//询问判断玩家的A的点值为1或11{printf("您有一张A,您想要A作1还是11?n");printf("1.1n");printf("2.11n");if(scanf("%d",&n)&&n==1)player_card[i]=1;elseplayer_card[i]=11;26 printf("您要到的第%d张牌是An",i+1);}elseprintf("您要到的第%d张牌是%dn",i+1,player_card[i]);player_sum+=player_card[i];if(i==4)printf("您手中已有5张牌,一决胜负的时刻到啦!n");if(breakal(host_sum)==0){if(breakal(player_sum)==0){printf("庄家爆牌了,您也爆牌了!真可惜啊,庄家的牌面值是%d,您的牌面值是%dn",host_sum,player_sum);printf("n唉Youlose..n");break;}}elseif(breakal(player_sum)==0){printf("您爆牌了!您的牌面值是%dnnYoulose..n",player_sum);break;}}if(breakal(host_sum)==0){printf("庄家爆牌了!哈哈!庄家的牌面值是%dn",host_sum);26 printf("nCongratulations!YOuwin!n");break;}}else{printf("庄家的牌面值是%d,您的牌面值是%dn",host_sum,player_sum);if(compare(host_sum,player_sum)==1)printf("nYoulose..n");elseprintf("nCongratulations!Youwin!n");break;}}}4系统测试(1)测试目的为执行测试提供用例,指导测试的实施,查找分析缺陷,评估测试质量。(2)测试范围本次设计中主要考虑系统功能测试。(1)测试用例26 系统模块功能点用例说明前置条件输入/显示预期结果测试结果备注玩家名字及抽到的点数 信息输入及玩家的点数玩家名字可输入性进入游戏单击文字输入玩家名字1)输入汉字,如李,张2)输入英文字符,如abcABC文本变成白色输入状态并有闪烁字符光标文本框变成输入状态,有闪烁光标 玩家抽取的点数进入游戏输出玩家抽到的牌的点数输出玩家抽到的牌的点数显示玩家随机抽取的点数 判断玩家点数和并做比较进入游戏电脑自动判断庄家的A的点值为1或11,分别对庄家和玩家的点数求和电脑自动判断庄家是否要牌电脑自动判断庄家的A的点值为1或11,输出游戏结果输出游戏结果,并询问玩家是否继续 26 项目总结表一、项目基本情况项目编号项目名称21点纸牌制作日期2015年6月18日项目指导老师1、陈科2、杨菊英二、项目完成情况总结时间:每一阶段都按指导老师规定的任务一步一步地完成,具体如下:2015.5.11-2015.6.5:我们完成了项目背景分析,了解开发工具,初步撰写了需求分析文档和系统详细设计文档。2015.6.5-2015.6.10:我们初步完成了需求分析文档和系统详细设计文档,开始了软件的编程。2015.6.10-2015.6.20:完成了系统模块的设计,以及编程实现了各个模块的功能。2015.6.18-2015.6.20:准备答辩材料,进行答辩。用户文档:任务书、进度计划表、项目组成员表、项目策划书、需求分析书、计算机系项目状态报告表、项目沟通会议纪要、系统详细设计、项目总结表、教师审查表。编程语言及环境:(1)开发语言:c(2)开发工具:VC++6.0三、项目经验、教训总结26 1.经过这次工程设计,我们对C开发有了更加成熟的认识,对测试程序掌握的更加熟练。2.由于平时很少做项目,这次毕业设计给了我们一个机会,也是考察我们学习知识的非常好的机会,让我们认识到自己编程方面的不足,加强了我们的编程能力。3.完成项目后,感觉自己使用Word的能力也上升了,了解了更多的Word功能。4.由于对设计内容的认识不够充分,认为四个人两个月做一个项目绰绰有余,所以开始都不急做,到后来做项目的时间比较紧,让我们意识到以后做事要循序渐进,不要等到最后时刻才赶工,以免影响做事的质量。5.因为时间的关系,我们团队在后来都非常认真,大家合作的很愉快,任务分配和完成都还不错,让我们一时到团队的力量的强大,让我们学习到了以后在社会中应该多多利用团队解决困难。四、签字学号姓名签字1440610725何吉贵1440610725刘胡科1440610727杨伟1440610729谢熙26 电子科技大学成都学院2018 届实践专周成绩评定表学生姓名学号专业课程名称工程设计1设计题目21点纸牌实验要求综合利用C语言、数据结构相关知识设计并实现——学生学籍管理系统同组成员本次课程设计的心得体会通过这次课程设计,我真正的明白了什么是计算机的软件的开发及软件开发的整个过程,并更加深刻的体会到作为当代大学生的我们就应该体会到学以致用的重要价值。课程设计期间,虽说时间极短,但其中能学到的知识不仅仅能满足我对软件开发的好奇,更重要的是让我第一次看到了从入大学到现在一年半来对所学知识的应用与收获,可谓是受益匪浅。这几天的学习所学到的知识正是这一年对C++学习一个全面覆盖与整体回顾,也加深了我对C++知识的理解,积累了软件开发的宝贵经验,相信在以后的学习中我定能够汲取今天的经验铺垫明天的殿堂。21点游戏是一个古老的纸牌游戏,其开发过程的整体规划是一件很重要的工作。以前总以为只要掌握了对C++的基本知识就可以满足未来对就业的需求,但这次我错了。经历了这次课程设计,让我明白一个完整的项目所要的基本步骤并不是想象中的那么简单。从软件的需求到系统的布局等一项项功能的具体实现,在通过对所学类的一次次的应用及理解的不断加深,每一步都要经过自己的不懈努力并感受着收获的快乐。在最后的界面的整体设计上,我更是体会到与老师同学交流的重要性。更进一步的了解到以后要维持一个团队团结的重要性。虽说这次界面设计是现学现用,但在其中更是给自己不少启发,使我明白在以后的工作中所遇到的每一件事物并不是自己所熟悉的,因此我们就应该加强对新知识的接受理解应用的能力。自己的能力总是有限的,在今后的生活中我要加强与同学老师的交流,懂得分享的重要性,并从中进一步加强对团结的理解。成绩考核(由指导教师组填写)对小组做整体评阅。(前五项为优、良、中、及格和不及格,总成绩为通过和不通过)。如个别学生不通过,请在备注栏标明。项目成绩平时出勤设计报告项目答辩团队协作总成绩备注26 指导教师组签字:完成时间年月日26 26 26'