学生成绩管理系统(详细操作过程)
- 格式:doc
- 大小:337.50 KB
- 文档页数:23
山东省学生信息管理系统使用说明欢迎使用山东省学生信息管理系统!本系统旨在方便学校、教师和学生管理学生信息,提高工作效率。
以下是详细的系统使用说明,请您仔细阅读,以便更好地使用本系统。
1. 系统登录在首次使用系统之前,请确保您已获得有效的登录账号和密码。
如有需要,请联系学校管理员进行账号注册。
1.在浏览器地址栏输入系统网址,进入登录页面。
2.输入您的账号和密码,点击“登录”按钮。
3.登录成功后,您将进入系统主界面。
2. 学生信息管理在主界面,您可以进行学生信息的添加、修改、查询和删除操作。
1.点击“学生信息”菜单,选择“学生列表”选项。
2.在学生列表页面,您可以查看所有学生的基本信息。
3.点击列表中的某条记录,可查看该学生的详细信息。
4.点击“添加学生”按钮,进入学生信息添加页面。
5.填写学生相关信息,点击“保存”按钮。
6.若需修改学生信息,点击“编辑”按钮,填写修改内容后点击“保存”。
7.若需删除学生信息,点击“删除”按钮,确认后即可删除。
3. 成绩管理在主界面,您可以进行学生成绩的添加、修改、查询和删除操作。
1.点击“成绩管理”菜单,选择“成绩列表”选项。
2.在成绩列表页面,您可以查看所有学生的成绩信息。
3.点击列表中的某条记录,可查看该学生的详细成绩信息。
4.点击“添加成绩”按钮,进入成绩信息添加页面。
5.填写学生相关信息和成绩,点击“保存”按钮。
6.若需修改成绩信息,点击“编辑”按钮,填写修改内容后点击“保存”。
7.若需删除成绩信息,点击“删除”按钮,确认后即可删除。
4. 班级管理在主界面,您可以进行班级信息的添加、修改、查询和删除操作。
1.点击“班级管理”菜单,选择“班级列表”选项。
2.在班级列表页面,您可以查看所有班级的基本信息。
3.点击列表中的某条记录,可查看该班级的详细信息。
4.点击“添加班级”按钮,进入班级信息添加页面。
5.填写班级相关信息,点击“保存”按钮。
6.若需修改班级信息,点击“编辑”按钮,填写修改内容后点击“保存”。
学年论文(数据结构 2015—2016 第一学期)题目: 数据结构课程设计作者:陈炳宏所在学院:信息科学与工程学院专业年级:信息安全14-1指导教师:刘淑娴职称:副教授2016年 1 月 4 日一.学生成绩管理系统 (1)1。
1需求分析 (1)1。
1.1程序分析: (1)1。
1.2执行方式: (1)1。
1.3 程序执行的命令包括: (1)1.1.4测试数据: (2)1.2概要设计 (2)1.2.1 线性表的抽象数据类型定义为: (3)1.2。
2 结点的抽象数据类型定义为: (3)1。
2。
3指针的抽象数据类型定义为: (3)1。
2.4本程序包含8个模块: (4)1。
3详细设计 (5)1.3.1 元素类型、结点类型和指针类型 (5)1.3.2 函数说明 (5)1。
3.3 功能函数 (5)1。
4 调试分析 (15)1.5 用户手册 (15)1。
6测试结果 (18)一.学生成绩管理系统1.1需求分析1.1。
1程序分析:本程序是一个基于线性表结构编写的学生成绩管理系统,学生可以进行包括学生信息建立、在不同位置插入学生信息、查询指定学生信息、删除指定学生信息和输出显示所有学生信息这五项功能,功能操作简单,效率高,可延展性强. 为保证信息的真实性,学生信息中学号长度num<=11,姓名长度name〈=8,性别gender<=3,成绩仍意输入,并且学号和成绩只能为数字,否则程序出错。
1。
1。
2执行方式:本程序以用户和计算机的对话方式执行,即在计算机终端上显示7个共能选择的“提示信息"之后,由用户在键盘上输入本程序中规定的功能指令;相应的输人数据(并能滤去输入中的非法字符)和显示信息来处理结果。
1.1.3 程序执行的命令包括:(1)学生信息链表的建立;建立后仍意建继续输入,n和N退出;(2)插入学生信息;输入插入的位置;(3) 查询学生信息;选择两种方式之一查找并查询;(4)删除学生信息;选择两种方式之一查找并删除;(5)修改学生信息;选择两种方式之一查找并修改;(6) 输出所有学生信息;(7)退出管理系统.1.1.4测试数据:(1)建立三个学生信息:学号(11)姓名(8)性别成绩20141305210,cc,n,8920141302399,sxz,w,9920151432596,sad,n,88(2) 插入一个学生信息:学号(11)姓名(8)性别成绩2016,scs,n,79输入插入位置:2(3) 查询学生信息:按1选择学号查询,输入学号:20141305210按2选择姓名查询,输入姓名:scz(4) 删除学生信息:按2选择姓名删除,输入姓名:cc(5)修改学生信息:按1选择学号修改,输入学号:20141302399输入修改后的数据:学号(11)姓名(8) 性别成绩20141312399,scz,w,691。
学生成绩管理系统我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。
我创建的基于单文档的应用程序,过程不介绍,大家都会。
下面的是我系统菜单:思路:刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。
当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。
如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用。
“学生权限”下只有“查询成绩”,因为学生只可以查询自己相应的成绩;“教师权限”下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生”和“管理教师”两个菜单项。
整体设计:因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下:【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx.h中加入代码:#include <afxdb.h>【步骤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。
概述1.1 简单介绍本系统实现的内容该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能.(一)用户密码登录:在登录程序之前会先弹出一个登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序.(二)用户密码的修改在成功登录了程序之后用户可以根据自己的需要修改当前密码.(三)成绩查询1。
成绩修改前选中要修改的成绩信息,然后进行修改。
2.成绩添加直接弹出添加对话框,然后进行添加。
3.成绩删除前选中要删除的成绩信息,然后直接删除。
(四) 课程查询1。
课程修改实现对课程名、学时、学分的修改。
2.课程添加对一门新开设的课程进行录入,并存入数据库。
3。
课程删除对一门不再开设的课程进行删除,并从数据库中删除。
(五)学生查询1。
学生信息修改修改选中当前学生的信息。
2。
学生信息添加增加新学生的信息。
3。
学生信息删除删除选中当前学生信息。
1。
2 开发环境简介1)Microsoft visual c++ 6。
0Visual C++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出Visual C++1。
0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具.Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。
Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具. 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
2)Microsoft SQL Server 2000和与系统相关的SQL 语言介绍数据定义DDL(data definition language)数据定义语言是指对数据的格式和形态下定义的语言,他是每个数据库要建立时候时首先要面对的,举凡数据分哪些表格关系、表格内的有什么栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的.2。
目录1 需求分析 (1)1.1行业现状 (1)1.2可行性分析 (2)1.3 系统运行环境 (3)2 系统设计 (4)2.1 E-R图 (4)2.2 数据字典 (6)3 代码 (9)总结 (10)参考文献 (11)1 需求分析该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
此系统主要完成用户密码登陆、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能。
(一)用户密码登录:在登录程序之前会先弹出一个登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序。
(二)用户密码的修改在成功登录了程序之后用户可以根据自己的需要修改当前密码。
(三)成绩查询1.成绩修改前选中要修改的成绩信息,然后进行修改。
2.成绩添加直接弹出添加对话框,然后进行添加。
3.成绩删除前选中要删除的成绩信息,然后直接删除。
(四) 课程查询1.课程修改实现对课程名、学时、学分的修改。
2.课程添加对一门新开设的课程进行录入,并存入数据库。
3.课程删除对一门不再开设的课程进行删除,并从数据库中删除。
(五)学生查询1 .学生信息修改修改选中当前学生的信息。
2 .学生信息添加增加新学生的信息。
3.学生信息删除删除选中当前学生信息。
1.1 行业现状在现代,高科技的飞跃发展,计算机的大量普及,使得人们生活节奏越来越快。
因此对教育行业的多元信息进行有效的管理工作,也成为教育行业中的重中之重。
目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。
为各高校教务工作人员减轻负,提高工作效率,所以制作了学生成绩管理系统。
学生成绩管理系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。
比较系统地对教务、教学上的各项服务和信息进行管理,使数据管理更现代化、自动化、智能化、人性化。
学生成绩管理系统数据流程图及数据字典一、数据流程图数据流程图是一种图形化工具,用于描述系统内部的数据流动和处理过程。
在学生成绩管理系统中,数据流程图可以清晰地展示信息的输入、处理和输出过程,有助于理解系统的功能和流程。
1. 整体数据流程图整体数据流程图展示了学生成绩管理系统的总体流程,包括主要的数据流和处理过程。
以下是一个简化的整体数据流程图示例:[图1 整体数据流程图]2. 子系统数据流程图学生成绩管理系统可以划分为多个子系统,每一个子系统负责不同的功能模块。
以下是几个常见的子系统数据流程图示例:2.1 学生信息管理子系统数据流程图[图2 学生信息管理子系统数据流程图]学生信息管理子系统负责学生信息的录入、查询、修改和删除等操作。
数据流程图中的主要流程包括学生信息的录入、查询和修改。
2.2 课程管理子系统数据流程图[图3 课程管理子系统数据流程图]课程管理子系统负责课程信息的录入、查询、修改和删除等操作。
数据流程图中的主要流程包括课程信息的录入、查询和修改。
2.3 成绩管理子系统数据流程图[图4 成绩管理子系统数据流程图]成绩管理子系统负责学生成绩的录入、查询、修改和统计等操作。
数据流程图中的主要流程包括成绩信息的录入、查询、修改和统计。
二、数据字典数据字典是对系统中使用的数据项进行定义和描述的文档,包括数据项的名称、含义、数据类型、长度、取值范围等信息。
在学生成绩管理系统中,数据字典可以匡助开辟人员和用户理解各个数据项的含义和属性。
以下是学生成绩管理系统中常见的数据字典示例:1. 学生信息表(Student)数据项含义数据类型长度取值范围学生ID 学生惟一标识字符串 10 100000001-999999999姓名学生姓名字符串 20 任意字符性别学生性别字符串 2 男、女年龄学生年龄整数 3 10-100班级学生所在班级字符串 20 任意字符2. 课程信息表(Course)数据项含义数据类型长度取值范围课程ID 课程惟一标识字符串 10 1001-9999课程名称课程名称字符串 50 任意字符学分课程学分浮点数 - 大于0的数字教师ID 教师惟一标识字符串 10 1000001-99999993. 成绩信息表(Grade)数据项含义数据类型长度取值范围学生ID 学生惟一标识字符串 10 100000001-999999999课程ID 课程惟一标识字符串 10 1001-9999成绩学生成绩浮点数 - 0-100以上是学生成绩管理系统数据流程图及数据字典的示例,可以根据实际需求进行调整和扩展。
学生成绩管理系统课程设计学生基本成绩管理系统需求分析编写目的:学生成绩管理是学校管理的一个重要方面,数据量巨大,人工管理方式以及人为处理方式工作繁复、负担重。
为方便学校管理,在此研发一个基于网络的综合学生基本成绩管理系统以及作为系统分析员进行系统分析和测试人员进行测试时的手册。
需求概述:1、增加学生成绩记录;2、显示学生成绩;3、学生成绩排行;4、查找学生成绩;5、删除学生成绩;6、插入学生成绩;7、清空所有数据;8、安全退出系统;需求说明:学生成绩包括:学号,姓名,语文,数学,英语,总分;录入的学生成绩要求用文件形式保存,并可以对其进行输入、浏览、查询、修改、删除等基本操作;学生成绩的显式要求有一定的规范格式;对学生成绩应能够分别按姓名和学号两种方式进行,要求能返回所有符合条件的学生的成绩;对学生成绩的修改应逐个地进行,一个学生成绩的更改不应影响其他的学生记录;所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并要求在此过程中能够尽可能的兼容用户使用过程中的异常情况总体设计编写目的:根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细设计做准备.总体设计:1. 该系统可以按功能进行模块划分,其模块图如下:帐号学生成学生基本成绩查询管理员绩管理系统密码学生成绩管理系统模块图其中:成绩输入模块完成学生成绩的输入功能,输入成绩包括学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等;成绩浏览模块完成已录入学生成绩的显示; 成绩查询模块完成学生成绩的查询,查询时对应有按姓名查询和按学号查询两种方式;成绩修改模块完成学生成绩的修改功能;成绩删除模块完成学生成绩的删除功能;菜单选择模块完成用户命令的接收,此模块也是学生成绩管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;2. 数据结构学生成绩包括:学号,姓名,语文,本系统中主要的数据结构就是学生的成绩, 数学,英语,总分;在处理过程中各项可以作为一个学生的不同属性来进行处理 3。
软件工程课程设计(学生成绩管理系统)软件工程课程设计(学生成绩管理系统)一、引言随着教育信息化的发展,学生成绩管理系统在高校中得到了广泛应用。
本文将介绍基于软件工程的课程设计,以开发一个学生成绩管理系统为例,详细说明其设计和实现过程。
二、需求分析1. 功能需求学生成绩管理系统应具备以下功能:- 学生信息管理:包括学号、姓名、班级等基本信息的录入、查询和修改;- 课程信息管理:包括课程编号、课程名称、学分等信息的录入、查询和修改;- 成绩管理:包括学生选课、成绩录入、查询和修改;- 统计分析:包括班级、课程和学生的成绩统计和分析;- 报表生成:根据学生、课程和班级等条件生成成绩报表。
2. 性能需求学生成绩管理系统应满足以下性能需求:- 系统响应时间应快,用户操作流畅;- 系统应具备较好的扩展性,能够适应学生数量和课程数量的增长;- 数据库读写性能稳定,保证系统的稳定性和可靠性。
三、系统设计1. 系统架构本学生成绩管理系统采用B/S架构,即浏览器(Browser)和服务器(Server)架构,由于其开发和维护成本低、跨平台性好等优点,适合大规模应用。
系统主要包括前端展示界面和后端数据处理以及数据库存储模块。
前端展示界面采用HTML、CSS和JavaScript技术实现,使用户能够直观地操作系统。
后端数据处理和数据库存储模块采用Java语言开发,通过Servlet技术与前端界面进行数据交互,并将数据存储到数据库中。
2. 数据库设计数据库采用关系型数据库MySQL进行存储,系统中数据的组织结构如下:- 学生表(Student):包含学生的学号、姓名、班级等信息;- 课程表(Course):包含课程的编号、名称、学分等信息;- 成绩表(Grade):包含学生的学号、课程编号、成绩等信息。
四、系统实现1. 前端开发前端界面开发主要包括学生信息管理、课程信息管理、成绩管理、统计分析和报表生成等功能的实现。
通过HTML、CSS和JavaScript技术实现页面的布局和交互,使用户能够方便地进行操作。
学生成绩管理系统数据流程图及数据字典一、数据流程图学生成绩管理系统是一个用于记录和管理学生学习成绩的系统。
下面是该系统的数据流程图,详细描述了信息的流动和处理过程。
1. 学生信息录入流程学生信息录入是系统的起始点,用于将学生的个人信息录入系统中。
该过程包括以下步骤:- 学生填写学生信息表单:学生需要填写包括学号、姓名、性别、年龄等个人信息的表单。
- 信息表单提交:学生将填写好的表单提交给系统。
- 信息验证:系统对提交的表单进行验证,确保填写的信息格式正确。
- 信息存储:验证通过后,学生的个人信息将被存储到学生信息数据库中。
2. 成绩录入流程成绩录入是指教师将学生的考试成绩录入系统中。
该过程包括以下步骤:- 选择课程和学期:教师需要选择要录入成绩的课程和学期。
- 学生名单获取:系统根据选择的课程和学期,从学生信息数据库中获取相应的学生名单。
- 成绩录入:教师根据学生名单,逐一录入每个学生的考试成绩。
- 成绩验证:系统对录入的成绩进行验证,确保成绩的格式正确。
- 成绩存储:验证通过后,学生的考试成绩将被存储到成绩数据库中。
3. 成绩查询流程成绩查询允许学生和教师通过系统查询学生的考试成绩。
该过程包括以下步骤:- 登录系统:学生或教师需要提供正确的用户名和密码登录系统。
- 选择查询类型:学生可以选择查询个人成绩,教师可以选择查询某门课程的成绩。
- 查询条件输入:学生需要输入学号和密码,教师需要输入课程名称和学期。
- 查询结果显示:系统根据输入的查询条件,在数据库中查找对应的成绩,并将结果显示给用户。
4. 成绩统计流程成绩统计是对学生的考试成绩进行统计和分析的过程。
该过程包括以下步骤:- 选择统计类型:教师可以选择按照学生、课程或学期进行成绩统计。
- 统计条件输入:教师需要输入相应的统计条件,如学生姓名、课程名称或学期。
- 统计结果生成:系统根据输入的统计条件,在数据库中进行相应的统计计算,并生成统计结果。
简单学生成绩管理系统1.主题说明本任务创建一个模拟的简单学生成绩管理系统,该系统是教务管理系统的一个简单抽象,任务本身并不是着重成绩管理系统的开发,主要目的是使自己掌握PowerBuilder 数据库应用开发的详细过程及开发中涉及知识点与操作技能。
2.需求分析(1)只有教师才能使用本系统,教师权限不受限制;(2)需对系、班级、课程、教师信息维护;(系统初始化时在教师表中存放一条super 记录保证初始时能够进入本系统)(3)学生信息维护;(4)学生课程成绩的录入;(成绩录入以学生为单位,可以录入所有课程成绩)(5)学生名单、学期成绩报表(以班级为单位打印)的建立和打印;3.系统的设计(1)系统的结构设计本系统数据库概念结构设计的E-R 图(实体-关系图)如下:图2.1 数据库结构设计E-R 图(2)系统的界面设计系统通过建立两个窗口完成登录,如图2.2 ,图2.3如下:图2.2第一个窗口界面图2.3第二个窗口界面(3)系统的数据库设计,图如下:表2.1 Dep 系信息表表2.2 Teacher 教师信息表表2.3 Class 班级信息表表2.4 Course 课程信息表表2.5 Teach 教师任教信息表表2.6 Student 学生信息表表2.7 Score 学生成绩表4.系统的代码的实现下面是w_Login 窗口中包含的代码:(1)全局变量的声明:String gs_DepName,gs_UserName //保存系名称和用户名称Integer ii_Times=0(2)给Sle_Name 增加一个键盘输入事件:选择Sle_Name 事件中的“New Event”,显示如图2.8 所示事件输入框;7.8 新增事件输入框在“Event ID”下拉列表中选择“pbm_keydown”,系统自动填写事件参数;在“Event Name”输入框中输入“ue_key”;单击工具栏“”图标按钮,保存新增加的键盘输入事件;同样,给Sle_Pass 增加一个键盘输入事件(3)在窗口的Open 事件中键入如下代码:Close(w_logo) //打开登录窗口同时关闭w_Logo 窗口(4)在Sle_Name 的ue_key 事件键入如下代码:if key=KeyEnter! Then //若键入回车键,则焦点到密码输入框sle_pass.SetFocus()end if(5)在Sle_Pass 的 ue_key 事件键入如下代码:if key=KeyEnter! Then //若键入回车键,则焦点到确认按钮cb_ok.SetFocus()end if(6)在cb_Cancel 的Clicked 中输入如下代码:Close(Parent)(7)在cb_ok 的Clicked 中输入如下代码:String gs_DepName,gs_UserNameInteger ii_Times=0//String li_DidInteger li_Did=-1//从teacher 表中取与输入用户名和密码一致的该用户系代码select Did into :li_Did from Teacher where tName=:sle_name.text and Pass=:sle_pass.text;ii_Times++ //记录登录次数if li_Did=-1 then //不存在相应记录if ii_Times=3 thenMessageBox("警告","您无权使用本系统!",StopSign!)Close(Parent)elseMessageBox("警告","用户名或密码错误,请重试!")sle_name.SetFocus()end ifreturnelse //该用户存在gs_UserName=sle_name.Text //保存用户名并获取对应系名称select dName into :gs_DepName from dep where did=:li_did;open(w_main)end if5.系统的主要模块设计过程与详例(1)系统主窗口一般采用多文档窗口设计,并与相应主菜单相关联,本系统主窗口为w_main,图如下:图2.9主窗口界面在窗口的Open 事件中键入如下代码:Close(w_login) //打开主窗口同时关闭w_登录窗口(3)代码维护窗口包括课程信息和系信息的维护操作,图如下:图2.10窗口运行界面(4)代码如下:<1>定义Instance Variables(实例变量)//idw_which 记录当前标签页中数据窗口控件的引用DataWindow idw_which<2>在窗口的Open 事件中键入如下代码:dw_1.SetTransObject(SQLCA)dw_1.Retrieve()dw_2.SetTransObject(SQLCA)dw_2.Retrieve()<3>在cb_add 的Clicked 事件中键入如下代码:long li_rowli_row=dw_1.InsertRow(0)dw_1.setColumn(1)Send(Handle(this),256,9,0)li_row=dw_2.InsertRow(0)dw_2.setColumn(1)Send(Handle(this),256,9,0)<4>在cb_Delete 的Clicked 事件中键入如下代码:Idw_1.DeleteRow(0)dw_1.setColumn(1)Send(Handle(this),259,9,0)dw_2.DeleteRow(0)dw_2.setColumn(1)Send(Handle(this),259,9,0)<5>在cb_Save 的Clicked 事件中键入如下代码:if dw_1.Update()<0 thenMessagebox("提示信息","存盘失败!"+Sqlca.Sqlerrtext) Rollback;elseCommit;Messagebox("提示信息","存盘成功")end ifif dw_2.Update()<0 thenMessagebox("提示信息","存盘失败!"+Sqlca.Sqlerrtext) Rollback;elseCommit;Messagebox("提示信息","存盘成功")end if<6>在cb_EXit 的Clicked 事件中键入如下代码:Close(Parent)(5)其他模块代码省略6.简要报告设计和实施的过程1. 数据库物理结构设计创建ASA 数据库“shuju”(1)在本地磁盘E,新建一个文件夹,名为计2052_20_励燕(2)启动PowerBuilder,使用数据库画板,创建一个本地ASA 数据库(E:\计2052_20_励燕\shuju.db),其日志主文件名与数据库主文件名相同为shuju,其他选项使用默认值。
学生成绩管理系统我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。
我创建的基于单文档的应用程序,过程不介绍,大家都会。
下面的是我系统菜单:思路:刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。
当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。
如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用。
“学生权限”下只有“查询成绩”,因为学生只可以查询自己相应的成绩;“教师权限”下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生”和“管理教师”两个菜单项。
整体设计:因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下:【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx.h中加入代码:#include <afxdb.h>【步骤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_BYPOSITION | MF_ENABLED);//在上面的OnCreate中可以直接通过GetMenu()对菜单操作,//但这里却必须先通过AfxGetMainWnd()获得主窗体指针,//浪费了我一晚上时间,虽然解决了,但还不知道为什么。
}if(type==2){AfxGetMainWnd()->GetMenu()->EnableMenuItem(2,MF_BYPOSITION | MF_ENABLED);}if(type==3){AfxGetMainWnd()->GetMenu()->EnableMenuItem(3,MF_BYPOSITION | 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、当刚进入系统时候,用户点击“进入系统”菜单项后系统界面如下:示:从上图中也可以看出,我们为该登陆对话框建立了个新类:CLoginDlg,它的具体创建过程就不介绍了。
2、因为登陆对话框要使用SQL数据库中的USERS表,所以需要在程序中添加类CLoginSet,步骤如下:【步骤1】在项目名“学生成绩管理系统”上单击鼠标右键,在弹出的NewClass对话框中的Name文本框中输入CLoginSet,在Base class下拉文本框中选择CRecordset。
【步骤2】单击OK按钮,弹出Database Option对话框,在ODBC下拉文本框中选择“学生成绩管理系统”数据库,单击OK按钮,弹出Select DatabaseTables对话框,选择ERS选项,单击OK按钮。
这样就建立了一个CRecordset的对象,就可以对数据库中的USERS表进行操作了。
3、在LoginDlg.cpp中引入头文件LoginSet.h,将CRecordSet对象CLoginSet 引入登陆对话框:#include “LoginSet.h”4、声明全局变量。
在学生成绩管理系统.cpp文件中添加如下代码:// CDatabase型变量,用于连接数据库CDatabase m_database;//学生登陆后在系统中的唯一ID值CString m_ID;在LoginDlg.cpp添加如下语句,使用已经声明过的全局变量(记得在以后的每个模块中都要添加):extern CDatabase m_database;extern CString m_ID;5、为登陆对话框的“确定”按钮添加消息代码,如下:void CLoginDlg::OnOK(){BOOL bLogin=FALSE;CLoginSet *m_recordset=new CLoginSet(&m_database);CString strSQL;UpdateData(TRUE);if(m_pare("学生")==0)type=1;elseif(m_pare("教师")==0)type=2;elseif(m_pare("管理员")==0)type=3;strSQL.Format("select * from USERS where USER_ID='%s' AND USER_PASSWORD='%s' AND USER_TYPE='%d'",m_useID,m_usepassword,type);m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);if(m_recordset->GetRecordCount()==0){if(count<3){MessageBox("用户名或密码不正确!");m_useID="";m_usepassword="";U pdateData(FALSE); //没有这条语句就不能实现使账号和密码文本框为空,很多人会忘记写这条语句。
count++;}else{MessageBox("错误次数达三次以上,本窗口即将关闭!");EndDialog(IDCANCEL);}}else{m_recordset->GetFieldValue("USER_ID",m_ID);bLogin=TRUE;}if(bLogin){MessageBox("欢迎进入学生成绩管理系统!");EndDialog(IDOK);CMainFrame *mainfrm=new CMainFrame();mainfrm->SetMenuSta(type);}elsem_database.Close();// CDialog::OnOK();}6、为登陆菜单下的“进入系统”添加响应函数,此函数是在CMainFrame 类中添加的,代码如下:void CMainFrame::OnLogin(){// TODO: Add your command handler code hereCLoginDlg login;login.DoModal();}(二)学生成绩查询模块设计1、如果用户类型是1,即学生时,用户可以查询自己的成绩。