软件工程 2016.6.29 日报

软件工程 2016.6.29 日报



  今天我的主要工作就是调查了解我校的加权平均分计算方法,并将程序加权计算部分予以修正。

  通过查阅北工大教务公示,获得信息:

    第十条学校利用“学分通过率”和“加权平均分”作为衡量学生在校期间学习质量的主要指标。辅修课程、创新学分和第二课堂的学分和成绩不计入学分通过率和加权平均分的计算。创新学分和第二课堂是学生获得毕业资格的必要条件。理工类专业学生应修不少于4学分的创新学分,其他专业应修不少于2学分的创新学分。第二课堂应修满12学分。

  同时,通过询问同学获取了在教务管理中对辅修课程的表示:

    在网站数据中有辅修标记一栏,该栏标记为2即表示辅修课程。

  除此之外,根据同学的反映,对于不及格的科目,是不计算在加权平均分中的,所以需要将不及格的科目不做处理。

  根据调查的资料修改了加权平均分部分的计算逻辑,由于在数据抓取部分没有抓取辅修课程标记一栏,所以对于这方面暂时无法进行修改。但对于创新学分课程以及第二课堂课程在代码逻辑中进行了排除。这就是今天所做的工作。

  

  下面是修改后的代码逻辑:

 1 #region ----------计算加权平均分----------
 2         /// <summary>
 3         ///     计算加权平均分
 4         /// </summary>
 5         /// <param name="calculateData">筛选后的成绩列表</param>
 6         /// <param name="weightedMean">加权平均分</param>
 7         /// <returns>计算是否成功</returns>
 8         public static bool CalculateWeightedMean(DataTable calculateData, out double weightedMean)
 9         {
10             //若输入数据表为空,则不计算。
11             if (calculateData.Rows.Count == 0)
12             {
13                 weightedMean = 0;
14                 MessageBox.Show("[ERROR]No data to calculate weighted mean.");
15                 //Console.WriteLine("[ERROR]No data to calculate weighted mean.");
16                 return false;
17             }
18
19             try
20             {
21                 //计算学分和、成绩*学分和
22                 double sumOfCredit = 0, sumOfGrade = 0;
23                 foreach (DataRow dr in calculateData.Rows)
24                 {
25                     //如果成绩为数字且不是第二课堂性质的课程,计算加权
26                     if (Regex.IsMatch(Convert.ToString(dr["成绩"]), pattern) && !Convert.ToString(dr["课程性质"]).Equals("校选修课") && Convert.ToInt32(dr["成绩"]) >= 60)
27                     {
28                         sumOfCredit += Convert.ToDouble(dr["学分"]);
29                         sumOfGrade += Convert.ToDouble(dr["成绩"]) * Convert.ToDouble(dr["学分"]);
30                     }
31
32                 }
33                 weightedMean = sumOfGrade / sumOfCredit;
34                 return true;
35             }
36             catch (Exception e)
37             {
38                 weightedMean = -1;
39                 MessageBox.Show("{0}", e.Message);
40                 //Console.WriteLine("{0}", e.Message);
41                 return false;
42             }
43         }
44         #endregion
时间: 2024-10-05 05:05:55

软件工程 2016.6.29 日报的相关文章

软件工程 2016.7.3 日报

软件工程 2016.7.3日报 在周五我初步搭建了吐槽墙的结构,实现了部分的功能.经过与组长的讨论,我们最终决定使用TCP通信的方式实现功能.因为对于这种比较明显的C/S结构,UDP方式的通信会使得整体处理信息的过程延迟比较大,不符合功能需求. 经过讨论分析,Server和Client通信的信息主要有以下几类: 1.Client向Server发送Client房间列表,Server端check本地是否含有所有房间,若不含的话,需要创建新文件存储响应聊天信息. 2.Client向Server请求特定

软件工程 2016.7.4日报

软件工程 2016.7.4日报 今天我进行的主要工作包括了完成服务器端功能的搭建,以及客户端socket通信功能架构的搭建以及部分功能的实现. 对服务器端,在周五的时候我对于接受消息.处理消息部分的功能还没有实现,今天将代码补全,构建出了一个较完善的服务端代码. 今天具体实现的代码如下: 主要实现了检查本地是否包含用户所上的全部课程的聊天室,返回特定聊天室的聊天记录给用户,向特定聊天室记录文件中添加吐槽,以及移除在线好友,处理非法信息等. 在实现的过程中运用的主要技术包括C#文件操作.JSON封

软件工程 2016.6.30 日报

软件工程 2016.6.30 日报 今天主要学习的内容是C# socket网络编程中的TCP通讯技术.socket编程的原理如下: 在服务端的处理流程为: (1)建立服务器端的Socket,开始侦听整个网络中的连接请求. (2)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接. (3)当完成通信后,服务器关闭与客户端的Socket连接. 在服务端的处理流程为: (1)建立客户端的Socket,确定要连接的服务器的主机名和端口. (2)发送连接请求到服务器,

软件工程 2016.7.5日报

软件工程 2016.7.5日报 今天我的主要工作是晚场了客户端功能的搭建.连接了客户端UI与客户端Socket部分的功能,为服务端增加了文件锁避免多个线程对同一文件同时操作. 具体实现的工作有: 客户端功能搭建: 在客户端完成了通信功能的实现: 补全了昨天空缺的代码,在收到消息时进行相应的处理: 1 if (arrMsg[0] == SEND_MSG) 2 { 3 ReceiveMsgFromServer(msgReceive); 4 } 5 else if (arrMsg[0] == IS_R

软件工程 2016.6.28 日报

今天,通过调查表的反馈明确了改进方向.作为组长,我负责整个项目的进度管理和质量控制,10天里的主要方向是: 1.不断进行新版本的需求分析从而明确组员行动方向 2.指导测试人员完成高质量的测试 3.撰写主要的文档 今天完成学习一些网络编程处理ip包方面的知识,对我们的平台拓展可能有一定的帮助. linux下ip头选项ipoption的实现(难以实现,setsockopt()函数不支持BSD标准下的IP_OPTION这一关键字) 在windows下 定义ipoptionhdr结构体 typedef

”耐撕“团队 2016.3.29 站立会议

”耐撕“团队 2016.3.29 站立会议 1. 时间:20:33--21:05 2. 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:http://www.cnblogs.com/charliePU/), Q 齐嘉亮(博客:http://www.cnblogs.com/dendroaspis-polylepis/), L  刘伟硕(博客:http://www.cnblogs.com/WeSure6/) 3.会议

[原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥)

nohacks 发表于 2016-5-29 17:12:51 https://www.itsk.com/thread-367736-1-8.html 原因是新版的 SkyIAR.Easy Image X会验证自身程序,防止被窜改,PE缺少验证SHA1的DLL解决办法把 RSAENH.DLL 文件 RSAENH.7z (60.85 KB, 下载次数: 978) 2013-1-26 11:50 上传点击文件名下载附件 下载积分: 活跃 -3 点 或者自己到XP系统SYSTEM32里提取,复制到PE核

【我的书】Unity Shader的书 — 目录(2016.1.29更新)

写在前面 感谢所有点进来看的朋友.没错,我目前打算写一本关于Unity Shader的书. 出书的目的有下面几个: 总结我接触Unity Shader以来的历程,给其他人一个借鉴.我非常明白学Shader的艰难,在群里也见了很多人提出的问题.我觉得学习Shader还是一件有规律可循的事情,但问题是中文资料难觅,而大家又不愿意去看英文...这对我有什么好处呢?强迫我对知识进行梳理,对细节问题把握更清楚. 第二个原因你懂的. 关于本书的定位问题: 面向Unity Shader初学者,但要: 有一定的

个人日报 2016/6/29