NTUE-CS102 板


LINE

原来这麽久没写串了(?) 中间应该是只有建构、解构函式跟这礼拜突然就过去的字串处理 有缺什麽提醒一下...我总觉得周二我都睡很大(死) : 对了,字串处理略...除非有谁有好点子可以拿来玩 以及一个半作业 分别是练习建构函式的小作业、模拟发牌的作业这样 : 前者一样略 maaa 虽然号称能解决问题的都是好写法 不过以我接触过的两三次历史纪录,期中考一定指定作法的-_____- -- : 节俭空间,一次说明建、解构函式算了(被打) 如果把一个class视做是一个小型的函式 比如说 int main() { int a; cin >>a; cout <<a <<endl; return 0; } 这样的程式内容,目的是输入、输出a 那麽,我们设计时会让程式 1.在开始时建立(建构)出变数a 2.对a进行处理 3.结束(解构)程式 -- 用同样的观点来看建、解构函式 那就是说,当我建立起某个物件时 电脑会主动作的事情就是建构函式内定义的内容 (类似於上面那个小程式的int a) 而当我删除、某个物件的生命结束时 电脑则会主动去做解构函式内定义的事情 (return 0,我知道解构这边这样解释差很大(死)) 大概先抱持这样的感觉就好 再来知道建解构预设函式名称为 类别名称 、 ~类别名称 还有只要没宣告,编译器都会设定建解构函式内容是空的就好 : 近似於这样的空程式 int main() { ; } -- 面对期中考的话,就拿这个类别当再来的范例 class stack{ public: void setnum(int NUM) {num=NUM;}; void setptr(stack* PTR) {ptr=PTR;}; int getnum() {return num;}; stack* getptr(){return ptr;}; private: stack* ptr; int num; }; 应该有相当比例的都是用串列去写这个题目 在其中会遇到很多,要把初始没有内容的ptr指向NULL,避免出现错误的情况 如果说,这个类别宣告成物件时,里面的指标就可以预设为NULL的话 这程式就可以写的比较顺畅了 希望物件建构初始时的动作,就是建构函式了 -- 先把这个类别加点东西,变成它的完整样貌 class stack{ public: stack () {;}; //这是建构函式 void setnum(int NUM) {num=NUM;}; void setptr(stack* PTR) {ptr=PTR;}; int getnum() {return num;}; stack* getptr(){return ptr;}; ~stack() {;}; //这是解构函式 private: stack* ptr; int num; }; 也就是说,不管怎样这个建解构都存在 然後呢...我们期待预设ptr指向NULL --> 创建时物件会自己去设定ptr 因此,修改建构函式为 -- stack () {ptr=NULL;}; 就能做到创立後,ptr会自己指向NULL这点了...在後面也可以拿掉很多特例内容 再来,我们又想setnum其实只在程式开始时设定那一次 那能不能像int a=10;这样直接输入,就能减少函式的宣告、简化程式码? 所以说呢...我们又把建构函式作了些变化 让他能输入一个参数进去,方便处理、简化函式与使用时的程式码 stack (int NUM=0) {ptr=NULL; num=NUM;}; 於是乎,宣告时就能直接使用 stack iamstack(1); 来让stack这个物件的两个变数设在 num == 1 跟 ptr==NULL了 下页放个改完的样貌 -- class stack{ public: stack (int NUM=0) {ptr=NULL; num=NUM;}; void setnum(int NUM) {num=NUM;}; void setptr(stack* PTR) {ptr=PTR;}; int getnum() {return num;}; stack* getptr(){return ptr;}; ~stack() {;}; private: stack* ptr; int num; }; 再来一页延伸使用...虽然我现在想不到什麽好用法 -- 在建构函式处,因为是"函式",所以也可以做些其他事情 比如写成 stack (int NUM=0) { ptr=NULL; num=NUM; cout <<num <<"We are the world, We are the children."; num=num*10+5-6; }; 这样子另外输出些什麽、做些处理一类的做法也是建解构函式能做的事情 不过一下我还真的想不到什麽(死) 再来稍微讲一下解构函式... 因为跟建构雷同处很多,所以应该不会用太多篇幅 -- 与之相反,解构函式即物件被删除时做的行为 像是delete或程式结束时进行记忆体释放作业时都算 大概有一点像是物件留下遗言这种感觉(?) 嗯...以当初做那作业时我遇到能用在解构函式的问题.... 大概就是在想怎样可以很简单的把全部串列delete而已 像是说一整个串列接在一起,我能不能砍掉head,就能把全串砍掉这样的事情 所以说...我可以把解构写成 ~stack() {delete ptr;}; 这样子去产生一个连锁效应,当我delete某个物件时 让电脑自己帮我把其後整个串列delete这样 当然,一样可以写成 ~stack() { cout << "I don't want to die"}; 这种鬼东西就是了(殴) -- (中略) 最後是模拟发牌,也就是乱数的应用题.. : 我觉得写这段时脑袋有点问题...作法有多少种一直没想通差异性 函式库 相关函式库 #include <stdlib.h> #include <time.h> 函式 函式 srand(); time(); rand(); srand -> 设定乱数种子,种子是用来生成一系列不同乱数的初始值,接受unsigned int rand -> 预设应该生成一个0~32767(?) 范围的数 time -> 回传现在时间,输入格式是一个time_t的指标,输出从指定时间起至今过几秒 : 预设为1970/1/1,也就是给予NULL显示的时间 -- 题目是模拟发牌 从发牌大概有这样两种 1.发牌时才产生还没有出现过的某张卡 2.先有一叠卡片、洗完牌後从最上头开始抽 然後,判断是不是发过的卡片应该都是一个表格配置 0 1 2 3 4 5 6 7 8 9 10 11 12 0 : 0 0 0 0 0 0 0 0 0 0 0 0 0 1 : 0 0 0 0 0 0 0 0 0 0 0 0 0 2 : 0 0 0 0 0 0 0 0 0 0 0 0 0 3 : 0 0 0 0 0 0 0 0 0 0 0 0 0 发过的0变1,或发过的1变0...发出来之前确定一下有没有发过 有发过就重新再挑一张 -- 先看第一种写法... 其中,不论何者都是要先决定卡片花色 所以说....我直觉想到是分别处理 先决定花色,再决定数值 也就是... pattern=rand()%4; number=rand()%13; 这样乱数两个数值的作法 : 在优良的乱数情况下,这种产生法不会影响乱度..虽然这个内建的rand不是优良的(跑) 比较好、也比较快的方式是 tmp=rand(); pattern=tmp/4; number=tmp/13; 这样去决定花色与数值 至於说为什麽是取4跟13的余数...只是单纯容易使用在阵列里面 -- 好啦...有花色有数值 再来就是你要在发出每张牌时才决定那张是什麽 还是先发出五张後,再逐个输出的差别而已了 : 即使我总觉得好像还有几种发法...(抓头) 至於数值与花色、AKQJ的转换 那就看你想写成if或switch都可以,指定特定部分转换就好 另外一个作法应该不会看到人做 作法是建一个大小为52的int阵列装1~52,然後连续用乱数将其中任意两数位置两两互换 换到最後再从[0]开始一张一张抽出 因为觉得没什麽好写的...所以就不在过程间放code了 下页放个没什麽优化、上课刻出来的53行 就见笑了 -- #include<iostream> #include<stdlib.h> #include<time.h> using namespace std; int main() { bool poker[4][13]; for (int i=0;i<4;i++) for (int j=0;j<13;j++) poker[i][j]=false; //seed set srand(time(NULL)); //deal for (int i=0;i<4;i++){ cout <<"The " <<i+1 <<" person\n"; for (int j=0;j<5;j++){ int color=rand()%4; int num=rand()%13; while (poker[color][num]){ color=rand()%4; num=rand()%13; } poker[color][num]=true; switch (color){ case 0: cout <<"Club"; break; case 1: cout <<"Diamond"; break; case 2: cout <<"Heart"; break; case 3: cout <<"Spade"; break; } if (num == 12) cout <<'K'; else if (num == 11) cout <<'Q'; else if (num == 10) cout <<'J'; else if (num == 0) cout <<'A'; else cout <<num+1; cout <<"\t"; } cout <<"\n"; } } 乱写一气的lol -- 至於说泄出来的题目内容嘛... 第一步是想到随机生成方块来做串列,不过这似乎不够让人有考试的感觉 所以说有可能像是扑克牌第二种写法一样要求随机移动方块 也就是...做出一个堆方块的雏形,然後随机生成一堆移动方法丢进去跑 : 虽然我也有一种陪NPC打牌的错觉...去年好像当一般作业hmmmmm 然後呢..又因为指定要带课本,所以会让人想到 1.考字串处理的函式库 2.指定课本习题 1看命...有可能冒出来11-31页..感觉意外的有可能(?) 2的部份就先做看看7-62 1.2.4.9,9会出也是随机生成10个数作排序啦 另外是8-43 1 -- 本命 ○楽园の巫女  博丽 霊梦 职业:博丽神社の巫女さん  Hakurei Reimu   能力:主に空を飞ぶ程度の能力 @东方project系列 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.43.42.173
1F:推 yantchen:噗噗 绝对没有你想的那麽难XD 04/16 23:59
2F:→ yantchen:其实没有限定要带课本啦 只是上机考都可以带课本我提醒一 04/17 00:00
3F:→ game0416:hmmmmmmm 可是我觉得都不难说(殴 04/17 00:00
4F:推 Arashinoon:凤郎你12345忘了删=ˇ= 04/17 00:24
5F:推 ip3311:未看先推 04/17 00:25
6F:推 CaptainWill:未看先推 04/17 00:29
※ 编辑: game0416 来自: 115.43.42.173 (04/17 00:34)
7F:推 Arashinoon:看完给推 考试大概也就那样了吧 04/17 00:42
8F:推 CaptainWill:王老大表示: 04/17 00:43
9F:推 yantchen: 你觉得你们猜的中吗XD 04/17 00:46
10F:推 Arashinoon: 科科 04/17 00:46
11F:推 CaptainWill: 我也会科科笑 04/17 00:47
12F:推 yantchen: +1 04/17 00:49
13F:推 pk873: 推 04/17 01:43
14F:推 gcobc12632: ? 04/17 02:25







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP