【MFC】学生成绩管理系统(期末项目)

发布时间:2024年01月16日

如果需要代码请评论区留言或私信

课程设计具体实现

数据库设计

E-R图

在这里插入图片描述

关系模式

  • 教师(工号,姓名,学院) 主键(工号)
  • 学生(学号,姓名,性别,年龄,班级,专业,学分) 主键(学号)
  • 课程(课程编号,教师编号,课程名称,课程学分) 主键(课程编号) 外键(教师编号)
  • 选课(学号,课程编号,分数) 主键(学号,课程编号) 外键(学号,课程编号)

表的结构

create table Adminuser(
    username int unsigned primary key not null auto_increment,
    password varchar(16) default '123456'
);
create table Studentuser(
    username int unsigned primary key not null auto_increment,
    password varchar(16) default '123456'
);
create table teacheruser(
    username int unsigned primary key not null auto_increment,
    password varchar(16) default '123456'
);

create table teacher(
    job_num  int unsigned  primary key auto_increment,
    t_name  varchar(20) not null,
    college varchar(20) not null
);
create table student(
    stu_num  int unsigned  primary key auto_increment,
    stu_name  varchar(20) not null,
    sex varchar(1) not null,
    age tinyint unsigned not null,
    class   varchar(20) not null,
    major   varchar(20) not null,
    credit int(5) unsigned not null default 0
);
create table course(
    c_num  int unsigned  primary key auto_increment,
    t_num  int unsigned not null,
    c_name  varchar(20) not null,
    c_credit   tinyint unsigned not null,
    constraint c_t_num foreign key(t_num) references teacher(job_num)
);
create table select_course(
    stu_num  int unsigned ,
    c_num   int unsigned not null,
    s_score  float(5,2) not null,
    primary key(stu_num,c_num),
    foreign key(stu_num) references student(stu_num),
    foreign key(c_num) references course(c_num)
);

函数和存储过程

--统计及格人数
delimiter $
CREATE PROCEDURE passnumber(in c_id int unsigned)
	begin
select sum(case when s_score>=60 then 1 else 0 end) as 及格人数,
sum(case when s_score<60 then 1 else 0 end) as 不及格人数
from score where c_num=c_id;
	end $
delimiter ; 

用例图

在这里插入图片描述

类图

1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..*
1..1
1..*
1..1
1..*
1..1
1..*
1..1
1
1
1
1
CListCtrl
CMylistCtl
+GetColumnCount() : int
+AdjustColumnWidth() : void
CComboBox
MyCComboBoxEx
+OnCbnDropdown() : afx_msg void
+AddHScroll() : void
CModifyPswrodDlg
-CString m_odlPassword
-CString m_newPassword1
-CString m_newPassword2
+OnBnClickedOk() : afx_msg void
+OnBnClickedCancel() : afx_msg void
CstudentscoreDlg
+StudentDlg studentDlg
+TeacherDlg teacherDlg
+AdminDlg adminDlg
+CMenu menu
+afx_msg void OnSize(UINT nType, int cx, int cy)
+afx_msg void On_ModifyPassWordMenu()
+afx_msg void OnExitMenu()
+afx_msg void OnDestroy()
StudentDlg
-CString m_stu_num
-CString m_stu_name
-CString m_sex
-CString m_class
-CString m_major
-CRect listRect
+CMylistCtl m_courseList
+courseInfo cInfo
+vector <courseInfo> cInfoVector
+CString m_college
+CString m_credit
+CListCtrl m_passList
+CListCtrl m_notPassList
+InsertCouserInfo(courseInfo cInfo, CListCtrl*listCtrl) : void
+getBasicInfo(int userName) : void
+OnPaint() : afx_msg void
+OnInitDialog() : virtual BOOL
+OnBnClickedButtonMain() : afx_msg void
+OnBnClickedButtonPass() : afx_msg void
+OnBnClickedButtonNotpass() : afx_msg void
TeacherDlg
-CMylistCtl m_listMyCourse
-CEdit m_curSelectEdit
-CMylistCtl m_listCourseInfo
-std::vector<CString>colName
-CString m_num
-CString m_name
-CString m_college
-myCourseInfo cInfo
-std::vector<myCourseInfo> myCourseInfoVector
-studentInCourse sIc
-std::vector<studentInCourse> studentInCourseVector
-std::map<CString,std::vector>studentInCourse< >stuInCourseVctMap
-std::map<CString,std::set>studentInCourse<> stuInCourseSetMap
-CSpinButtonCtrl m_spinbtn
-CString m_addcourseName
-CString m_addstudentNum
-MyCComboBoxEx m_courseLComboBox
-MyCComboBoxEx m_courseRComboBox
-MyCComboBoxEx m_collegeComboBox
-MyCComboBoxEx m_classComboBox
-std::multimap<unsigned int, CString> m_mumapCollege
-std::multimap<unsigned int, CString> m_mumapClass
-int m_courseInfoList_selectRow
-CString prescore
-CEdit m_edit_modify
+getBaseInfo() : void
+OnPaint() : afx_msg void
+getMyCourse() : void
+init() : void
+OnClkListMycourse(NMHDR* pNMHDR, +LRESULT* pResult) : afx_msg void
+OnBnClickedButtonAddcourse() : afx_msg void
+OnBnClickedAddstudent() : afx_msg void
+updateMyCourse() : void
+OnBnClickedAddclass() : afx_msg void
+getCollegeAndClassInfo() : void
+OnSelchangeComboCollege() : afx_msg void
+getStuInfoInCourse() : void
+updateCourseInfo(CString courseNum) : void
+OnRclickListCourseinfo(NMHDR* pNMHDR, +LRESULT* pResult) : afx_msg void
+modifyStudentScore() : void
+resetStudentScore() : void
+OnKillfocusEditModify() : afx_msg void
+PreTranslateMessage(MSG* pMsg) : virtual BOOL
+importAsCSV() : void
AdminDlg
-CComboBox m_collegeBox
-CString m_name
-CString m_sex
-CString m_major
-CString m_t_name
-CString m_t_colloge
-BOOL m_isman
-CEdit m_InfoEdit
-CString info
-MyCComboBoxEx m_identityCBox
-CString m_id
-MyCComboBoxEx m_combobox_college
-MyCComboBoxEx m_combobox_class
-std::multimap<unsigned int, CString> m_mumapCollege
-std::multimap<unsigned int, CString> m_mumapClass
+AdminDlg(CWnd* pParent = nullptr)
+virtual ~AdminDlg()
+OnInitDialog() : virtual BOOL
+OnBnClickedButtonAddstu() : afx_msg void
+OnBnClickedButtonAddtea() : afx_msg void
+OnBnClickedButtonReset() : afx_msg void
+getCollegeAndClass() : void
+OnSelchangeComboCollege() : afx_msg void
+OnBnClickedButtonResetstudent() : afx_msg void
+OnBnClickedButtonResetteacher() : afx_msg void
CstudentscoreApp
+ CMySQL m_mysql
+ User curUser
+ CLoginUiDlg loginUidlg
+Login()
CMySQL
-MYSQL* m_sql
-MYSQL_ROW m_row
-MYSQL_RES* m_res
+CMySQL()
+~CMySQL()
+connect(host, user,password, db,port) : bool
+query(const wchar_t* sql) : int
+store_result()
+fetch_row() : MYSQL_ROW
+get_insert_id() : uint64_t
+rows() : unsigned long
+cols() : unsigned long
+showError()
+close() : void
CLoginUiDlg
-CRect m_leftRect
-CRect m_midRect
-CRect m_rightRect
-CRect m_idRect
-CRect m_passwordRect
-CRgn m_leftRgn
-CRgn m_minRgn
-CRgn m_rightRgn
-CBitmap m_bitmap_clode
-CBitmap m_bitmap_dream
-CToolTipCtrl m_ToolTip
-CRect m_loginRect, m_outRect
-CEdit m_edit_id
-CEdit m_edit_password
-CButton m_button_Login
-CButton m_button_Out
-CButton m_check_Admin
-CRect m_adminRect
-CButton m_check_Teacher
-CRect m_teacherRect
-CButton m_check_Student
-CRect m_studentRect
+bool isa,ist,iss
+UINT m_username
+CString m_password
+OnNcHitTest(CPoint point) : afx_msg LRESULT
+OnSize(UINT nType, int cx, int cy) : afx_msg void
+PreTranslateMessage(MSG* pMsg) : virtual BOOL
+OnBnClickedButtonLogin() : afx_msg void
+OnBnClickedButtonOut() : afx_msg void
+OnBnClickedCheckAdmin() : afx_msg void
+OnBnClickedCheckTeacher() : afx_msg void
+OnBnClickedCheckStudent() : afx_msg void
+link() : bool

界面截图

  • 登录界面
    在这里插入图片描述

  • 学生界面
    在这里插入图片描述

  • 教师界面
    在这里插入图片描述

  • 管理员界面
    在这里插入图片描述

文章来源:https://blog.csdn.net/m0_72895175/article/details/135624343
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。