我正在尝试运行一个程序,编译器在执行后似乎只是崩溃...我没有构建错误。
我试过评论代码块但仍然无济于事。我已经将主要文件复制到另一个文件中并运行它并且它起作用....所以我真的很难过。
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();
}
}
}
就我什么时候说我复制了主...我的意思是我把主要的所有代码都打开了,然后打开了一个新项目并放回了代码,程序运行了。我尝试了关于使用try和catch的建议......但仍然会出现同样的问题,当我按下开始时,没有错误,cmd打开并在瞬间关闭。当我按ctrl + f5时屏幕出现但只显示'按任意键继续'。
答案 0 :(得分: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();
}