1 / 35
文档名称:

北邮计算机实习.docx

格式:docx   大小:7,520KB   页数:35页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

北邮计算机实习.docx

上传人:63229029 2017/5/30 文件大小:7.34 MB

下载得到文件列表

北邮计算机实习.docx

相关文档

文档介绍

文档介绍:1 一. 实****目的及实****时间通过四周的计算机实****熟悉计算机的各种基本操作,了解和掌握 C++ 以及各种该图形化编程语言,动手实践做几款小软件来学会灵活运用我们的理论知识,增强我们的实际编程开发的能力。实****时间为 2015 年五月 25 日到六月二十一日。二. 实****任务 1~ 15 阶魔方阵的有可视化界面的软件。 (有背景音乐以及特效)。 BMI (以及给出相应的健康提示)。 4. 设计一个字符串处理软件,可以实现字符串中的字符查找,删除,统计以及插入新字符。 5. 设计一个函数作图器软件, 实现基本的函数的四则运算, 可以画出相应的函数图像,坐标可以做适当缩放。三. 实****过程(一) 魔方阵 1. 程序功能 n为初始输入的数字(为了显示效果, 使 n≤ 15 ), 把整数 1到 n2 排成一个 n×n方阵,使方阵中的每一行, 每一列以及对角线上的数之和都相同。输出这个方阵。 2. 设计思路(1)当 n=1 或2时,不存在的魔方矩阵; (2)当 n为奇数时,采用斜线填数的方法:将 1填入第一行中间;将每个若该位置超出最上行,则改填在最下行的对应位置;若该位置超出最右列,则该填在最左列的对应行位置;若某元素填在第一行最右列,下一个数填在该数同列的下一行;若某数已找到了填写位置,但其已填了其他数据,则这个数应填在应该填的位置的同列的下一行位置。 2 例,用该填法获得的 5阶幻方: 17241815 23571416 46132022 10121921311182529 (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阶幻方: 第一步: 12345678 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 第二步: 3 6423 61 6067 57 9 55 54 12 13 51 50 16 17 47 46 20 21 43 42 24 40 26 27 37 36 30 31 33 32 34 35 29 28 38 39 25 41 23 22 44 45 19 18 48 49 15 14 52 53 11 10 56 8 58 5954 62 631 ◎当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++ ,平台使用 QTCreator 。 4. 界面截图 4 魔方阶数输入界面: 输出魔方界面: 5 输入报错界面: 5. 部分主要代码及注释 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(()==QMessageBox::Yes) {qDebug()<< "clicked yes\n" ;