编写程序先输入姓名、班级、学号,然后输入三门课程名称,再提示分别输入分数和学分,最后计算总分、平均分、加权平均分,平均绩点,再打印个人信息、以课程名称依次打印成绩和计算结果,使用C#
时间: 2024-10-17 16:08:18 浏览: 23
C语言课程设计学生成绩管理系统.doc
在C#中编写这个程序,你可以使用控制台应用程序(Console App)的结构。以下是一个简单的示例代码,展示了如何完成这个任务:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 定义学生信息类
class StudentInfo
{
public string Name { get; set; }
public string ClassName { get; set; }
public int StudentID { get; set; }
// 存储课程信息的字典,键是课程名,值是Score和Credit
public Dictionary<string, (int Score, double Credit)> Courses = new Dictionary<string, (int, double)>();
}
// 获取用户输入
Console.Write("请输入您的姓名:");
var name = Console.ReadLine();
Console.Write("请输入您的班级:");
var className = Console.ReadLine();
Console.Write("请输入您的学号:");
var studentID = Convert.ToInt32(Console.ReadLine());
// 初始化课程列表
Console.WriteLine("请输入您选修的课程及其分数和学分,以逗号分隔(例如:课程A, 分数1, 学分1;...)");
string input = Console.ReadLine();
string[] courseData = input.Split(';');
// 创建StudentInfo实例并填充数据
StudentInfo student = new StudentInfo
{
Name = name,
ClassName = className,
StudentID = studentID
};
foreach (var data in courseData)
{
string[] courseInfo = data.Split(',');
if (courseInfo.Length == 3)
{
string courseName = courseInfo;
int score = Convert.ToInt32(courseInfo);
double credit = Convert.ToDouble(courseInfo);
// 添加课程到字典
student.Courses.Add(courseName, (score, credit));
}
}
// 计算总分、平均分、加权平均分和平均绩点
int totalScore = 0;
double totalCredit = 0;
foreach (var (course, (score, credit)) in student.Courses)
{
totalScore += score;
totalCredit += credit;
}
double averageScore = (double)totalScore / student.Courses.Count;
double weightedAverageScore = totalScore / totalCredit;
double gpa = CalculateGPA(weightedAverageScore); // 假设 GPA 计算公式为 4.0 制
// 打印结果
Console.WriteLine($"个人信息:\n姓名:{name}\n班级:{className}\n学号:{studentID}");
Console.WriteLine("\n课程成绩及计算结果:");
foreach (var (course, (score, credit)) in student.Courses)
{
Console.WriteLine($"{course}: 分数:{score}, 学分:{credit}, 总分:{score * credit}, 加权平均分:{score / credit}, 平均绩点:{gpa}");
}
Console.ReadKey();
}
// 示例GPA计算方法(这里简化处理)
private static double CalculateGPA(double weightedAverage)
{
return 4.0; // 如果按照标准算法,根据实际分制可能需要调整
}
}
```
在这个例子中,我们首先定义了一个`StudentInfo`类,用于存储学生的个人信息和课程成绩。然后通过循环获取用户输入的课程数据,将其添加到`Courses`字典中。接着计算总分、平均分、加权平均分和平均绩点,最后将这些信息打印出来。
注意,GPA的计算通常会更复杂,这取决于具体的教育体系和评分标准,这里简单地假设GPA为4.0制。在实际应用中,你可能需要一个更精确的公式或库来进行计算。
阅读全文