学生成绩管理系统 PB课程设计
- 格式:pdf
- 大小:280.58 KB
- 文档页数:24
学生成绩管理系统课程设计1. 引言学生成绩管理系统是一个为学校教师和学生提供方便、高效的学生成绩管理平台。
本文档旨在设计一个学生成绩管理系统,包括系统的功能需求、系统的技术实现以及系统的使用说明。
2. 功能需求2.1 学生管理•管理学生的基本信息,包括学号、姓名、性别、年龄等;•添加、删除和修改学生信息;•查询学生信息,支持按学号、姓名等条件进行检索。
2.2 成绩管理•管理学生的考试成绩,包括科目、成绩、考试日期等;•添加、删除和修改学生的考试成绩;•查询学生的考试成绩,支持按学号、科目等条件进行检索;•统计学生成绩,计算平均分、最高分、最低分等。
2.3 班级管理•管理班级信息,包括班级名称、班级人数等;•添加、删除和修改班级信息;•查询班级信息,支持按名称等条件进行检索。
2.4 用户管理•管理系统用户,包括教师和管理员;•添加、删除和修改用户信息;•查询用户信息,支持按用户名等条件进行检索。
3. 数据库设计3.1 学生表字段名称类型描述id int 学生ID学号varchar 学生学号姓名varchar 学生姓名性别varchar 学生性别年龄int 学生年龄3.2 成绩表字段名称类型描述id int 成绩ID 学号varchar 学生学号科目varchar 科目名称成绩int 考试成绩考试日期date 考试日期3.3 班级表字段名称类型描述id int 班级ID班级名称varchar 班级名称班级人数int 班级的人数3.4 用户表字段名称类型描述id int 用户ID用户名varchar 用户名密码varchar 用户密码用户类型varchar 用户类型4. 系统技术实现该学生成绩管理系统将采用以下技术进行实现:•后端开发框架:Spring Boot;•前端开发框架:Vue.js;•数据库:MySQL;•接口数据交互:RESTful API。
5. 系统使用说明5.1 学生管理教师可以在该模块下进行学生信息的添加、删除、修改和查询操作。
学生成绩管理系统-课程设计报告学生成绩管理系统-课程设计报告一、引言学生成绩管理系统是一种能够方便高效地管理学生学业成绩的软件系统。
随着教育信息化的发展,学生成绩管理系统已经成为各个学校和教育机构不可或缺的一部分。
本课程设计报告旨在设计和实现一款学生成绩管理系统,以满足学校对学生成绩管理的需求。
二、系统需求分析1.学生信息管理:系统需要能够存储学生的基本信息,包括学号、姓名、性别、年级等。
2.课程管理:系统需要能够管理学校的各门课程信息,包括课程名称、授课教师、学分等。
3.成绩录入:系统需要能够录入学生的成绩信息,包括学生学号、课程名称、成绩等。
4.成绩查询:系统需要提供成绩查询功能,学生和教师能够通过系统查询学生的成绩。
5.成绩统计:系统需要能够对学生的成绩进行统计和分析,包括计算平均成绩、最高分、最低分等。
6.成绩报表:系统需要能够生成成绩报表,以便学校和教师能够查看学生成绩的总体情况。
三、系统设计1.数据库设计:设计一个学生表和一个课程表,学生表包括学生的学号、姓名、性别、年级等信息,课程表包括课程的名称、授课教师、学分等信息。
成绩信息通过学生表和课程表建立关联关系。
2.用户界面设计:设计一个用户友好的界面,包括学生登录界面、教师登录界面和管理员登录界面。
学生能够查询个人成绩和课程信息,教师能够录入学生成绩和查询学生成绩,管理员能够管理学生和课程信息。
3.功能模块设计:将系统划分为学生管理模块、课程管理模块、成绩录入模块、成绩查询模块、成绩统计模块和成绩报表模块。
每个模块实现相应的功能,模块之间通过接口进行数据交互。
四、系统实现本系统采用Java语言和MySQL数据库进行开发。
使用Java技术实现用户界面和功能模块,使用MySQL数据库存储学生、课程和成绩信息。
五、系统测试与调试进行系统测试,包括功能测试、性能测试和稳定性测试。
通过测试发现并修复系统中存在的问题,确保系统能够正常运行。
六、系统部署与维护将系统部署到学校的服务器上,并进行系统维护工作,包括定期备份数据、更新系统版本等。
学生成绩管理系统一、系统分析与设计在任何高等院校,学生的成绩管理都是学校教务管理的重要环节之一。
随着学校学生人数的增加,学生成绩管理的任务更加繁重,必须借助现代化的管理工具和手段提高学生成绩管理效率。
学生成绩管理系统广泛适用于高校教务管理部门的学生成绩管理。
1、系统功能分析系统功能分析阶段的任务就是确定该系统所要解决的问题及其具体要求。
需要通过与用户的交流和沟通明确用户对系统的功能要求,最终列出系统可以实现的功能由用户确认。
本例中的学生成绩管理系统需要完成的主要功能如下。
⑴班级信息的输入和存储,包括班级编号、班级名称、所属院系、入校时间和学制等。
⑵对已经输入的班级信息的修改、查询。
⑶学生基本信息的输入和存储,包括学号、姓名、性别、出生日期、班级等。
⑷学生基本信息的修改和查询。
⑸每学期初各班所开设课程的输入,包括课程名、学期、学时等。
⑹各班所开设课程信息的修改和查询。
⑺学期末输入每个学生的考试成绩。
⑻学生成绩的修改。
⑼查询某个学生某学期的各科成绩。
⑽查询并打印某班某学期所有学生的各科成绩。
⑾查询并打印某班某学期某科成绩。
⑿系统具有用户和密码的管理。
2、系统功能模块设计通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如图1所示的功能模块图。
二、数据库设计与实现数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统的实现效果和数据操作效率以及能否保证数据的一致性、完成性和安全性。
图1 系统功能模块1、数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集、存储和操纵的数据信息,得到如图2所示的系统E-R图。
根据系统E-R图得到以下关系模式。
班级(班级编号,班级名称,所属院系,学制,入学时间,人数)。
学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号)。
课程(班级编号,学期,课程名称,学时,教师)。
成绩(学号,学期,课程名称,成绩)。
成绩:数据库技术与应用课程设计评语:签字:目录1系统总体设计 (3)1.1系统需求 (3)1.2系统功能分析 (3)1.3系统运行环境 (4)2 系统模块设计 (4)2.1数据库整体设计 (4)2.1.1数据库设计 (4)2.1.2数据库需求分析 (5)2.1.3数据库逻辑结构设计 (6)2.2应用系统的对象 (10)2.3登陆模块 (11)2.3.1功能概述 (11)2.3.2主要技术要点 (12)2.4学生管理模块 (13)2.4.1功能概述 (13)2.4.2主要技术要点 (14)2.5教师管理模块 (16)2.5.1功能概述 (16)2.5.2主要技术要点 (17)2.6院系资料 (18)2.6.1功能概述 (18)2.6.2主要技术要点 (18)2.7专业资料 (20)2.8课程管理模块设计 (20)2.8.1功能概述 (20)2.8.2主要技术要点 (21)2.8.3课程类别设计 (22)2.9成绩管理模块设计 (22)2.9.1成绩查询 (22)2.9.2成绩录入 (23)2.10用户管理模块 (24)2.10.1编辑用户资料 (24)2.10.2修改用户资料 (25)2.10.3添加新用户 (26)3系统运行截图 (27)1系统总体设计1.1系统需求随着科学技术的发展,计算机管理在日常生活中的地位变得越来越重要。
它能够代替人做各种重复、繁琐的劳动,并且拥有操作简单,可信度好,不易出错等优点,大大减少了不必要的人力消耗,提高个人的工作效率。
学生信息管理是每个学校必须面临的问题,所以,如何开发一个应用简单,见面友好,容易操作,数据安全性好的管理系统就成为非常重要的技术问题。
我采用Visual Studio 技术进行数据库开发可以使开发过程简单化,更快捷的访问数据库。
作为一个基于B/S模式的管理系统,需要记录大量的数据信息,而这些数据信息需要同时能够提供给使用人员查询和修改,必然需要一个大型的数据库系统和一台网络服务器,并且需要建立局域网或是能够被INTERNET网络用户访问。
一系统分析与设计1)系统功能分析系统功能分析阶段的任务就是确定该系统所要解决的问题及其具体要求。
学生成绩管理系统需要完成的主要功能如下:1.学生信息的输入和存储,包括学生编号、学生名称、所属专业等。
2.对已经输入的班级信息的修改、查询。
3.学生基本信息的输入和存储、包括学号、姓名、性别、出生日期等。
4.学生基本信息的查询。
5.每学期初各班所开设课程的输入,包括课程名、学期、学时等。
6.各班所开设课程信息的查询。
7.学期末输入每个学生的考试成绩。
8.查询某个学生。
9.查询并打印某班某学期所有学生的各科成绩。
10.查询并打印某班某学期某课成绩。
2)系统功能模块分析通过上面各项功能的分析、分类、综合,按照模块化程序设计的要求,得到它的模块结构:(1)学生基本信息管理包括学生基本信息查询,学生基本信息输入。
(2)课程信息管理包括课程信息查询,课程信息输入。
(3)成绩信息管理包括成绩查询,成绩输入。
二、数据库设计和实现1)创建数据库在PowerBuilder开发环境中打开数据库画板,使用[ODB ODBC]接口建立Adaptive Server Anywhere 8.0(ASA 8.0)的数据库,然后建立3个表和1个视图。
分别为“课程”表、“成绩”表、“选课”表。
各表之间的关系如下图1所示:图1 各表的关联关系2) 创建应用对象(1)创建新的工作空间。
(2)创建应用对象,应用对象名设为“ww”。
(3)打开新的对象画板.为应用对象app_xscj的Open事件编写代码如下:// Profile liudiSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=mydb;UID=;PWD='"CONNECT;ifSQLCA.sqlcode<>0 thenmessagebox("提示","数据库连接失败!")elseopen(w_login)end if执行此应用时,首先链接数据库“ww”,成功后打开登录窗口。
摘要学生成绩管理系统其开发工作主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
Powersoft的powerbuilder为用户提供了功能强大的集成开发环境。
POWERBUILDER是图形用户界面的c/s开发工具,利用其提供的各种面向对象的开发工具,powerbuilder具有强大的多个数据库描述连接功能和数据库检索力。
利用其前端的用户界面开发功能完备,易使用的应用程序。
而后台的数据库连接由POWERBUILDER完成,建立起数据一致性和完整性强.数据安全性好的库。
关键字power Builder,SQLserver,数据窗口。
SummaryStudents grade managing system Work of its developmenPrimarily include Establishing of set database with support and the head apply two aspects of the procedure's developmentsThe Powersoft powerbuilder provided the function for customer mighty gather development environment. The POWERBUILDER is a sketch customer the interface's c/ s of development tool, Make use of its provide every kind of to face to the object's development tool, powerbuilder to have mighty and manies the database to describe to link the function and Database index dint. Make use of the customer interface of its head the development function complete, easily applied procedure that use. The database conjunction complete, establishes to rise the data consistency with the that the complete is strong. the data safety like from the POWERBUILDERKEYWORDS datawindow, power Builder,SQLserver目录第一章绪论 (3)第二章可行性分析 (4)第三章关键的技术 (5)第四章数据库设计 (8)第五章需求分析 (11)第六章总体设计 (13)第七章详细设计 (15)第八章测试报告 (30)第九章体会 (31)参考文献 (31)第一章绪论Sybase power Builder 8.0 是一个企业级的,面向对象的快速应用开发工具,它易于使用的,可伸缩的,并经实践证明的快速集成开发环境,在给用户提供一条转移到下一代平台的途径的同时,使用户仍能够保护和扩展现有的技术和应用上的投资。
学生成绩管理系统课程设计模版学生成绩管理系统课程设计模版一、设计概述本课程设计旨在设计一个学生成绩管理系统,通过该系统可以完成学生成绩的录入、查询、统计、修改和删除等操作。
系统的用户包括学生和教师两类,学生可以查询自己的成绩,教师可以对学生成绩进行管理。
二、功能需求1.学生功能:- 登录系统:学生可以通过用户名和密码登录系统。
- 查询成绩:学生可以查询自己的成绩,包括某门课程的成绩和全部课程的成绩。
- 修改密码:学生可以修改登录密码。
2.教师功能:- 登录系统:教师可以通过用户名和密码登录系统。
- 录入成绩:教师可以录入学生成绩,包括学生学号、姓名、课程名称和成绩。
- 查询成绩:教师可以查询学生成绩,包括某门课程的成绩和全部学生的成绩。
- 统计成绩:教师可以统计学生成绩,包括某门课程的平均成绩、最高分和最低分等。
- 修改成绩:教师可以修改学生成绩。
- 删除成绩:教师可以删除学生成绩。
三、系统设计1.数据库设计:- 学生表:包括学生学号、姓名和密码等字段。
- 课程表:包括课程编号和课程名称等字段。
- 成绩表:包括学生学号、课程编号和成绩等字段。
2.界面设计:- 登录界面:包括用户名和密码的输入框和登录按钮。
- 学生主界面:包括查询成绩、修改密码和退出登录等功能按钮。
- 教师主界面:包括录入成绩、查询成绩、统计成绩、修改成绩、删除成绩和退出登录等功能按钮。
- 查询成绩界面:包括选择查询方式和显示查询结果的功能。
- 录入成绩界面:包括输入学生学号、课程编号和成绩的输入框和确认按钮。
- 修改成绩界面:包括输入学生学号、课程编号和成绩的输入框和确认按钮。
- 删除成绩界面:包括输入学生学号和课程编号的输入框和确认按钮。
四、程序实现本系统可以使用面向对象的编程语言实现,比如Java。
采用MVC(Model-View-Controller)的设计模式,将系统分为模型、视图和控制器三个模块。
1.模型(Model):负责数据的持久化和管理,包括数据库操作和数据封装等。
学生成绩管理系统课程设计报告一、课程设计题目基本要求本次课程设计的题目是学生成绩管理系统,要求实现以下功能: 1. 学生成绩录入:学生成绩管理系统应允许用户输入学生的学号、姓名、三门课的成绩以及平均成绩。
2. 学生成绩查询:学生成绩管理系统应允许用户按学号、姓名、以及单科成绩查询学生的成绩记录。
3. 学生成绩统计:学生成绩管理系统应允许用户按学号、姓名、以及平均成绩进行统计,并输出统计结果。
4. 学生成绩排序:学生成绩管理系统应允许用户按三科平均成绩、单科成绩、学号进行排序,并输出排序结果。
5. 退出系统:学生成绩管理系统应提供退出系统的选项,用户选择退出后,应退出系统。
二、设计要求1. 使用结构体数组实现学生成绩管理系统的数据结构。
2. 使用函数、指针、算法、流程结构及文件等综合应用实现学生成绩管理系统的各项功能。
3. 实现学生成绩管理系统的界面设计,包括菜单、表格、单选框、复选框、下拉框等控件的使用。
4. 使用数据库技术实现学生成绩管理系统的数据存储功能。
5. 实现学生成绩管理系统的测试流程,包括测试用例的设计和测试。
三、数据结构设计描述1. 数据字典数据字典是学生成绩管理系统的数据结构描述,包括以下数据流条目和数据存储条目:数据流条目:- 全部记录:最新更新后所有关于学生成绩的记录。
- 学生成绩记录:存放学生所有可供查询的信息。
数据存储条目:- 学生成绩记录:存放学生所有可供查询的信息,以索引文件的形式组织。
2. 数据结构学生成绩管理系统的数据结构包括以下结构体:- struct student:定义学生结构体,包括学号、姓名、三门课的成绩以及平均成绩。
- struct record:定义成绩记录结构体,包括学号、姓名、三门课的成绩以及平均成绩。
- struct database:定义数据库结构体,包括学生成绩记录数组,以及查询、统计、排序等函数。
四、系统功能描述1. 菜单设计学生成绩管理系统应提供以下菜单:- 成绩录入- 成绩查询- 成绩统计- 成绩排序- 退出系统2. 功能实现学生成绩管理系统的各项功能应分别实现如下:- 成绩录入:实现学生成绩的录入功能。
课程设计学生成绩管理系统一、课程目标知识目标:1. 理解学生成绩管理系统的基本概念和功能,掌握其设计原理;2. 学会运用所学的编程知识,实现学生成绩管理系统的基本操作,如增加、删除、修改和查询成绩;3. 了解数据库的基本操作,能够使用数据库存储和管理学生成绩。
技能目标:1. 培养学生运用所学的编程语言进行实际问题的分析和解决能力;2. 提高学生的团队合作能力,学会在团队项目中分工与协作;3. 培养学生运用数据库技术进行数据管理的能力。
情感态度价值观目标:1. 培养学生对计算机科学与技术学科的兴趣和热情,激发他们主动探索新知识的欲望;2. 培养学生的责任感,使他们意识到在团队项目中的角色和责任;3. 增强学生的自信心,使他们相信自己具备解决实际问题的能力。
课程性质:本课程为信息技术学科,结合编程和数据库知识,以项目为导向,培养学生的实际操作能力和团队协作精神。
学生特点:学生已具备一定的编程基础和数据库知识,具有一定的自学能力和团队协作意识。
教学要求:教师需引导学生运用已掌握的知识,通过实践操作,完成学生成绩管理系统的设计与实现。
在教学过程中,注重培养学生的实际操作能力和团队协作能力,提高学生的综合素质。
将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 系统分析与设计原理- 了解系统需求分析的基本方法,明确学生成绩管理系统的功能需求;- 学习系统设计的基本原则,掌握模块化设计方法;- 依据课程目标,制定学生成绩管理系统的功能模块和数据库设计。
2. 编程语言应用- 熟悉所学的编程语言(如Python、Java等),运用其进行系统开发;- 掌握面向对象编程思想,运用类和对象实现系统功能;- 学习异常处理和调试技巧,提高代码质量。
3. 数据库技术- 掌握数据库的基本操作,如创建表、插入数据、查询数据等;- 学习SQL语言,实现学生成绩管理系统的数据管理;- 了解数据库的安全性和完整性。
PB课程设计学生成绩管理系统学号:姓名:指导老师:Powerbuilder 是目前最有代表性的数据库前端开发工具之一。
它具有强大的数据库管理功能,以特有的数据窗口技术和简单易用功能强大的powerscript语言满足了快速开发和实施的需要。
在这个学期学习的powerbuilder结合数据库原理进行了本系统的设计,本系统为学生成绩管理系统,制作了一个小型的系统,实现了基本的学生成绩管理功能,在实践中进一步理解和掌握了数据库技术,并使所学的知识有一定的应用价值。
学生成绩管理系统能够有效运行,从而完成自动,高效,科学的学生和老师信息的输入和维护,以及老师对学生成绩的录入。
系统开发的总体任务是实现学生成绩管理的系统化,规范化和自动化,同时这是对学完powerbuilder之后开发的第一次完整实践。
本学生成绩管理系统主要包括三大模块:一、管理员模块,管理员可对教师和学生的基本信息进行输入和维护,对学校课程进行录入、修改,对学生成绩的查看等。
二、教师模块,教师可查看自己的基本信息,以及对录入学生成绩和登陆密码的修改等。
三、学生模块,学生可查看自己的基本信息、课表,以及选课、退课和修改登陆密码等。
本系统中,基本满足对学生成绩的管理,没有对学生成绩进行统计分析。
通过做这次的学生成绩管理系统,自己受益匪浅,由于水平有限,不当之处在所难免,恳请老师批评指正。
一、系统分析与设计 (1)1.1 系统功能分析 (1)1.2 系统功能模块设计 (1)二、数据库设计与实现 (4)2.1 数据库设计 (4)2.2 创建数据库 (4)2.3 创建应用 (7)2.4 创建窗口 (8)2.4.1创建登陆窗口 (8)2.4.2创建学生窗口 (11)2.4.3创建教师窗口 (15)2.4.4创建管理员窗口 (21)2.5 创建选单 (25)2.5.1创建学生选单 (25)2.5.2创建教师选单 (26)2.6 创建数据窗口 (28)2.6.1创建学生数据窗口 (28)2.6.2创建教师数据窗口 (30)2.6.3创建管理员数据窗口 (32)2.7 小结 (34)三、使用说明 (34)3.1 学生模块使用说明 (34)3.2 教师模块使用说明 (34)3.3 管理员模块使用说明 (35)3.4 登陆模块使用说明 (35)四、系统优缺点分析 (35)4.1优点分析 (35)4.2 缺点分析 (35)五、心得体会 (35)六、参考文献 (35)一、系统分析和设计学生成绩管理是学校教务管理的重要环节之一。
目录1、需求与功能分析 32、系统总体框架 43、模块设计与分析 44、类的设计与分析 65、特色算法分析 76、功能测试 107、存在的不足与对策 138、程序源代码 149、使用说明 2310、参考文献 231、需求与功能分析1需求分析学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息,查看留言、提交留言;教师可以通过成绩管理系统查阅学生成绩信息,教师信息,查看教师留言、学生留言、提交留言、留言的管理等相关操作;系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改,数据库的备份、数据库的还原等相关操作;根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理;开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化;目前,学校工作繁杂、资料重多;目前,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统;因此,开发一套适和大众的、兼容性好的系统是很有必要的;2功能分析“学生成绩管理系统”包括九个模块:输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统;这九个模块既相互联系又相互独立;本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作;本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据;2、系统总体框架图13、模块设计与分析1输入学生资料模块:主要功能用来对学生的成绩进行收集和输入;在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名;在准确输入学生资料后,就可以对该学生的各科成绩进行录入;该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单;2输出学生资料模块:主要功能用来对学生的成绩进行输出;在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等;具体包括学生的班级,学号,姓名和各科成绩;在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单;3按学生姓名进行排列模块主要功能是用来对学生的资料按姓名进行排序;在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料;4添加学生资料模块主要功能是用来添加学生资料,成绩;如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块;如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作;5按姓名查找,删除该学生资料模块主要功能是用来删除学生资料;在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了;由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化6查找并显示学生资料模块主要功能是用来查找学生资料;在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息7按姓名查找,修改学生资料模块主要功能是用来修改学生资料;在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息;8从文件中读入数据模块主要功能是用来从文件中读入学生数据;由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能;这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力;9储存学生资料并退出系统模块主要功能是用来储存学生资料;在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作;4、类的设计与分析Student类类图typedef class{public:char num10;char cla10;char name20;char byyl10;char jsjzc20;char sjk10;char jsjyy20;}Student;5、特色算法分析功能:定义菜单函数,通过输出函数显示系统功能;利用switch语句实现多分支选择结构;算法思路:switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;流程图:case=2case=3case=4case=5case=6case=1case=7case=8 case=0输入学生资料添加学生资料按姓名查找,删除该学生资料查找并显示学生资料从文件中读入数据按姓名查找,修改学生资料储存学生资料并退出系统按学生姓名进行排列输出学生资料yesnoyesyesyesyesyesyesyesyesnononononono代码:void main //主函数调用;{int n=0;for;;{switchmenu{case 1:cout<<setw15<<" "<<"输入学生资料"<<endl;n=Inputstu,n;break;case 2:cout<<setw15<<" "<<"输出所有学生资料"<<endl;Displaystu,n;break;case 3:cout<<setw15<<" "<<"按姓名排序"<<endl;Sortstu,n;cout<<setw15<<" ";system"pause";break;case 4:cout<<setw15<<" "<<"插入学生资料"<<endl;n=Insertstu,n;cout<<setw15<<" ";system"pause";break;case 5:cout<<setw15<<" "<<"删除学生资料"<<endl;cout<<setw15<<" "<<"输入他她的姓名:";n=Deletestu,n;cout<<setw15<<" ";system"pause";break;case 6:cout<<setw15<<" "<<"查找学生"<<endl;Querystu,n;cout<<setw15<<" ";system"pause";break;case 7:cout<<setw15<<" "<<"修改学生资料"<<endl;cout<<setw15<<" "<<"输入你要修改的学生的姓名:";n=Xiugaistu,n;system"pause";break;case 8:cout<<setw15<<" "<<"从文件中读入数据"<<endl;n=AddfromTextstu,n;break;case 0:cout<<setw15<<" "<<"将所有资料写入文件"<<endl;WritetoTextstu,n;cout<<setw15<<" ";system"pause";break;}}}6、功能测试图1 学生成绩管理系统主菜单页面图二为输入学生资料模块图三为输出学生资料模块图四按学生姓名进行排列模块图五为添加学生资料模块图六为按姓名查找,删除该学生资料模块图七为查找并显示学生资料模块图八为按姓名查找,修改学生资料模块图九为从文件中读入数据模块图十为储存学生资料并退出系统模块7、存在的不足与对策本学生成绩管理系统由九个模块组成,每个模块相互联系又相互独立;这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限;只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等;而且在每个模块也有不足的地方,比如在输入学生资料时,对每个信息项没有严格的规定,可以输入任何的字符;同时有些模块还不能实现本应该有的功能,这有待以后努力,争能够实现该有的功能;在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用;如今,不管是小学、初中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理;但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素;因此开发出一个不仅仅是适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的;开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平;为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化;现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素;在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替;一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全,学生在能方便的查看自己的成绩;8、程序源代码include<iostream>include<stdio.h>include<ctype.h>include<stdlib.h>include<string.h>include<iostream>include<iomanip>using namespace std;typedef class{public:char num10;char cla10;char name20;char byyl10;char jsjzc20;char sjk10;char jsjyy20;}Student;Student stu80;int menu{char c;for;c<'0'||c>'8';{system"cls";cout<<" 欢迎使用本学生成绩管理系统"<<endl; cout<<"编程人员:纪欣吉";cout<<endl;cout<<" 学生成绩管理系统 "<<endl;cout<<setw32<<" "<<"1.输入学生资料"<<endl;cout<<setw32<<" "<<"2.输出学生资料"<<endl;cout<<setw32<<" "<<"3.按学生姓名进行排列"<<endl;cout<<setw32<<" "<<"4.添加学生资料"<<endl;cout<<setw32<<" "<<"5.按姓名查找,删除该学生资料"<<endl;cout<<setw32<<" "<<"6.查找并显示学生资料"<<endl;cout<<setw32<<" "<<"7.按姓名查找,修改该学生资料"<<endl;cout<<setw32<<" "<<"8.从文件中读入数据"<<endl;cout<<setw32<<" "<<"0.储存学生资料并退出系统"<<endl;cout<<setfill'='<<setw48<<"="<<endl;cout<<setw15<<" ";cout<<"请选择0-8:";c=getchar;}returnc-'0';}int InputStudent stud,int n //输入数据;{int i=0;char sign,x10;for;sign = 'n' && sign = 'N';{cout<<setw15<<" "<<"班级:";cin>>studn+i.cla;cout<<setw15<<" "<<"学号:";cin>>studn+i.num;cout<<setw15<<" "<<"姓名:";cin>>studn+;cout<<setw15<<" "<<"编译原理:";cin>>studn+i.byyl;cout<<setw15<<" "<<"计算机组成原理:";cin>>studn+i.jsjzc;cout<<setw15<<" "<<"数据库:";cin>>studn+i.sjk;cout<<setw15<<" "<<"计算机英语:";cin>>studn+i.jsjyy;getsx;cout<<setw10<<" ";cout<<"还有要输入的信息吗 y/n";cin>>&sign;i++;}returnn+i;}void DisplayStudent stud, int n //输出数据;{int i;cout<<setw15<<" "<<setfill'-'<<setw65<<"-"<<endl;cout<<setw15<<" "<<"班级学号姓名编译原理计算机组成原理数据库计算机英语"<<endl;cout<<setw15<<" ";cout<<setfill'-'<<setw65<<"-"<<endl;fori=1;i<n+1;i++{printf"\t\t%-9s%-9s%-9s%-9s%-9s%-9s%-9s\n",studi-1.cla,studi-1.num,studi-1.n ame,studi-1.byyl,studi-1.jsjzc,studi-1.sjk,studi-1.jsjyy;ifi>1 && i%10==0{cout<<setw15<<" "<<setfill'-'<<setw35<<"-"<<endl;cout<<setw15<<" ";system"pause";cout<<setw15<<" "<<setfill'-'<<setw35<<"-"<<endl;}}cout<<setw15<<" ";system"pause";}void SortStudent stud,int n //按名字排序;{int i,j;char t20;fori=0;i<n-1;i++forj=0;j<n-1-i;j++ifstrcmpstudj.num,studj+1.num>0{strcpyt,studj+1.cla;strcpystudj+1.cla,studj.cla;strcpystudj.cla,t;strcpyt,studj+1.num;strcpystudj+1.num,studj.num;strcpystudj.num,t;strcpyt,studj+;strcpystudj+,;,t;strcpyt,studj+1.byyl;strcpystudj+,studj.byyl;strcpystudj.byyl,t;strcpyt,studj+1.jsjzc;strcpystudj+,studj.jsjzc;strcpystudj.jsjzc,t;strcpyt,studj+1.sjk;strcpystudj+,studj.sjk;strcpystudj.sjk,t;strcpyt,studj+1.jsjyy;strcpystudj+,studj.jsjyy;strcpystudj.jsjyy,t;}cout<<setw15<<" "<<"排序成功"<<endl;}int InsertStudent stud,int n //插入一条学生信息; {char x10;cout<<setw15<<" "<<"班级:";cin>>studn.cla;cout<<setw15<<" "<<"学号:";cin>>studn.num;cout<<setw15<<" "<<"姓名:";cin>>;cout<<setw15<<" "<<"编译原理:";cin>>studn.byyl;cout<<setw15<<" "<<"计算机组成原理:";cin>>studn.jsjzc;cout<<setw15<<" "<<"数据库:";cin>>studn.sjk;cout<<setw15<<" "<<"计算机英语:";cin>>studn.jsjyy;getsx;n++;cout<<setw15<<" "<<"插入成功"<<endl;returnn;}int DeleteStudent stud,int n //按名字查找信息,删除信息; {char s20;int i=0,j;cin>>s;,s=0&&i<n i++; /查找判断/ifi==n{printf"\t\t\t没有发现该学生资料\n"; /返回失败信息/returnn;}forj=i;j<n-1;j++ /删除操作/{strcpystudj.num,studj+1.num;,studj+;strcpystudj.cla,studj+1.cla;strcpystudj.byyl,studj+1.byyl;strcpystudj.jsjzc,studj+1.jsjzc;strcpystudj.sjk,studj+1.sjk;strcpystudj.jsjyy,studj+1.jsjyy;}cout<<setw15<<" "<<"当前信息已删除成功"<<endl; /返回成功信息/ returnn-1;}void QueryStudent stud,int n //按名字查找信息{char s20;int i=0;cout<<setw15<<" "<<"输入他她的姓名:";cin>>s;,s=0&&i<ni++; /查找判断/ifi==n{printf"\t\t\t没有发现该学生资料\n"; /输入失败信息/return;}cout<<setw15<<" "<<"学号:"<<studi.num<<endl;cout<<setw15<<" "<<"编译原理:"<<studi.byyl<<endl;cout<<setw15<<" "<<"计算机组成原理:"<<studi.jsjzc<<endl;cout<<setw15<<" "<<"数据库:"<<studi.sjk<<endl;cout<<setw15<<" "<<"计算机英语:"<<studi.jsjyy<<endl;}int XiugaiStudent stud,int n //修改信息;{n=Deletestud,n;cout<<setw15<<" "<<"输入你要修改的学生资料"<<endl;n=Insertstud,n;cout<<setw15<<" "<<"修改完成"<<endl;returnn;}int AddfromTextStudent stud, int n //从文件中读入数据;{int i=0,num;FILE fp;char filename20;cout<<setw15<<" "<<"输入文件名:";cin>>filename;iffp=fopenfilename,"rb"==NULL{cout<<setw15<<" "<<"无法打开文件"<<endl;cout<<setw15<<" ";system"pause";returnn;}fscanffp,"%d",#for;i<num;{fscanffp,"%s%s%s%s%s%s%s",studn+i.cla,studn+i.num,studn+,studn+i.byyl, studn+i.jsjzc,studn+i.sjk,studn+i.jsjyy;i++;}n+=num;fclosefp;cout<<setw15<<" "<<"读入成功"<<endl;cout<<setw15<<" ";system"pause";returnn;}void WritetoTextStudent stud,int n //将所有记录写入文件;{int i=0;FILE fp;char filename20;cout<<setw15<<" "<<"将资料输入文件"<<endl;cout<<setw15<<" "<<"输入文件名:";cin>>filename;iffp=fopenfilename,"w"==NULL{cout<<setw15<<" "<<"无法打开文件"<<endl;system"pause";return;}fprintffp,"%d\n",n;for;i<n;{fprintffp,"%-6s%-5s%-5s%-5s%-5s%-5s%-5s\n",studi.cla,studi.num,,st udi.byyl,studi.jsjzc,studi.sjk,studi.jsjyy;i++;}fclosefp;cout<<setw15<<" "<<"输入成功"<<endl;int b;cout<<setw15<<" "<<"请确定是否退出系统:"<<endl;cout<<setw15<<" "<<"0.退出系统"<<endl;cout<<setw15<<" "<<"1.返回"<<endl;cin>>b;ifb==0{cout<<setw15<<" "<<"谢谢使用"<<endl;cout<<setw15<<" ";system"pause";exit0;}}void main //主函数调用;{int n=0;for;;{switchmenu{case 1:cout<<setw15<<" "<<"输入学生资料"<<endl;n=Inputstu,n;break;case 2:cout<<setw15<<" "<<"输出所有学生资料"<<endl;Displaystu,n;break;case 3:cout<<setw15<<" "<<"按姓名排序"<<endl;Sortstu,n;cout<<setw15<<" ";system"pause";break;case 4:cout<<setw15<<" "<<"插入学生资料"<<endl;n=Insertstu,n;cout<<setw15<<" ";system"pause";break;case 5:cout<<setw15<<" "<<"删除学生资料"<<endl;cout<<setw15<<" "<<"输入他她的姓名:";n=Deletestu,n;cout<<setw15<<" ";system"pause";break;case 6:cout<<setw15<<" "<<"查找学生"<<endl;Querystu,n;cout<<setw15<<" ";system"pause";break;case 7:cout<<setw15<<" "<<"修改学生资料"<<endl;cout<<setw15<<" "<<"输入你要修改的学生的姓名:";n=Xiugaistu,n;system"pause";break;case 8:cout<<setw15<<" "<<"从文件中读入数据"<<endl;n=AddfromTextstu,n;break;case 0:cout<<setw15<<" "<<"将所有资料写入文件"<<endl;WritetoTextstu,n;cout<<setw15<<" ";system"pause";break;}}}9、使用手册1用户进入系统后,就会看到学生管理系统的主菜单页面;系统总共有九个模块,分别由0到8表示,在主菜单页面只能输入数字0到8,输入其他字符无效,如果用户输入无效字符,系统仍停留在主菜单页面;2进入到主菜单页面后,用户可以根据自己的需求选择不同的选项,选择后系统就会进入子系统页面,然后用户按系统的提示操作就行了;10、参考文献C++程序设计钱能清华大学出版社C++程序设计试验指导钱能清华大学出版社C程序设计谭浩强清华大学出版社。
成绩管理系统的课程设计一、课程目标知识目标:1. 学生能理解成绩管理系统的基本概念、功能与操作流程。
2. 学生掌握使用成绩管理系统进行成绩的录入、修改、查询和统计分析的方法。
3. 学生了解成绩管理系统在教育教学中的重要性及其对教育信息化的贡献。
技能目标:1. 学生能独立操作成绩管理系统,完成个人及班级成绩的管理工作。
2. 学生通过实际操作,培养数据分析与处理能力,提高信息素养。
3. 学生学会利用成绩管理系统进行自我评估,制定合理的学习计划。
情感态度价值观目标:1. 培养学生正确的成绩观,认识到成绩是反映学习效果的一种方式,而非唯一标准。
2. 增强学生的团队协作意识,学会在团队中分享与交流。
3. 提高学生对教育信息化的认识,激发其探索现代教育技术的兴趣。
本课程针对高年级学生设计,充分考虑了学生的认知水平、操作能力和学习需求。
通过本课程的学习,学生将能够熟练运用成绩管理系统,提高自身学习效果,并为今后的教育教学工作打下良好基础。
同时,课程强调实践性与实用性,注重培养学生的实际操作能力和解决问题的能力。
教学过程中,教师需关注学生的个体差异,提供有针对性的指导,确保课程目标的实现。
二、教学内容本课程教学内容紧密围绕成绩管理系统,结合课程目标,具体安排如下:1. 成绩管理系统概述:- 系统定义、功能与作用- 成绩管理系统的基本操作流程2. 成绩管理系统的使用:- 用户注册与登录- 成绩的录入、修改与查询- 成绩统计分析与可视化展示3. 成绩管理系统在实际应用中的案例分析:- 班级成绩管理实例- 个人成绩分析实例- 成绩管理系统在教育教学改革中的应用4. 教育信息化与成绩管理:- 教育信息化背景下的成绩管理发展趋势- 成绩管理系统在提高教育教学质量中的作用教学内容依据教材相关章节进行组织,具体涉及以下章节:- 教育信息化与信息技术应用- 成绩管理系统的设计与实现- 成绩管理系统在实际教育教学中的应用案例教学进度安排:- 第一周:成绩管理系统概述及基本操作流程- 第二周:成绩管理系统的使用方法- 第三周:案例分析与实践操作- 第四周:教育信息化与成绩管理的关系及发展趋势三、教学方法本课程采用以下多样化的教学方法,旨在激发学生的学习兴趣,提高教学效果:1. 讲授法:- 对于成绩管理系统的基本概念、功能与操作流程等内容,采用讲授法进行教学,使学生在短时间内掌握必要的理论知识。
数据库学生成绩管理系统课程设计报告一、引言数据库学生成绩管理系统是一个用于管理学生成绩信息的系统。
在教育领域中,对学生成绩信息的管理十分重要。
本系统的设计目的是为了方便教师和学生查看和管理学生成绩信息,提高教学效率和学生学习参与度。
二、系统设计1. 系统架构本系统采用客户端-服务器架构,客户端为教师和学生用户,服务器负责存储和处理学生成绩信息。
2. 数据库设计系统数据库包括学生信息表(包含学生ID、姓名、年龄等字段)和成绩信息表(包含课程ID、学生ID、成绩等字段)。
学生信息表和成绩信息表之间使用学生ID进行关联。
3. 功能设计•教师功能:教师可以录入和修改学生成绩信息,查询学生成绩统计信息。
•学生功能:学生可以查看自己的成绩信息,查询课程成绩排名。
4. 界面设计系统界面简洁明了,包括登录界面、教师主页、学生主页等,每个页面均提供相应的功能按钮和查询框。
三、系统实现系统采用Python语言编写,使用MySQL数据库存储学生成绩信息。
前端界面使用Tkinter库实现,后端采用Flask框架搭建服务器。
1. 数据库连接系统通过Python的MySQL连接库实现与数据库的连接,实现数据的读取和写入。
2. 用户权限管理系统实现了教师和学生用户的权限管理,教师用户具有录入和修改成绩的权限,学生用户只能查看成绩信息。
3. 数据查询处理系统通过SQL语句实现成绩信息的查询和统计功能,将查询结果在界面上展示给用户。
四、系统测试系统经过多次测试,确保功能正常,界面友好,数据准确可靠。
五、总结与展望数据库学生成绩管理系统设计与实现了基本功能,提升了学生成绩信息管理的效率。
未来可以进一步增加功能,如成绩分析和报告生成等,提升系统的实用性和功能性。
六、参考文献•张三, 李四. 数据库系统概论. 出版社, 2020.•王五, 赵六. Python编程基础教程. 出版社, 2021.。
课程设计任务书课程设计名称:数据库技术课程设计(PB)学生姓名:专业班级:计算机网络设计题目:学生成绩管理系统一、课程设计目的该课程设计是学习完《PB程序设计》课程后进行的一次集中实践环节的综合练习。
其目的是通过本课程设计使学生对具体问题应用《PB程序设计》课程中所学的方法与技术,进行需求分析及软件设计的过程,完成一个数据库应用系统的设计全过程,不仅对PB程序设计课程中的所有知识点进行一个全面的复习巩固,更重要的是增强学生解决实际问题的能力。
二、时间和学分(1)时间:2018-2018学年第一学期1周;(2)学分:20学时,1个学分。
三、设计的地点及进行方式(1)地点:学院实训室01506;(2)方式:分散实训,上机调试和测试程序及书写课程设计说明书相结合的方式。
四、设计内容、技术条件和要求(1)本环节要求学生根据PB程序设计整个课程的所学内容,自己独立设计完成一个比较复杂的小型管理系统。
(2)所设计的小型管理系统要求功能比较完善,应包含输入输出、查询、插入、删除、打印等基本功能。
(3)程序内容自己灵活设计,包括规划自己的数据库、设计程序功能及界面设计。
(4)数据库中不能少于两个表。
(5)程序应功能完善,界面友好,容错性好,操作方便。
五、说明书内容格式要求从上到下各组成结构:(1)封面及任务书(见样张);(2)成绩评阅页;(3)目录;(4)第1章概述;第2章系统分析;第3章功能分析;第4章系统实现;第6章结束语;第7章参考文献。
纸张大小为B5纸。
正文为5号宋体。
一级标题:第1章( 标题,2号宋体,上下空两行居中,行距为5号宋体单倍行距)。
二级标题:1.1[第1章第1节] (标题,3号黑体居中,上下空一行,行距为5号宋体单倍行距)。
三级标题:1.1.1 [第1章第1节第1个问题](标题,4黑左顶,占2行)。
六、完成时间及要求(1)第18周星期五交到课代表处;(2)字数不少于8000字;(3)严禁抄袭,否则按不及格处理。
数据库技术(数据库技术(PB PB PB)课程设计)课程设计学生成绩管理系统学生成绩管理系统班级: 姓名: 指导老师: 登分号:电子职业技术学院 2012-04-08教 师 评 语日期:教师:学生:前言通过一学期的学习,我们解了PowerBuilder应用系统的开发过程以及组成PowerBuilder应用程序的各种对象是设计方法。
通过对这些内容的学习我们可以开发一些简单的数据库应用系统。
我们现在就来开发一个简单的学生成绩管理系统。
学生的成绩管理都是学校教务管理的重要环节之一。
随着学生人数的增加,学生成绩管理的任务更加繁重,必须借助与现代化的管理工具的手段提高学生成绩管理效率,学生成绩管理系统广泛使用于高校教务管理部门的学生成绩管理其作用和功能也是学生比较说熟悉和容易理解的。
一个应用系统的开发过程包括分析、设计、实现、调试和发布等阶段,以下大作业介绍学生成绩管理系统的分析和模块设计。
系统功能分析学生成绩管理系统需要完成的主要功能如下:(1)班级信息的输入和存储,包括班级编号,班级名称,所属专业,如校时间和学制等。
(2)对已经输入的班级信息的修改,查询。
(3)学生基本信息的输入与存储,包括学号,姓名,性别,出生日期,班级等。
(4)学生基本信息的修改和查询。
(5)每学期初各班做开设的课程的输入,包括课程名,学期,学时等。
(6)各班所开设课程信息的修改和查询。
(7)学期末输入每个学生的考试成绩。
(8)学生成绩的修改。
(9)查询某个学生,某个学期的各课成绩。
(10)系统具有用户和密码的管理。
通过设计此学生成绩管理系统,让我们进一步掌握各种对象的作用、特点和实际方法。
对系统的分析、设计、调试和发布的完整过程。
目录封面................................................... 任务书................................................ 教师评语 (1)前言 (2)目录 (3)正文……………………………………………1.1数据库的设计与实现 (4)1.2创建应用对象 (6)1.3设计系统管理模块 (7)1.4设计主窗口和菜单 (11)1.5设计班级管理模块 (14)1.6设计学生基本信息管理模块 (16)1.7设计课程管理模块 (18)1.8设计成绩管理系统 (20)1.9系统的编译和发布 (21)小结 (22)参考文献 (23)文正 文数据库设计与实现1.1数据库设计与实现1.1.1 数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集,存储和操纵的数据信息,得到如图1.1所示的系统E-R图。
根据系统E-R图得到以下关系模式:班级(班级编号,班级名称,所属专业,学制,入学时间,人数).学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号).课程(班级编号,学期,课程名称,学时,教师).成绩(学号,学期,课程名称,成绩).为了系统的使用安全,要建立用户管理,而用户使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系.用户(姓名,密码,权限).图1.1 系统E-R图1.1.2创建数据库先要在D盘根目录下建立一个工作夹命名为“xscj”,然后在“D:\xscj”文件夹下建立“data”,来存储数据库文件。
在PowerBuilder开发环境中打开数据库画板,使用[ODB ODBC]接口建立Adaptive server Anywhere 8.0(ASA 8.0)的数据库D:\xscj\data\xscj.db,然后建立以下5个表和1个视图。
1.“班级”表表名:banji主键:bjbh各个键的属性见表1-1。
表1-1“班级”表的列属性列名数据类型宽度小数位空值标题(Heading) 标签(Label)Bjbh Char 6 NO 班级编号班级编号:Bjmc varchar 20 NO 班级名称班级名称:Zymc varchar 20 NO 专业名称专业名称:Xz Numeric 1 0 NO 学制学制:Rxsj Data NO 入学时间入学时间:Rs Numeric 1 0 YES 人数人数:根据如上图所示的关系模式确定需建立的数据库和表,除了建“Banji”之外还有“jiben”主键是“xh”;“bjkc”主键是“bjbh,xq,kcmc”;“xscj”主键是“xh,xq,kcmc”;“users”主键是“xm”。
各表之间通过外键形成如下图所示的关联关系。
图1.2 表的关联关系2.视图为了访问数据库方便,还建立了一个视图“xsbj”,该视图由学生基本信息表和班级表连接而成,对应的SQL语句如下:CREATE VIEW xsbj (xh,xm,xb,csrq,bjbh,bjmc,zymc) ASSELECTJIBEN.xh,jiben.xm,jiben.xb,jiben.csrq,jiben.bjbh,banji.bjmc,banji.zymc FROM DBA.banji,DBA.jibenWHERE (jiben.bjbh = banji.bjbh)完成数据库和表的创建后,可以在数据库画板中向数据库输入部分数据。
其中,“用户”表中必须输入一条记录(“admin”,“12345”,“y”),作为进入系统默认的管理员,即姓名为“admin”,密码为:“12345”。
1.2创建应用对象完成数据库的设计和系统功能设计之后,开始各种功能模块的实现,在PB中开发应用程序时,就是创建各种对象,为对象设置属性及编写事件脚本的过程(1)创建新的工作空间,工作空间设为:“d:\xscj\xscj.pbw”。
(2)创建应用对象设为“app_xscj”,应用库文件的路径:“d:\xscj\xscj.pbl”,目标文件:“d:\xscj\xscj.pbt”.(3)打开应用对象画板应用对象的icon属性设置为“d:\xscj\BOOKS.ICO”.(预先准备的图标文件)。
(4)为应用对象的open事件编写代码如下SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBPARM = "Connectstring='DSN=aa;UID=dba;PWD=sql'"Connect;if SQLCA.sqlcode<>0 Thenmessagebox("提示","数据库连接失败!")elseopen(w_login) //打开登陆窗口end if1.3设计系统管理模块本模块实现用户登陆控制,用户自己的密码修改和用户管理,其中包括修改用户信息,添加新用户,删除用户,只有管理员有此权限。
1.3.1设计登陆窗口登陆窗口如图1.3所示。
图1.3 登陆窗口1.创建窗口并设置属性创建登录窗口W_login,在窗口上放置1个图片控件(p_1)。
3个静太文本(st_1,st_2,st_3),1 个成组框控件(g_1),2个单行编辑起控件(sle_1,sle_2),2个命令按钮(cb_1,cb_2)2.编写脚本(1)定义全局变量。
String gs_username , gs_password,gs_admin(2)定义实例变量。
Int li_n(3)登陆窗口w_login的open事件脚本li_n=3注:初始化变量li_n,限制出错次数为3次。
(4)【确定】按钮cb_1的clicked事件脚本如下:string ls_username,ls_passwordls_username=trim(sle_1.text) //输入用户名和密码ls_password=trim(sle_2.text)if ls_username="" or ls_password="" thenmessagebox("提示","用户名和密码不能为空")elseSELECT "users"."name","users"."password","users"."admin"INTO :gs_username,:gs_password,:gs_adminFROM "users"WHERE ("users"."name" = :ls_username) AND("users"."password" = :ls_password);if sqlca.sqlcode<>0 thenopen(m_main) //密码正确,打开主窗口close(w_login)elseli_n=li_n - 1if li_n<>0 thenmessagebox("提示","用户名或密码错误")elsemessagebox("提示","错误超过3次,自动退出")halt //错误超过3次,退出程序end ifend ifend If(5)【放弃】按钮cb_2的clicked事件脚本如下:halt // 退出程序1.3.2设计密码修改窗口密码修改窗口如图1.4所示。
图1.4 密码修改窗口1.创建窗口并设置属性2.编写脚本(1)[确定]按钮cb_1的Clicked事件脚本如下.string ls_passwordif trim (sle_1.text)<>gs_password thenmessagebox("提示","旧密码错误")elseif trim(sle_2.text)=trim(sle_3.text) thenls_password=trim(sle_2.text)update "users"set "password"where ("users"."name" = :gs_username ) and("users"."password" = :gs_password );if sqlca.sqlcode<>0 thenmessagebox("提示","密码修改不成功!!") elseclose (parent)messagebox("提示","密码修改完成")end ifelsemessagebox("提示","两次新密码不相同") end ifend if(2)[取消]按钮cb_2的Clicked事件脚本如下close(parent)1.3.3设计用户管理的数据窗口用户管理窗口如图1.5所示。