分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759

【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: array.cpp                           * 作    者:                            * 完成日期:  年  月   日* 版本号: v1.0      * 输入描述:无* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出*/#include <iostream>using namespace std;int main( ){ int i,j;    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值 int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}};  //键盘输入使后两列10个元素的值 cout<<"请输入10个整数:"<<endl; //按行序优先输出 cout<<"数组中的值为:"<<endl;  //将所有元素值乘以3后保存在数组中 cout<<"现在将所有元素乘以3倍...";  //按行序优先输出 cout<<"行序优先输出:"<<endl;   //按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”) cout<<"列序优先输出:"<<endl;  //将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出) cout<<"倒着输出:"<<endl; //输出数组中的所有偶数 cout<<"数组中的偶数:"<<endl;  //输出所有行列下标之和为3的倍数的元素值 cout<<"行列下标之和为3的倍数的元素:"<<endl; return 0;}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。

【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  using namespace std;  int main()  {    int a[7][7]={0};    setdata(a); //给数组赋值    outdata(a); //输出数组    return 0;}  void setdata(int a[7][7])  {  }  void outdata(int a[7][7])  {   }  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)

【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。

【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。

【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>#include <time.h>using namespace std;void setdata(int a[8][8]);  //设置随机数void out(int a[8][8]);  //输出数组void outDiagonal(int a[8][8]);  //输出对角线元素的值void mine(int a[8][8],int x, int y);  //按“扫雷”游戏的规则输出相邻格子void change(int a[8][8]);     //按要求改变数值int main(){ int a[8][8],x,y; setdata(a); out(a);   outDiagonal(a); cout<<"输入一个位置:"; cin>>x>>y; mine(a,x,y); change(a); out(a); return 0;}void setdata(int a[8][8]){ int i,j; srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同 for(i=0;i<8;i++)  for(j=0;j<8;j++)   a[i][j]=rand()%50+1;  return;}//按行序优先输出数组void out(int a[8][8]){}//输出对角线元素的值(从左上到右下、从右上到左下)void outDiagonal(int a[8][8]){}//按扫雷游戏规则,输出a[x][y]周围的8个数字void mine(int a[8][8],int x, int y){}//按题目中所言规则更改元素的值void change(int a[8][8]){}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。

==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======

附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  

http://blog.csdn.net/sxhelijian/article/details/11890759

【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: array.cpp                           * 作    者:                            * 完成日期:  年  月   日* 版本号: v1.0      * 输入描述:无* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出*/#include <iostream>using namespace std;int main( ){ int i,j;    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值 int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}};  //键盘输入使后两列10个元素的值 cout<<"请输入10个整数:"<<endl; //按行序优先输出 cout<<"数组中的值为:"<<endl;  //将所有元素值乘以3后保存在数组中 cout<<"现在将所有元素乘以3倍...";  //按行序优先输出 cout<<"行序优先输出:"<<endl;   //按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”) cout<<"列序优先输出:"<<endl;  //将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出) cout<<"倒着输出:"<<endl; //输出数组中的所有偶数 cout<<"数组中的偶数:"<<endl;  //输出所有行列下标之和为3的倍数的元素值 cout<<"行列下标之和为3的倍数的元素:"<<endl; return 0;}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。

【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  using namespace std;  int main()  {    int a[7][7]={0};    setdata(a); //给数组赋值    outdata(a); //输出数组    return 0;}  void setdata(int a[7][7])  {  }  void outdata(int a[7][7])  {   }  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)

【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。

【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。

【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>#include <time.h>using namespace std;void setdata(int a[8][8]);  //设置随机数void out(int a[8][8]);  //输出数组void outDiagonal(int a[8][8]);  //输出对角线元素的值void mine(int a[8][8],int x, int y);  //按“扫雷”游戏的规则输出相邻格子void change(int a[8][8]);     //按要求改变数值int main(){ int a[8][8],x,y; setdata(a); out(a);   outDiagonal(a); cout<<"输入一个位置:"; cin>>x>>y; mine(a,x,y); change(a); out(a); return 0;}void setdata(int a[8][8]){ int i,j; srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同 for(i=0;i<8;i++)  for(j=0;j<8;j++)   a[i][j]=rand()%50+1;  return;}//按行序优先输出数组void out(int a[8][8]){}//输出对角线元素的值(从左上到右下、从右上到左下)void outDiagonal(int a[8][8]){}//按扫雷游戏规则,输出a[x][y]周围的8个数字void mine(int a[8][8],int x, int y){}//按题目中所言规则更改元素的值void change(int a[8][8]){}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。

附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth n.货摊,电话亭
border n.国界,边境
bore v.烦扰,使厌烦,钻孔
boring adj.讨厌的
born adj.出生的,天生的
borrow v.借,借用
borrowings n.借款
bosom n.胸,胸怀
boss n.上司,老板
bossy adj.好发号施令的
both pron.,adj.双方,两
bother v.打扰,麻烦;n.麻烦
bottle n.瓶子
bottle-neck n.影响...的环节
bottom n.底部,末尾
bottom-line n.末行数字,结果
bough n.大树枝
bounce v.跳起;n.跳跃
bound v.缚,以...为界
boundary n.界线,边界
bourgeois n.资产阶级分子
bow v.鞠躬,服从;n.弓
bowl n.碗,钵
bowling n.保龄球
box n.箱,盒;v.拳击
boxer n.拳击运动员
boxing n.拳击
boxing-day n.节礼日
boy n.男孩,小伙子
boycott v.,n.抵制
brace n.支撑;v.激励
bracket n.括号
brag v.吹嘘,夸口
brain n.脑子,头脑,智能
brake n.制动器;v.刹车
brake n.v.刹车
branch n.树枝,分支,分部
brand n.牌子,商标
brandy n.白兰地
brass n.黄铜
brave adj.勇敢的;v.冒着
bravely adv.勇敢地
bravery n.勇敢
brazil n.巴西
brazilian adj.,n.巴西的(人)
breach n.违反(契约)
bread n.面包,生计
bread-earner n.挣钱养家的人
breadth n.宽度,大量
break n.打破,破坏;n.裂口
breakage n.裂口
breakdown n.故障,衰竭
breakfast n.早饭
breakthrough n.突破
breast n.乳房,胸脯
breath n.呼吸,气息
breathe v.呼吸
breed v.繁殖,饲养;n.品种
breeze n.微风
bribe v.贿赂
bribery v.贿赂
brick n.砖
bride n.新娘
bridegroom n.新郎
bridge n.桥梁,桥牌
bridle n.约束;v.抑制
brief adj.简短的
briefing n.简要情况
briefly adv.简单地,简短地
bright adj.明亮的,鲜明的
brighten v.使发光
brightness n.光辉,明亮
brilliance n.辉煌,光彩
brilliant v.辉煌的,杰出的
brim n.边,边缘
bring v.拿来,带来
brink n.边缘
brisk adj.敏捷的,活跃的
bristle n.鬃毛
britain n.不列颠,英国
british adj.英国的,英属的
brittle adj.易碎的,脆的
broad adj.宽的,辽阔的
broadcast v.,n.广播
broadcasting n.广播节目
broaden v.加宽,扩大
brochure n.产品介绍手册
broken adj.破碎的,毁坏了的
broker n.经纪人
bronze n.青铜
brood n.一窝
brook n.小河,溪流
broom n.扫帚
brother n.兄弟,同胞
brotherhood n.兄弟情谊
brother-in-law n.姻兄(弟)
brow n.眉毛,额
brown n.,adj.褐色(的)
bruise n.青肿;v.打伤
brush n.刷子,画笔;v.刷
brutal adj.野蛮的
brute n.禽兽,畜生
bubble n.气泡
bucket n.水桶
bud n.芽,蓓蕾
buddhism n.佛教
buddhist n.佛教徒
budget n.预算
buffalo n.水牛,野牛
buffet n.冷餐
bug n.臭虫,虫子
bugle n.喇叭
build v.建造,建设
builder n.建筑工人,建设者
building n.建筑物,大楼
bulb n.球形物,灯泡
bulk n.体积,大半
bulky adj.庞大的,笨重的
bull n.公牛
bullet n.子弹
bulletin n.公报
bullion n.金块,金条
bullish adj.行情看涨的
bump v.碰,颠簸;n.碰撞
bumpy adj.颠簸不平的
bunch n.一束
bundle n.,v.捆,包
burden n.担子,负担
burdensome adj.沉重的
bureau n.局,司,办公室
bureaucracy n.官僚主义
bureaucratic adj.官僚主义的
burglar n.夜盗,窃贼
burglary n.盗窃
burial n.埋葬
burn v.烧,燃烧,烧伤
burner n.喷灯
burnt adj.烧焦的,烧坏的
burst v.,n.爆炸,破裂
bury v.掩埋,安葬
bus n.公共汽车
bush n.灌木
bushel n.蒲式耳(重量单位)
business n.行业,买卖,商号
businesslike adj.事务式的
busy adj.忙碌的,热闹的
but prep.但是,除了
butcher n.屠夫;v.屠宰
butchery n.肉食店
butt n.根端;v.顶撞
butter n.黄油
butterfly n.蝴蝶
button n.钮扣,按钮
buy v.买,购买
buyer n.购买者
buzz v.嗡嗡叫;n.嗡嗡声
by prep.在...旁边,按照
bygone n.已往的,过时的
bypass n.旁道,分路
by-product n.副产品

  

http://blog.csdn.net/sxhelijian/article/details/11890759

【项目1-折腾二维数组】创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中。输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”),再将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出),再输出数组中的所有偶数,以及行列下标之和为3的倍数的元素值。
     提示:编程时,可以做一点,调一点,全写好再改会自讨苦吃。

  同时也给出参考的运行界面:

  
     报告模板及部分代码

/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: array.cpp                           * 作    者:                            * 完成日期:  年  月   日* 版本号: v1.0      * 输入描述:无* 问题描述:定义二维数组,为数组赋初值、输入值、更改值、按各种方法输出*/#include <iostream>using namespace std;int main( ){ int i,j;    //创建5行4列的二维整型数组,为数组中的前两列的10个元素赋初值 int a[5][4]={{0,1},{4,5},{8,9},{12,13},{16,17}};  //键盘输入使后两列10个元素的值 cout<<"请输入10个整数:"<<endl; //按行序优先输出 cout<<"数组中的值为:"<<endl;  //将所有元素值乘以3后保存在数组中 cout<<"现在将所有元素乘以3倍...";  //按行序优先输出 cout<<"行序优先输出:"<<endl;   //按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”) cout<<"列序优先输出:"<<endl;  //将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出) cout<<"倒着输出:"<<endl; //输出数组中的所有偶数 cout<<"数组中的偶数:"<<endl;  //输出所有行列下标之和为3的倍数的元素值 cout<<"行列下标之和为3的倍数的元素:"<<endl; return 0;}

补充:为了督促同学们学会与习惯使用单步调试工具,要求在报告中加一张图,图示在单步执行时,看到的数组a中各行各列的值。

【项目2-杨辉三角】编写程序,打印出以下形式的扬辉三角形。
1
1    1
1    2   1
1    3    3    1
1    4   6    4    1
1    5   10   10   5    1
1    6   15   20   15   6   1
  可以将杨辉三角形的值放在一个方形矩阵的下半三角中,如果需打印7行杨辉三角形,应该定义等于或大于7X7的方形矩阵,只是矩阵的上半部和其余部分并不使用。杨辉三角形具有如下特点:(1)第0列和对角线上的元素都为1。(2)除第0列和对角线上的元素以外,其它元素的值均为前一行上的同列元素和前一列元素之和。
  函数setdata按以上规律给数组元素置数,函数outdata输出杨辉三角形。

#include <iostream>  using namespace std;  int main()  {    int a[7][7]={0};    setdata(a); //给数组赋值    outdata(a); //输出数组    return 0;}  void setdata(int a[7][7])  {  }  void outdata(int a[7][7])  {   }  

【项目3-带姓名的成绩单】设score数组中存储同学们的C++成绩,增加一个数组string name[20]并赋初值,表示同学们的姓名。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:排序中交换score中的元素时,只要同时也交换name中的相应元素,就可以实现姓名和成绩的同步(如果交换成绩而不交换姓名,两者的对应关系就被破坏了。)

【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
【项目4扩展(选做)-带姓名的多科成绩单】增加用数组string name[]表示同学们的姓名,使姓名与成绩的下标保持一致(例如name[1]和score[1][0]、score[1][1]、score[1][2]和score[1][3]表示同一位同学的数据)。据此,将项目4中的第(3)项任务改为输出总分最高的同学的姓名。

【项目5-电子词典】:做一个简单的电子词典。在文件dictionary.txt中(本文后附了一部分(b打头的词)作为调试,校内同学到我的BB教学平台中找,校外人士感兴趣的告知我Email),保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如下图:
      
  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。

【项目6-体会棋盘游戏中的数据存储】
  定义一个8行8列的二维数组a[8][8]。
  

  (1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如上图所示;
  (2)设计函数out()按行输出二维数组中的数据;
  (3)设计函数outDiagonal()输出从左上到右下对角线上的元素的值,如对图的数据而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值;
  (4)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键盘输入一个位置,输出其周围八个格子中的数据,如输入2 2时,输出34 30 47 29 48 14 12 31(注意:一共八个,不包括该位置上的数)(参见图中的黄色部分),计算这些数的和并输出。另外,如果选择的位置在边缘或角上时,周围的格数不够八个,按实际个数输出。请用循环有规律地列举出来各个值,不要采用顺序结构逐个罗列。这项功能由函数mine()完成。
  (5)设计函数change()改变数组中的值。改变的规则是:从第2行(即a[1]行)开始到最后一行,每一元素是其正上方元素和右上方元素之和,例如a[1][0]取a[0][0]和a[0][1]之和,a[1][1]取a[0][1]和a[0][2]之和,……。对各行最后一列元素,其右上方无数据,取上一行中的第一个元素,如a[1][7]取a[0][7]和a[0][0]之和。对上图中的数据,a[1]行的  元素将依次为:50 27 41 30 33 63 60 64,a[2]行依次为77 68…114。
程序模板:

#include  <iostream>#include <time.h>using namespace std;void setdata(int a[8][8]);  //设置随机数void out(int a[8][8]);  //输出数组void outDiagonal(int a[8][8]);  //输出对角线元素的值void mine(int a[8][8],int x, int y);  //按“扫雷”游戏的规则输出相邻格子void change(int a[8][8]);     //按要求改变数值int main(){ int a[8][8],x,y; setdata(a); out(a);   outDiagonal(a); cout<<"输入一个位置:"; cin>>x>>y; mine(a,x,y); change(a); out(a); return 0;}void setdata(int a[8][8]){ int i,j; srand(time(NULL));//需要用当前时间作“种子”,以便每次运行取得的序列不同 for(i=0;i<8;i++)  for(j=0;j<8;j++)   a[i][j]=rand()%50+1;  return;}//按行序优先输出数组void out(int a[8][8]){}//输出对角线元素的值(从左上到右下、从右上到左下)void outDiagonal(int a[8][8]){}//按扫雷游戏规则,输出a[x][y]周围的8个数字void mine(int a[8][8],int x, int y){}//按题目中所言规则更改元素的值void change(int a[8][8]){}

【拓展-二维数组更多用处】这部分可以不去选择实践,看看、想想即可。
  中国象棋的棋盘也可以采用二维数组存储。
  (1)下棋程序需要体现相关的规则,例如,马走日。通过键盘输入一个位置,输出按“日”字型可以走到的所有位置,及其位置上的数值。例如,在项目6的图中,输入2 2时,输出(0,1,2)(0,3,16) (1,0,9) (1,4,12)……(项目6图中的背景有斜线的部分。可走到的位置一般为八个,位置在边缘或角上时,可能不够八个,按实际输出)。
  (2)马走日还有“别马腿”的规则。在任务4的图中,如果马腿位置上的数大于25,认为马腿被别了(实际游戏中,以该位置是否有棋子进行判断)。请在(1)的基础上考虑这一规则,只输出所有能走到的位置及数值。
  俄罗斯方块中的每一个小方块也用二维数组(一般4*4或8*8)表示,单色游戏数组元素用0、1即可,彩色的取值不限于0、1。对小方块的基本操作包括左旋、右旋、反转等操作。请针对上面的二维数组,实现左旋、右旋、反转等操作。
  JPEG是数字图像存储的国际标准。在JPEG编码规则中,其编码的基本单位是8*8的图像“块”,其中有一个环节叫“Z字型编码”,也即将一个8*8的“块”中数据按如图所示的方向取出,形成一个1*64的向量(可以保存在一个一维数组中)。请输出前面的8*8的数据块对应的向量。

  
  《线性代数》是工程数学的重要组成,在大二时开设,其中将涉及大量矩阵的运算,用于解决工程中的问题。在编程实现矩阵操作时,就是二维数组的操作。

附:部分词典,复制到词本中自建文件

b.c. (缩)公元前
b/l n.(缩)提单
baby n.婴儿,年龄最小的人
baby-sit v.(替人)看护小孩
baby-sitter n.看护小孩的人
bachelor n.单身汉,学士
back n.背;adj.背后的
backbone n.脊梁骨
backdate v.回溯
background n.背景,经历
backing n.倒退,支持物
backlog n.未交付的订货
backward adv.向后,逆
backwardness n.落后(状态)
bacon n.咸肉,熏肉
bacterium n.细菌
bad adj.坏的,低劣的
badge n.徽章
badly adv.坏,非常,严重地
badminton n.羽毛球
baffle v.困扰,难倒
bag n.袋子,提包
baggage n.行李
baggy adj.袋状的
bait n.饵,诱饵
bake v.烤,烘
baker n.面包师
bakery n.面包店
balance n.平衡,天平,余额
balcony n.阳台
bald adj.秃的
ball n.球,球状物,舞会
ballet n.芭蕾舞
balloon n.气球
ballooning n.热气球飞行运动
ball-point pen;n.圆珠笔
ballroom n.舞厅
bamboo n.竹
bamboo-shoot n.竹笋
banana n.香蕉
band n.乐队,带子;v.联合
bandage n.绷带
bandit n.盗匪,歹徒
bang n.,v.砰的一响
bank n.岸,银行
banker n.银行家
banking n.银行业务、金融业
bankrupt n.,v.,adj.破产
banner n.旗帜,横幅
banquet n.宴会
bar n.棒,杆,酒吧
barber n.理发师
bare adj.裸的,直率的
barely adv.赤裸裸地
bargain n.交易,便宜货
barge n.驳船
bark n.狗吠,树皮;v.吠
barn n.谷仓,牲口棚
barometer n.晴雨表,标记
baron n.男爵
baroness n.男爵夫人,女男爵
barrel n.桶,枪(炮)管
barren adj.不育的,贫瘠的
barrier n.障碍,壁垒
barter n.易货贸易
base n.基础,基地;v.基于
baseball n.棒球
basement n.地下室,地窖
basic adj.基本的,基础的
basically adv.基本上,主要地
basin n.盆,盆地
basis n.基础,根据
basket n.篮子,筐
basketball n.篮球
bat n.球拍,蝙蝠;v.击打
bath n.洗澡,浴室
bathe v.洗澡,冲洗
bathroom n.浴室,洗手间
batter v.打击
battery n.电池
battle n.战斗,战役
bay n.海湾,湾
bazaar n.集市
be v.是,存在
beach n.海滩,湖滨
bead n.有孔小珠
beak n.鸟嘴
beam n.梁,射线;v.发光
bean n.豆子
bear v.负担,忍受,生育
bearing n.举止,意义,轴承
bearish adj.熊市的
beast n.野兽,牲畜
beat v.打,击败;n.击打
beautiful adj.美丽的,绝妙的
beauty n.美,美女
because conj.因为,由于
become v.变成
bed n.床,河床,苗圃
bedroom n.卧室
bee n.蜜蜂
beef n.牛肉
beer n.啤酒
beetle n.甲虫
before prep.在...前面
beforehand adv.事先,预先
beg v.乞讨,恳求
beggar n.乞丐
begin v.开始,着手进行
beginner n.初学者
beginning n.开端,起点
behalf n.代表
behave v.行为,举动
behavior n.行为,举止
behind prep.在...后面
behindhand adj.落后,事后
being n.生物,存在
belief n.信仰,信心
believe v.相信,认为
bell n.钟,铃
belly n.肚子
belong v.属于
beloved adj.敬爱的;n.爱人
below adj.,prep.在...下面
belt n.带,腰带
bench n.长凳,工作台
bend v.弯曲,俯身;n.拐弯
beneath prep.在...之下
beneficial adj.有益的,有利的
beneficiary n.受益者
benefit n.益处,利益
benevolence n.慈悲,捐助
benevolent adj.乐善好施的
bent adj.弯曲的
berry n.浆果
beside prep.在...之旁
besides adj.而且;prep...之外
best adj.最好的
bestow v.赠给,授予
best-seller n.畅销书(货)
best-selling adj.畅销的
bet n.,v.打赌
betray v.背叛,泄露
betrayal n.背叛,暴露
better adj.更好的;adv.较好
better-off adj.经济情况较好的
between prep.在两者之间
beverage n.饮料
beware v.当心
bewilder v.迷惑,茫然
beyond prep.在...那边,超出
bias n.偏好
bible n.圣经
bicycle n.自行车
bid n.,v.报价,投标
bidding n.投标
big adj.大的,重大的
bike n.自行车
bill n.帐单,议案,钞票
billion n.十亿
bind v.捆绑,约束
binding n.装订
biographer n.传记记者
biography n.传记
biologist n.生物学家
biology n.生物学
bird n.鸟
birth n.出生,创始
birthday n.生日,诞辰
birthplace n.出生地
biscuit n.饼干
bishop n.主教
bit n.小片,一点
bite n.,v.咬,叮;n.一口
bitter adj.苦的,痛苦的
bitterly adv.惨痛地,辛酸地
bitterness n.苦味,苦难
black adj.黑的;n.黑色
blackboard n.黑板
blacksmith n.铁匠
blade n.刀刃,叶片
blame v.责备;n.过失
blank adj.空白的;n.空格
blanket n.毛毯
blast n.阵风;v.爆炸
blaze n.火光,光亮
bleach v.漂白,变白
bleed v.出血,流血
blend v.混合,掺混
bless v.保佑,祝福
blessing n.祝福
blind adj.瞎的;v.使失明
blink adj.眨眼,闪烁
block n.大块,街区,障碍物
blockage n.封锁
blond adj.金发的
blood n.血,血统
bloody adj.流血的,残忍的
bloom n.花;v.开花
blossom n.(果树的)花
blot n.污迹
blouse n.女衫
blow v.吹,吹掉,刮风
blue adj.蓝色的,忧郁的
blunder n.大错
blunt adj.钝的,生硬的
blush v.脸红,害臊
blushy adj.害羞的
board n.木板,伙食,董事会
boarding n.伙食
boast v.夸口,以...而自豪
boat n.小船,艇
body n.身体,尸体,团体
bodyguard n.保镖
boil v.沸腾,煮沸
boiler n.锅炉
boiling adj.沸腾的
bold adj.大胆的
boldness n.胆略
bolt n.螺检,插销;v.闩门
bomb n.炸弹;v.轰炸
bomber n.轰炸机
bonafide adj.真诚的,无欺的
bond n.束缚,联结,债券
bonded adj.保税的
bone n.骨,骨骼
bonus n.红利
bony adj.骨头的
book n.书;v.预订(票)
bookcase n.书橱
booking adj.定货
booklet n.小册子
bookshelf n.书架
bookstore n.书店
boom v.隆隆响,兴旺,繁荣
booming adj.兴旺的,繁荣的
boost v.抬高,促进
boot n.靴子
booth

2013级C++第15周项目——二维数组相关推荐

  1. 15周项目二:杨辉三角。

    /* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: array.cpp * 作 者:赵振凯 ...

  2. 第15周项目二—洗牌(1)

    /*烟台大学计算机学院 02.03.*文件名称:xiangmu1.cpp 03.04.*作 者:李亚辉 04.05.*完成日期:2016年6月24日 05.06.*版 本 号:vc++6.0 06.0 ...

  3. java二维对象数组_java 二维数组和对象数组

    1.二维数组:二维数组就是存储一维数组(内存地址/引用)的数组 2.二维数组的初始化 1) int intA[][]={{1,2},{2,3},{3,4,5}}; 2) int [][] intB=n ...

  4. C语言编程>第七周 ⑧ 请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中。

    例题:请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中.二维数组中的数己在主函数中赋予. ...

  5. 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)

          首先,我们看到这篇文章的题目,我们就会想到之前的那个题目 -- 连续子数组最大和问题.这个问题无疑就是把原问题扩展到二维的情况.       想起来这个问题也不是很难,我们可以求解一维矩阵 ...

  6. numpy二维数组改变某些数_【每天15分钟,5天学会NumPy】第1天:基本概念

    1.NumPy 的家族 NumPy 是 SciPy 家族的一员,而且是最重要的成员.SciPy 家族(见下图)是一个专门应用于数学.科学和工程领域的开源的Python生态圈.NumPy 最初是 Sci ...

  7. 判断一维对象数组的对象时间属性值是未来、今天、昨天、一周内、30天内、30天以前,并将该数组按照时间分类组成二维数组用于分时间段渲染

    //判断时间 let today = [] as any let yesterday = [] as any let aWeek = [] as any let aMonth = [] as any ...

  8. 二维数组实战项目--------《扫雷游戏》

    接上期介绍的三子棋游戏,今天给大家介绍与其相似的扫雷游戏!(源码在文章末尾) 一  . 游戏开发框架 建立游戏菜单 建立扫雷的棋盘 初始化棋盘 布置雷 排雷(判断是否踩雷) 游戏结束 二 . 游戏开发 ...

  9. Java学习第二周(2)--排序算法与二维数组

    声明:由于学习环境为JDK1.8,所有有关Java的代码均在JDK1.8环境中测试通过,若环境发生变换,代码可能会发生错误.     本周的学习难度较上周有明显提升,今天所学习的排序算法有很多需要理解 ...

  10. 15、Java基础——二维数组

    目录 课前先导 一.定义 二.声明二维数组 三.二维数组的初始化和赋值 四.遍历二维数组 五.用Arrays类中的方法输出数组 课前先导 二维数组及就是数组的嵌套,数组的元素还是数组:多维数组也是数组 ...

最新文章

  1. 用Python从头实现一个神经网络
  2. 算法-------求众数
  3. According to TLD or attribute directive in tag file, attribute value does not accept any expressions
  4. alter table add column多个字段_SQL对表中字段的操作 alter
  5. vim进阶之202007命令记录
  6. Linux最佳聊天软件:Skype 4.3轻体验
  7. 3种Python数据结构,13种创建方法,这个总结,超赞!
  8. try catch finally的用法
  9. firefox input file宽度失效
  10. 你用的那些开源项目可能已经被放弃维护!
  11. php 获取文件给用户下载,让PHP更快的为用户提供文件下载_PHP教程
  12. dropzone.js重写断点续传功能
  13. HNUCM-1435 最大最小值(分治法)
  14. 数据结构c语言版编程软件,数据结构严蔚敏4版PDF下载_数据结构C语言版严蔚敏下载 完整版_当载软件站...
  15. 利用虚拟机virtualbox配置智汀家庭云,让米家设备连接Homekit
  16. 计算机考证报名时间表
  17. 计算机专业英语电池,电池分为哪几种?英文缩写?
  18. python常用接口调用
  19. HDU - 1173 采矿
  20. 协同OA助中国制造业制造实时企业

热门文章

  1. 爬取豆瓣高分电影榜实例
  2. verilog 状态机 三角波 发生器
  3. MeGUI 压片之新手上路
  4. Emeditor -- windows最强txt编辑器,没有之一
  5. linux killer网卡,linux oom-killer(示例代码)
  6. 概率笔记4——重要公式
  7. 西安交大计算机专业考研复试,西交大的计算机考研初试+复试经历
  8. 北京市朝阳区 办理 驾驶证期满换证 自助体检 的流程
  9. 电动汽车动力电池SOC估算模型电池参数辨识模型【10例】
  10. java 将pdf转换成word_java实现pdf转word(文字)