8、第八组
学生成绩管理系统的设计
成绩记录以下信息,班级,学号,姓名,课程名,成绩 (百分制)。可以用能表示学生成绩的结构体数组存储数据。
在编辑框内输入内容后按添加按钮可以把内容写入文本文件(不是二进制文件)里面,然后点击列表框里的某一行的时候可以在编辑框上显示内容让用户进行修改和删除,然后查询按钮点一下会弹出来一个对话框要求输入学号来进行查询后在编辑框上显示查询内容,否则就显示查询未果,单击列表框中的数学和语文时可以将列表中的内容按成绩进行排序,在添加这个按钮中要将数据写入文本文件中然后在程序初始化的时候将文本文件的内容显示到列表框中,最高分最低分以及平均分的话再加几个编辑框和按钮到时候能显示出来。
传送门:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
//添加学生信息
void CStudentScoresDlg::OnBnClickedButtonAdd() {
ItemDlg dlg;
if (dlg.DoModal() == IDOK) {
if (m_list.addItem(dlg.m_student)) {
m_list.save(m_filename);
SetDlgItemInt(IDC_EDIT_COUNT, m_list.fillListCtrl(m_listctrl));
} else {
AfxMessageBox(TEXT("添加失败!"));
}
}
}
//删除学生信息
void CStudentScoresDlg::OnBnClickedButtonDel() {
// TODO: Add your control notification handler code here
CString id = mtd::listctrlSelect(m_listctrl, 0);
if (!id.IsEmpty()) {
if (m_list.delItem(id)) {
m_list.save(m_filename);
SetDlgItemInt(IDC_EDIT_COUNT, m_list.fillListCtrl(m_listctrl));
AfxMessageBox(TEXT("删除成功!"));
} else {
AfxMessageBox(TEXT("删除失败!"));
}
} else {
AfxMessageBox(TEXT("请先选择某行数据再进行操作!"));
}
}
//查找学生信息
void CStudentScoresDlg::OnBnClickedButtonFind() {
// TODO: Add your control notification handler code here
FindDlg dlg;
dlg.m_options.push_back(TEXT("学号"));
dlg.m_options.push_back(TEXT("姓名"));
dlg.m_options.push_back(TEXT("班级"));
if (dlg.DoModal() == IDOK) {
switch (dlg.m_select) {
case 0:
SetDlgItemInt(IDC_EDIT_COUNT, m_list.fillListCtrl(m_listctrl, dlg.m_keyword, STUDENT_ID));
break;
case 1:
SetDlgItemInt(IDC_EDIT_COUNT, m_list.fillListCtrl(m_listctrl, dlg.m_keyword, STUDENT_NAME));
break;
case 2:
SetDlgItemInt(IDC_EDIT_COUNT, m_list.fillListCtrl(m_listctrl, dlg.m_keyword, STUDENT_GRADE));
break;
}
}
}
//修改学生信息
void CStudentScoresDlg::OnBnClickedButtonModify() {
// TODO: Add your control notification handler code here
CString id = mtd::listctrlSelect(m_listctrl, 0);
if (!id.IsEmpty()) {
Student* student = m_list.find(id);
if (student) {
ItemDlg dlg;
dlg.m_student = *student;
if (dlg.DoModal() == IDOK) {
*student = dlg.m_student;
m_list.save(m_filename);
SetDlgItemInt(IDC_EDIT_COUNT, m_list.fillListCtrl(m_listctrl));
}
} else {
AfxMessageBox(TEXT("数据未找到!"));
}
} else {
AfxMessageBox(TEXT("请先选择某行数据再进行操作!"));
}
}