-1

我正在尝试运行一个程序,编译器似乎在它执行后立即崩溃......我没有构建错误。

我试过注释掉代码块,但仍然无济于事。我已经将主文件也复制到另一个文件中并运行它并且它有效....所以我真的很难过。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
   public class Student
{

string Fname, Lname, Program ;
int Sid ;

// Inputting information for students
public void InputStudentInfo () 
{
    Console.WriteLine ("Please enter your first name") ;
    Fname = Console.ReadLine() ;
    Console.WriteLine ("Please enter you last name") ;
    Lname = Console.ReadLine() ;
    Console.WriteLine ("Please enter you student ID#") ;
    Sid = int.Parse(Console.ReadLine()) ;
    Console.WriteLine ("Enter the Program that you are completeing") ;
    Program = Console.ReadLine() ;
}

// Printing information for students
public void PrintStudentInfo ()
{
    Console.Write (" Your name is " + Fname) ;
    Console.Write(" " + Lname);
    Console.WriteLine (" Your student identification number is " + Sid) ;
    Console.WriteLine (" The program you are registered for is " + Program) ;
} 

/* public void MenuInterface()
{
    Console.WriteLine (" 1. Input Student information" ) ;
    Console.WriteLine (" 2. Input Course information" ) ;
    Console.WriteLine (" 3. Input Grade information" ) ;
    Console.WriteLine (" 4. Print Course information" ) ;
    Console.WriteLine (" 5. Print Student information" ) ;
    Console.WriteLine (" 6. Print Grade information" ) ;
    Console.WriteLine (" 7. Print Student information including Course they are registered in and the grade obtained for that course" ) ;
    Console.WriteLine (" 8. Print grade info of the course in which student has achieved the highest grade" ) ;
    Console.WriteLine (" 0. Exit") ;
    Console.WriteLine (" Please select a choice from 0-8") ;
    accode = Console.ReadLine();
} */

}

public class Course
{

string course1, course2, course3 ;
int Stuid ;

// Inputting Course Information
public void InputCourseInfo ()
{
    Console.WriteLine (" Please re-enter your identification number") ;
    Stuid = int.Parse(Console.ReadLine()) ;
    Console.WriteLine (" Enter the name of your first course") ;
    course1 = Console.ReadLine() ;
    Console.WriteLine (" Enter the name of your second course") ;
    course2 = Console.ReadLine() ;
    Console.WriteLine (" Enter the name of your third course") ;
    course3 = Console.ReadLine() ;
}

// Printing Course Information
public void PrintCourseInfo ()
{
    Console.WriteLine (" Your ID # is " + Stuid) ;
    Console.Write (" The Courses you selected are " + course1) ;
    Console.Write("," + course2);
    Console.Write(" and " + course3);
}
}
public class Grade : Course
{
    int Studentid ; 
    int [] hwgrade ; 
    int [] cwgrade ;
    int [] midegrade ; 
    int [] finalegrade ; 
    int [] totalgrade ;
    string coursename ;

    public Grade ( string cname , int Studentident , int [] homework , int [] classwork , int [] midexam , int [] finalexam)
    {
        coursename = cname ;
        Studentid = Studentident ;  
        hwgrade = homework ;
        cwgrade = classwork ;
        midegrade = midexam ;
        finalegrade = finalexam ;
    } 

    public string coname
    {
        get
        {
            return coursename ;
        }
        set
        {
            coursename = value ;
        }
    }

    public int Studentidenty
    {
        get
        {
            return Studentid ;
        }
        set
        {
            Studentid = value ;
        }
    }

    public void InputGradeInfo()
    {
        Console.WriteLine (" Please enter your Student ID" ) ;
        grade.Studentidenty = Console.ReadLine() ;
        for ( int i = 0; i < 3; i++)
        {
            Console.Writeline (" Please enter the Course name" ) ;
            grade.coname[i] = Console.Readline() ;
            Console.Writeline (" Please enter your homework grade") ;
            grade.hwgrade[i] = int.parse(Console.Readline()) ;
           // .....
        }
    }

    public void CalcTotalGrade()
    {
        for (int i = 0; i < 3; i++)
        {
            grade.courseper[i] = (grade.hwgrade[i] + grade.cwgrade[i]) / 2;
            grade.finalper[i] = (grade.midexam[i] + grade.finalegrade[i]) / 2;
            grade.totalgrade[i] = (grade.courseper[i] + finalper[i]) / 2;
        }
    }

    public void PrintGradeInfo()
    {
        for ( int i = 0; i < 3; i++)
        {
            Console.Writeline (" Your homework grade is" + grade.hwgrade[i]) ;
           // .....
        }
    }
        static void Main(string[] args)
        {
            int accode ;
            Student student = new Student() ;
            Course course = new Course() ;
            Grade grade = new Grade() ;
            do
            {
                Console.WriteLine(" 1.  Input Student information");
                Console.WriteLine(" 2.  Input Course information");
                Console.WriteLine(" 3.  Input Grade information");
                Console.WriteLine(" 4.  Print Course information");
                Console.WriteLine(" 5.  Print Student information");
                Console.WriteLine(" 6.  Print Grade information");
                Console.WriteLine(" 7.  Print Student information including Course they are registered in and the grade obtained for that course");
                Console.WriteLine(" 8.  Print grade info of the course in which student has achieved the highest grade");
                Console.WriteLine(" 0.  Exit");
                Console.WriteLine(" Please select a choice from 0-8");
                accode = Console.ReadLine();
                switch (accode)
                {
                    case 1:
                        student.InputStudentInfo();
                        break;
                    case 2:
                        course.InputCourseInfo();
                        break;
                    case 3:
                        grade.InputGradeInfo();
                        break;
                    case 4:
                        course.PrintCourseInfo();
                        break;
                    case 5:
                        student.PRintStudentInfo();
                        break;
                    case 6:
                        grade.PrintGradeInfo();
                        break;
                    case 0:
                        Console.WriteLine(" You have chosen to exit the program have a good day. =)");
                        break;
                }
            } while (accode != 0); 
            Console.ReadKey();
        } 
    }
}

当我说我复制了 main 时……我的意思是我拿走了 main 下的所有代码并打开了一个新项目并将代码放回去,程序运行了。我尝试了关于使用 try 和 catch 的建议……但同样的问题仍然存在,当我按下 start 时,没有错误,cmd 在瞬间打开和关闭。当我按 ctrl + f5 时,屏幕出现但只显示“按任意键继续”。

4

1 回答 1

3

像这样在你的 main 方法中添加一个 try catch 来提示你出了什么问题:

static void Main(string[] args)  
            {  
    try
    {
                int accode ;  
                Student student = new Student() ;  
                Course course = new Course() ;  
                Grade grade = new Grade() ;  
                do  
                {  
                    Console.WriteLine(" 1.  Input Student information");  
...
                    Console.WriteLine(" 0.  Exit");  
                    Console.WriteLine(" Please select a choice from 0-8");  
                    accode = Console.ReadLine();  
                    switch (accode)  
                    {
    ...  
                    }  
                } while (accode != 0);   
    }
    catch (Exception Ex)
    {
       Console.Writeline("Exception: " + ex.Message);
    }
                Console.ReadKey();  
            } 
于 2012-10-09T16:45:23.873 回答