学生信息录入系统

目录

学生信息存储系统的设计与实现 1

一、摘要: 1

二、 需求分析 2

2.1可行性分析 2

2.1.1 2

2.1.2 2

2.2 需求分析 2

2.2.1 2

2.2.2 2

三、 总体设计 2

3.1系统功能结构图 3

3.2UI设计图 4

3.3数据库存储 5

3.3.1添加信息(学生信息和账号密码) 5

3.3.2删除信息 6

3.3.3修改信息 6

四、 系统测试 7

4.1登录注册(可存储账号密码) 7

4.2添加信息 8

4.3删除信息 9

4.4修改信息 9

4.5查询信息 11

五、 系统实现 11

5.1代码 11

5.1.1类代码 11

5.1.2布局代码 11

5.1.3类说明 12

5.1.4关键代码 17

六、 心得与体会 23

学生信息存储系统的设计与实现

一、摘要:

随着互联网时代的迅速发展,人们的生活质量越来越高,工作越来越便利,生活方式和思想方式都发生了巨大的变化。

信息技术的飞速发展不仅为人类的生活提供了便利,也为我们的各种日常工作提供了更加快捷、有效的途径。如今,教育成为国家的发展之根本,学校成为了我们生活中的第二个家,随着人口的不断增长和对国家对于教育事业的重视,学生数量与日俱增,使得对学生信息的管理越来越难,也正因为这样,创建一个学生信息存储系统成为了当代学校的必要部分,可以更有效的提高工作效率。本文介绍了一个基于Android自主研发的学生信息系统,该系统可在移动平台上使用,也就是我们的生活必需品——手机,因此更加便捷。

该系统可以存储学生的信息,并对学生的信息进行增加、删除、修改、查寻信息等管理操作,每个学生用户都可以建立自己的账号,非常的便捷、安全和稳定。

二、需求分析

2.1可行性分析

2.1.1技术可行性分析:合理的开发一个学生信息存储系统,对学生信息进行合理的管理操作在技术上是可行的

2.1.2 经济可行性分析:个人研究技术与开发Android平台是免费的,经济可行

2.2 需求分析

2.2.1特性需求分析

1)容易操作,简单便捷

2)功能俱全

3)软件易维护

2.2.2功能需求分析

1)用户可以对对信息进行增加、删除、修改、查询的功能

2)设立自己的账号密码

三、总体设计

3.1系统功能结构图

1)用户通过登录自己的用户名进入学生信息系统,没有的话进去注册页面,注册成功直接进入添加页面。

2)学生用户可以在添加页面,添加自己的名字、性别、年龄、专业、大学和添加信息的时间。

3)添加成功后进去到菜单页面,菜单页面会显示学生的信息,学生的信息可以随时删除,修改,当信息量多的时候,可以根据你输入搜索框的关键字搜索到学生信息,并显示条数

3.2UI设计图

3.3数据库存储

3.3.1添加信息(学生信息和账号密码)

);

3.3.2删除信息

删除了一条信息

3.3.3修改信息

学校全部改成沈阳科技学院

四、系统测试

4.1登录注册(可存储账号密码)

注册了一个用户名为 郭少锋

密码为123456的账号

登录用户名密码直接登陆成功,经过测试注册成功

4.2添加信息

经过测试,可以添加信息

4.3删除信息

4.4修改信息

经过测试,可以修改信息

4.5查询信息

经测试可以查询信息

五、系统实现

5.1代码

5.1.1类代码

5.1.2布局代码

图片在上述UI设计图中

5.1.3类说明

1.第一个类是登录类    定义两个Button和两个EditText,给Button按钮设置监听,利用swich case 实施对两个Button的功能定义,并使用intent使得跳转注册页面。

2.第二个类是注册类,同上定义空间,使用if else进行功能定义,使用intent跳转添加页面。    DBop dBop = new DBop(); dBop.test(zhuce.this);

定义新对象调用text完成注册并存储。

3.这里用user类对用户名和密码进行定义和获取,package com.example.tian;

//获取用户名和密码

public class User {

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassWord() {

return passWord;

}

public void setPassWord(String passWord) {

this.passWord = passWord;

}

private String userName;

private String passWord;

}

4.添加类,定义学生信息并定义数据库以及对listview的使用,DBop dbop = new DBop();

List<student> studentlist = new ArrayList<student>();//ListView适配器   设置Adapter

SQLite mySQLite = new SQLite(tianjia.this, 1);  //定义数据库

并用swich case 定义功能并跳转菜单

5.菜单类 swich case 定义查询跳转类    DBop dbOperate=new DBop();

6.查询类 if else 定义功能跳转返回菜单

7.SQLite类  public class SQLite extends SQLiteOpenHelper {

public SQLite(Context context,int version) {

super(context, "stu2.db", null, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("create table students(\n"+

"id integer primary key  autoincrement,\n"+

"name text,\n"+

"sex text,\n"+

"age integer,\n"+

"academy text,\n"+

"major text\n,"+

"date text\n"+

");");

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

//数据库的创建  stu.db

//建表格式   students   名字 性别   年龄      大学     专业     日期

//数

8. student类同user一样定义获取学生信息

//获取学生信息   编号 名字 专业 年龄  大学  日期

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 getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String getAge() {

return age;

}

public void setAge(String sex) {

this.age = sex;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getAcademy() {

return academy;

}

public void setAcademy(String academy) {

this.academy = academy;

}

public void setDate(String date) {

this.date = date;

}

public String getDate() {

return date;

}

public student(String n,  String s, String a, String aca,String m, String t) {

name = n;

major = m;

age = a;

sex = s;

academy = aca;

date = t;

}

public student(int i, String n,  String s, String a, String aca,String m, String t) {

id=i;

name = n;

major = m;

age = a;

sex = s;

academy = aca;

date = t;

}

public student(String n, String s, String a) {

name = n;

sex = s;

age = a;

}

}

并对其他类的listview显示提供

  1. DBop类

数据库操作类,public void insert(student s){

int age=Integer.parseInt(s.getAge());

database.execSQL("insert into students values(?,?,?,?,?,?,?" +

")",new Object[] {null,s.getName(),s.getSex(),age,s.getAcademy(),s.getMajor(),s.getDate()});

System.out.println("插入数据成功");

}

public void insertUser(User user){

String stu_table="create table  if not exists user(id integer primary key autoincrement,username text,password text)";

database.execSQL(stu_table);

database.execSQL("insert into user values(?,?,?" +

")",new Object[] {null,user.getUserName(),user.getPassWord()});

System.out.println("插入数据成功");

}//插入学生信息和用户名密码

public Boolean queryUser(User user){

String stu_table="create table  if not exists user(id integer primary key autoincrement,username text,password text)";

database.execSQL(stu_table);

Cursor cursor=database.rawQuery("select * from user where username = ? and password= ?",new String[]{user.getUserName(),user.getPassWord()});

return cursor.getCount() > 0?true:false;

}

//判定格式对错

public void update(student s){

Integer I=new Integer(s.getId());

ContentValues values = new ContentValues();

values.put("name",s.getName());

values.put("major",s.getMajor());

values.put("age",s.getAge());

values.put("sex",s.getSex());

values.put("academy", s.getAcademy());

values.put("date",s.getDate());

String whereClause = "id=?";

String[] whereArgs={String.valueOf(I)};

database.update("students",values,whereClause,whereArgs);

}

public void update(student s){

Integer I=new Integer(s.getId());

ContentValues values = new ContentValues();

values.put("name",s.getName());

values.put("major",s.getMajor());

values.put("age",s.getAge());

values.put("sex",s.getSex());

values.put("academy", s.getAcademy());

values.put("date",s.getDate());

String whereClause = "id=?";

String[] whereArgs={String.valueOf(I)};

database.update("students",values,whereClause,whereArgs);

}

//数据库更新

等一系列操作判定

10.修改类 同添加类用swich case完成功能定义

if (altStu != null) {

altStu.setName(name);

altStu.setSex(sex);

altStu.setAge(age);

altStu.setMajor(major);

altStu.setDate(date);

altStu.setAcademy(aca);

dBop.update(altStu);

}

并进行数据更新

5.1.4关键代码

跳转:

Intent intent2 = new Intent(this,zhuce.class);

startActivity(intent2);

break;

//登录界面点击注册按钮实现到注册页面的转换

Toast.makeText(zhuce.this,"注册成功",Toast.LENGTH_SHORT).show();

Intent intent1 = new Intent(zhuce.this, tianjia.class);

startActivity(intent1);

//注册成功跳转添加学生信息页面

intent.putExtra("students", (Serializable) studentlist);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setClass(tianjia.this, caidan.class);

startActivity(intent);//跳转到列表页面

intent.setClass(this, chaxun.class);

intent.putExtra("searchKey", search);

startActivity(intent);//跳转到查询类

Intent intent=new Intent();

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setClass(this,caidan.class);

startActivity(intent);//查询到的结果返回到菜单页面

intent.setClass(this, caidan.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

finish();//修改信息跳转菜单

学生信息和用户名账号信息的的定义和获取:

//获取学生信息   编号 名字 专业 年龄  大学  日期

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 getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String getAge() {

return age;

}

public void setAge(String sex) {

this.age = sex;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getAcademy() {

return academy;

}

public void setAcademy(String academy) {

this.academy = academy;

}

public void setDate(String date) {

this.date = date;

}

public String getDate() {

return date;

}

public class User {

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassWord() {

return passWord;

}

public void setPassWord(String passWord) {

this.passWord = passWord;

}

}

SQLite数据库:

public class SQLite extends SQLiteOpenHelper {

public SQLite(Context context,int version) {

super(context, "stu2.db", null, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("create table students(\n"+

"id integer primary key  autoincrement,\n"+

"name text,\n"+

"sex text,\n"+

"age integer,\n"+

"academy text,\n"+

"major text\n,"+

"date text\n"+

");");

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

//数据库的创建  stu.db

//建表格式   students   名字 性别   年龄      大学     专业     日期

//数据库更新

DBop dBop = new DBop();

dBop.test(denglu.this);

DBop dBop = new DBop();

dBop.test(zhuce.this);

SQLite mySQLite = new SQLite(tianjia.this, 1);  //定义数据库

private void test() {

SQLite mySQLiteAccess = new SQLite(this, 1);

mySQLiteAccess.getReadableDatabase();

}

DBop dbOperate=new DBop();

public class DBop {

private SQLite mySQLiteAccess;

private SQLiteDatabase database;

public void test(Context context){

mySQLiteAccess=new SQLite(context,3);

database=mySQLiteAccess.getReadableDatabase();

}

public void insert(student s){

int age=Integer.parseInt(s.getAge());

database.execSQL("insert into students values(?,?,?,?,?,?,?" +

")",new Object[] {null,s.getName(),s.getSex(),age,s.getAcademy(),s.getMajor(),s.getDate()});

System.out.println("插入数据成功");

}

public void insertUser(User user){

String stu_table="create table  if not exists user(id integer primary key autoincrement,username text,password text)";

database.execSQL(stu_table);

database.execSQL("insert into user values(?,?,?" +

")",new Object[] {null,user.getUserName(),user.getPassWord()});

System.out.println("插入数据成功");

}

public Boolean queryUser(User user){

String stu_table="create table  if not exists user(id integer primary key autoincrement,username text,password text)";

database.execSQL(stu_table);

Cursor cursor=database.rawQuery("select * from user where username = ? and password= ?",new String[]{user.getUserName(),user.getPassWord()});

return cursor.getCount() > 0?true:false;

}

//用户名和密码

public void update(student s){

Integer I=new Integer(s.getId());

ContentValues values = new ContentValues();

values.put("name",s.getName());

values.put("major",s.getMajor());

values.put("age",s.getAge());

values.put("sex",s.getSex());

values.put("academy", s.getAcademy());

values.put("date",s.getDate());

String whereClause = "id=?";

String[] whereArgs={String.valueOf(I)};

database.update("students",values,whereClause,whereArgs);

}

//建表,插入数据,更新数据库

ListView的使用(适配器的使用):

ListView studentlist;

private List<student> list = new ArrayList<student>();

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

ListView list = (ListView) parent;

student s = (student) list.getItemAtPosition(position);

String info = (String) s.getName() + "\n\n" + s.getAcademy();

Toast.makeText(caidan.this, info, Toast.LENGTH_SHORT).show();

}

private void showList(List<student> stus) {

Adapter studentAdapter = new Adapter(this, stus);

studentlist.setAdapter(studentAdapter);

}

}

List<student> searchList= dbOperate.searchByAll(searchKey);

if (!searchList.isEmpty()){

Adapter myAdapter=new Adapter(this,searchList);

lv_searchlist.setAdapter(myAdapter);

}

else

{

Toast.makeText(this,"无结果",Toast.LENGTH_SHORT);

}

}略

六、心得与体会

在本次课程设计的完成中,让我再次复习了一遍所学过的内容,也学会了很多课上忽略掉的一些知识和一些课上没有学到过的。课程设计非常锻炼一个学生的专业能力,可以培养我们的自我动手能力,不管是独立思考能力还是自学能力,总能收获许多。本次课设让我熟悉了SQLite增删改查的使用和ListView绑定适配器等很多知识,也大大提升了我对代码进行改错的能力,学会了有目的的去学习一些将要用到的东西,仔细地考虑工作流程的规律和步骤,充分利用手中的开发工具,利用其所具备的功能,尽量使自己的开发在代码上实现少而精确、让用户能够尽量简单地进行操作,但也发现了一些自己的问题,例如查错效率低等问题都是要在以后需要改进的。

原文地址:https://www.cnblogs.com/gsfwxj1820/p/12079545.html

时间: 2024-11-02 15:43:07

学生信息录入系统的相关文章

javaweb简单的学生信息录入系统

讲一下思路,主界面的设计就是用html表单元素,百度查找各个元素的用法,按照自己的想法摆放即可,表单提交后会把数据交给serverlet去处理,在那里定义几个字符串变量来储存获取到的数据,然后按照项目要求对数据格式进行判断(如学号长度是否为8位),对有错误的格式进行相应报错,若数据无误则提交数据库并跳转至success页面.格式判断应该是这里面对算法要求最多的,但也很简单,长度判断直接调用String类型的length()方法返回长度即可,而邮箱格式或“首字符必须为字母”这样的判断最好用正则表达

作业5——需求分析(学生成绩录入系统)

[必做 1] 列出该学生成绩录入系统的利益相关者(stakeholder) 学生成绩录入系统的利益相关者(stakeholder):  1.用户:教师  2.顾客:教务管理人员 .学生   3.市场分析师:评估该系统的价值  3. 监管机构:学校 .教育局  4.软件工程师:学生成绩录入系统软件系统开发团队 [必做 2] 如果让你改进已有的成绩录入系统,请利用 NABCD 分析框架,开展竞争需求分析(表格形式) 竞争需求分析:   内容 N(Need需求) 1.验证码要不区分大小写输入 2.设置

练习--学生信息录入

机试题目:1.输入3个学生的信息:学号,姓名,五门课成绩(语文,数学,英语,化学,物理),要求输出学生成绩的最高分最低分总分和平均分,若有不及格的成绩,输出其科目及成绩. 2.编写程序实现某大奖赛现场打分.共有10位评委打分,最高分为100分,去掉一个最高分和一个最低分后的平均分是最终得分.请用户输入评委姓名和该评委给出的分数,然后提示哪个评委的分数最高,最高分是多少:哪个评委的分数最低,最低分是多少:最后去掉最高分和最低分计算最终平均得分.3.按如下要求编程: 一.语言和环境A.实现技术:C#

javase(Properties集合及学生对象信息录入文本中案例)

1.Properties集合 Properties和IO流的结合使用 1 public void load(Reader reader) 2 public void store(Writer writer,String comments) 3 /* 4 * 这里的集合必须是Properties集合: 5 * public void load(Reader reader):把文件中的数据读取到集合中 6 * public void store(Writer writer,String commen

Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台

1. 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台: 分析: A: 定义学生类    B: 创建一个TreeSet集合       C: 总分从高到底如何实现呢?        D: 键盘录入5个学生信息       E: 遍历TreeSet集合 2. 代码示例: (1)Student.java: 1 package cn.itcast_08; 2 3 public class Student { 4 // 姓名 5 private String na

学生成绩录入系统设计与实现

团队成员:叶月欣,纪杨阳,季天梦,刘雨恬 阶段1 - 系统需求分析 [必做 1] 列出成绩录入系统功能需求. 功能需求 输入 处理 输出 密码输入 密码输入 判断是否正确 对,进入:错,提示 老师进入 学生成绩录入 学生成绩修改 输入数据 更新数据 输出数据 退出系统 输入数据 判断是否退出 退出 [必做 2] 画出该学生成绩录入系统的用例图. [必做 3] 将系统开发工作分解为若干任务,画出WBS. [必做 4] 将任务分配到团队成员.列出任务分配表. 序号    任务名称 完成者     起

学生信息管理系统 1.0

学生信息管理系统V1.0 1.实现用户的注册与登录功能. 1.1:注册时检测用户名,如果有重复则需要重新输入,用户信息存入数据库. 1.2:登录时,有验证码验证. 2.实现用户查询学生表的基本信息. 3.用户可以更改.删除学生表信息. 4.系统可以正确显示系统时间. 5.系统正确显示用户权限(功能暂未实现). 因为很多东西还没有学到,只能用最基础的代码实现功能. 1)欢迎页面 1 <%@ page language="java" contentType="text/ht

学术休假-学生信息管理系统v1.0

这是第一个学术休假的项目,主体部分在回家时的火车上完成的,隔了几天继续加工,今天终于完成,这是学生管理系统的beta版本,后续还将继续完善. 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.试设计一学生信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)学生信息录入功能(学生信息用文件保存)---输入 (3)学生信息浏览功能---输出 (4)查询.排序功能 按学号查询 按姓名查询 (5)学生信息的删除与修改(可选项) /* *Copyright (c)

大一C语言结课设计之《学生信息管理系统》

第一次写这么长的程序,代码仅供參考,有问题请留言. /* ** 学生信息管理系统 ** IDE:Dev-Cpp 4.9.9.2 ** 2014-6-15 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm> #include <vector> using std::sort; using std::vector; /*==存储单元节点=