还是让大虾们先看两个程序段吧?
---
先看我定义的数组:
//定义两个数组,用来装载题目的正确答案
string [] xzCorrectAnswer;
string [] tkCorrectAnswer;

//定义两个数组,用来装载用户做题的答案
string [] xzAnswer;
string [] tkAnswer;
---
方法一:
private void oneSubmitButton_Click(object sender, System.EventArgs e)
{
//初始化用户答案数组
countNumber cn=new countNumber ();
xzAnswer=new String [cn.counting ("xuan_ze")];
tkAnswer=new String [cn.counting ("tian_kong")];            bool isAnswer=false; if(tkList.SelectedIndex ==-1)
{
if (RadioButtonA.Checked) 
{
xzAnswer[xzList.SelectedIndex-1]="a";
infoLabel.Text =infoLabel.Text +xzAnswer[xzList.SelectedIndex-1];
isAnswer=true;
RadioButtonA.Checked=false;
}
else if (RadioButtonB.Checked) 
{
xzAnswer[xzList.SelectedIndex-1]="b";
infoLabel.Text =infoLabel.Text +xzAnswer[xzList.SelectedIndex-1];
isAnswer=true;
RadioButtonB.Checked=false;
}
else if (RadioButtonC.Checked) 
{
xzAnswer[xzList.SelectedIndex-1]="c";
infoLabel.Text =infoLabel.Text +xzAnswer[xzList.SelectedIndex-1];
isAnswer=true;
RadioButtonC.Checked=false;
}
else if(RadioButtonD.Checked )
{
xzAnswer[xzList.SelectedIndex-1]="d";
infoLabel.Text =infoLabel.Text +xzAnswer[xzList.SelectedIndex-1];
isAnswer=true;
RadioButtonD.Checked=false;
}
else
{
isAnswer=false;
} if(!isAnswer)
{
infoLabel.Text ="你还没有选择答案(你必须指定某个选项为问题的正确答案)!!";
}
} if(xzList.SelectedIndex ==-1)
{
tkAnswer[tkList.SelectedIndex -1]=txtTianKong.Text ;
txtTianKong.Text ="";
if(txtTianKong.Text =="")
{
infoLabel.Text ="你还没有填写答案!!";
}
}
}
-----------------
方法二:
private void sButton_Click(object sender, System.EventArgs e)
{
//计算总分
countNumber cn=new countNumber (); int xzMarks=cn.countMarks (xzAnswer,xzCorrectAnswer,"xuan_ze");
if(xzMarks==0){infoLabel.Text ="选择题分数统计出现异常!";}
int tkMarks=cn.countMarks (tkAnswer,tkCorrectAnswer,"tian_kong");
if(tkMarks==0){infoLabel.Text =infoLabel.Text +"填空题分数统计出现异常!";}
int totalMarks=xzMarks+tkMarks;            //获取用户名
string userName=txtTotalMarks.Text;

if(xzMarks!=0 && tkMarks!=0)
{
int insertResult=cn.insertMarks (totalMarks,userName); if(insertResult==0)
{
infoLabel.Text ="插入分数时出现异常!错误信息:数据库连接不成功。";
}
else if(insertResult==1)
{
infoLabel.Text ="插入分数成功!";
}
else if(insertResult==2)
{
infoLabel.Text ="插入分数失败!错误信息:插入分数时出现异常。";
}
else
{
infoLabel.Text ="插入分数失败!错误信息:出现了未知的错误。";
}
}
}
--------
在下面的回帖里面我将会对这两个方法做个具体的说明
^_^

解决方案 »

  1.   

    我设计的是一个简单的考试系统,只有填空题和选择提两类题目。
    xzCorrectAnswer和tkCorrectAnswer这两个数组是用来保存问题的正确答案的,xzAnswer和tkAnswer是用来保存用户的答案。
    方法一主要就是为了将用户的答案记录下来(包括选择题和填空题),方法二主要是用来计算用户的得分情况。cn.countMarks是我另外编写的一个类里面计算分数的方法(这个比较简单就不说啦^_^)。
    现在的问题是:
    调试的时候 int xzMarks=cn.countMarks (xzAnswer,xzCorrectAnswer,"xuan_ze");不起作用。然后我在方法二里面加一条显示xzAnswer和tkAnswer数组内容的语句,调试时就会显示“未将对象的引用设置到实例”。怎么回事啊?
    我已经在类里面定义了两个数组,然后在方法一里面进行了填充,然后在另外一个方法里面直接用不行么?以前也出过类似的问题,也搞不懂。
    盼望高手指点……
    ----------
    PS:题目分数比较低,原因是我这个菜鸟的分数就这么点了,呵呵,委屈大家了^_^
      

  2.   

    code太多,看不了。楼主调试跟踪一下程序,看问题出在什么地方。
      

  3.   

    用ARRAYLIST代替数组,很好用的方便快捷
      

  4.   

    TO: 8LY8Apollo(阿波罗),panda2fw2(我爱Monkey) :
    --------
    呵呵,辛苦了。
    我是怕说不明白,所以把代码弄出来让大家看一下。
    呵呵
      

  5.   

    TO: xuyinjiao(也许) 
    -----------------------------
    ARRAYLIST和“数组”有什么分别啊?我对这个不是很熟悉阿。能不能再指点一下迷津啊?
      

  6.   

    ARRAYLIST了可以保存对象的列表(任何类型的对象,甚至可以是其他的ARRAYLIST)。除了ARRAYLIST没有任何固定的上限外,使用ARRAYLIST与使用一个数组类似,ARRAYLIST也具有许多有用的属性和函数,这些在数组中并没有。
      

  7.   

    数组可以作为一个方法的返回值,那么,用ArrayList也一样吗?具体怎么实现???
    用法和数组作为返回值的方法一样么?
      

  8.   

    ArrayList是集合,它里面存放的类型是object,也就是说所有类型的数据都可以放在里面,而且它是可变长的。
    数组的中元素的类型是固定的,比如:int[] a=new int[3];这条语句创建了一个可以存放三个整型数据的一维数组,数组里面只能存放整型,并且最多只能放三个。因为数组的长度在创建的时候就固定了,但ArrayList不会,ArrayList al=new ArrayList(3);这条语句创建了一ArrayList的列表对象,初始的元素个数为3,但是当你往其中存放第四个元素时,它的长度会自动增长以保证你的对象能够放入列表对象中