Replace line and field using SED and/or AWK or some other suggestion

QUESTION 1:
How do you replace a specific line (i.e. line 4) with a new user defined line (i.e. the contents of SAMS�s name, history, math and English grades have been set already). I have been attempting to use SED (FYI: I don�t have GNU SED) or AWK, but haven�t had any luck. FYI: I am using SOLARIS 10 as an OS. See example below. FYI: KEEP IN MIND FOR ALL EXAMPLES I WAS UNABLE TO PROPERLY ALIGN NAME, HISTORY, MATH AND ENGLISH WITH THERE CORRESPONDING VALUES USING THIS THREAD WORD PROCESSOR .
Below is the starting file.

NAME: HISTORY: MATH: ENGLISH:
ROB A B A
DAN A C B
JOHN C B A

For example if John has left the class and SAM has joined and his grades are all A's.
Resulting file (BOLD TEXT IS WHAT NEEDS TO CHANGE):

NAME: HISTORY: MATH: ENGLISH:
ROB A B A
DAN A C B
SAM A A A

Question 2:
Does anyone know how to replace a specific field (i.e. line 2, field 2)? I would like to do the replacement this generically (line 2, field 2). So, for example I don�t want to use grep on ROB. Again, I do not have GNU SED. See example below.
Below is the starting file.

NAME: HISTORY: MATH: ENGLISH:
ROB A A A
DAN A A A
JOHN A A A

Resulting file (BOLD TEXT IS WHAT NEEDS TO CHANGE):

NAME: HISTORY: MATH: ENGLISH:
ROB A B A
DAN A A A
JOHN A A A

[root@node2 ~]# cat file1
ROB A B A
DAN A C B
JOHN C B A
[root@node2 ~]# sed 's/JOHN.*/SAM A A A/g' file1
ROB A B A
DAN A C B
SAM A A A
[root@node2 ~]# cat file2
ROB A A A
DAN A A A
JOHN A A A
[root@node2 ~]# sed '/ROB/s/A/B/2' file2
ROB A B A
DAN A A A
JOHN A A A