作者Arashinoon (阿辣洗)
看板NTUE-CS102
标题[心得] 程式设计
时间Sun Jun 13 04:41:40 2010
今天终於把程式写完了
模拟考补交就在明天晚上结束(
应该吧?)
在这边提供不会写的人一些方向
没有恶心看到眼花的程式码
只有一些个人心得
所以有心想自己写的人参考一下
--
首先是这次的题目
第一题 要求要使用
类别来记录学生资料,且男学生女学生可另外储存
军训、
护理
第二题 对男学生总分(
英+数+程式+军训)排名
第三题 对女学生总分(
英+数+程式+护理)排名
第四题 对总分(
英+数+程式)排名
一到四题基本上可一次写完,四题都用同一个CPP上传缴交
(
其实照题目说法,应该是同一个cpp有三个函式,让你选择要什麽排名。
不过我搞不懂这样为啥还要分三个cpp上传,照彦廷说法是只要结果能正确就好。
所以不用想那麽多,做的出正确结果就是了。)
不过这个方法比较累人,而且选项众多,容易有BUG
可以分成四个不同写法来投机取巧(?)
--
然後这次运用到的章节有
阵列与指标 F5700-CH07.PPT (
指标这部份一定要搞懂)
类别与物件 F5700-CH08.PPT (
类别不用我说了吧?)
字串 F5700-CH11.PPT (
字元、名字都用的到)
继承 F5700-CH12.PPT (
建立男女子类别)
C输入与输出 F262A-CH03.PPT (
格式化输出使用)
後面是老师iCAN上传的档名,没课本的就去那边找吧
这五章节一定要熟到烂掉,不然期末考一样掰
尤其以阵列与指标、类别与物件、字串这三章节最常使用
--
说一下写程式的方向
就像解数学应用题,你除了会公式以外,再来是想要用哪个公式解哪个部份
然後把这些都统合起来才能解一题数学题目,程式亦同
我们现在有了这些工具,再来就是想一下,题目想要什麽,该怎麽下手
首先第一题要有一个可以储存
学号、姓名、英文、数学、程式的基本类别
所以有个基本方向 这个程式一定会有一个类别(
class) 我先把这个类别命名为 st
┌─────┐
│ st │ 後面代表他的型别
├─────┤
│学号
int │
char[]代表字元阵列的意思,因为是名字要用阵列储存
│姓名
char[]│
│英文
int │ 学号那些用
int储存就好了
│数学
int │
│程设
int │
└─────┘
--
有了基本类别後
再来就是帮男女学生创
子类别让他们储存不同的分数
这个方法在赌博那个作业就做过
大家应该不陌生(
除非你用抄的,事後又不去理解他)
┌─────┐
│ st ├──┬────┐
prot.. 是指用
class Boy :
protected st宣告
├─────┤┌─┴─┐┌─┴─┐
│学号
int ││ Boy ││ Girl │ 这样就拥有基本类别跟两个子类别了
│姓名
char[]│├───┤├───┤
│英文
int ││
prot..││
prot..│
│数学
int ││ 军训 ││ 护理 │
│程设
int ││
int ││
int │
└─────┘└───┘└───┘
而这些资料的
储存跟
读取大家应该都知道用两个函式去做,所以这边不多叙述
这样第一题就完成了(test.cpp)
--
再来就是二三题总分排名的部份,这个部分可以参考
作业5,从中间插入就好
所以目前程式大致长成这个样子:
开头宣告 这我不用多说吧?
class st 这是一开始储存基本资料的类别
boy protected 男学生
girl protected 女学生
int main() int main() 主程式大概要怎麽写,就看你想要怎麽做了
{
cin资料 以我的做法来说,输入资料跟排名先用
switch让使用者做选择
同时排名
}; 再依照选项不同下去做不同的动作。
--
输入或看排名 输入、储存资料 从中间插入
┌────┐ ┌────┐
┌────┐┌→│cin info├→ │Ranking │
│ switch ├┤ ├────┤ └────┘
└────┘└→│显示排名│
└────┘
这是第二题跟第三题大概流程,里面输入储存的地方可以改一下就可以了
例如一开始做男学生的那题,
node = new Boy; 改成
node = new Girl;
就变成新增女学生类别了。
cin >> 军训; 改成
cin >> 护理; 像这样做更改
switch 的用法,上学期有用过大家应该有印象,再回去翻翻应该就会了
第四题要求依照英数程式的总分作排名。
我是用比较取巧的方法,让他一开始只输入英数程式的分数。
没有输入军训或护理(
也就是没分男女),排名同二三题方法。
--
到这边,第一到四题都应该可以做出来了。虽然有点取巧,不过有正确答案就好。
取巧的地方:
1) 第四题题目要求:设计一个函式可将.....
因此应该是新增资料的时候一样要分男女,但是第二题让你选择用男生总分排名
第三题用女生总分排名,第四题应该是将已经输入完的男女分数(
包含军训护理)中,
英数程式分数拿出来另外做总分排名。
2) 输入成绩的地方
照题目说法,输入的时候应该都要分男女,只有在排名的时候让你做选择
但是我们偷偷在输入跟排名的地方动手脚,让输入跟排名是一致性的。
也就是输入男就排男,女就排女。(
因为二三题不需要帮另一边排名,所以才能这样搞)
--
至於一到四题一次满足的那个写法,我自己都懒的写了,我只把一到三题做整合
三题都缴交同一份,第四题就直接用一开始的写法了 囧rz。
如果有问题,我在线上的话都能问我。问安邦或凤郎更好。
大家加油,期末考也快到了。自己有空多多练习。
--
▌ | ▂▃▂▆▅
ㄟ▄▄▃▃▃▃▄
_=▃▄▅
▂▁十` ̄〢∥ ▋
▍ ︱ ◢◤▆▄▃、\ //▃▄▄▆▅▃▆ |∥ ▌
▌ | ▼ㄏ_▂、◣▼
∕▼◢▲|▂▃、▲ |║ ▍
▌ ︱∥ ●【 ▼˙▲ ▲ ●【║ ˙▊▏
∥| ▎
▋ ∥︱ ◥◥▅▊◤▲ ◥▲!◥▆◤▼|▏
∥ ▎
▋ ∥| |◥▂▁◤/ ㄟ◥▁▂◤∥▎
|∥ ▏
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.127.36.135
※ 编辑: Arashinoon 来自: 120.127.36.135 (06/13 04:54)
1F:推 Tuko:好文 但我记得老师说一定要用 protected 吧..... 06/13 09:21
2F:推 gcobc12632:老师有规定「一定」不能用public 阿辣洗重写罗 06/13 11:47
3F:推 CaptainWill:这一篇文章值 960 元 06/13 12:01
4F:推 gcobc12632:不请客吗 06/13 12:02
5F:推 j2612280:科科 阿辣洗noon 06/13 12:29
6F:→ joe989879:阿辣洗要取代安邦了... 06/13 12:47
7F:→ j2612280:取代什东西呀~"~? 06/13 12:55
8F:→ Arashinoon:干 涝赛 我11.00才进去齁 又没人跟我说= = 06/13 16:40
※ 编辑: Arashinoon 来自: 120.127.36.135 (06/13 16:45)