精华内容
下载资源
问答
  • MySQL学生成绩管理系统设计实验报告

    千次阅读 多人点赞 2020-12-01 21:46:15
    一、概述 主要介绍学生成绩管理系统项目开发...因此需要开发出一个满足学校进行成绩的录入、查询、修改等需求的功能完善,安全可靠,迅速便捷的成绩管理系统。 1.2编写目的 开发出一个操作简便、界面友好、灵活实用、

    一、概述

    主要介绍学生成绩管理系统项目开发的背景、目的、对象以及研究内容。

    1.1项目背景

    每个学校都需要在期末进行考试成绩的统计分析工作,而这些工作都必须在考试结束后一个星期的时间内完成。大量的成绩数据的统计工作如果只靠人工完成,费时费力,还容易出错。随机计算机技术的快速发展,计算机在日常管理应用中迅速普及,利用计算机进行学生成绩管理势在必行。因此需要开发出一个满足学校进行成绩的录入、查询、修改等需求的功能完善,安全可靠,迅速便捷的成绩管理系统。
    

    1.2编写目的

    开发出一个操作简便、界面友好、灵活实用、安全可靠的学生成绩管理系统。该系统的开发以任课教师和学生服务为对象,能够提高学校对学生成绩的统计分析效率,减轻教务管理人员对学生成绩管理和统计的负担,能提高学校对学生成绩的规范化管理。
    该成绩系统能够及时对学生成绩进行收集整理,使学校相关部门及时获取可靠的学生成绩信息,便于管理。方便各任课教师记录,统计所带班级学生成绩,提高工作效率,减轻负担,提高教学质量。实现快速方便地处理大量成绩数据信息,完成成绩的录入、修改、删除、查询等处理要求。方便学生查询自己各科目成绩。

    1.3软件定义

    学生成绩管理系统是记录了学生成绩的系统,可以实现查询、更新、插入、删除等功能。根据不同用户设置不同的权限,来确保学生成绩信息的安全行和完整性。

    1.4开发环境

    windows10操作系统,mysql5.6.17数据库服务器,Eclipse4.12.0,Navicat。

    二、可行性分析

    由于本系统管理的对象单一,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。

    2.1经济可行性分析

    随着科学技术的不断发展与创新,计算机作用的日益突显,计算机软件成为人们解决问题的一个有效手段,当然,它的作用也越来越重要。在当今信息时代,国民经济和国防建设、社会发展、人民生活都离不开软件,软件也无处不在。软件产业也是一个新兴产业,尽管起步晚,但是发展迅速,已经成为增长最快的产业,是具有高投入/高产出、无污染、低能耗的绿色产业。学生成绩管理系统是一个基于教务处数据库的一个管理系统,对已经使用的类似的系统进行调查分析、类比,本课题具有的特点:开发工作量小,可以有两个人合作开发或一个人独立开发,开发周期短,有熟练的开发人员一个月就可以完成系统的开发与测试。

    2.2技术可行性分析

    从技术方面来说,Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。可以利用所学的Java知识进行编程,再与数据库连接,通过SQL语句即可轻松查询和更新后台数据库中的数据。

    三、需求分析

    3.1功能要求

    根据用户需求,系统需向用户提供以下功能:
    1、系统登录功能:根据教师、学生两种身份设计不同用户的操作权限和登录方式。
    2、班级管理功能:班级的添加、修改、删除功能。
    3、成绩管理功能:录入、修改、删除、查询、统计学生成绩,能一次性录入某班全部学生成绩。
    4、信息管理功能:添加、修改、删除、查询学生基本信息,能一次性导入某班全部学生信息。
    5、成绩查询功能:每个学生可以查询自己所有课程的成绩。教师可以查询所带班级的成绩,可以对成绩进行排序和统计。
    在这里插入图片描述
    图3-1-1 学生成绩管理系统功能结构图

    3.2性能要求

    1、易操作性:所开发的系统应做到操作简单,尽量使系统操作不受用户对电脑知识水平的限制。
    2、可维护性:系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。
    3、可靠性:系统在运行中要不发生或极少发生故障,在偶然事故及操作失误时,系统应具有较强的出理能力,而不应造成信息的丢失或破坏。
    4、安全性:保证系统的物理安全、数据存储和获取的安全与保密,做好使用人员的授权管理。
    5、实用性:系统的设计应最大限度发挥计算机的高速处理、海量存储能力。
    6、开放性:系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接,不会因外部系统的不同面要做在量的修改工作。

    四、数据库设计

    4.1 数据库需求分析

    数据库对系统操作和处理的数据具有综合管理的作用,在具有信息管理的系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的执行效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。
    数据库需求分析就是分析用户的需求,根据用户的需求,分析确定该系统会操作处理那些数据,对确定好的数据根据它们之间的关联关系进行结构设计。需求分析结果直接反映客户的要求,需求分析结果是否准确将直接影响到后面各个阶段的设计结果是否合理和正确。因此做好数据库的需求分析是非常重要的环节。
    数据库需求分析的任务就是通过详细调查现实中要处理的对象,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
    针对该系统的要求,对该系统的数据库需求做了详细的分析。基于学生成绩管理系统的数据库功能主要体现在多用户登录信息、学生基本信息、教师基本信息、学生成绩信息的管理上。

    4.2用户对系统的要求

    4.2.1信息要求

    老师能查询所有成绩相关信息,包括某一学生的学号、成绩等详细信息,学生能查到关于自己具体的信息,包括每门课的成绩,学院,专业,班级等

    4.2.2处理要求

    1、需查询学生相关信息时能进行查询;
    2、学生成绩信息发生变更时,能进行修改、插入、删除等;
    3、学生的信息发生变更时,能进行更新、删除。

    4.2.3安全性与完整性要求

    安全性要求:
    1、系统应设置访问用户的标识以鉴别是否为合法用户,并设置密码,保证用户身份不被盗用;
    2、对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
    3、对不同用户设置不同的权限,区分不同用户,如学生、成绩管理员。

    4.3数据需求描述

    数据流图:

    在这里插入图片描述

    图4-3-1 顶层数据流图

    数据字典:
    ①学生Student(学号Sno、姓名Sname、性别Sex、专业号Mno、班号Cnum)
    属性名 字段类型 长度 主键或外键 说明
    SNO INT 5 主键 学号
    SNAME CHAR 20 姓名
    SEX CHAR 2 性别
    MNO INT 5 外键 专业号
    CNUM INT 5 外键 班号

    ②教师Teacher(职工号Tno、姓名Tname、职称Title)
    属性名 字段类型 长度 主键或外键 说明
    TNO INT 5 主键 职工号
    TNAME CHAR 20 姓名
    TITLE CHAR 5 职称

    ③课程Course(课程号Cno、课程名Cname、学分Credit)
    属性名 字段类型 长度 主键或外键 说明
    CNO INT 5 主键 课程号
    CNAME CHAR 30 课程名
    CREDIT CHAR 2 学分

    ④班级Class(班号Cnum、人数Num)
    属性名 字段类型 长度 主键或外键 说明
    CNUM INT 5 主键 班号
    NUM INT 5 人数

    ⑤系Depart(系号Dno、系名Dname)
    属性名 字段类型 长度 主键或外键 说明
    DNO INT 5 主键 系号
    DNAME CHAR 30 系名

    ⑥专业Major(专业号Mno、专业名Mname、系号Dno)
    属性名 字段类型 长度 主键或外键 说明
    MNO INT 5 主键 专业号
    MNAME CHAR 20 专业名
    DNO INT 5 外键 系号
    ⑦选课CV(学号Sno、课程号Cno、成绩Result)
    属性名 字段类型 长度 主键或外键 说明
    SNO INT 5 学号
    CNO INT 5 课程号
    RESULT CHAR 5 成绩

    ⑧学生—教师ST(学号Sno、职工号Tno、课程号Cno)
    属性名 字段类型 长度 主键或外键 说明
    SNO INT 5 学号
    TNO INT 5 职工号
    CNO INT 5 课程号

    4.4逻辑结构设计

    一个系有若干个专业,一个专业有若干个班级,一个学生可以选修多门课程。
    

    关系模式表:
    ①学生Student(学号Sno、姓名Sname、性别Sex、专业号Mno、班号Classno)
    学号->姓名,学号->性别,学号->专业号,班号->专业号;
    ②教师Teacher(职工号Tno、姓名Tname、职称Title)
    职工号->姓名,职工号->职称;
    ③课程Course(课程号Cno、课程名Cname、学分Credit)
    课程号->课程名,课程号->学分;
    ④班级Class(班号Cnum、人数Num)
    班号->人数;
    ⑤系Depart(系号Dno、系名Dname)
    系号->系名;
    ⑥专业Major(专业号Mno、专业名Mname、系号Dno)
    专业号->专业名,专业号->系号;
    ⑦选课CV(学号Sno、课程号Cno、成绩Result)
    学号、课程号->成绩;
    ⑧学生—教师ST(学号Sno、职工号Tno、课程号Cno)
    学号、职工号->课程号

    其中①为第三范式,②③④⑤⑥⑦⑧均为BCNF范式

    4.5 物理设计

    4.5.1索引设计:

    CREATE TABLE Student1 (
    Sname CHAR(20),
    Sno INT(5),
    Sex CHAR(2),
    Mno INT(5),
    Classno INT(5),
    PRIMARY KEY (Sno),
    Index Student1(Sno)
    );
    CREATE TABLE Teacher1 (
    Tno INT(5),
    Tname CHAR(20),
    Title CHAR(5),
    Index Teacher1(Tno)
    );
    CREATE TABLE Course1 (
    Cname CHAR(20),
    Cno INT(5),
    Credit CHAR(2),
    Index Course1(Cno)
    );
    CREATE TABLE Class1 (
    Cnum INT(5),
    Num INT(5),
    Index Class1(Cnum)
    );
    CREATE TABLE Depart1 (
    Dname CHAR(20),
    Dno INT(5),
    Index Depart1(Dno)
    );
    CREATE TABLE Major1 (
    Mname CHAR(20),
    Mno INT(5),
    Dno INT(5),
    Index Major1(Mno)
    );
    CREATE TABLE CV1 (
    Sno INT(5),
    Cno INT(5),
    Result CHAR(5),
    Index CV1(Sno,Cno)
    );
    CREATE TABLE ST1 (
    Sno INT(5),
    Tno INT(5),
    Cno INT(5),
    Index ST1(Sno,Tno)
    );

    4.5.2触发器设计:

    1、删除课程表中的课程号,相应删除选课表和学生-教师表中的课程号:
    DELIMITER %%
    Create trigger deletorder
    after delete on Course
    for each row
    begin
    delete from CV where Cno=old.Cno;
    delete from ST where Cno=old.Cno;
    end %%
    DELIMITER %%

    4.6数据库实施

    4.6.1用户模式设计

    视图设计:
    1、成绩查询
    Create view Rselect
    As
    Select cnum,CV.sno,sname,cno,result
    From Student,CV
    Where Student.sno=CV.sno;
    2、学生所学课程及学分统计
    Create view Total
    As
    Select Sno,CV.Cno,Cname,Credit
    From Course,CV
    Where Course.Cno=CV.Cno;
    3、学生总成绩、平均成绩
    Create view sum
    As
    Select CV.Sno 学号,sname 姓名,sum(result) 总成绩,avg(result) 平均成绩
    From Student,CV
    Where Student.Sno=CV.Sno;

    存储过程设计:
    1、修改成绩
    DELIMITER CREATEPROCEDUREXiugai(INSno1INT(5),INCno1INT(5),INResult1CHAR(5))BEGINupdateCVsetResult=Result1whereSno=Sno1andCno=Cno1;END CREATE PROCEDURE Xiugai (IN Sno1 INT(5), IN Cno1 INT(5),IN Result1 CHAR(5)) BEGIN update CV set Result=Result1 where Sno=Sno1 and Cno=Cno1; END
    DELIMITER ;
    2、查询总学分
    DELIMITER CREATEPROCEDUREXuefen(INSno1INT(5),INSnameCHAR(20))BEGINSelectSno,Sname,Sum(Credit)asFromstudent,CVWhereStudent.sno=CV.snoGroupbySno;END CREATE PROCEDURE Xuefen (IN Sno1 INT(5),IN Sname CHAR(20)) BEGIN Select Sno,Sname,Sum(Credit) as 总学分 From student,CV Where Student.sno=CV.sno Group by Sno; END
    DELIMITER ;

    4.6.2安全性设计

    新建表
    create table user(username varchar(10),passw1 varchar(40),passw2 varchar(40));
    insert into user values (‘user1’,MD5(‘110’),SHA1(‘110’));
    insert into user values (‘user2’,MD5(‘120’),SHA1(‘120’));
    insert into user values (‘user3’,MD5(‘112’),SHA1(‘112’));

    Create user ‘cu1’@‘localhost’ identified by ‘110’;
    Create user ‘cu2’@‘localhost’ identified by ‘120’;
    Create user ‘cu3’@‘localhost’ identified by ‘112’;

    cus1@ localhost授权,即管理员的权限
    Grant all on Stu.Student to ‘cu1’@‘localhost’ with grant option;
    Grant all on Stu.Teacher to ‘cu1’@‘localhost’ with grant option;
    Grant all on Stu.Course to ‘cu1’@‘localhost’ with grant option;
    Grant all on Stu.Depart to ‘cu1’@‘localhost’ with grant option;
    Grant all on Stu.Major to ‘cu1’@‘localhost’ with grant option;
    Grant all on Stu.CV to ‘cu1’@‘localhost’ with grant option;
    Grant all on Stu.ST to ‘cu1’@‘localhost’ with grant option;

    cus2@ localhost授权,即学生的权限
    Grant select on Stu.CV to ‘cu2’@‘localhost’ with grant option;

    cus3@ localhost授权,即教师的权限
    Grant select,update on Stu.CV to ‘cu3’@‘localhost’ with grant option;

    4.6.3事务设计

    1、修改某一门课程的学分:
    Delimiter //
    Create Procedure BB(IN Cno1 INT(5),IN Cname1 CHAR(20),IN Credit1 CHAR(2))
    Begin
    declare t_err int default 0;
    declare CONTINUE HANDLER FOR SQLEXCEPTION SET t_err = 1;

    Start Transaction;
    Select Cno修改前的课程号 from Course where Cno=Cno1;
    Select Cname修改前的课程名 from Course where Cname=Cname1;
    Select Credit修改前的学分 from Course where Cno=Cno1;
    do sleep(20);/暂停20秒/
    Update Course set Credit = Credit1 where Cno=Cno1;
    Select Credit 修改后的学分 from Course where Cno=Cno1;
    if t_err =1 then
    Rollback; /* 有sql 错误 回滚 /
    else
    commit; /
    无 sql 错误 提交 */
    end if;
    end //

    Delimiter ;

    2、修改成绩:
    Delimiter //
    Create Procedure BC(IN Sno1 INT(5),IN Cno1 INT(5),IN Result1 CHAR(5))
    Begin
    declare t_err int default 0;
    declare CONTINUE HANDLER FOR SQLEXCEPTION SET t_err = 1;

    Start Transaction;
    Select sum(Result)修改成绩前的总分 from CV where Sno=Sno1;
    Select avg(Result)修改成绩前的平均分 from CV where Sno=Sno1;
    Select Result查询需要修改的课程号的成绩 from CV where Sno=Sno1 and Cno=Cno1;
    do sleep(20);/暂停20秒/
    Update CV set Result = Result1 where Sno=Sno1 and Cno=Cno1;
    Select Result查询修改后的课程号的成绩 from CV where Sno=Sno1 and Cno=Cno1;
    Select sum(Result)修改成绩后的总分 from CV where Sno=Sno1;
    Select avg(Result)修改成绩后的平均分 from CV where Sno=Sno1;

       if t_err =1 then
          Rollback; /* 有sql 错误 回滚 */
       else
          commit; /* 无 sql 错误 提交 */
       end if;
    

    end //

    Delimiter ;

    五、软件设计

    5.1登陆界面

    在这里插入图片描述

    图5-1-1 登陆界面
    在这里插入图片描述

    图5-1-2 登陆成功界面

    5.2学生成绩查询界面

    在这里插入图片描述

    图5-2-1 学生成绩查询界面图

    5.3教师界面

    在这里插入图片描述

    图5-3-1 教师界面图
    在这里插入图片描述

    图5-3-2 新增学生信息界面图
    在这里插入图片描述

    图5-3-3 更新学生信息界面图
    在这里插入图片描述

    图5-3-4 删除学生信息界面图

    六、项目设计总结

    通过学生成绩管理系统项目设计,加深了对数据库设计的理解,对于设计一个数据库项目的流程有了一定的概念。在这次项目设计中,回顾了以前很多的知识点,但是也发现了很多问题,最终解决了,所以也收获了很多。
    此次项目的设计让我们对Mysql数据库的了解更加深入,了解到了更多的知识点,也对Navicat软件有了一定的了解。在整个设计过程中,通过把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎么解决过程中遇到的问题,提高了我们查找文献的能力,对网络资源利用的能力与同学交流的能力。 项目最终开发出来的程序实现的功能比较简单,但也基本达到了项目设计的要求,可以看出设计程序的组员是花了不少心思的。
    最重要的是,这次数据库项目的设计,为我们以后程序开发的道路打下了扎实的基础。

    展开全文
  • 数据库课程设计报告-学生成绩管理系统引 言在现代,高科技的飞跃发展,计算机的大量普及,使得人们生活节奏越来越快。因此对教育行业的多元信息进行有效的管理工作,也成为教育行业中的重中之重。目前,学校工作繁杂...

    数据库课程设计报告-学生成绩管理系统

    引 言

    在现代,高科技的飞跃发展,计算机的大量普及,使得人们生活节奏越来越快。因此对教育行业的多元信息进行有效的管理工作,也成为教育行业中的重中之重。目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。为各高校教务工作人员减轻负,提高工作效率,所以制作了学生成绩管理系统。

    学生成绩管理系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。比较系统地对教务、教学上的各项服务和信息进行管理,使数据管理更现代化、自动化、智能化、人性化。同时,减轻了学院教务人员管理的工作量,缩小开支,提高工作效率和准确率,使其变得更具有条理性,科学性,为教育行业做出了巨大的贡献,也为今天的民办教育在未来市场的竞争力有所提高。

    学生成绩管理系统使用了全新的成绩管理理念,系统从完善的基础信息管理,和对创建新用户、已创建的成绩数据的录入,修改,浏览,统计等功能操作,基本能够满足各高校教师的需要。

    一、需求分析

    1.1 建立一个数据库,然后在此数据库中数据表。 建立ssh数据库创建学生表和老师表课程表 1.2 向表中添加记录。 向学生表和老师表中加入信息

    1.3 用一些查询语句来查看表中的特定记录。 查询学生表和老师表的信息 1.4 向表中添加一些字段。 向teacher表中添加字段 tel 1.5 创建几个视图 查询某个班级的学生信息 查看每门课程的平均成绩 1.6 创建几个存储过程

    显示成绩表中的课程号在课程表中且所任教师性别为男、计算机系的成绩表 显示某学生的学号,姓名,所学课程号,课程名称和对应的成绩

    在执行此存储过程时,如果没有给出参数(学生姓名),则输入全部的学生的学号,姓名,班级,任课教师编号及其姓名,所学课程名称和成绩,如果有,显示此学生的以上信息。 1.7 创建触发器

    在成绩表中建立一个触发器,当向表中添加记录时,此学生的成绩都乘以1.2 检查学生的邮箱地址是否相同。 1.8 创建自定义函数

    创建自定义函数,输出与指定的学生同班的学生个数,输出同一个班级中的学生信息。

    展开全文
  • 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单 (2)各菜单项功能 ① 成绩录入:输入学生的学号、...
  • 题目 学生考试管理系统 班级 姓名 学号 指导老师 目 录 一前言2 二需求分析3 三系统设计5 四数据库设计7 五编程步骤19 六测试25 七课程设计总结33 八参考资料34 九附录34 一前言 学生考试管理是一个学校必不可少的...
  • 课程成绩管理系统,可以用集中的数据库将与人力资源管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析报告...
  • JINGCHU UNIVERSITY OF TECHNOLOGY PHP学生成绩管理系统 学 院计算机工程学院 学 号 学 生 姓 名朱钟雄 年 级 专 业 12 计算机应用技术 班 级计算机应用技术 2 班 指 导 教 师沈成涛 日 期 2014 年 12 月 20 日 目 ...
  • 学号《》课程设计报告学校家教服务管理系统专业:网络工程班级:姓名:指导教师:2017-2018成绩:计算机学院2017年12月8号一 绪论1.1问题描述1.2开发的目的二 家教服务管理系统分析2.1需求分析2.2系统功能结构2.3...

    学号

    《》

    课程设计报告

    学校家教服务管理系统专业:网络工程班级:姓名:指导教师:2017-2018成绩:

    计算机学院

    2017年12月8号一 绪论

    1.1问题描述

    1.2开发的目的

    二 家教服务管理系统分析

    2.1需求分析

    2.2系统功能结构

    2.3系统概要设计

    2.4数据流图

    2.5业务流程图

    2.6数据流程图

    2.7数据字典

    三 数据库设计

    3.1数据库概念结构设计

    3.2 全局E-R图

    四 逻辑设计

    4.1转换关系模式

    4.2分析范式级别

    五 数据库的实现

    六 总结

    、绪论

    题目:学校家教服务管理系统

    学校家教服务管理系统 实现教师信息、职业类型管理; 实现职业登记(职业号、名称、地址、电话等); 实现职业作息登记(职业号、日期、开始时间、结束时间、教师); 实现工资管理和收费管理; 创建存储过程统计指定日期范围内各的时刻时间总和; 创建存储过程统计各种职业的需求次数; 创建 check 约束限制教师性别必须输入‘男’或‘女’; 建立表间关系。

    2.4 数据流图

    2.5业务流程图

    2.6数据流程图

    2.7数据字典

    数据结构及数据项的描述15————教师结束教课时间S00304工作时间datetime15————教师工作时间S00305日期datetime15————上课日期

    数据结构编号:S004

    数据结构名称:收费

    数据结构含义:收费管理

    数据结构组成

    编号名称含义类型长度取值范围取值含义S00401开始时间datetime15————教师开始教课时间S00402结束时间datetime15————教师结束教课时间S00403费用nvarchar10————

    数据结构编号:S005

    数据结构名称:工资

    数据结构含义:教师所挣的工资

    数据结构组成

    编号名称含义类型长度取值范围取值含义S00501职业号nvarchar8————S00502工资nvarchar10————教师所挣的工资

    数据流描述

    1.数据编号:D001

    数据流名:职业登记

    简 述:登记家教所必需的信息

    组 成:职业号、名称、地址、电话

    2.数据编号:D002

    数据流名:教师信息

    简 述:登记家教所必需的信息

    组 成:姓名、性别、电话、科目、地址

    3.数据编号:D003

    数据流名:职工作息

    简 述:登记家教所必需的信息

    组 成:开始时间、结束时间、日期、职工号、工作时间

    4.数据编号:D004

    数据流名:收费

    简 述:登记家教所必需的信息

    组 成:开始时间、结束时间、费用

    5.数据编号:D005

    数据流名:工资

    简 述:登记家教所必需的信息

    组 成:职工号、工资

    (3)数据存储描述

    数据存储编号:D1

    数据存储名称: 教师职业表

    简述:管理人员登记的教师职业信息

    数据存储组成:职业号、名称、地址、电话

    数据存储编号D2

    数据存储名称: 教师信息表

    简述:管理员登记的教师基本信息

    数据存储组成:姓名、性别、电话、科目、地址

    数据存储编号:D3

    数据存储名称:作息表

    简述:教师主要信息和资料

    数据存储组成:开始时间、结束时间、日期、职工号、工作时间

    数据存储编号:D4

    数据存储名称: 收费表

    简述:管理员向用户收取的各项费用

    数据存储组成:开始时间、结束时间、费用

    数据存储编号:D5

    数据存储名称:工资表

    简述:根据教师的授课安排进行工资核算

    数据存储组成:职工号、工资

    (4)处理过程的描述

    处理逻辑编号:P001

    处理逻辑名称:职业登记

    简述:对教师所教课程进行登记

    处理描述:教师所教职业进行登记,登记职工号、名称、地址和电话等

    处理逻辑编号:P002

    处理逻辑名称:信息登记

    简述:对教师基本信息进行登记

    处理逻辑编号:P003

    处理逻辑名称:授课安排

    简述:根据教师信息表和教师职业表对教师的授课进行安排

    处理逻辑编号:P004

    处理逻辑名称:收费统计

    简述:根据教师和其授课时间进行收费管理

    处理逻辑编号:P005

    处理逻辑名称:工资核算

    简述:根据收费表对教师的工资进行核算

    三、数据库设计

    3.1 数据库概念结构设计

    根据

    展开全文
  • 1.1 编写目的:本学生成绩管理系统模块是为了实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过试用本系统,可以更加有效的管理学生成绩信息,其中包括学生的基本信息,成绩信息并且具有信息的增加,...
  • 设计一个统计程序按名次产生各种成绩单、得分报表。 2)基本要求: 产生各学校成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体...
  • 系统概述:通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。 基本要求: 1、完成进学生、班级、课程表的...
  • 本科生毕业论文(设计)开题报告 本课题的目的与研究意义 随着社会的发展和经济时代的到来,我国的教育体制不断的改革创新,自从国家实施大众化教育实行扩招以来,生源不断壮大,我国学生数量急剧增大,学校管理就成...
  • 中学生成绩管理信息系统是面向中学的管理系统,其目的是提高中学对中学生的科学化管理。本文针对中学的管理现状和要求,从理论和应用的角度论述了中学生成绩管理信息系统的特点、功能、设计思路,并给出关键技术实现...
  • 目录: 一、 前提与摘要 二、 课程设计的目的和要求 ...学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的教师、学生和管理者来说都至关重要。本论文叙述到的学生成绩管理系统是用JSP网页编程+S...

    目录:
    一、 前提与摘要
    二、 课程设计的目的和要求
    三、 系统分析与设计
    四、 实现与测试
    五、 主要源代码
    六、 遇到的问题和解决方法
    七、 存在的不足和改进的思路

    『18.12.28更新』
    文末更新下载方式,供参考学习交流
    『18.12.19更新』
    优化界面;
    优化平均成绩和总成绩获取方式;
    优化主页跳转方式;
    新增回到顶部小火箭;

    登录.png

    管理员登录.png

    管理员界面.png

    全部成绩

    学生登录.png

    学生登录成功.png

    学生信息录入界面.png

    查找列表界面.png
    ——————————————————————————————————————————————

    ###一、前提与摘要
    学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的教师、学生和管理者来说都至关重要。本论文叙述到的学生成绩管理系统是用JSP网页编程+SQL查询语言实现的。重点介绍了学生成绩管理系统的实现过程:包括系统分析与设计、数据库设计、系统功能设计、系统实现、系统测试等。本系统主要功能有教师信息管理、学生信息管理、成绩管理,包括功能需求设计、数据库设计等内容。
    现在的社会日新月异,发展的非常快。学校的发展也在加快,老师和学生做为学校的最主要的管理对象,老师和学生的信息管理系统就成了学校信息化管理系统中不可缺少的部分,它的内容对于学校的组织管理至关重要。但一直以来人们使用传统人工的方式进行学生的档案管理,这种管理方式存在着许多缺点,如:效率低,容易出错,格式不规范。另外时间一长,不容易进行统计和分析。
    随着科学技术的不断提高,计算机科学日渐成熟,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。这些优点能够极大地提高学校学生档案管理的效率。因此,开发这样一套管理软件成为很有必要的事情。而且只要软件的设计合理,可以为学校提供合理的管理模式。
    摘要:学生成绩管理系统、JSP网页编程、SQL
    ###二、课程设计的目的和要求
    2.1 目的:

    该系统的具体任务就是设计一个学生成绩的数据库管理系统,由计算机来代替人工执
    行一系列诸如对教师、学生信息以及学生成绩的增加、删除、查询和修改的处理操作,以
    方便对以上信息的管理组织工作。
    建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现
    代化水平。帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范
    化和自动化

    2.2 要求:

    网上学生成绩管理系统
    实现学生信息的输入
    实现课程的输入
    实现成绩的输入
    实现成绩的查询(按照姓名、学号等信息查询)
    实现成绩的统计(平均分的统计、总成绩的统计)

    ###三、 系统分析与设计
    #####3.1 数据库设计
    学生表的设计:(学号,姓名,密码,性别,家庭住址,成绩,备注)
    学生数据

    管理员表的设计:(id,名字,密码)
    管理员数据

    #####3.2 业务流程设计
    业务流程设计.jpg

    #####3.3 用例图设计
    用例.jpg

    #####3.4 类与页面逻辑对应关系图设计

    mulu

    #####3.5 项目截图
    项目截图.png

    ###四、 实现与测试

    ###4.1 实现步骤:
    #####4.1.1 配置数据库
    1️⃣首先在mysql内建立连接并记住端口号和数据库用户名和账号
    屏幕快照 2018-12-15 下午8.59.12.png

    2️⃣创建数据库test(注:本项目只用到了stu和mgr两个表,user是测试用)
    数据库建立.png

    3️⃣输入以下代码创建学生表stu:(同理创建管理员表mgr,其中insert values的值自己定义)

    
        use test;
        CREATE TABLE `stu` (
          `id` int(11) NOT NULL auto_increment,
          `name` varchar(255) NOT NULL,
          `pwd` varchar(255) NOT NULL,
          `sex` varchar(255) NOT NULL,
          `home` varchar(255) NOT NULL,
          `grades` varchar(255),
          `info` varchar(255) NOT NULL,
          PRIMARY KEY  (`id`)
        ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
        INSERT INTO `stu` VALUES ('1', 'stu1', '123', 'men', 'here', '0','i am the data-manerger');
        INSERT INTO `stu` VALUES ('2', 'stu2','123','women','there','100','she is a good girl');
    
    

    管理员数据库.png

    学生数据库.png

    4.1.2 在webroot下的WEB-INF下的lib中导入mysql的驱动jar包

    jar包.png

    导入jar.png

    #####4.1.2 类的编写
    创建一下五个类包:
    类包
    五个类包作用:
    ①dao:数据库操作的对象,用于使相关数据库操作更简单(有关Dao模式的文章https://blog.csdn.net/dragon_dai_2017/article/details/76937553)

    ②entity:相当于Javabean,用于抽象数据结构

    ③filter:过滤器,用于过滤字符(当然也可以自己编写过滤IP等操作,详见:https://www.jianshu.com/p/1cf4ab2f7e21)

    ④servlet:业务逻辑实体类,用于执行对应JSP页面的业务逻辑,完成MVC中C的相关操作

    ⑤util:用于连接数据库(相关连接数据库的操作详见https://blog.csdn.net/yanglong_blog_/article/details/73733176)

    在五个类包中编写相关代码:
    1️⃣dao包中:
    创建一个接口类 StuDao.java,用于规范化数据库相关操作

    //StuDao.java
    package com.dao;
    
    import java.util.List;
    import com.entity.Stu;
    
    
    public interface StuDao {
    	
    	
    	//1.注册
    	public boolean register(Stu stu);
    	
    	//2.登录
    	public boolean stulogin(String name,String pwd);
    	public boolean mgrlogin(String name,String pwd);
    		
    	//3.返回学生信息集合
    	public List<Stu> getStuAll();
    	
    	//4.根据用户名返回某个用户信息集合
    	public List<Stu> getStuByName(String namestr);
    	
    	//5.根据学号返回某个用户信息集合
    	public List<Stu> getStuById(String IdStr);
    	
    	//6.根据id删除用户
    	public boolean delete(int id) ;
    	
    	//7.更新用户信息
    	public boolean update(int id,String name, String pwd,String sex, String home, String grades,String info);
    	
    	//8.求成绩总和
    	public int sum();
    	
    	//9.求成绩平均
    	public int avg();
    }
    

    再创建StuDao的实现类StuDaoImpl.java(自动忽略我的相关测试用的输出语句哈哈)

    package com.dao;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
     
    import com.entity.Stu;
    import com.util.DBconn;
     
    public class StuDaoImpl implements StuDao{
    	//1.注册
    		public boolean register(Stu stu) {
    			boolean flag = false;
    			DBconn.init();
    			int i =DBconn.addUpdDel("insert into stu(name,pwd,sex,home,grades,info) " +
    					"values('"+stu.getName()+"','"+stu.getPwd()+"','"+stu.getSex()+"','"+stu.getHome()+"','"+stu.getGrades()+"','"+stu.getInfo()+"')");
    			if(i>0){
    				flag = true;
    			}
    			DBconn.closeConn();
    			return flag;
    		}
    		//2.登录(学生与管理员的区别是查找的表不一样)
    		//(学生)
    	    public boolean stulogin(String name, String pwd) {
    			boolean flag = false;
    			try {
    				    DBconn.init();
    					ResultSet rs = DBconn.selectSql("select * from stu where name='"+name+"' and pwd='"+pwd+"'");
    					while(rs.next()){
    						if(rs.getString("name").equals(name) && rs.getString("pwd").equals(pwd)){
    							flag = true;
    						}
    					}
    					DBconn.closeConn();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			return flag;
    		}
    	  //(管理员)
    	    public boolean mgrlogin(String name, String pwd) {
    			boolean flag = false;
    			try {
    				    DBconn.init();
    					ResultSet rs = DBconn.selectSql("select * from mgr where name='"+name+"' and pwd='"+pwd+"'");
    					while(rs.next()){
    						if(rs.getString("name").equals(name) && rs.getString("pwd").equals(pwd)){
    							flag = true;
    						}
    					}
    					DBconn.closeConn();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			return flag;
    		}
    	  //3.返回用户信息集合
    		public List<Stu> getStuAll() {
    			List<Stu> list = new ArrayList<Stu>();
    	    	try {
    			    DBconn.init();
    				ResultSet rs = DBconn.selectSql("select * from stu");
    				
    				while(rs.next()){
    					Stu stu = new Stu();
    					stu.setId(rs.getInt("id"));
    					stu.setName(rs.getString("name"));
    					stu.setPwd(rs.getString("pwd"));
    					stu.setSex(rs.getString("sex"));
    					stu.setHome(rs.getString("home"));
    					stu.setGrades(rs.getString("grades"));
    					stu.setInfo(rs.getString("info"));
    					list.add(stu);
    				}
    				DBconn.closeConn();
    				return list;
    			} catch (SQLException e) {
    				e.printStackTrace();
    				System.out.print("错误");
    			}
    			return null;
    		}
    		
    		//4.根据用户名返回某个用户信息集合
    		public List<Stu> getStuByName(String namestr)
    		{
    			List<Stu> list = new ArrayList<Stu>();
    	    	try {
    			    DBconn.init();
    				ResultSet rs = DBconn.selectSql("select * from stu where name='"+namestr+"'");
    				while(rs.next()){
    					Stu stu = new Stu();
    					stu.setId(rs.getInt("id"));
    					stu.setName(rs.getString("name"));
    					stu.setPwd(rs.getString("pwd"));
    					stu.setSex(rs.getString("sex"));
    					stu.setHome(rs.getString("home"));
    					stu.setGrades(rs.getString("grades"));
    					stu.setInfo(rs.getString("info"));
    					list.add(stu);
    				}
    				//DBconn.closeConn();
    				return list;
    			} catch (SQLException e) {
    				System.out.println("查询的用户可能不存在!");
    				e.printStackTrace();
    				
    			}finally{
    				DBconn.closeConn();
    			}
    			return null;
    			
    		}
    		
    		//5.根据学号返回某个用户信息集合
    		   public List<Stu> getStuById(String IdStr)
    				{
    					List<Stu> list = new ArrayList<Stu>();
    			    	try {
    					    DBconn.init();
    						ResultSet rs = DBconn.selectSql("select * from stu where id='"+IdStr+"'");
    						while(rs.next()){
    							Stu stu = new Stu();
    							stu.setId(rs.getInt("id"));
    							stu.setName(rs.getString("name"));
    							stu.setPwd(rs.getString("pwd"));
    							stu.setSex(rs.getString("sex"));
    							stu.setHome(rs.getString("home"));
    							stu.setGrades(rs.getString("grades"));
    							stu.setInfo(rs.getString("info"));
    							list.add(stu);
    						}
    						DBconn.closeConn();
    						return list;
    					} catch (SQLException e) {
    						e.printStackTrace();
    					}
    					return null;
    					
    				}
    				
    		   
    		//6.更新用户信息
    		public boolean update(int id,String name, String pwd,String sex, String home, String grades,String info) {
    			boolean flag = false;
    			DBconn.init();
    			String sql ="update stu set name ='"+name
    					+"' , pwd ='"+pwd
    					+"' , sex ='"+sex
    					+"' , home ='"+home
    					+"' , grades ='"+grades
    					+"' , info ='"+info+"' where id = "+id;
    			int i =DBconn.addUpdDel(sql);
    			if(i>0){
    				flag = true;
    			}
    			DBconn.closeConn();
    			return flag;
    		}
    		
    		//7.根据id删除用户
    		public boolean delete(int id) {
    			boolean flag = false;
    			DBconn.init();
    			String sql = "delete  from stu where id="+id;
    			int i =DBconn.addUpdDel(sql);
    			if(i>0){
    				flag = true;
    			}
    			DBconn.closeConn();
    			return flag;
    		}
    		
    		//8.求成绩总和
    		public int sum(){
    			int sum = 0;
    			try {
    				    DBconn.init();
    				    
    					ResultSet rs = DBconn.selectSql("SELECT SUM(grades) FROM stu");
    					while(rs.next()){
    						System.out.print("进来了1");
    						if(rs.getInt("SUM(grades)")!=0){
    							System.out.print("进来了2");
    							sum = rs.getInt("SUM(grades)");
    						}
    					}
    					
    					DBconn.closeConn();
    					return sum;	
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    			return 0;
    		}
    		
    		//9.求成绩平均
    		public int avg(){
    			int avg = 0;
    			try {
    				    DBconn.init();
    				    
    					ResultSet rs = DBconn.selectSql("SELECT AVG(grades) FROM stu");
    					while(rs.next()){
    						System.out.print("进来了1");
    						if(rs.getInt("AVG(grades)")!=0){
    							System.out.print("进来了2");
    							avg = rs.getInt("AVG(grades)");
    						}
    					}
    					
    					DBconn.closeConn();
    					return avg;	
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    			return 0;
    		}
    		
    		
    	    
    
    }
    

    ②entity中:
    创建Stu.java(功能就是javabean)

    package com.entity;
    
    public class Stu {
    	 private int id;
    	    private String name;
    	    private String pwd;
    	    private String sex;
    	    private String home;
    	    private String info;
    	    private String grades;
    	    
    		public int getId() {
    			return id;
    		}
    		public void setId(int id) {
    			this.id = id;
    		}
    		public String getName() {
    			return name;
    		}
    		public void setName(String name) {
    			this.name = name;
    		}
    		public String getPwd() {
    			return pwd;
    		}
    		public void setPwd(String pwd) {
    			this.pwd = pwd;
    		}
    		public String getSex() {
    			return sex;
    		}
    		public void setSex(String sex) {
    			this.sex = sex;
    		}
    		public String getHome() {
    			return home;
    		}
    		public void setHome(String home) {
    			this.home = home;
    		}
    		public String getInfo() {
    			return info;
    		}
    		public void setInfo(String info) {
    			this.info = info;
    		}
    		public String getGrades() {
    			return grades;
    		}
    		public void setGrades(String grades) {
    			this.grades = grades;
    		}
    	    
    }
    

    ③filter中:
    创建过滤器EncodingFilter

    //字符编码的过滤器
    package com.filter;
     
    import java.io.IOException;
     
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
     
    public class EncodingFilter implements Filter{
    	public EncodingFilter(){
    		System.out.println("过滤器构造");
    	}
    	public void destroy() {
    		System.out.println("过滤器销毁");
    	}
    	public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
    		request.setCharacterEncoding("utf-8"); //将编码改为utf-8
    		response.setContentType("text/html;charset=utf-8");
    		chain.doFilter(request, response);
    	}
     
    	public void init(FilterConfig arg0) throws ServletException {
    		System.out.println("过滤器初始化");
    	}
     
    }
    

    ④servlet中创建一下类:
    AddupServlet(用于录入学生信息)

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
    import com.entity.Stu;
    
    /**
     * Servlet implementation class AddupServlet
     */
    @WebServlet("/AddupServlet")
    public class AddupServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		
    		String name = request.getParameter("name"); //获取jsp页面传过来的参数
    		String pwd = request.getParameter("pwd");
    		String sex = request.getParameter("sex");
    		String home = request.getParameter("home");
    		String grades = request.getParameter("grades");
    		String info = request.getParameter("info");
    		
    		Stu stu = new Stu(); //实例化一个对象,组装属性
    		stu.setName(name);
    		stu.setPwd(pwd);
    		stu.setSex(sex);
    		stu.setHome(home);
    		stu.setGrades(grades);
    		stu.setInfo(info);
    		
    		StuDao ud = new StuDaoImpl();
    		
    		if(ud.register(stu)){
    			request.setAttribute("username", name);  //向request域中放置参数
    			request.setAttribute("message", "录入成功");
    			request.getRequestDispatcher("/mgrsuccess.jsp").forward(request, response);  //转发到登录页面
    		}else{
    			
    			response.sendRedirect("error.jsp");//重定向到首页
    		}
    	}
    
    }
    
    

    DeleteServlet(在管理所有学生的界面执行删除某个学生记录的操作)

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
    
    /**
     * Servlet implementation class UpdateServlet
     */
    @WebServlet("/UpdateServlet")
    public class UpdateServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		
    		String id = request.getParameter("id");
    		int userId = Integer.parseInt(id);
    		
    		String name = request.getParameter("name");
    		String pwd = request.getParameter("pwd");
    		String sex = request.getParameter("sex");
    		String home = request.getParameter("home");
    		String grades = request.getParameter("grades");
    		String info = request.getParameter("info");
    		
    		System.out.println("------------------------------------"+userId);
    		
    		StuDao ud = new StuDaoImpl();//数据库的操作对象
    		if(ud.update(userId, name, pwd, sex, home, grades,info)){
    			request.setAttribute("message", "更新成功");
    			request.getRequestDispatcher("/SearchallServlet").forward(request, response);
    		}else{
    			response.sendRedirect("error.jsp");
    		}
    	}
    }
    
    

    UpdateServlet(在管理所有学生的界面执行更新某个学生记录的操作)

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
    
    /**
     * Servlet implementation class UpdateServlet
     */
    @WebServlet("/UpdateServlet")
    public class UpdateServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		
    		String id = request.getParameter("id");
    		int userId = Integer.parseInt(id);
    		
    		String name = request.getParameter("name");
    		String pwd = request.getParameter("pwd");
    		String sex = request.getParameter("sex");
    		String home = request.getParameter("home");
    		String grades = request.getParameter("grades");
    		String info = request.getParameter("info");
    		
    		System.out.println("------------------------------------"+userId);
    		
    		StuDao ud = new StuDaoImpl();//数据库的操作对象
    		if(ud.update(userId, name, pwd, sex, home, grades,info)){
    			request.setAttribute("message", "更新成功");
    			request.getRequestDispatcher("/SearchallServlet").forward(request, response);
    		}else{
    			response.sendRedirect("error.jsp");
    		}
    	}
    }
    
    

    FindByIdServlet(通过学生Id来查找学生相关信息)

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
    
    /**
     * Servlet implementation class FindByIdServlet
     */
    @WebServlet("/FindByIdServlet")
    public class FindByIdServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public FindByIdServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		response.getWriter().append("Served at: ").append(request.getContextPath());
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    
    		String id = request.getParameter("id");
    		
    		StuDao ud = new StuDaoImpl();
    		
    		if(id!= "") {
    			if(ud.getStuById(id).isEmpty()) 
    			{
    				System.out.println("查询到的为空值");
    				response.sendRedirect("error.jsp");
    			}else 
    			{
    				request.setAttribute("findlist", ud.getStuById(id));  //向request域中放置参数
    				request.setAttribute("message", " 查找成功");
    				request.getRequestDispatcher("/findlist.jsp").forward(request, response);  //转发到登录页面
    			}
    		}else {
    			response.sendRedirect("error.jsp");
    		}
    
    
    }
    }
    
    

    FindServlet(通过学生姓名查找相关信息)

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
    
    /**
     * Servlet implementation class FindServlet
     */
    @WebServlet("/FindServlet")
    public class FindServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public FindServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		response.getWriter().append("Served at: ").append(request.getContextPath());
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    		String name = request.getParameter("name"); 
    		
    		StuDao ud = new StuDaoImpl();
    		
    		if(name != "") {
    			if(ud.getStuByName(name).isEmpty()) 
    			{
    				System.out.println("查询到的为空值");
    				response.sendRedirect("error.jsp");
    			}else 
    			{
    				request.setAttribute("findlist", ud.getStuByName(name));  //向request域中放置参数
    				request.setAttribute("message", " 查找成功");
    				request.getRequestDispatcher("/findlist.jsp").forward(request, response);  //转发到登录页面
    			
    			}		
    		}else {
    			response.sendRedirect("error.jsp");
    		}
    	
    		
    	}
    
    }
    
    

    MgrLoginServlet(管理员登录的业务逻辑)

    package com.servlet;
     
    import java.io.IOException;
    //import java.io.PrintWriter;
     
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
     
    @WebServlet("/MgrLoginServlet")
    //用来实现对用户登录的操作
    public class MgrLoginServlet extends HttpServlet {  
    	private static final long serialVersionUID = 1L;
    	//需要继承HttpServlet  并重写doGet  doPost方法
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);  //将信息使用doPost方法执行   对应jsp页面中的form表单中的method
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		
    		String name = request.getParameter("name"); //得到jsp页面传过来的参数
    		String pwd = request.getParameter("pwd");
    		
    		StuDao ud = new StuDaoImpl();
    		
    		if(ud.mgrlogin(name, pwd)){
    			request.setAttribute("message", "欢迎管理员"+name); //向request域中放置信息
    			request.getRequestDispatcher("/mgrsuccess.jsp").forward(request, response);//转发到成功页面
    		}else{
    			response.sendRedirect("error.jsp"); //重定向到error页面
    		}
    	}
     
    }
    
    
    

    SearchallServlet(管理员管理所有学生的类)

    package com.servlet;
    
    import java.io.IOException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
    import com.entity.Stu;
    
    /**
     * Servlet implementation class SearchallServlet
     */
    @WebServlet("/SearchallServlet")
    public class SearchallServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		
    		
    		StuDao ud = new StuDaoImpl();//定义数据库操作类的对象
    		List<Stu> stuAll = ud.getStuAll();//获取到所有的对象并且存储到list里
    		request.setAttribute("stuAll", stuAll);
    		
    		//求和
    		int sum = ud.sum();
    		request.setAttribute("sum", sum);
    		
    		//求平均
    		int avg = ud.avg();
    		request.setAttribute("avg", avg);
    		
    		request.getRequestDispatcher("/mgrall.jsp").forward(request, response);
    	}
    }
    
    

    StuLoginServlet(学生登录的页面)

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.dao.StuDao;
    import com.dao.StuDaoImpl;
    
    /**
     * Servlet implementation class StuLoginServlet
     */
    @WebServlet("/StuLoginServlet")
    public class StuLoginServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	//需要继承HttpServlet  并重写doGet  doPost方法
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);  //将信息使用doPost方法执行   对应jsp页面中的form表单中的method
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		
    		String name = request.getParameter("name"); //得到jsp页面传过来的参数
    		String pwd = request.getParameter("pwd");
    		
    		StuDao ud = new StuDaoImpl();
    		
    		if(ud.stulogin(name, pwd)){
    			request.setAttribute("message", "欢迎学生用户"+name); //向request域中放置信息
    			request.setAttribute("name", name);
    			request.getRequestDispatcher("/stusuccess.jsp").forward(request, response);//转发到成功页面
    		}else{
    			response.sendRedirect("error.jsp"); //重定向到error页面
    		}
    	}
    }
    
    

    ⑤util包中创建:
    DBconn.java(链接数据库的方法,注意其中的用户名密码要和你之前配置数据库的要一致)

    //数据库连接的类
    package com.util;
     
    import java.sql.*;
     
    public class DBconn {
    	static String url = "jdbc:mysql://localhost:3306/test?useunicuee=true& characterEncoding=utf8"; 
    	static String username = "root"; 
    	static String password = "363316495"; 
    	static Connection  conn = null;
    	static ResultSet rs = null;
    	static PreparedStatement ps =null;
    	public static void init(){
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			conn = DriverManager.getConnection(url,username,password);
    		} catch (Exception e) {
    			System.out.println("init [SQL驱动程序初始化失败!]");
    			e.printStackTrace();
    		}
    	}
    	public static int addUpdDel(String sql){
    		int i = 0;
    		try {
    			PreparedStatement ps =  conn.prepareStatement(sql);
    			i =  ps.executeUpdate();
    		} catch (SQLException e) {
    			System.out.println("sql数据库增删改异常");
    			e.printStackTrace();
    		}
    		
    		return I;
    	}
    	public static ResultSet selectSql(String sql){
    		try {
    			ps =  conn.prepareStatement(sql);
    			rs =  ps.executeQuery(sql);
    		} catch (SQLException e) {
    			System.out.println("sql数据库查询异常");
    			e.printStackTrace();
    		}
    		return rs;
    	}
    	public static void closeConn(){
    		try {
    			conn.close();
    		} catch (SQLException e) {
    			System.out.println("sql数据库关闭异常");
    			e.printStackTrace();
    		}
    	}
    }
    

    #####4.1.3 页面的编写
    addup.jsp (学生信息录入)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>学生信息录入</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <form action="AddupServlet"method="post" style="padding-top:-700px;">
    	   输入用户名:<input name="name" type="text"><br><br>
    	   输入密码:<input name="pwd" type="password"><br><br>
    	   选择性别:<input type="radio"name="sex"value="men"checked>男
    	        <input type="radio"name="sex"value="women">女<br><br>
    	   选择家乡:
    	   <select name="home">
    		   <option value="ShangHai">ShangHai</option>
    		   <option value="Beijing" selected>Beijing</option>
    		   <option value="ChangSha">ChangSha</option>
       		</select><br>
       		输入成绩:<input name="grades" type="text"><br><br>
            填写个人信息:<br>
    	   <textarea name="info" row="5" cols="30"></textarea><br>
    	   <input type="reset"value="重置"><input type="submit"value="录入">
    </form>
    </body>
    </html>
    

    error.jsp(错误页面)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>错误页面</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <h1>~(~ ̄▽ ̄)~出错啦!请尝试检查一下输入或者页面逻辑呦</h1>
    <a href="Index.jsp">回到首页</a>
    </body>
    </html>
    

    findlist.jsp(查找学生列表)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
        
     <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>查找列表</title>
    </head>
    <body>
      <%-- <h1>${message}</h1> --%>
    
        <table  width="200" border="1" cellpadding="0" >
      		<tr>
      			<th>ID</th>
    	  		<th>姓名</th>
    	  		<th>性别</th>
    	  		<th>密码</th>
    	  		<th>家乡</th>
    	  		<th>成绩</th>
    	  		<th>备注</th>
      		</tr>
    
         <c:forEach var="U" items="${findlist}"  > 
         
          <form action="UpdateServlet" method="post"> 
          
          	<tr>
    	       <td><input type="text" value="${U.id}" name="id" ></td>
    	       <td><input type="text" value="${U.name}" name="name"></td>
    	       <td><input type="text" value="${U.sex}" name="sex"></td>
    	       <td><input type="text" value="${U.pwd}" name="pwd"></td>
    	       <td><input type="text" value="${U.home}" name="home"></td>
    	       <td><input type="text" value="${U.grades}" name="grades"></td>
    	       <td><input type="text" value="${U.info}" name="info"></td>
    	  	 </tr>
    	   
        </form> 
       
        
        </c:forEach> 
        
    
        </table>
    
    </body>
    </html>
    

    index.jsp (主页入口)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>欢迎登陆zyz的学生管理系统</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <h1>欢迎登陆zyz的学生管理系统</h1>
    <a href="mgrlogin.jsp">管理员登录</a>
    <a href="stulogin.jsp">学生登录</a>
    </body>
    </html>
    

    mgrall.jsp(管理所有学生表)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
        
     <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>查找列表</title>
    </head>
    <body>
      <%-- <h1>${message}</h1> --%>
    
        <table  width="200" border="1" cellpadding="0" >
      		<tr>
      			<th>ID</th>
    	  		<th>姓名</th>
    	  		<th>性别</th>
    	  		<th>密码</th>
    	  		<th>家乡</th>
    	  		<th>成绩</th>
    	  		<th>备注</th>
      		</tr>
    
         <c:forEach var="U" items="${findlist}"  > 
         
          <form action="UpdateServlet" method="post"> 
          
          	<tr>
    	       <td><input type="text" value="${U.id}" name="id" ></td>
    	       <td><input type="text" value="${U.name}" name="name"></td>
    	       <td><input type="text" value="${U.sex}" name="sex"></td>
    	       <td><input type="text" value="${U.pwd}" name="pwd"></td>
    	       <td><input type="text" value="${U.home}" name="home"></td>
    	       <td><input type="text" value="${U.grades}" name="grades"></td>
    	       <td><input type="text" value="${U.info}" name="info"></td>
    	  	 </tr>
    	   
        </form> 
       
        
        </c:forEach> 
        
    
        </table>
    
    </body>
    </html>
    

    mgrlogin.jsp (管理员登录界面)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>管理员登录页面</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <h1>管理员登录页面</h1>
      <form action="MgrLoginServlet"  method="post"  style="padding-top:-700px;">
    		用户名:<input type="text" name="name"value=""><br><br>
     		密码:  <input type="password" name="pwd"value=""><br><br>
    	                <input type="submit"value="登录"name="Mgrlogin"><input type="reset"value="重置"><br>
      </form>
    </body>
    </html>
    

    mgrsuccess.jsp(管理员登录成功后的操作页面)

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>管理员登录成功</title>
        <link href="css/bootstrap.min.css" rel="stylesheet">
      </head>
      <body>
    			${message} <br>  
    			<a href="SearchallServlet">查看所有学生信息表</a>
    			<br/>
    		    <a href="addup.jsp">录入学生信息</a>
    
    	   <form action="FindServlet"method="post" style="padding-top:-700px;">
    	   输入用户名(按照用户名查找):<input name="name" type="text"><br><br>
    	   <input type="reset"value="重置"><input type="submit"value="查找">
    	   </form>
    	   
    
    	   <form action="FindByIdServlet"method="post" style="padding-top:-700px;">
    	   输入Id号(按照学号查找):<input name="id" type="text"><br><br>
    	   <input type="reset"value="重置"><input type="submit"value="查找">
    	   </form>
    			
      </body>
    </html>
    
    

    stulogin.jsp(学生登录页面)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>学生登录页面</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <h1>学生登录页面</h1>
    <form action="StuLoginServlet"  method="post"  style="padding-top:-700px;">
    		用户名:<input type="text" name="name"value=""><br><br>
     		密码:  <input type="password" name="pwd"value=""><br><br>
    	           <input type="submit"value="登录"name="Stulogin"><input type="reset"value="重置"><br>
    </form>
    </body>
    </html>
    

    stusuccess.jsp(学生登录成功后的查找我的成绩页面)

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>学生登录成功页面</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <h1>学生登录成功页面</h1>
    ${message} <br>
    <%-- ${name} --%>
    <% 
    String name = request.getParameter("name");	
    request.setAttribute("name", name);
    %>
    
    <form action="FindServlet"  method="post"  style="padding-top:-700px;">
    <!-- 定义了一个隐藏的输入框 -->
    <input type="hidden" name="name" value="${name}"><br>
    <input type="submit"value="查找我的成绩"name="Stulogin"><br>
    </form>
    			
    </body>
    </html>
    

    ###4.2 测试:

    主页.png

    管理员登陆成功操作界面.png

    管理所有学生表(包含更新和删除).png

    管理员登录界面.png

    学生信息录入.png

    按名Id查找.png

    学生登录界面.png

    学生登陆成功操作界面.png

    显示该学生成绩的页面 .png

    错误.png

    ###五、 主要源代码
    详见四:
    其中最重要的是相关数据的操作:(有可能屏幕前的你用的不是Mysql,那么你的sql语句可能能不太一样,现在你自己的数据库中试好了再来编写java代码)

    //1.注册
    		public boolean register(Stu stu) {
    			boolean flag = false;
    			DBconn.init();
    			int i =DBconn.addUpdDel("insert into stu(name,pwd,sex,home,grades,info) " +
    					"values('"+stu.getName()+"','"+stu.getPwd()+"','"+stu.getSex()+"','"+stu.getHome()+"','"+stu.getGrades()+"','"+stu.getInfo()+"')");
    			if(i>0){
    				flag = true;
    			}
    			DBconn.closeConn();
    			return flag;
    		}
    		//2.登录(学生与管理员的区别是查找的表不一样)
    		//(学生)
    	    public boolean stulogin(String name, String pwd) {
    			boolean flag = false;
    			try {
    				    DBconn.init();
    					ResultSet rs = DBconn.selectSql("select * from stu where name='"+name+"' and pwd='"+pwd+"'");
    					while(rs.next()){
    						if(rs.getString("name").equals(name) && rs.getString("pwd").equals(pwd)){
    							flag = true;
    						}
    					}
    					DBconn.closeConn();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			return flag;
    		}
    	  //(管理员)
    	    public boolean mgrlogin(String name, String pwd) {
    			boolean flag = false;
    			try {
    				    DBconn.init();
    					ResultSet rs = DBconn.selectSql("select * from mgr where name='"+name+"' and pwd='"+pwd+"'");
    					while(rs.next()){
    						if(rs.getString("name").equals(name) && rs.getString("pwd").equals(pwd)){
    							flag = true;
    						}
    					}
    					DBconn.closeConn();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			return flag;
    		}
    	  //3.返回用户信息集合
    		public List<Stu> getStuAll() {
    			List<Stu> list = new ArrayList<Stu>();
    	    	try {
    			    DBconn.init();
    				ResultSet rs = DBconn.selectSql("select * from stu");
    				
    				while(rs.next()){
    					Stu stu = new Stu();
    					stu.setId(rs.getInt("id"));
    					stu.setName(rs.getString("name"));
    					stu.setPwd(rs.getString("pwd"));
    					stu.setSex(rs.getString("sex"));
    					stu.setHome(rs.getString("home"));
    					stu.setGrades(rs.getString("grades"));
    					stu.setInfo(rs.getString("info"));
    					list.add(stu);
    				}
    				DBconn.closeConn();
    				return list;
    			} catch (SQLException e) {
    				e.printStackTrace();
    				System.out.print("错误");
    			}
    			return null;
    		}
    		
    		//4.根据用户名返回某个用户信息集合
    		public List<Stu> getStuByName(String namestr)
    		{
    			List<Stu> list = new ArrayList<Stu>();
    	    	try {
    			    DBconn.init();
    				ResultSet rs = DBconn.selectSql("select * from stu where name='"+namestr+"'");
    				while(rs.next()){
    					Stu stu = new Stu();
    					stu.setId(rs.getInt("id"));
    					stu.setName(rs.getString("name"));
    					stu.setPwd(rs.getString("pwd"));
    					stu.setSex(rs.getString("sex"));
    					stu.setHome(rs.getString("home"));
    					stu.setGrades(rs.getString("grades"));
    					stu.setInfo(rs.getString("info"));
    					list.add(stu);
    				}
    				//DBconn.closeConn();
    				return list;
    			} catch (SQLException e) {
    				System.out.println("查询的用户可能不存在!");
    				e.printStackTrace();
    				
    			}finally{
    				DBconn.closeConn();
    			}
    			return null;
    			
    		}
    		
    		//5.根据学号返回某个用户信息集合
    		   public List<Stu> getStuById(String IdStr)
    				{
    					List<Stu> list = new ArrayList<Stu>();
    			    	try {
    					    DBconn.init();
    						ResultSet rs = DBconn.selectSql("select * from stu where id='"+IdStr+"'");
    						while(rs.next()){
    							Stu stu = new Stu();
    							stu.setId(rs.getInt("id"));
    							stu.setName(rs.getString("name"));
    							stu.setPwd(rs.getString("pwd"));
    							stu.setSex(rs.getString("sex"));
    							stu.setHome(rs.getString("home"));
    							stu.setGrades(rs.getString("grades"));
    							stu.setInfo(rs.getString("info"));
    							list.add(stu);
    						}
    						DBconn.closeConn();
    						return list;
    					} catch (SQLException e) {
    						e.printStackTrace();
    					}
    					return null;
    					
    				}
    				
    		   
    		//6.更新用户信息
    		public boolean update(int id,String name, String pwd,String sex, String home, String grades,String info) {
    			boolean flag = false;
    			DBconn.init();
    			String sql ="update stu set name ='"+name
    					+"' , pwd ='"+pwd
    					+"' , sex ='"+sex
    					+"' , home ='"+home
    					+"' , grades ='"+grades
    					+"' , info ='"+info+"' where id = "+id;
    			int i =DBconn.addUpdDel(sql);
    			if(i>0){
    				flag = true;
    			}
    			DBconn.closeConn();
    			return flag;
    		}
    		
    		//7.根据id删除用户
    		public boolean delete(int id) {
    			boolean flag = false;
    			DBconn.init();
    			String sql = "delete  from stu where id="+id;
    			int i =DBconn.addUpdDel(sql);
    			if(i>0){
    				flag = true;
    			}
    			DBconn.closeConn();
    			return flag;
    		}
    		
    		//8.求成绩总和
    		public int sum(){
    			int sum = 0;
    			try {
    				    DBconn.init();
    				    
    					ResultSet rs = DBconn.selectSql("SELECT SUM(grades) FROM stu");
    					while(rs.next()){
    						System.out.print("进来了1");
    						if(rs.getInt("SUM(grades)")!=0){
    							System.out.print("进来了2");
    							sum = rs.getInt("SUM(grades)");
    						}
    					}
    					
    					DBconn.closeConn();
    					return sum;	
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    			return 0;
    		}
    		
    		//9.求成绩平均
    		public int avg(){
    			int avg = 0;
    			try {
    				    DBconn.init();
    					ResultSet rs = DBconn.selectSql("SELECT AVG(grades) FROM stu");
    					while(rs.next()){
    						System.out.print("进来了1");
    						if(rs.getInt("AVG(grades)")!=0){
    							System.out.print("进来了2");
    							avg = rs.getInt("AVG(grades)");
    						}
    					}
    					
    					DBconn.closeConn();
    					return avg;	
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			
    			return 0;
    		}
    

    ###六、 遇到的问题和解决方法
    过程中中主要遇到的小问题不少,原因主要是jsp域相关的问题。遇到的比较棘手的问题主要是:
    数据库语句编写错误到时数据库的增删改查错误
    屏幕快照 2018-12-12 上午9.16.22.png

    屏幕快照 2018-12-12 上午9.24.04.png
    解决

    "select * from mgr where name='"+name+"' and pwd='"+pwd+"'"
    

    一定要注意其中""与’'以及+等符号之间的关系,因为这里的aql语句是一个String,其中又用到了传入的参数,字符串拼接的时候一定要注意!

    ###七、 存在的不足和改进的思路
    1、界面的问题:解决思路是导入的一个css的包,然后在jsp页面引用了一下
    2、查询时未输入也可以录入的问题:思路是添加一个录入判断
    3、数据的中文问题:思路是更改字符编码

    项目下载:(更新下载方式)
    链接:https://download.csdn.net/download/weixin_40486026/10884068

    展开全文
  • 计算机技术基础C语言课程设 计一学生成绩管理系统 计算机技术基础课程设计 C语言 设计报告 题目学生成绩管理系统 选题背景 问题的提出在学校的学生管理工作过程中对学生的成绩统计管理是一个 非常必要的问题就此编写...
  • 目录 1 绪 论 1 1.1问题的提出 1 ...2.1.3 系统设计思想 3 2.1.4 系统设计分析 3 2.1.5系统功能分析 4 2.1.6学生学籍系统的目标 4 2.2基于B/S结构技术的应用 4 2.2.1B/S结构技术发展简述 4 2
  • 学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上...
  • vb成绩管理系统.zip

    2020-06-30 10:19:28
    vb成绩管理系统,大二课设里面含有实验报告。适用于vb.6.0软件,代码简单,内容丰富。前段时间才做的,学校一般的课程设计足够了,也没有很难的东西。
  • 计算机高级语言课程设计报告 学生成绩管理系统 班级 191142 班 学号 姓名 日期 2015 年 1 月 22 日 一 课程设计题目与要求 包括题目与系统功能要求 实习内容 C++ 语言面向对象的分析与设计 基本要求 学生成绩管理是...
  • 计算机高级语言课程设计报告 学生成绩管理系统 班级191142班 学号 姓名 日期2015年1月22日 一 课程设计题目与要求 包括题目与系统功能要求 实习内容 C++语言面向对象的分析与设计 基本要求 学生成绩管理是高等学校...
  • Java程序设计 实 习 报 告 2010年6月20号 1 目录 一实习题目 2 二实习目的 2 1社会需 2 ...5 八参考资料 6 2 一实习题目 学生信息管理系统设计与开发 二实习目的 1社会需求 一直以来学生的成绩管理学校工作中的一项
  • C#程序设计任务实训报告 本文描述的是基于Windows环境的学生信息管理系统主 要功能模块包括学生信查询学生信息管理学生成绩录入, 学生信息管理,主要工具Microsoft Visual Studio 2008 设计 窗体, Access建立数据库,...
  • 这个C 作业主要是编写一个学生成绩管理系统,资料中包括了实验文档报告和项目源代码,项目代码并不多,对学习有帮助。  1.设计目的:用计算机完成对学生成绩的管理。包括对计算机所储存信息的查询、修改、删除、统计...
  • 任务要求这是学校布置的一个 c 语言课题设计作业,任务要求如下: 用一个结构体数组存放 5 个学生 3 门课的成绩。要求建立 5 个子函数分别实现题目的5步。 1. 输入 5 个学生 3 门课的成绩存入结构体数组中; 2. 输出...
  • 学生信息管理系统设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,毕业论文15000字,程序代码,MySQL数据库)学生信息管理系统的开发工具是MyEclipse。数据库是基于MYSQL设计的。学校管理人员可以...
  • 任务要求这是学校布置的一个 c 语言课题设计作业,任务要求如下: 用一个结构体数组存放 5 个学生 3 门课的成绩。要求建立 5 个子函数分别实现题目的5步。 1. 输入 5 个学生 3 门课的成绩存入结构体数组中; 2. 输出...
  • 学生成绩管理系统设计与实现(MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文10000字,程序代码,MySQL数据库)随着信息技术的发展、电脑化教学与远程的网络化教学的普及,使得基于WEB技术的教学管理...
  • 学生信息管理系统设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,毕业论文15000字,程序代码,MySQL数据库)学生信息管理系统的开发工具是MyEclipse。数据库是基于MYSQL设计的。学校管理人员可以...
  • C语言课程设计报告—班级成绩管理系统 需要分析: 学生成绩管理系统有13种功能。把这13个功能做成13个子函数。在主函当数中设计一个菜单对这13个子数进行管理。来实现对整个系统的操作。 根据课题的要求。每一个...
  • 实训报告 学 号 姓 名 班 级 指导老师 项目计划 项目名称学生信息管理系统 实训地点 3小组成员 系统总体设计 1需求分析 学生信息管理系统是对学生的个人信息课程信息成绩信息以信息化的方式进行管理最大限度地减少...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

学校成绩管理系统设计报告