学生成绩管理系统详细操作过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生成绩管理系统

我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。

我创建的基于单文档的应用程序,过程不介绍,大家都会。下面的是我系统菜单:

思路:

刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用。

“学生权限”下只有“查询成绩”,因为学生只可以查询自己相应的成绩;“教师权限”下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生”和“管理教师”两个菜单项。

整体设计:

因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下:

【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx.h中加入代码:

#include

【步骤2】在CMainFrame中的OnCreat()中添加代码如下,实现菜单的初始化工作,当用户没进入系统之前,只有“登陆”菜单下的“进入系统”菜单项可用,而“退出系统”和其他3个权限菜单都不可用,即都是灰色的。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

//使“退出系统”和其他3个权限菜单都不可用,即都是灰色的

GetMenu()->GetSubMenu(0)-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);

GetMenu()-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);

GetMenu()-> EnableMenuItem(2,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);

GetMenu()-> EnableMenuItem(3,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);

}

【步骤3】在CMainFrame中添加自己定义的函数void SetMenuSta(int type),此函数在登陆对话框的OnOK()中被调用,即当用户进入系统后使“进入系统”

菜单项不可用,并根据用户类型使相应菜单可用。当类型为1时(学生),使“学生权限”菜单可用;当类型为2时(教师),使“教师权限”菜单可用;当类型为3时,使“管理员”菜单可用。

void CMainFrame::SetMenuSta(int type)

{

AfxGetMainWnd()->GetMenu()->GetSubMenu(0)->EnableMenuItem(0, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);

if(type==1)

{

AfxGetMainWnd()->GetMenu()->EnableMenuItem(1,MF_BYPOSI

TION | MF_ENABLED);

//在上面的OnCreate中可以直接通过GetMenu()对菜单操作,

//但这里却必须先通过AfxGetMainWnd()获得主窗体指针,

//浪费了我一晚上时间,虽然解决了,但还不知道为什么。

}

if(type==2)

{

AfxGetMainWnd()->GetMenu()->EnableMenuItem(2,MF_BYPOSIT

ION | MF_ENABLED);

}

if(type==3)

{

AfxGetMainWnd()->GetMenu()->EnableMenuItem(3,MF_BYPOSIT

ION | MF_ENABLED);

}

}

【步骤4】通过上面两步并不能按我们的想法实现菜单变灰的操作,运行系统各菜单都是可用的,我们必须在CMainFrame的构造函数中添加下面一句代码:m_bAutoMenuEnable=FALSE;

m_bAutoMenuEnable必须放在CMainFrame()里初始化,不可用放在登陆对话框的OnOK()函数中,要不其他三个菜单可用变灰,但“进入系统”菜单项却总是不能变灰。

数据库设计:

根据以上思路,我们使用SQL数据库建立一个“学生成绩管理系统”,其下有4张表,分别为用户表USERS、学生成绩表COURSE_SCORE、学生信息表STUDENT_INFO和教师信息表TEACHER_INFO。

表1 用户表USERS

字段名类型长度说明

USER_ID char 20 用户名

USER_PASSWORD char 20 密码

USER_TYPE int 4 1为学生,2为教师,3为管理员

表2 学生成绩表COURSE_SCORE

字段名类型长度说明

STU_ID char 10 学生ID,系统中学生的唯一标识COURSE_ID char 10 课程号,系统中课程的唯一标识COURSE_NAME char 10 课程名

SCORE int 4 课程分数

表3 学生信息表STUDENT_INFO

字段名类型长度说明

STU_ID char 10 学生ID,系统中学生的唯一标识STU_NAME char 10 学生姓名

ENROLLMENT_TIME datetime 8 入学时间

DEPARTMENT char 20 所在学院

MAJOR char 20 所在专业

SEX int 4 性别:0表示男,1表示女BIRTHDAY datetime 8 生日

HOMETOWN varchar 50 籍贯

ADDRESS varchar 50 现在住址

PHONE char 20 个人电话号码

RACE char 10 民族

PARTY int 4 政治面貌:0表示党员,1表示预

备党员,2表示团员,3表示其他DIRECTION varchar 50 其他信息

具体实现步骤:

(一)登陆模块设计

1、当刚进入系统时候,用户点击“进入系统”菜单项后系统界面如下:

相关文档
最新文档