网学网为广大网友收集整理了,基于VC学生成绩分析统计系统的设计,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
根据分析阶段得出的结论,结合本系统对有关数据的存储的需要,更加方便实现该管理系统的所有功能,现将本管理系统设计成如下几个数据库表,部分表的字段名、类型、宽度设计如下: 学生信息表结构如下:
学生成绩表结构如下:
其他表详细见数据库。 3.3 算法分析// 显示学生成绩 void CGradeManageView::ShowGrade() { m_list.DeleteAllItems(); int index = 0; for (int i = m_listGrade.GetCount() - 1; i >= 0 ; i--) { StudentGrade &grade = m_listGrade.GetAt(i); m_list.InsertItem(index, grade.id); m_list.SetItemText(index, 1, grade.name); CString str; for (int j = 0; j < 10; j++) { str.Format("%d", grade.grade[j]); m_list.SetItemText(index, 2 + j, str); } str.Format("%d", grade.sumGrade); m_list.SetItemText(index, 12, str); str.Format("% m_list.SetItemText(index, 13, str); } } // 排序 void CGradeManageView::OrderGrade(int type) { if (type == 0) { QueryGrade(); } else { for (int i = 0; i < m_listGrade.GetSize(); i++) { int max = i; for (int j = i + 1; j < m_listGrade.GetSize(); j++) { StudentGrade &maxGrade = m_listGrade.GetAt(max); StudentGrade &jGrade = m_listGrade.GetAt(j); if (maxGrade.averGrade < jGrade.averGrade) max = j; } StudentGrade &maxGrade = m_listGrade.GetAt(max); StudentGrade &iGrade = m_listGrade.GetAt(i); StudentGrade grade = maxGrade; maxGrade = iGrade; iGrade = grade; } } } // 刷新成绩 void CGradeManageView::OnBnClickedButtonRequery() { QueryGrade(); ShowGrade(); } // 排序 void CGradeManageView::OnBnClickedButtonOrder() { UpdateData(true); OrderGrade(m_nOrderType); ShowGrade(); } // 成绩统计 void CGradeManageView::OnBnClickedButtonStat() { double zf = 0; int bjg = 0; int yx = 0; for (int i = 0; i < m_listGrade.GetSize(); i++) { StudentGrade &grade = m_listGrade.GetAt(i); zf += grade.averGrade; for (int j = 0; j < 10; j++) { if (grade.grade[j] < 60) bjg++; else if (grade.grade[j] > 80) yx++; } } double average = zf / m_listGrade.GetSize(); double bjgl = (double)bjg / (m_listGrade.GetSize() * 10) * 100; double yxl = (double)yx / (m_listGrade.GetSize() * 10) * 100; m_strResult.Format("平均分:% m_strResult += "%\r\n"; CString str; str.Format("优秀人数(人次):%d\r\n优秀率:% m_strResult += str; m_strResult += "%"; UpdateData(false); } // 分布情况 void CGradeManageView::OnBnClickedButtonDistributing() { int n40 = 0, n50 = 0, n60 = 0, n70 = 0, n80 = 0, n90 = 0; for (int i = 0; i < m_listGrade.GetSize(); i++) { StudentGrade &grade = m_listGrade.GetAt(i); if (grade.averGrade < 40) n40++; else if (grade.averGrade < 50) n50++; else if (grade.averGrade < 60) n60++; else if (grade.averGrade < 70) n70++; else if (grade.averGrade < 80) n80++; else n90++; } m_strResult.Format("平均分分布:\r\n<40:%d\r\n40~50:%d\r\n50~60:%d\r\n70~80:%d\r\n80~90:%d\r\n>90:%d", n40, n50, n60, n70, n80, n90); UpdateData(false); } 本系统所占用的内存空间主要是被界面占用。由于系统的数据全部在数据库中存储,内存的占用比较少。大型的系统实现时把界面和系统的主要函数分离,只有在用到某个功能时才去调用它,从而大大减少了系统所占用的内存空间。我们在开发我们的系统时,由于考虑到系统附加功能不是太多,为了方便没有像大型系统那样把界面和主要函数分开,所以在这一方面占用的内存大一点。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本文选自计算机毕业设计http://myeducs.cn |