MFC学生成绩管理系统

MFC学生成绩管理系统

8、第八组

课题名称:

学生成绩管理系统的设计

说明:

成绩记录以下信息,班级,学号,姓名,课程名,成绩 (百分制)。可以用能表示学生成绩的结构体数组存储数据。

要求

  1. 具备对成绩的管理功能(添加、删除、排序
  2. 具备对成绩的统计功能《最高分,最低分,平均分,及格率等)
  3. 具备按学号、姓名、或课程名查询成绩的功能。

功能说明

在编辑框内输入内容后按添加按钮可以把内容写入文本文件(不是二进制文件)里面,然后点击列表框里的某一行的时候可以在编辑框上显示内容让用户进行修改和删除,然后查询按钮点一下会弹出来一个对话框要求输入学号来进行查询后在编辑框上显示查询内容,否则就显示查询未果,单击列表框中的数学和语文时可以将列表中的内容按成绩进行排序,在添加这个按钮中要将数据写入文本文件中然后在程序初始化的时候将文本文件的内容显示到列表框中,最高分最低分以及平均分的话再加几个编辑框和按钮到时候能显示出来。

程序界面

功能演示

演示.gif

源码传送门

传送门: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("请先选择某行数据再进行操作!"));
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值