学分计算器是一款可以帮助在校大学生计算学分与绩点的计算工具,它是由吾爱破解论坛网页分享提供的,学分绩点是以学分与绩点作为衡量学生学习的量与质的计算单位,使用本软件就能够根据你的课程学分和成绩计算出你的学分绩点。欢迎下载使用。
国内大部分高校通用的计算方法是:绩点=分数/10-5,学分绩点=学分×绩点=学分×(分数/10-5)
每科的课程学分绩点=课程学分×课程权重系数×课程绩点
标准计算方法是将大学成绩的加权平均数乘以4,再除以100。比较常见的方法还有把各科成绩按等级乘以学分求和再以总学分除之。
本程序基于.NET 4.0制作,可以计算课程学分以及达标所需学分
课程数据存于txt文件
types.txt用于存放课程类别,课程类别.txt用于存放各类别的课程数据,格式:课程名+空格+学分(实验学分) tips:实验学分可空
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace PointCalc
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public struct Course
{
public string name;
public double point;
public double? point2;
public override string ToString()
{
return point2 == null ? name + " " + point : name + " " + point + "(" + point2 + ")";
}
}
double allPoint = 0;
double allPoint2 = 0;
List<Course> courses = new List<Course>();
FileStream fs;
StreamReader sr;
string content;
private void Form1_Load(object sender, EventArgs e)
{
fs = new FileStream("types.txt", FileMode.OpenOrCreate, FileAccess.Read);
sr = new StreamReader(fs, Encoding.Default);
content = sr.ReadLine();
while (content != null)
{
comboBox1.Items.Add(content);
content = sr.ReadLine();
}
sr.Close();
fs.Close();
if (comboBox1.Items.Count != 0)
comboBox1.SelectedIndex = 0;
toolStripStatusLabel1.Text = "";
}
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
content = (sender as CheckBox).Text;
int index = int.Parse(content.Substring(0, content.IndexOf('.'))) - 1;
if ((sender as CheckBox).Checked)
{
allPoint += courses[index].point;
if (courses[index].point2 != null)
allPoint2 += (double)courses[index].point2;
}
else
{
allPoint -= courses[index].point;
if (courses[index].point2 != null)
allPoint2 -= (double)courses[index].point2;
}
Updata();
}
private void Updata()
{
label1.Text = "当前学分:" + allPoint.ToString("f1");
label2.Text = "当前括号学分:" + allPoint2.ToString("f1");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = "当前学分:0";
label2.Text = "当前括号学分:0";
courses.Clear();
fs = new FileStream(comboBox1.SelectedItem.ToString() + ".txt", FileMode.Open, FileAccess.Read);
sr = new StreamReader(fs, Encoding.Default);
content = sr.ReadLine();
while (content != null)
{
string[] infos = content.Split(' ');
Course course = new Course();
course.name = infos[0];
if (infos[1].Contains('('))
{
course.point = double.Parse(infos[1].Substring(0, infos[1].IndexOf('(')));
var temp = infos[1].Substring(infos[1].IndexOf('('));
course.point2 = double.Parse(temp.Substring(1, temp.Length - 2));
}
else
{
course.point = int.Parse(infos[1]);
}
courses.Add(course);
content = sr.ReadLine();
}
sr.Close();
fs.Close();
RefreshPanel();
toolStripStatusLabel1.Text = "";
}
private void RefreshPanel()
{
flowLayoutPanel1.Controls.Clear();
for (int i = 0; i < courses.Count; ++i)
{
AddCheckBox(courses[i], i);
}
}
private void AddCheckBox(Course course, int i)
{
CheckBox checkbox = new CheckBox();
checkbox.Text = i + 1 + "." + course.ToString();
checkbox.Size = new Size(210, 16);
checkbox.CheckedChanged += checkBox_CheckedChanged;
checkbox.CheckedChanged += Calc;
checkbox.ContextMenuStrip = contextMenuStrip1;
this.flowLayoutPanel1.Controls.Add(checkbox);
}
private void button1_Click(object sender, EventArgs e)
{
string newType;
Form2 form2 = new Form2();
if (form2.ShowDialog() != DialogResult.OK)
{
return;
}
newType = form2.result;
fs = new FileStream("types.txt", FileMode.Append, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
sw.WriteLine(newType);
comboBox1.Items.Add(newType);
sw.Close();
fs.Close();
fs = new FileStream(newType + ".txt", FileMode.Create, FileAccess.Write);
fs.Close();
comboBox1.SelectedIndex = comboBox1.Items.Count - 1;
}
private void button3_Click(object sender, EventArgs e)
{
Course newCourse;
Form3 form3 = new Form3();
if (form3.ShowDialog() != DialogResult.OK)
{
return;
}
newCourse = form3.course;
fs = new FileStream(comboBox1.SelectedItem.ToString() + ".txt", FileMode.Append, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
sw.WriteLine(newCourse.ToString());
sw.Close();
fs.Close();
AddCheckBox(newCourse, courses.Count);
courses.Add(newCourse);
}
private void button2_Click(object sender, EventArgs e)
{
DialogResult dialogResult = MessageBox.Show("确定删除?", "删除", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dialogResult != DialogResult.OK)
return;
File.Delete(comboBox1.SelectedItem.ToString() + ".txt");
int oldIndex = comboBox1.SelectedIndex;
comboBox1.Items.RemoveAt(comboBox1.SelectedIndex);
fs = new FileStream("types.txt", FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
foreach (var item in comboBox1.Items)
{
sw.WriteLine(item.ToString());
}
sw.Close();
fs.Close();
comboBox1.SelectedIndex = oldIndex - 1;
}
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
content = (((sender as ToolStripMenuItem).GetCurrentParent() as ContextMenuStrip).SourceControl as CheckBox).Text;
courses.RemoveAt(int.Parse(content.Substring(0, content.IndexOf('.'))) - 1);
fs = new FileStream(comboBox1.SelectedItem.ToString() + ".txt", FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
foreach (var item in courses)
{
sw.WriteLine(item.ToString());
}
sw.Close();
fs.Close();
RefreshPanel();
}
private void Calc(object sender, EventArgs e)
{
double needPoint = 0;
double needPoint2 = 0;
if (!string.IsNullOrEmpty(textBox1.Text))
{
double goalPoint = double.Parse(textBox1.Text);
if (goalPoint > allPoint)
needPoint = goalPoint - allPoint;
}
else
return;
if (!string.IsNullOrEmpty(textBox1.Text))
{
double goalPoint2 = double.Parse(textBox2.Text);
if (goalPoint2 > allPoint2)
needPoint2 = goalPoint2 - allPoint2;
}
if (needPoint == 0 && needPoint2 == 0)
{
toolStripStatusLabel1.Text = string.Format("学分已足够!");
toolStripStatusLabel1.ForeColor = Color.Green;
}
else
{
toolStripStatusLabel1.Text = string.Format("距离目标学分还差:{0:N1}({1:N1})", needPoint, needPoint2);
toolStripStatusLabel1.ForeColor = Color.Red;
}
}
}
}
加载全部内容
纸张吨价与令价转换工具1.2M24人在玩纸张吨价与令价转换工具是一款非常好用的计算器软件,只需输入纸张吨位或价格就可以快速转换。使用非常方便,软件小巧便携。有兴趣的朋友要赶紧下载。软件说明纸张吨价与令价转换工具是吨价和订单...
下载司法速算器最新版 V14.21.14 MB18人在玩司法速算器,这里是拥有便携式操作的专业办公应用程序,也是专为司法业务而提供的辅助设备,主要是计算里面的各种诉讼费信息,司法速算器里的每一个数据都会为你显示详细的类目,还有各种利息的数据内容,这边也为你清晰的提供,喜欢的就来下载司法速算器吧。
下载科瑞计算簿3.4M11人在玩科瑞计算簿是一款功能强大的工程计算器,在计算式栏输入要计算的公式,在代码栏输入要计算的变量,注意变量输入只能用到小括号,通过这款软件都可以解决解决工程量计算。感兴趣的朋友快下载试试看吧。
下载小明计算器去广告版1M10人在玩小明计算器无广告破解版是专为喜爱小明计算器用户提供的修改版本,在此版本中没有讨厌的广告打扰,让你更加舒心,有需要的用户赶快下载吧!
下载寒龙音频KX3552驱动74M10人在玩寒龙音频效果安装是一款关于寒龙音频KX3552声卡的软件,可以调整声卡音色效果等,支持多个系统,采用多线程安装方式,全自动切换声音通道,非常方便,有需要的可以下载。
下载ConvertAll(万能单位转换工具)9.0M9人在玩ConvertAll是一款非常专业的万能单位转换工具,它能够进行各种单位之间的换算,支持长度,面积,体积,重量,时间等常用单位的互转,可进行多达400多种单位的换算。有需要的朋友不要犹豫了,快来下载使用吧。
下载学分计算器27KB9人在玩学分计算器是一款可以帮助在校大学生计算学分与绩点的计算工具,它是由吾爱破解论坛网页分享提供的,学分绩点是以学分与绩点作为衡量学生学习的量与质的计算单位,使用本软件就能够根据你的课程学分和成绩计算出你的学分绩点。欢迎下载使用。
下载ESBCalc3.1M9人在玩ESBCalc(科学计算工具)是一款功能强大的科学用计算器,ESBCalc(科学计算工具)除了拥有一般的数学运算功能,还包含科学的专用函数。软件支持WinXp,Win2000,Win2003等运行环境。
下载King Large Numbers Calculator16.9M9人在玩KingLargeNumbersCalculator是一款大数值计算器,可以计算20位数字以上的计算,软件绿色无需安装,计算精确,还在寻找大数值计算器的用户,不妨下载体验!
下载衰减网络计算206KB9人在玩衰减网络计算工具是一款非常小巧便携的专门用于电阻衰减网络计算的软件。软件界面简洁,绿色无需安装,可以帮助用户快速进行网络衰减计算、π型衰减器计算等等,有需要的用户可以下载体验!
下载