html5学生信息注册码,JavaScript+HTML实现学生信息管理系统

一、前言

用数组来存储所有学生对象的信息,实现了双向更新,初始时(数组内的对象信息“填充界面”),后面的界面操作可以更新数组内对象的信息(数量和本身数据域信息)。

优点:JQuery代码处理的许多细节较好。

使用HTML5的pattern+正则表达式,实现表单验证以及相应提示。

缺点:后台删除学生对象的信息代码处理效率较低(“假”删除:移动学生对象索引的位置+变换数组长度)。

CSS部分――界面的缩放存在问题。(没打算走前端/暂时懒得修改)。.

部分代码可以更好的处理已达到复用的目的,未处理。

二、效果图

ca1750671d04dfc3b33e38f7c54d3898.png

三、代码

没有删去写代码过程中做改进之前的代码,看上去代码有点长(保留了写代码的思考过程)

删去注释了的代码以及一些不必要的内容,代码也不是太长。

HTML:

Student Information Management System

学生信息管理系统


新增

删除

序号学号姓名学院专业年级班级年龄操作

新增学生信息

学号
姓名
学院
专业
年级
班级
年龄

提交

取消

修改学生信息

学号
姓名
学院
专业
年级
班级
年龄

保存

取消

查看学生信息

学号
姓名
学院
专业
年级
班级
年龄

取消

CSS:

* {

margin: 0;

padding: 0;

}

a {

text-decoration: none;

color: red;

}

.sbg {

position: absolute;

top: 0;

width: 100%;

height: 100%;

background-color: black;

opacity: 0.4;

z-index: 1;

}

body {

background-color: #f0ece9;

}

header {

display: flex;

flex-flow: row nowrap;

justify-content: space-between;

}

header h1 {

color: #9a9897;

}

header hr {

margin: 20px 20px 0;

background-color: #bc9470;

border: 2px solid #bc9470;

width: 30%;

height: 0;

}

main #adbt {

margin-left: 70px;

}

main button {

margin: 20px 5px;

width: 85px;

height: 40px;

color: white;

}

main button.gre {

background-color: #5cb85c;

}

main button.red {

background-color: #d9534f;

}

main #navigate {

padding: 0 70px;

display: flex;

flex-flow: row nowrap;

justify-content: space-between;

}

main #navigate p {

margin-top: 30px;

}

table {

margin: 0 auto;

width: 90%;

text-align: center;

border-spacing: 0;

}

table tbody tr:first-of-type {

background-color: #dadee1 !important;

height: 60px;

}

table tbody tr {

height: 45px;

}

table tbody tr:nth-child(odd) {

background-color: #eef1f8;

}

table tbody tr:nth-child(even) {

background-color: #ffffff;

}

table tbody tr:not([id=thead]):hover {

cursor: pointer;

background-color: #e9e9e9;

}

.achaesi {

display: none;

position: absolute;

top: 20%;

left: 34%;

background-color: white;

z-index: 2;

width: 500px;

height: 420px;

}

.achaesi h2 {

padding: 5px 20px;

font-size: large;

background-color: #555555;

color: white;

}

.achaesi .ifm {

width: 300px;

margin: 10px auto;

display: flex;

flex-flow: column nowrap;

}

.achaesi .ifm div {

margin: 10px;

}

.achaesi .ifm div input {

width: 220px;

height: 20px;

}

.achaesi .scbt {

float: right;

margin-top: 6px;

margin-right: 30px;

}

.achaesi .scbt button:first-of-type {

width: 85px;

height: 36px;

background-color: #5cb85c;

}

.achaesi .scbt button:last-of-type {

width: 85px;

height: 36px;

background-color: white;

}

/*# sourceMappingURL=studentInformationManagementSystem.css.map */

JS:

$(function () {

let students = [{//初始界面数据

schoolNumber: "11503080201",

name: "雷军",//my idol

academy: "两江人工智能学院",

major: "软件工程",

grade: 2019,

class: 2,

age: 20,

}, {

schoolNumber: "11503080202",

name: "张三",

academy: "计算机工程与技术学院",

major: "计算机科学与技术",

grade: 2019,

class: 1,

age: 19,

}, {

schoolNumber: "11503080203",

name: "李四",

academy: "会计学院",

major: "会计学",

grade: 2018,

class: 3,

age: 19,

}, {

schoolNumber: "11503080204",

name: "王五",

academy: "理学院",

major: "应用物理",

grade: 2017,

class: 3,

age: 21,

}, {

schoolNumber: "11503080204",

name: "赵六",

academy: "会计学院",

major: "金融学",

grade: 2017,

class: 3,

age: 21,

}, {

schoolNumber: "11503080202",

name: "张三",

academy: "计算机工程与技术学院",

major: "计算机科学与技术",

grade: 2019,

class: 1,

age: 19,

}, {

schoolNumber: "11503080203",

name: "李四",

academy: "会计学院",

major: "会计学",

grade: 2018,

class: 3,

age: 19,

}, {

schoolNumber: "11503080204",

name: "王五",

academy: "理学院",

major: "应用物理",

grade: 2017,

class: 3,

age: 21,

}, {

schoolNumber: "11503080204",

name: "赵六",

academy: "会计学院",

major: "金融学",

grade: 2017,

class: 3,

age: 21,

}, {

schoolNumber: "11503080202",

name: "张三",

academy: "计算机工程与技术学院",

major: "计算机科学与技术",

grade: 2019,

class: 1,

age: 19,

}, {

schoolNumber: "11503080203",

name: "李四",

academy: "会计学院",

major: "会计学",

grade: 2018,

class: 3,

age: 19,

}, {

schoolNumber: "11503080204",

name: "王五",

academy: "理学院",

major: "应用物理",

grade: 2017,

class: 3,

age: 21,

}, {

schoolNumber: "11503080204",

name: "赵六",

academy: "会计学院",

major: "金融学",

grade: 2017,

class: 3,

age: 21,

}];

let page = 1;//第几页

let no = 0;//显示的页数的第一个对象是数组中的第几个对象,初始下标为0

let stuNumber = students.length;

for (let i = 0; i < 10; i++) {//初始页面信息显示

let student = $("

" + "" + "" + (i + 1) + "" + "" + students[i].schoolNumber + "" + "" + students[i].name + "" + "" + students[i].academy + "" + "" + students[i].major + "" + ""

+ students[i].grade + "

" + "" + students[i].class + "" + "" + students[i].age + "" + " 查看 修改" + "");

$("tbody").append(student);

}

$("tbody").trigger("create");//trigger() 方法触发被选元素上指定的事件以及事件的默认行为(比如表单提交)

$("#pgn").text(page);

$("#en").text(stuNumber);

$("#add").click(function () {//点击新增按钮触发的动作

$("#sbg").addClass("sbg");

$("#asi").show();

});

let objKeys = ["schoolNumber", "name", "academy", "major", "grade", "class", "age"];

$("#submit").click(function () {//提交按钮点击触发的动作

let student = {};

let isEmpty = false;

$("#asi").find("input").each(function (index, domEle) {

if (!domEle.value) {//如果添加时表单内有值为空,则不进行添加

isEmpty = true;

/*return;*/

}

student[objKeys[index]] = domEle.value;

});

if (!isEmpty) {

students[stuNumber] = student;

stuNumber++;

$("#en").text(stuNumber);

/*$("#sbg").removeClass("sbg");

$("#asi").hide();*/

// $("tbody tr:first").siblings().remove();//清空界面

let lpren = $("tbody tr").length - 1;//最后一页剩余的条目数;

if (no + 10 > stuNumber && lpren < 10) {//增加一个append函数,如果显示的是最后一页那么需要更新界面。

$("tbody tr:last").after("

" + "" + "" + (no + lpren + 1) + "" + "" + student.schoolNumber + "" + "" + student.name + "" + "" + student.academy + "" + "" + student.major + "" + ""

+ student.grade + "

" + "" + student.class + "" + "" + student.age + "" + " 查看 修改" + "");

/* let i = 0;

while (i < 10 && no + i < stuNumber) {

let student = $("

" + "" + "" + (no + i + 1) + "" + "" + students[no + i].schoolNumber + "" + "" + students[no + i].name + "" + "" + students[no + i].academy + "" + "" + students[no + i].major + "" + ""

+ students[no + i].grade + "

" + "" + students[no + i].class + "" + "" + students[no + i].age + "" + " 查看 修改" + "");

$("tbody").append(student);

i++;

}*/

}

}

$("#sbg").removeClass("sbg");

$("#asi").hide();

});

$("tbody").on("click", ".check", function () {//点击查看按钮触发的动作

$("#sbg").addClass("sbg");

$("#chesi").show();

let stuIndex = $(this).parent().parent().find("td")[1].innerText - 1;

// let i = 0;

$("#chesi").find("input").each(function (index, domEle) {

domEle.value = students[stuIndex][objKeys[index]];//index->i

});

});

let modifyNumber;

/* $(".modify").click(function () {//jQuery出现的新添加元素点击事件无效

$("#sbg").addClass("sbg");

$("#chasi").show();

modifyNumber = $(this).parent().parent().find("td")[1].innerText - 1;

let i = 0;

$("#chasi").find("input").each(function (index, domEle) {

domEle.value = students[modifyNumber][objKeys[i++]];

});

});*/

$("tbody").on("click", ".modify", function () {//点击修改按钮触发的动作,解决了jQuery出现的新添加元素点击事件无效问题

$("#sbg").addClass("sbg");

$("#chasi").show();

modifyNumber = $(this).parent().parent().find("td")[1].innerText - 1;

let i = 0;

$("#chasi").find("input").each(function (index, domEle) {

domEle.value = students[modifyNumber][objKeys[i++]];

});

});

$("#save").click(function () {//点击保存按钮触发的动作

$("#chasi").find("input").each(function (index, domEle) {

if (domEle.value)

students[modifyNumber][objKeys[index]] = domEle.value;

});

$("tbody tr").eq(modifyNumber - no + 1).remove();

$("tbody tr").eq(modifyNumber - no).after("

" + "" + "" + (modifyNumber - no + 1) + "" + "" + students[modifyNumber].schoolNumber + "" + "" + students[modifyNumber].name + "" + "" + students[modifyNumber].academy + "" + "" + students[modifyNumber].major + "" + ""

+ students[modifyNumber].grade + "

" + "" + students[modifyNumber].class + "" + "" + students[modifyNumber].age + "" + " 查看 修改" + "");

/*$("tbody tr:first").siblings().remove();//清空界面

for (let i = no; i < no+10; i++) {//初始页面信息显示

let student = $("

" + "" + "" + (i + 1) + "" + "" + students[i].schoolNumber + "" + "" + students[i].name + "" + "" + students[i].academy + "" + "" + students[i].major + "" + ""

+ students[i].grade + "

" + "" + students[i].class + "" + "" + students[i].age + "" + " 查看 修改" + "");

$("tbody").append(student);

}

$("tbody").trigger("create");*/

$("#sbg").removeClass("sbg");

$("#chasi").hide();

});

$(".cancel").click(function () {//多个取消按钮点击触发的动作

$("#sbg").removeClass("sbg");

$(".achaesi").hide();

});

$("tbody tr td:first").click(function () {//全选操作用到了JQuery的隐示迭代

$("tbody tr td input").prop("checked", $("tbody tr:first td:first input").prop("checked"));

});

$("tbody").on("click", $("tbody tr:nth-of-type(1)").siblings().find("input"), function () {

let isSelectAll = true;

$("tbody tr:nth-of-type(1)").siblings().find("input").each(function (index, domEle) {

if ($(domEle).prop("checked") == false)

isSelectAll = false;

});

$("tbody tr:first td:first input").prop("checked", isSelectAll);

})

let update = (no) => {

let i = 0;//用于增加信息条目的变量;

$("tbody tr:first").siblings().remove();//清空界面

while (i < 10 && no + i < stuNumber) {

let student = $("

" + "" + "" + (no + i + 1) + "" + "" + students[no + i].schoolNumber + "" + "" + students[no + i].name + "" + "" + students[no + i].academy + "" + "" + students[no + i].major + "" + ""

+ students[no + i].grade + "

" + "" + students[no + i].class + "" + "" + students[no + i].age + "" + " 查看 修改" + "");

$("tbody").append(student);

i++;

}

$("tbody").trigger("create");

}

$("#delete").click(function () {

if (confirm("确认要删除这些信息吗?")) {

let delNumber = 0;//删除的信息条目数;

let delIndexs = []; //删除信息条目的下标;用于后期处理避免“落空”导致移动无效

// let i = 0;//用于增加信息条目的变量;

$("tbody tr td input").each(function (index, domEle) {

if (index != 0 && $(domEle).prop("checked")) {//index != 0,防止标题行被删除

delIndexs[delIndexs.length] = $(domEle).parent().next().text() - 1;

$(domEle).parent().parent().remove();

delNumber++;

}

});

for (let j = delIndexs.length - 1; j >= 0; j--) {

for (let k = delIndexs[j]; k < stuNumber - 1; k++) {//低效的代码,需要大量移动对象索引;对JS不太熟悉,还没有想到高效的解决办法!

students[k] = students[k + 1];

}

}

stuNumber -= delNumber;//指向储存底层数据(学生对象)的数组尾部的指针“移动”

$("#en").text(stuNumber);//更新条目数

if (stuNumber == no) {

no -= 10;

page--;

$("#pgn").text(page);

}

update(no);

/* $("tbody tr:first").siblings().remove();//清空界面

while (i < 10 && no + i < stuNumber) {

let student = $("

" + "" + "" + (no + i + 1) + "" + "" + students[no + i].schoolNumber + "" + "" + students[no + i].name + "" + "" + students[no + i].academy + "" + "" + students[no + i].major + "" + ""

+ students[no + i].grade + "

" + "" + students[no + i].class + "" + "" + students[no + i].age + "" + " 查看 修改" + "");

$("tbody").append(student);

i++;

}

$("tbody").trigger("create");*/

$("tbody tr td:first input").prop("checked", false);

}

});

$("#nextpage").click(function () {

if (no + 10 < stuNumber) {

no += 10;

page++;

$("#pgn").text(page);

update(no);

$("tbody tr:first td:first input").prop("checked", false);

/*let i = 0;//用于增加信息条目的变量;

$("tbody tr:first").siblings().remove();//清空界面

while (i < 10 && no + i < stuNumber) {

let student = $("

" + "" + "" + (no + i + 1) + "" + "" + students[no + i].schoolNumber + "" + "" + students[no + i].name + "" + "" + students[no + i].academy + "" + "" + students[no + i].major + "" + ""

+ students[no + i].grade + "

" + "" + students[no + i].class + "" + "" + students[no + i].age + "" + " 查看 修改" + "");

$("tbody").append(student);

i++;

}

$("tbody").trigger("create");*/

} else {

alert("已经是最后一页。");

}

});

$("#lastpage").click(function () {

if (no - 10 >= 0) {

no -= 10;

page--;

$("#pgn").text(page);

update(no);

$("tbody tr:first td:first input").prop("checked", false);

/* let i = 0;//用于增加信息条目的变量;

$("tbody tr:first").siblings().remove();//清空界面

while (i < 10 && no + i < stuNumber) {

let student = $("

" + "" + "" + (no + i + 1) + "" + "" + students[no + i].schoolNumber + "" + "" + students[no + i].name + "" + "" + students[no + i].academy + "" + "" + students[no + i].major + "" + ""

+ students[no + i].grade + "

" + "" + students[no + i].class + "" + "" + students[no + i].age + "" + " 查看 修改" + "");

$("tbody").append(student);

i++;

}

$("tbody").trigger("create");*/

} else {

alert("已经是第一页。");

}

});

})

四、学生信息管理系统主界面

(1)系统主界面如图2所示,要求学生的信息存入一个数组中,每个学生是一个对象。

926ec1941f12e53e8ff6cfa15bc7524e.png

图1 学生信息管理系统主界面

(2)点击“新增”按钮显示一个新的窗体,录入学生的基本信息,在保存时,需要检验数据是否合法。新增页面如图3所示。

ebf84cd62fe5f3b7f66cceccb9272f5b.png

图2 新增界面

(3)点击“修改”按钮显示一个新的窗体,修改当前行的学生信息。

9882d539c51746568ee77a0aa2ea37e1.png

图3 修改界面

(4)点击“查看”按钮显示一个新的窗体,显示当前行的学生信息。此时输入框的内容不可修改。

fae43c7a1e3ac4301758d96766d38f84.png

图4 查看

(5)其他要求

点击“删除”按钮,显示一个询问提示,如果选择是就删除当前行。可以多选删除,点击全选时是选择当前页所有学生。

隔行换色。

行的移入移出效果(hover)。

能够实现下一页和上一页的功能,不能翻页的时候给出提示。

展示出共有多少条数据,每页的数据条数,当前页数。

到此这篇关于JavaScript+HTML实现学生信息管理系统的文章就介绍到这了,更多相关js+html实现学生信息管理系统内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会根据您的问题提供相关的指导和帮助。首先,基于web的学生信息管理系统需要具备以下几个方面的功能: 1. 用户管理功能:包括登录注册、权限管理、密码修改等。 2. 学生信息管理功能:包括学生信息的添加、修改、删除、查询等。 3. 课程信息管理功能:包括课程信息的添加、修改、删除、查询等。 4. 成绩管理功能:包括成绩信息的添加、修改、删除、查询等。 5. 数据统计功能:包括学生总人数、各科成绩平均分、优秀率等统计功能。 下面是一些实现该系统的步骤: 1. 确定系统需求和功能,设计系统结构框架和数据库结构。 2. 选择合适的开发工具和技术,如HTML、CSS、JavaScript、jQuery、PHP、MySQL等。 3. 进行系统的界面设计和页面开发。 4. 实现用户管理功能,包括登录注册、密码修改等。 5. 实现学生信息管理功能,包括学生信息的添加、修改、删除、查询等。 6. 实现课程信息管理功能,包括课程信息的添加、修改、删除、查询等。 7. 实现成绩管理功能,包括成绩信息的添加、修改、删除、查询等。 8. 实现数据统计功能,包括学生总人数、各科成绩平均分、优秀率等统计功能。 9. 进行系统的测试和调试,完善系统的功能和性能。 10. 部署系统,上线运行。 以上是关于基于web的学生信息管理系统的设计和实现的一些步骤和指导,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值