网站大量收购独家精品文档,联系QQ:2885784924

北邮计算机实习.docx

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北邮计算机实习

实习目的及实习时间通过四周的计算机实习,熟悉计算机的各种基本操作,了解和掌握C++以及各种该图形化编程语言,动手实践做几款小软件来学会灵活运用我们的理论知识,增强我们的实际编程开发的能力。实习时间为2015年五月25日到六月二十一日。实习任务设计一个可以输出1~15阶魔方阵的有可视化界面的软件。设计一个动画展现星际穿越的部分动作(有背景音乐以及特效)。设计一个健康体重测试软件BMI(以及给出相应的健康提示)。设计一个字符串处理软件,可以实现字符串中的字符查找,删除,统计以及插入新字符。设计一个函数作图器软件,实现基本的函数的四则运算,可以画出相应的函数图像,坐标可以做适当缩放。实习过程(一) 魔方阵1. 程序功能 n 为初始输入的数字(为了显示效果, 使 n≤15), 把整数 1 到 n2 排成一个 n× n 方阵,使方阵中的每一行, 每一列以及对角线上的数之和都相同。输出这个方阵。2. 设计思路(1)当n=1或2时,不存在的魔方矩阵;(2)当n为奇数时,采用斜线填数的方法:将1填入第一行中间;将每个若该位置超出最上行,则改填在最下行的对应位置;若该位置超出最右列,则该填在最左列的对应行位置;若某元素填在第一行最右列,下一个数填在该数同列的下一行;若某数已找到了填写位置,但其已填了其他数据,则这个数应填在应该填的位置的同列的下一行位置。例,用该填法获得的5阶幻方:17241815235714164613202210121921311182529(3)当n为偶数时:又分为n=4*m和n=4*m+2两种的情况考虑;◎当n为4的倍数时:采用对称元素交换法。首先把数1-n^2按行从上至下,从左至右填入方阵的n×n格。然后,把方阵的所有4 ×4子方阵中的两对角线上位置上的数固定下来不动;所有其它位置上的数关于方阵中心作对称交换,也就是把元素a(i,j)与元素a(n+1-i,n+ 1-j)的值交换。 例,用该填法获得的8阶幻方:第一步:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 第二步:64236160675795554121351501617474620214342244026273736303133323435292838392541232244451918484915145253111056858595462631 ◎当n为非4倍数的偶数(即4m+2形)时:1):将矩阵分为4个区,A、B、C、D区,其相对位置如下:ACDB 2):先把数字1到(n/2)*(n/2)按照奇数魔方阵的方法填入A中,然后把其每一个数据分别加上(n/2)*(n/2)填入到B中,再把B中的数据加上(n/2)*(n/2)填入到C中,再把C中的数据加上(n/2)*(n/2)填入到D中;3):交换数字需要交换的数字的规则:a 右边两个小方阵中大于(m+2)的列中所有的数字b 左边两个小方阵中(m+1,m+1)这一个方格的数字c 左边两个小方阵中除(m+1,1)格位之外,小于m+1的列中的所有数字 (其中n=2*(2m+1);即m=(n-2)/4)3. 实现软件平台开发语言采用C++,平台使用QT Creator。4. 界面截图魔方阶数输入界面:输出魔方界面:输入报错界面:部分主要代码及注释void MainWindow::showMainwindow2()//第二级窗口的输出和输入判错函数{w2.getn( e-text().toInt() );if(e-text().toInt()=2||e-text().toInt()15 ){QMessageBox message(QMessageBox::Warning,Information,你输入的数字不符合要求,请重新输入!,QMessageBox::Yes|QMessageBox::No,NULL);if (message.exec()==QMessageBox::Yes){qDebug()clicked yes\n;}else{qDebug()clicked no\n;}}else{w2.sh(e-text().toInt());w2.setWindowTitle(e-text()+阶魔方);w2.setMaximumSize(400,400);w2.show();}}void MainWindow2::sh(int nn)//魔方阵最后的输出{ int i,j; int mm=0; r=0; c=0; x=0; shuzu f; this-n=nn; f.n = nn; g=new QGridLayout(this);

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档