我的任务如下。C#程序不能正确显示输出
某ITEC考试有20个选择题。下面是正确的答案:
1. B 11. B
2. D 12. C
3. A 13. D
4. A 14. A
5. C 15. D
6. A 16. C
7. B 17. C
8. B 18. B
9. C 19. D
10. D 20. A
创建的程序:
- 创建存储了正确的答案(5分)的阵列。
- 创建一个名为Response.txt的文本文件,它是模拟回答问题的学生 只写出字母答案,每行只写一个字母。记住你的文件必须 有20行从A,B,C或D.答案见下例 一个 ç 乙 d Ç
- 你的程序应该在一个数组 阅读文本文件和存储的答案
- 学生的答案从文件中读取并存储在数组中后,程序应该 将数组与正确的答案进行比较,数组与答案的答案和 确定有多少答案是正确的,有多少错误。
- 程序应显示一条消息,指出学生是否通过了 考试。通过分数是14正确的答案。
程序应显示正确答案的总数,错误答案的总数以及显示错误回答问题的问题编号的列表。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ITEC_exam { public partial class ITEC_exam : Form { public ITEC_exam() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string line; int cnt = 0; //List to hold question numbers of incorrect answers List<int> incorrect = new List<int>(); //Array to store correct answers string[] correctAnswers = { }; //Array to store answers string[] answers = { }; //Read the files and store answers in arrays System.IO.StreamReader correctFile = new System.IO.StreamReader("C:\\Users\\a_day\\Desktop\\Baker_Austin_c#_final\\ITECexam\\ITEC exam\\correctAnswers.txt"); System.IO.StreamReader answerFile = new System.IO.StreamReader("C:\\Users\\a_day\\Desktop\\Baker_Austin_c#_final\\ITECexam\\ITEC exam\\testResult.txt"); if ((line = correctFile.ReadLine()) != null) correctAnswers = line.Split(' '); if ((line = answerFile.ReadLine()) != null) answers = line.Split(' '); //Compare answers and compute the score for (int i = 0; i < 20; i++) { if (correctAnswers.Count() > i && answers.Count() > i) { if (String.Compare(correctAnswers[i], answers[i]) == 0) cnt++; else incorrect.Add(i + 1); } } //Print Result if (cnt >= 15) MessageBox.Show("\n\n Result: PASS"); else MessageBox.Show("\n\n Result: FAIL"); //Printing score MessageBox.Show("\n Total number of Correct Answers: " + cnt); MessageBox.Show("\n Total number of Incorrect Answers: " + (20 - cnt)); MessageBox.Show("\n Question numbers of incorrect answers: "); //Printing incorrectly answered question numbers foreach (int qno in incorrect) MessageBox.Show(" " + qno + " "); //Closing Files correctFile.Close(); answerFile.Close(); } } }
我遇到的问题是,我似乎无法得到它的输出,显示的不正确回答问题,问题编号列表。
编辑:我遇到的问题是,我已确保答案的关键和响应文件都有相同的信息,所以程序应该导致与通过,并没有不正确的答案。
发生了什么事情是该程序说只有1个正确的答案,那么它也没有列出它的sttd不正确的答案。
你重新广告只有一行文件。你的文件如何看起来像?所有的信息都写在一行吗?这种情况背后的原因是:if(correctAnswers.Count()> i && answers.Count()> i)'。你有没有试过一步一步通过调试器? –
乙 d 甲 甲 Ç 甲 乙 乙 Ç d 乙 Ç d 甲 d Ç Ç 乙 d 甲 – Austin
HMM在记事本中它是垂直的,但是当我复制并粘贴它的输出,如 – Austin