已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京理工大学VC课程设计报告 南京理工大学VC课程设计报告课 程:VC+课程设计系 别:班 级:09学 号:09姓 名:选题1名称:八皇后问题选题1难易级别:B级选题2名称:选题2难易级别:自报成绩:起止时间:8月24日至9月9日指导教师:严悍2010年 9月目 录1 课题目标1 增加函数,完成每输入一组解,暂停屏幕,显示“按任意键继续!”。2 完善程序,编程计算皇后问题共有几种排列方案。3 增加输入,显示在第一个皇后确定后,共有几组排列。4 将每组解的棋盘横向排列输出在屏幕上,将五个棋盘并排排列,即一次8行同时输出5个棋盘,同样完成一组解后屏幕暂停,按任意键继续。5 求出在什么位置固定一个皇后后,解的数量最多,在什么位置固定一个皇后后,解的数量最少,最多解是多少,最少的解是多少,并将最多、最少解的皇后位置及所有的解求出,同样5个一组显示。6 添加:增加输入错误检测,输入有误,则显示“你的输入有误,请重新输入!”2 程序具体实现原理2.1 总体方案构建一个堆栈类和一个模板类,存储相关算法函数、输入输出函数、检测函数,通过用户的输入来选择操作过程,最后由程序算法输出结果。2.1.1开发平台操作系统:windows 7开发软件:visual C+ 6.02.1.2基本原理开始八皇后所有排列方案固定一个皇后位置,方案最少退出固定一个皇后位置,方案最多确定一个皇后的排列方案显示排列固定皇后位置固定皇后位置输入皇后位置显示皇后排列显示皇后排列显示皇后排列说明:程序开始,选择不同选项,可以依次实现以下功能:1、显示八皇后的所有排列方案。2、确定一个皇后的位置,其他皇后的排列方案。3、将一皇后固定在某列,显示其中的最多与最少的方案。4、自主选择退出。5、程序中加入了输入查错功能,流程图中未显示。2.2 程序各个功能说明2.2.1 程序结构A、类层次结构:堆栈的类:class Stack private:SType dataSSize; /存放数据SType Top;/栈顶数据public:Stack() Top = 0; /构造函数Stack() /析构函数bool isEmpty()return!Top;/置空栈内数据bool Push(int);/处理压栈bool Pop(int &);/处理出栈friend void Empty(Stack &);/置空栈内数据, 在Solve函数执行前使用棋盘的类:class Boardprivate:char board88;/一盘棋8*8States Rows8, DiagsLR15, DiagsRL15;/行,左右斜线char PrintBoard10088;/输出的棋盘public:int nNum;/保存一组解的数目static int AllNum;/保存所有方案的数目Board();/构造函数bool isAttacked(int, int);/处理冲突void PlaceQueen(int, int);/放入皇后void RemoveQueen(int, int);/移去皇后void Print(int,int);/前一个参数保存一行输出解的个数,后一个参数保存共输出解的数目void SaveBoard();/解决一组解后保存到PrintBoard数组中void SaveAll();/保存所有八皇后问题的解friend void Empty(Board &);/置空栈内数据, 在Solve函数执行前使用;2.2.2 课程设计要求的实现如何使每输入完一组数据后,显示“按任意键继续!”?if(c=N) /输出对应的所有解,一行排列五组for(i=0;inum;i+)if(num-iN)break;/当剩余解数大于五组可以并排显示时for(j=0;j8;j+)for(n=0;nN;n+)for(k=0;k8;k+)coutPrintBoardi+njkflush;coutt;coutn;/至此已经完成输出一排五组解i+=N-1;/跳过已输出的五组解cout按任意键继续. . .nflush;八皇后问题共有几种排列?通过SolveAll()函数来解决八皇后的算法问题,进而得到答案void SolveAll()for(i=0;i7;i+)int row=i,col=0,exitLoop,attacked,qRow,qCol;Empty(myBoard);Empty(rowStack);/置空栈内数据,以便下一次Solve函数的执行do while(row =0);确定第一个皇后后,共有几种排列?构建一个类似于SolveAll()函数的Solve()函数,实现剩余排列的功能。void Solve(int qRow,int qCol)/实际处理八皇后置放问题int row,col,exitLoop,attacked;myBoard.nNum=0;/每执行一次Solve函数,先将nNum置空,并在函数执行后及时保存nNum的值Empty(myBoard);Empty(rowStack);/置空栈内数据,以便下一次Solve函数的执行myBoard.PlaceQueen(qRow,qCol);if (qCol = 0)col = 1;else col = 0; row = 0;do while(row =0);5个棋盘一组,如何输出?改变棋盘的输出间距,通过堆栈的方法输出。什么位置固定皇后后,解数最多?什么位置解数又最少?先输入一个函数的位置,再用Solve()函数得出排列方案,选择最多解和最少解。错误检测通过swith语句进行判断,当输入错误时,提示“你的输入有误,请重新输入”3 调试报告以下面的表格形式记录程序调试和测试过程。日期遇到的问题解决方法8月31日输入一组解暂停输入通过if语句来进行判断用剩余解和5来进行对比直到小于才全部输出9月5日最多解和最少解问题确定一列后来选择最多与最少9月6日正常返回问题通过swith语句和return来实现4 总结通过对八皇后问题的设计,更加熟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB1309T 59-2025 肉鸡 鸡舍建设
- 备战2026年高考英语考试易错题(新高考)消灭易错08 名词(解析版)(3大题组)
- 企业函数测试题目及答案
- 统考马列文论试题及答案
- 2025年疗愈师岗位招聘面试参考试题及参考答案
- 2025年仓储管理员岗位招聘面试参考题库及参考答案
- 2025年招商经理岗位招聘面试参考题库及参考答案
- 2025年广告文案专员岗位招聘面试参考题库及参考答案
- 药师西药考试题库及答案
- 2025年摄影师岗位招聘面试参考试题及参考答案
- DB31/T 1114-2018公共场所饮用水水处理设备卫生管理规范
- teastone品牌文化手册
- 2025年建筑工程管理考试试题及答案
- 2025至2030中国硅氮烷产业发展方向及需求规模研究报告
- 华为智能露天矿解决方案 2025
- 客户押车合同协议
- 量具室管理制度
- 科研机构实验数据保密风险评估及防控措施
- 金蝶云星空操作手册V3
- 小学生芯片知识普及
- (高清版)DB36∕T 1124-2019 政务信息资源目录编制规范
评论
0/150
提交评论