精华内容
下载资源
问答
  • java学生信息管理系统源代码

    千次阅读 2021-03-04 02:18:22
    导读正文本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] 、删除 、查找、更改,供大家参考,具体内容如下/*学生信息管理系统,实现学生信息:*增加 int[] a=new int...

    导读

    正文

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] 、删除 、查找、更改,供大家参考,具体内容如下

    /*学生信息管理系统,实现学生信息:

    *增加 int[] a=new int[9]

    *删除

    *查找

    *更改

    */

    import java.util.Scanner;//导入java输入流

    import java.lang.*;

    import java.io.*;

    class Student

    {

    private static Student[] s=new Student[2];

    int n=0;

    private String name;

    private int num;

    private String classAge;

    public void judge()throws IOException

    {

    int i;

    char ch;

    String str;

    Scanner In=new Scanner(System.in);

    if(n==0)

    {

    System.out.print("你还没有录入任何学生,是否录入(Y/N):");

    str=In.next();

    ch=str.charAt(0);

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=In.next();

    ch=str.charAt(0);

    }

    if(ch=='Y'||ch=='y')

    {

    this.add();

    }

    if(ch=='N'||ch=='n')

    {

    this.menu();

    }

    }

    }

    public void menu()throws IOException//定义菜单函数

    {

    int a;//定义switch语句变量

    Scanner in=new Scanner(System.in);//实例化输入流对象

    System.out.println("*********学生信息管理系统功能表*********");

    System.out.println("***** 1.增加 *****");

    System.out.println("***** 2.显示 *****");

    System.out.println("***** 3.修改 *****");

    System.out.println("***** 4.删除 *****");

    System.out.println("***** 5.查看 *****");

    System.out.println("***** 0.退出 *****");

    System.out.println("****************************************");

    System.out.print("请选择(0~5):");

    a=in.nextInt();

    while(a<0||a>5)

    {

    System.out.print("输入超出范围,请重新输入:");

    a=in.nextInt();

    }

    switch(a)

    {

    case 1:this.add();break;

    case 2:this.show();break;

    case 3:this.modif();break;

    case 4:this.delete();break;

    case 5:this.look();break;

    case 0:System.exit(0);break;

    }

    }

    public void add()throws IOException//定义增加函数

    {

    String str,str1,str2;

    int i,num1,t=1;

    char ch,ch1;

    FileWriter fw=new FileWriter("F://javaFile//student.txt",true);

    fw.write(" 录入的学生信息列表\r\n\r\n学号 姓名 班级\r\n");

    Scanner In=new Scanner(System.in);

    while(t==1)

    {

    System.out.print("请输入学生学号:");

    num1=In.nextInt();

    for(i=0;i

    {

    while(s[i].num==num1)

    {

    System.out.println("已存在此学号,请重新输入");

    System.out.print("请输入学号:");

    num1=In.nextInt();

    }

    }

    s[n].num=num1;

    str2=String.valueOf(num1);

    fw.write(str2+" ");

    System.out.println();

    System.out.print("请输入学生姓名:");

    s[n].name=In.next();

    fw.write(s[n].name+" ");

    System.out.println();

    System.out.print("请输入学生班级:");

    s[n].classAge=In.next();

    fw.write(s[n].classAge+"\r\n");

    ++n;

    fw.close();

    System.out.println();

    System.out.print("是否继续添加(Y/N)");

    str=In.next();

    ch=str.charAt(0);

    while(ch!='N'&&ch!='n'&&ch!='Y'&&ch!='y')

    {

    System.out.print("输入有误,请重新输入:");

    str=In.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    break;

    }

    }

    System.out.println();

    System.out.print("是否返回主菜单(Y/N)");

    str1=In.next();

    ch1=str1.charAt(0);

    while(ch1!='Y'&&ch1!='y'&&ch1!='N'&&ch1!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str1=In.next();

    ch1=str1.charAt(0);

    }

    if(ch1=='Y'||ch1=='y')

    {

    this.menu();

    }

    if(ch1=='N'||ch1=='n')

    {

    System.out.println("正在退出...谢谢使用!");

    System.exit(0);

    }

    }

    public void show()throws IOException

    {

    int i;

    this.judge();

    System.out.println("本次操作共录入"+n+"位学生!");

    System.out.println("你录入的学生信息如下:");

    System.out.println();

    System.out.println("学号\t\t姓名\t班级");

    for(i=0;i

    {

    System.out.println(s[i].num+" "+s[i].name+" "+s[i].classAge);

    }

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    public void delete()throws IOException//删除信息功能实现 注:本功能暂时不具备可扩展性

    {

    this.judge();

    int j=0,t=0,k=0,num1;

    char ch;

    String str;

    Scanner pin=new Scanner(System.in);

    System.out.print("请输入要删除的学号:");

    num1=pin.nextInt();

    for(j=0;j

    {

    if(s[j].num==num1)

    {

    k=1;

    t=j;

    }

    }

    if(k==0)

    {

    System.out.println("对不起!你要删除的学号不存在!");

    System.out.println("系统将返回主菜单!");

    this.menu();

    }

    if(k==1)

    {

    System.out.println("你要删除的学生信息如下:");//打印管理员要删除的学生信息

    System.out.println("学号\t姓名\t班级");//本功能暂时不备扩展性

    System.out.println(s[t].num+" "+s[t].name+" "+s[t].classAge);

    System.out.println();

    System.out.print("你确定要删除(Y/N):");

    str=pin.next();

    ch=str.charAt(0);

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=pin.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    System.out.println();

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    if(ch=='Y'||ch=='y')

    {

    for(j=t;j

    {

    s[j]=s[j+1];

    }

    n--;

    System.out.println("数据成功删除!");

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    }

    }

    public void look()throws IOException

    {

    FileReader fr=new FileReader("F://javaFile//student.txt");

    int a;

    while((a=fr.read())!=-1)

    {

    System.out.print((char)a);

    }

    fr.close();

    System.out.println("系统返回主菜单!");

    System.out.println();

    this.menu();

    }

    public void modif()throws IOException

    {

    this.judge();

    int j=0,num2,num3,moi,c=1;

    char ch;

    String str,str2;

    Scanner pin=new Scanner(System.in);

    System.out.print("请输入要修改的学号:");

    num2=pin.nextInt();

    for(j=0;j

    {

    if(s[j].num==num2)

    {

    k=1;

    t=j;

    }

    }

    if(k==0)

    {

    System.out.println("对不起!你要修改的学号不存在!");

    System.out.println("系统将返回主菜单!");

    this.menu();

    }

    if(k==1)

    {

    System.out.println("你要修改的学生信息如下:");//打印管理员要删除的学生信息

    System.out.println("学号\t姓名\t班级");//本功能暂时不备扩展性

    System.out.println(s[t].num+" "+s[t].name+" "+s[t].classAge);

    System.out.println();

    System.out.print("你确定要修改(Y/N):");

    str=pin.next();

    ch=str.charAt(0);

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=pin.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    System.out.println();

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    while(c==1)

    {

    if(ch=='Y'||ch=='y')

    {

    System.out.println("****************************************");

    System.out.println("***** 1.修改学号 *****");

    System.out.println("***** 2.修改班级 *****");

    System.out.println("***** 3.修改姓名 *****");

    System.out.println("****************************************");

    System.out.print("请选择:");

    moi=pin.nextInt();

    switch(moi)

    {

    case 1:System.out.print("请输入新的学号:");num3=pin.nextInt();s[t].num=num3;break;

    case 2:System.out.print("请输入新的班级:");str1=pin.next();s[t].classAge=str1;break;

    case 3:System.out.print("请输入新的姓名:");str2=pin.next();s[t].name=str2;break;

    }

    System.out.println("数据已成功修改!");

    }

    System.out.print("是否继续修改(Y/N)");

    str=pin.next();

    ch=str.charAt(0);

    System.out.println();

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=pin.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    break;

    }

    }

    }

    System.out.println();

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    public static void main(String[] args)throws IOException

    {

    Student stu=new Student();

    for(int i=0;i<2;i++)

    {

    s[i]=new Student();

    }

    stu.menu();

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

    相关

    总结

    以上是编程之家为你收集整理的java学生信息管理系统源代码全部内容,希望文章能够帮你解决java学生信息管理系统源代码所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    展开全文
  • package Week;import jdk.internal.util.xml.impl....import java.util.HashSet;import java.util.Scanner;public class StudentMs {Scanner sc = new Scanner(System.in);public int getID() {return ID;}public...

    package Week;

    import jdk.internal.util.xml.impl.Input;

    import java.util.HashSet;

    import java.util.Scanner;

    public class StudentMs {

    Scanner sc = new Scanner(System.in);

    public int getID() {

    return ID;

    }

    public String getName() {

    return name;

    }

    public String getClassnum() {

    return classnum;

    }

    public int getTelephone() {

    return telephone;

    }

    public void setID(int ID) {

    this.ID = ID;

    }

    public void setName(String name) {

    this.name = name;

    }

    public void setClassnum(String classnum) {

    this.classnum = classnum;

    }

    public void setTelephone(int telephone) {

    this.telephone = telephone;

    }

    private int ID;

    private String name;

    private String classnum;

    private int telephone;

    /* public StudentMs(int ID, String name, String classnum, String telephone) {

    this.ID = ID;

    this.name = name;

    this.classnum = classnum;

    this.telephone = telephone;

    }*/

    public void add(StudentMs a){

    int ID1;

    String name2;

    String classnum1;

    int telephone1;

    System.out.println("请输入你要添加的学生信息");

    System.out.println("请输出学生学号");

    ID1 =sc.nextInt();

    a.setID(ID1);

    System.out.println("请输出学生姓名");

    sc.nextLine();

    name2=sc.nextLine();

    a.setName(name2);

    System.out.println("请输出学生班级");

    classnum1=sc.nextLine();

    a.setClassnum(classnum1);

    System.out.println("请输出学生电话号码");

    telephone1=sc.nextInt();

    a.setTelephone(telephone1);

    }

    public int find(String[][] a)

    {

    System.out.println("请输入你要查询学生的学号");

    int n=-1;

    int id = sc.nextInt();

    for(int i=0;i

    {

    if(Integer.parseInt(a[i][0]) == id)

    {

    n=i;

    break;

    }

    }

    return n;

    }

    public int delay(String[][] a)

    {

    System.out.println("请输入你要删除学生的学号!");

    int id;

    int n=-1;

    id= sc.nextInt();

    for(int i=0;i

    {

    if(Integer.parseInt(a[i][0])==id)

    {

    n=i;

    break;

    }

    }

    return n;

    }

    public int print(String[][] a)

    {

    System.out.println("请输入你要打印的学生信息的学生学号!");

    int id;

    int n=-1;

    id = sc.nextInt();

    for(int i=0;i

    {

    if(Integer.parseInt(a[i][0]) == id)

    {

    n=i;

    break;

    }

    }

    return n;

    }

    public int recivice(String[][] a)

    {

    System.out.println("请输入你要修改的学生信息的学生学号!");

    int id;

    int n=-1;

    id = sc.nextInt();

    for(int i=0;i

    {

    if(Integer.parseInt(a[i][0]) == id)

    {

    n=i;

    break;

    }

    }

    return n;

    }

    public int Num(){//用来查找修改图书信息的下标

    System.out.println("选择你要修改的内容:0.学号 1.姓名 2.班级 3.电话");

    int n=sc.nextInt();

    return n;

    }

    public void display()

    {

    System.out.println("***************************************");

    System.out.println("**** 高校学习信息管理系统 *****");

    System.out.println("**** 1:添加学生信息 ****");

    System.out.println("**** 2:查询学生信息 ****");

    System.out.println("**** 3:修改学生信息 ****");

    System.out.println("**** 4:删除学生信息 ****");

    System.out.println("**** 5:打印学生信息 ****");

    System.out.println("**** 6:退出 ****");

    System.out.println("**** 请输入您要进行的操作(1-6) ***");

    }

    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    StudentMs studentMs = new StudentMs();

    boolean flat = true;

    HashSet a = new HashSet();

    String[][] student=new String[4][10];

    int num=0;

    int number;

    int m,n;

    while (flat)

    {

    studentMs.display();

    number=sc.nextInt();

    switch (number)

    {

    case 1:

    {

    studentMs.add(studentMs);

    student[num][0]=studentMs.ID+"";

    student[num][1]=studentMs.name+"";

    student[num][2]=studentMs.classnum+"";

    student[num][3]=studentMs.telephone+"";

    num++;

    break;

    }

    case 2:

    {

    m=studentMs.find(student);

    if(m>=0){

    System.out.println("学生学号为:"+student[m][0]);

    System.out.println("学生姓名为:"+student[m][1]);

    System.out.println("学生班级为:"+student[m][2]);

    System.out.println("学生电话为:"+student[m][3]);

    }else{

    System.out.println("学号错误,未找到学生");

    break;

    }

    break;

    }

    case 3:

    {

    m=studentMs.recivice(student);

    n=studentMs.Num();

    System.out.println("请输入你要修改的内容:");

    student[m][n]=sc.next();

    System.out.println("修改成功!");

    break;

    }

    case 4:

    {

    m=studentMs.delay(student);

    for(int i=0;i<4;i++)

    {

    student[m][i]=null;

    }

    System.out.println("已经成功删除学生信息");

    break;

    }

    case 5:

    {

    m=studentMs.delay(student);

    System.out.println("学号"+student[m][0]+"的学生信息为:");

    System.out.println("学生学号为:"+student[m][0]);

    System.out.println("学生姓名为:"+student[m][1]);

    System.out.println("学生班级为:"+student[m][2]);

    System.out.println("学生电话为:"+student[m][3]);

    break;

    }

    case 6:

    {

    System.out.println("程序退出!");

    flat=false;

    break;

    }

    }

    }

    }

    }

    展开全文
  • 学生信息管理系统java课程设计(含源代码)》由会员分享,可在线阅读,更多相关《学生信息管理系统java课程设计(含源代码)(43页珍藏版)》请在人人文库网上搜索。1、JAVA程序设计 课程设计报告课 题: 学生信息管理...

    《学生信息管理系统java课程设计(含源代码)》由会员分享,可在线阅读,更多相关《学生信息管理系统java课程设计(含源代码)(43页珍藏版)》请在人人文库网上搜索。

    1、JAVA程序设计 课程设计报告课 题: 学生信息管理系统 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 评阅意见:评定成绩:指导老师签名:年 月 日目 录一、系统描述21、需要实现的功能32、设计目的3二、分析与设计31、功能模块划分32、数据库结构描述43、系统详细设计文档64、各个模块的实现方法描述95、测试数据及期望结果11三、系统测试16四、心得体会23五、参考文献24六、附录24一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。1.。

    2、2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。1.3、查询学生基本信息的功能可使用 “姓名”对已存有的学生资料进行查询。1.4、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。1.5、用户登陆用不同的登录权限可以进入不同的后台界面,从而实现权限操作。1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户。

    3、提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规。

    4、化管理,与世界接轨的重要条件。本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。通过一个简化的学生信息管理系统,使学生信息管理工作系统化、规范化、自动化,从而达到提高学生信息管理效率的目的。二、分析与设计1、功能模块划分学生信息管理系统浏览学生信息查询学生信息添加学生信息修改学生信息删除学生信息普通学生(用户)模块班委(管理员)模块浏览学生信息查询学生信息学生管理登陆管理修改登陆密码显示登陆用户图1 功能模块划分图2、数据库结构描述2.1、数据库E-R模型 登录用户管理账号密码职位图2 登录用户管理E-R图学 生总学分出生地年龄专业性别姓名学号班级图3 实。

    5、体学生E-R图2.2、数据库关系模型二维表表1 学生表(student)字段数据类型说明stuIdnvarchar(30)学号stuNamenvarchar(30)姓名stuSexnvarchar(30)性别stuAgeint年龄stuJgnvarchar(30)籍贯stuZynvarchar(30)专业classIdnvarchar(30)班号stuSoursenumeric(5,2)总学分图4 录入数据后的学生表表2 登陆权限表(login)字段数据类型说明userIdnvarchar(30)用户名(账号),即登陆Idpasswordnvarchar(30)登陆密码positionnvar。

    6、char(30)职位,如班委,普通学生图5 录入数据后的登陆权限表3、系统详细设计文档3.1、系统执行流程图进度条(闪屏)用户登陆登陆验证falsetrue班委(管理员)界面普通学生界面查询添加修改删除查询显示班委(管理员 )普通学生(用户)退出退出系统结束结束退出系统truefalsefalsetrue修改用户登陆密码显示登陆用户信息图6 系统执行流程图3.2、类的划分表3 学生信息查询类类名类的成员属性与方法说明StuQuery.javaJPanel jp1定义一个面板JLabel jp1_jl1定义两个标签JTextField jp1_jtf1定义一个文本输入框JButton jp1_j。

    7、b1,jp1_jb2,jp1_jb3定义三个按钮JTable jtb定义一个表JScrollPane jsp定义一个滚动面板,用于存放表TableModel tm自定义一个表模型,用于更新表数据public StuQuery(Frame Main,String title ,boolean model)构造方法,通过传递三个参数,实现对话super(Main,title,model)调用父类的构造方法,实现模式对话public void actionPerformed(ActionEvent arg0)事件响应方法表4 修改学生信息类类名类的成员属性与方法说明UpdateStu.javaJLa。

    8、bel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8定义八个标签,用于设置数据库表的字段名JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8定义八个文本框,用于接收表的各字段值JButton jb1,jb2,jb3定义三个按钮,用于事件响应public void addView()这是修改学生界面的函数封装public AddStu(Frame Main,String title,boolean model)构造方法,通过传递三个参数,实现对话super(Main,title,model)调用父类的构造方法,实现模式对话pub。

    9、lic UpdateStu(Frame Main,String title,TableModel tm,int rowNo,boolean model)因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,并传递所选中的行号rowpublic void actionPerformed(ActionEvent e)事件响应方法表5 修改管理人员信息类类名类的成员属性与方法说明UpdateLogin.javaJLabel jl1,jl2,jl3定义三个标签,即用户名,密码,职位JTextField jtf1,jtf2,。

    10、jtf3定义三个文本框,对应三个标签的值JButton jb1,jb2,jb3定义三个按钮,用于事件响应JTable jtb定义一个表格,用于显示登陆用户信息PurViewModel pvm自定义登陆用户信息的数据更新模型public void upView()这是修改账户信息权限的界面函数的封装public UpdateLogin(Frame Main,String title,PurViewModel pvm,int rowNo,boolean model)因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,。

    11、并传递所选中的行号rowsuper(Main,title,model)调用父类的构造方法,实现模式对话public void actionPerformed(ActionEvent e)事件响应方法表6表模式-更新数据类名类的成员属性与方法说明TableModel.javaVector rowData,row,column定义表格所需要的集合(表,行,列)ResultSet rs定义一个记录集,用于接收从数据库返回来的记录集SqlConn conn定义一个用于连接数据库的对象,SqlConn是连接数据库的类public TableModel(String sql)构造方法,并传一个SQL语句,。

    12、实现查询操作public String getColumnName(int column)这是一个重写的方法,用于设置表的列名public int getColumnCount()得到数据模型记录集的列数public int getRowCount()得到数据模型记录集的行数public Object getValueAt(int arg0, int arg1)得到数据模型记录集某行某列的值4、各个模块的实现方法描述说明:此处只包含了个人完成的模块的实现方法描述4.1、学生信息查询学生信息查询窗口,采用了基于管理窗口,即主界面的对话框实现,实现方法如下:1)定义查询所需要的面板和组件。2)调用。

    13、父类的构造方法,实现模式对话。3)进行学生信息查询。4.2、修改管理人员信息修改管理人员信息的界面,通过模式对话,即继承JDialog对话框来实现的,实现方法如下:1)定义修改学生信息的相关组件。2)加载数据库,获得选中的那一行的所有信息。3)把组件添加到窗体。4)调用父类的构造方法,实现模式对话。5)调用修改用户权限信息的界面的方法。6)修改管理人员信息。7)调用数据库连接,并设置操纵更新的sql语句。4.3、修改学生信息修改学生信息的界面,通过模式对话,即继承JDialog对话框来实现,实现方法如下:1)定义修改学生信息的相关组件。2)加载数据库,获得选中的那一行的所有信息。3)把组件添加。

    14、到窗体。4)调用父类的构造方法,实现模式对话。5)调用修改学生信息的界面的方法。6)修改学生信息。7)完成相应功能。4.4、更新数据这是一个表模型,用于数据更新,实现方法如下:1)定义表格所需要的集合。2)定义一个记录集,用于接收从数据库返回来的记录集。3)定义一个用于连接数据库的对象。4)设置表格的列名。5)创建表的记录集。6)调用数据库连接。7)设置表的列名,并得到表的列数和行数。8)得到某行某列的值。5、测试数据及期望结果5.1、学生信息查询数据测试及期望结果数据测试及期望结果如下图:图7为学生登录后的最初界面;图8为学生查看所有信息界面;图9为全部学生的信息记录(此处同时运用到了Tab。

    15、leModel类);图10则是实现了此处的查询功能,测试数据为:姓名:肖立本期望结果将显示以下数据:学号:904325 姓名:肖立本 性别:男 年龄:23 出生地:安徽 专业:信息管理 班级:9040303 总学分:542.5图7 学生信息管理系统图8 学生信息管理系统-显示记录图9 学生信息管理系统-显示所有信息图10 学生信息管理系统-学生信息查询5.2、修改管理人员数据测试及期望结果数据测试及期望结果如下图:图11将显示出所有管理人员信息。此处测试的数据为:账号1:admin 密码1:admin 职位1:班委账号2:user 密码2:user 职位2:普通学生图12是弹出的修改密码窗口。。

    16、此处可将密码admin修改为其它值。图11 显示所有管理人员信息图12 修改管理人员信息窗口5.3、修改学生信息数据测试及期望结果数据测试及期望结果如下图:图13为全部学生的信息记录(此处同时运用到了TableModel类);图14是弹出的修改学生信息窗口:测试数据:姓名:杨明辉期望结果:可修改姓名、性别、年龄、出生地、专业、班级和总学分。图13 学生信息管理系统-显示所有信息图14 修改学生信息窗口三、系统测试1、系统启动界面图15 系统启动界面2、用户登录界面图16 用户登录界面3、班委(管理员)界面,即具有完全权限的用户后台界面图17 管理员界面4、班委(管理员)界面子菜单项显示图18 。

    17、管理员界面子菜单-系统界面图19 管理员界面子菜单-学生管理界面图20 管理员界面子菜单-系统设置界面5、学生信息查询界面图21 学生信息查询6、学生信息查询结果显示图22 学生信息查询显示7、添加学生信息界面在没有输入学号或者姓名,以及某一项时,会弹出一个对话框进行提示,如没有输入学号时:图23 添加学生信息8、修改学生信息界面(学号是主键,灰色显示,即不可更改)图24 修改学生信息9、显示所有学生信息图25 显示所有信息10、当没有选中一行的时候,不能修改和删除,并弹出提示警告框图26 修改和删除警告框图11、删除文件时的确认对话框(点击确认时会删除,点击取消,则返回主界面)图27 删除学。

    18、生确认对话框12、显示所有登陆用户信息图28 显示登录用户信息示意图13、修改用户登陆密码,选中某个用户进行修改图29 修改用户登录密码界面示意图14、关闭用户记录,即不显示所有用户信息图30 关闭用户记录示意图15、关闭学生记录图31 关闭学生记录示意图16、退出系统确认对话框只有确认时才会退出系统,否则返加主界面图32 退出系统17、普通学生登陆后的界面(即不能对学生信息进行添加,修改和删除以及用户密码修改,对应的这几项灰色显示,不可点击)图33 学生登录界面(1)图34 学生登录界面(2)四、心得体会这次为期一周的课程设计让我对java有了新的认识,首先我接触了很多上课见过但没有实际用过。

    19、的类和方法,让我对编程有了许多新的思想。大一学了C语言、C+等,虽然当时学的还不错,由于学的都是入门知识,所以自己做的程序只能实现一定的功能,和自己平时用的软件相差很大。这学期刚开课学java,虽然知道这是一门很有用的语言,但是却感觉没什么新鲜感,它的跨平台特性也只是听听,根本没有认识,由于平时学习不刻苦,也没有时间静下心来写过java代码,当得知最后期末最后一周将进行java课程设计,才静下心来开始研究java,结合以前的编程知识,做起了自己的程序。与此同时,我们也在进行数据库课程设计,和这个系统相类似,做起来比较熟练,同时想通过做课程设计将数据库和java更好的结合运用起来,感觉这样才能够。

    20、更贴近实际应用。 这次课程设计使我对java的跨平台性有了进一步认识,同时加深了课堂上所学到的知识。虽然这是第三次课程设计,并且自己也有了两年的上机实验,但我不得不说这一次课程设计是前两次以及任何一节上机实验课都不可比的。在课程设计这一段时间,使我收获了很多在上机课上无法学习到的知识,尤其是需求分析和eclipse熟练的使用。因为这一部分知识的不熟练,在程序设计过程中遇到了不少困难,但通过老师的指导和一次又一次的指导、改写、调试,将这些困难都解决了,心中的喜悦感油然而生。为了能使程序更加的完善,更加人性化,我也利用了不少的课余时间,查找了各方面的资料,看到一个小型系统能够展示在电脑屏幕上时,感。

    21、觉自己这段时间的付出是非常值得的,也使我对java产生了更浓厚的兴趣,对自己的学习以及将来的工作都是有很大的帮助的。整个课程设计过程让我的java知识得到了应用,体验了程序员编程时的喜怒哀乐,知识、心智,得到全方位提升,收获颇丰。五、参考文献著作文献:1 赵海廷.Java语言程序设计教程.北京:清华大学出版社.20122 孙印杰,刘斌,孙玉强.Java编程案例精解.北京:电子工业出版社.20053 何梅.java编程实例系列丛书.北京:清华大学出版社,20024 杨昭.二级Java语言程序设计教程.北京:中国水利水电出版社,20065 赵文靖.Java程序设计基础与上机指导.北京:清华大学出版。

    22、社,2006 六、附录1、功能:这是学生信息查询窗口,采用基于管理窗口,即主界面的对话框实现package com.View;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import com.Tools.MyFont;public class StuQuery extends JDialog implements ActionListener /定义查询所需要的面板和组件JPanel jp1;JLabel jp1_jl1。

    23、;JTextField jp1_jtf1;JButton jp1_jb1,jp1_jb2,jp1_jb3;JTable jtb;JScrollPane jsp;TableModel tm;public StuQuery(Frame Main,String title ,boolean model)/调用父类的构造方法,实现模式对话super(Main,title,model);jp1=new JPanel();jp1_jl1=new JLabel(请输入姓名:);jp1_jl1.setFont(MyFont.f1);jp1_jtf1=new JTextField(15);jp1_jb1=new。

    24、 JButton(查 询-);jp1_jb1.setFont(MyFont.f1);jp1_jb1.addActionListener(this);jp1_jb2=new JButton(清 除);jp1_jb2.setFont(MyFont.f1);jp1_jb2.addActionListener(this);jp1_jb3=new JButton(显示所有记录);jp1_jb3.setFont(MyFont.f1);jp1_jb3.addActionListener(this);jp1.add(jp1_jl1);jp1.add(jp1_jtf1);jp1.add(jp1_jb1);jp1。

    25、.add(jp1_jb2);jp1.add(jp1_jb3);jtb=new JTable();jsp=new JScrollPane(jtb);this.add(jp1,North);this.add(jsp,Center);this.setSize(600,400);this.setVisible(true);Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub/如果点击了查询按钮if(arg0.getSource()=jp1_jb1)/获取文本框的值String st。

    26、uName=jp1_jtf1.getText().trim();/其中trim()是去掉文本框前面可能有的空格,但不能去掉字符串中的空格String sql=select * from student where stuName=+stuName+;/调用模型tm=new TableModel(sql);jtb.setModel(tm);else if(arg0.getSource()=jp1_jb2)jp1_jtf1.setText();else if(arg0.getSource()=jp1_jb3)tm=new TableModel(null);jtb.setModel(tm);2、功能。

    27、:这是一个表模型,用于更新数据package com.View;import com.SqlConnection.*;/引入数据库连接的包import java.sql.*;import java.util.*;import javax.swing.table.AbstractTableModel;import com.SqlConnection.SqlConn;public class TableModel extends AbstractTableModel /定义表格所需要的集合Vector rowData,row,column;/定义一个记录集,用于接收从数据库返回来的记录集Resul。

    28、tSet rs;/定义一个用于连接数据库的对象SqlConn conn;public TableModel(String sql)if(sql=null)sql=select * from student;/设置表格的列名column=new Vector();column.add(学号);column.add(姓名);column.add(性别);column.add(年龄);column.add(出生地);column.add(专业);column.add(班级);column.add(总学分);/创建表的记录集rowData=new Vector();/调用数据库连接conn=new S。

    29、qlConn();rs=conn.sqlQuery(sql);try while(rs.next()row=new Vector();row.add(rs.getString(1);row.add(rs.getString(2);row.add(rs.getString(3);row.add(rs.getString(4);row.add(rs.getString(5);row.add(rs.getString(6);row.add(rs.getString(7);row.add(rs.getString(8);rowData.add(row); catch (Exception e) e.p。

    30、rintStackTrace();/ TODO: handle exceptionOverride/设置表的列名public String getColumnName(int column) / TODO Auto-generated method stubreturn (String)this.column.get(column);Override/得到的列数public int getColumnCount() / TODO Auto-generated method stubreturn this.column.size();/得到的行数Overridepublic int getRow。

    31、Count() / TODO Auto-generated method stubreturn this.rowData.size();Override/得到某行某列的值public Object getValueAt(int arg0, int arg1) / TODO Auto-generated method stubreturn (Vector)this.rowData.get(arg0).get(arg1);3、 功能:这是修改管理人员信息的界面,通过模式对话(即继承JDialog对话框)来实现 package com.View;import java.awt.*;import ja。

    32、va.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import com.SqlConnection.SqlConn;import com.Tools.MyFont;public class UpdateLogin extends JDialog implements ActionListener /定义修改学生信息的相关组件JLabel jl1,jl2,jl3;JTextField jtf1,jtf2,jtf3;JButton jb1,jb2,jb3;/这是修改账户信息权限的界面。

    33、函数的封装public void upView()/加载数据库,获得选中的那一行的所有信息jl1=new JLabel(账 号:);/因为账号是主键,设置文本框不可编辑的同时,一般也设置标签灰色显示,以区别其他标签 jl1.setEnabled(false);jl1.setBounds(20, 20, 60, 25);jl1.setFont(MyFont.f1);jl2=new JLabel(密 码:);jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=new JLabel(职 位:);jl3.setEnabled(false)。

    34、;jl3.setFont(MyFont.f1);jl3.setBounds(20, 60, 60, 25);jtf1=new JTextField(20);/由于账号是主键,因此不能修改,即设置障碍曙jtf1不可编辑jtf1.setEnabled(false);jtf1.setBounds(70, 20, 130, 25);jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf3=new JTextField(20);jtf3.setEnabled(false);jtf3.setBounds(70, 60, 130, 25);j。

    35、b1=new JButton(修 改);jb1.setFont(MyFont.f1);jb1.setBounds(100, 100, 80, 25);jb1.addActionListener(this);jb2=new JButton(取 消);jb2.setFont(MyFont.f1);jb2.setBounds(280, 100, 80, 25);jb2.addActionListener(this);jb3=new JButton(清 除);jb3.setFont(MyFont.f1);jb3.setBounds(190,100,80,25);jb3.addActionListene。

    36、r(this);this.setLayout(null);/把组件添加到窗体this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jtf2);this.add(jl3);this.add(jtf3);this.add(jb1);this.add(jb2);this.add(jb3);/因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,并传递所选中的行号rowpublic UpdateLogin(Frame Main,String title,PurViewMod。

    37、el pvm,int rowNo,boolean model)/调用父类的构造方法,实现模式对话super(Main,title,model);/调用修改用户权限信息的界面的方法this.upView();/先从表模型中获取所选中的那一行数据String userId=(String)pvm.getValueAt(rowNo, 0);System.out.println(userId=+userId);String password=(String)pvm.getValueAt(rowNo, 1);String position=(String)pvm.getValueAt(rowNo, 2)。

    38、;/设置广本框的值jtf1.setText(userId);jtf2.setText(password);jtf3.setText(position);/设置窗体的属性this.setSize(465,170);this.setVisible(true);this.setResizable(false);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub/当点击了修改按钮if(e.getSource()=jb1)/获取文本框的信息String userId=jtf1.getTe。

    39、xt().trim();String password=jtf2.getText().trim();String position=jtf3.getText().trim();/调用数据库连接/设置操纵更新的sql语句String sql=update login set password=+password+,position=+position+where userId=+userId+;SqlConn sqlconn=new SqlConn();sqlconn.sqlUpdate(sql);/关闭交资源sqlconn.closeSqlConn();/关闭与数据库连接的资源后,再关闭对话框。

    40、,否则数据不能自动在表中更新显示出来this.dispose();/如果点击了取消按钮,则关闭模式对话框else if(e.getSource()=jb2)this.dispose();/如果点击了清除按钮,则清除所有的广本框的内容,除了学号else if(e.getSource()=jb3)/由于账号是主键,则不能清空!jtf2.setText();4、功能:这是修改学生信息的界面,通过模式对话(即继承JDialog对话框)来实现 package com.View;import java.awt.*;import java.awt.event.ActionEvent;import java.。

    41、awt.event.ActionListener;import javax.swing.*;import com.SqlConnection.SqlConn;import com.Tools.MyFont;public class UpdateStu extends JDialog implements ActionListener /定义修改学生信息的相关组件JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8;JButton jb1,jb2,jb3;int stuA。

    42、ge=0;Double stuSourse=0.0;/这是修改学生信息的界面函数的封装public void upView()/加载数据库,获得选中的那一行的所有信息jl1=new JLabel(学 号:);/因为学号是主键,设置文本框不可编辑的同时,一般也设置标签灰色显示,以区别其他标签 jl1.setEnabled(false);jl1.setBounds(20, 20, 60, 25);jl1.setFont(MyFont.f1);jl2=new JLabel(姓 名:);jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=。

    43、new JLabel(性 别:);jl3.setFont(MyFont.f1);jl3.setBounds(20, 60, 60, 25);jl4=new JLabel(年 龄:);jl4.setFont(MyFont.f1);jl4.setBounds(250, 60, 60, 25);jl5=new JLabel(出生地:);jl5.setFont(MyFont.f1);jl5.setBounds(14, 100, 60, 25);jl6=new JLabel(专 业:);jl6.setFont(MyFont.f1);jl6.setBounds(20, 140, 60, 25);jl7=n。

    44、ew JLabel(班 级:);jl7.setFont(MyFont.f1);jl7.setBounds(20, 180, 60, 25);jl8=new JLabel(总学分:);jl8.setFont(MyFont.f1);jl8.setBounds(240, 180, 60, 25);jtf1=new JTextField(20);/由于学号是主键,因此不能修改,即设置障碍曙jtf1不可编辑jtf1.setEnabled(false);jtf1.setBounds(70, 20, 130, 25);jtf1.setBorder(BorderFactory.createLoweredBev。

    45、elBorder();jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf2.setBorder(BorderFactory.createLoweredBevelBorder();jtf3=new JTextField(10);jtf3.setBounds(70, 60, 60, 25);jtf3.setBorder(BorderFactory.createLoweredBevelBorder();jtf4=new JTextField(10);jtf4.setBounds(300, 60, 60, 25);jtf4.setB。

    46、order(BorderFactory.createLoweredBevelBorder();jtf5=new JTextField(30);jtf5.setBounds(70, 100, 360, 25);jtf5.setBorder(BorderFactory.createLoweredBevelBorder();jtf6=new JTextField(20);jtf6.setBounds(70, 140, 290, 25);jtf6.setBorder(BorderFactory.createLoweredBevelBorder();jtf7=new JTextField(20);jtf。

    47、7.setBounds(70, 180, 130, 25);jtf7.setBorder(BorderFactory.createLoweredBevelBorder();jtf8=new JTextField(20);jtf8.setBounds(300, 180, 130, 25);jtf8.setBorder(BorderFactory.createLoweredBevelBorder();jb1=new JButton(修 改);jb1.setFont(MyFont.f1);jb1.setBounds(100, 220, 80, 25);jb1.addActionListener(th。

    48、is);jb2=new JButton(取 消);jb2.setFont(MyFont.f1);jb2.setBounds(280, 220, 80, 25);jb2.addActionListener(this);jb3=new JButton(清 除);jb3.setFont(MyFont.f1);jb3.setBounds(190,220,80,25);jb3.addActionListener(this);this.setLayout(null);/把组件添加到窗体this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jtf2);thi。

    49、s.add(jl3);this.add(jtf3);this.add(jl4);this.add(jtf4);this.add(jl5);this.add(jtf5);this.add(jl6);this.add(jtf6);this.add(jl7);this.add(jtf7);this.add(jl8);this.add(jtf8);this.add(jb1);this.add(jb2);this.add(jb3);/因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,并传递所选中的行号rowpublic 。

    50、UpdateStu(Frame Main,String title,TableModel tm,int rowNo,boolean model)/调用父类的构造方法,实现模式对话super(Main,title,model);/调用修改学生信息的界面的方法this.upView();/先从表模型中获取所选中的那一行数据String stuId=(String)tm.getValueAt(rowNo, 0);System.out.println(sutId=+stuId);String stuName=(String)tm.getValueAt(rowNo, 1);String stuSex=(。

    51、String)tm.getValueAt(rowNo, 2);String stuAge=(String)tm.getValueAt(rowNo, 3);String stuJg=(String)tm.getValueAt(rowNo, 4);String stuZy=(String)tm.getValueAt(rowNo, 5);String classId=(String)tm.getValueAt(rowNo, 6);String stuSourse=(String)tm.getValueAt(rowNo, 7);/设置文本框的默认值jtf1.setText(stuId);jtf2.se。

    52、tText(stuName);jtf3.setText(stuSex);jtf4.setText(stuAge);jtf5.setText(stuJg);jtf6.setText(stuZy);jtf7.setText(classId);jtf8.setText(stuSourse);/设置窗体的属性this.setSize(465,300);this.getContentPane().setBackground(Color.LIGHT_GRAY);this.setVisible(true);this.setResizable(false);Overridepublic void action。

    53、Performed(ActionEvent e) / TODO Auto-generated method stub/当点击了修改按钮if(e.getSource()=jb1)/获取文本框的信息String stuId=jtf1.getText().trim();String stuName=jtf2.getText().trim();if(stuName.equals()JOptionPane.showMessageDialog(this, 请输入姓名!);return;/返回到输入界面,如果没有return语句,则会回到主界面String stuSex=jtf3.getText().tri。

    54、m();if(stuSex.equals()JOptionPane.showMessageDialog(this, 请输入性别!);return;/返回到输入界面,如果没有return语句,则会回到主界面/对于年龄,则需要进行两个判断,一个是不能为空,另一个必须是int型,下面用异常来判断输入的学生年龄是否是整型数/*/try stuAge=Integer.parseInt(jtf4.getText().trim();/把从文本框取得的字符串转换成整型,如果抛异常,则输入的不是整形数if(stuAge1)JOptionPane.showMessageDialog(this, 年龄必须大于或等于1!);return; catch (Exception e2) /提示输入的不是整数JOptionPane.showMessageDialog(this, 请输入一个整数的年龄!);/如果抛异常,则返回到添加窗口,后面终止执行*。

    展开全文
  • java实现学生管理系统

    2021-02-12 09:05:13
    简介这篇博客参考学生管理系统要实现的功能整段源码student_main.java主函数package student_lei;​import java.util.Scanner;import java.util.ArrayList;​public class student_main {public static void main...

    简介

    这篇博客参考

    学生管理系统要实现的功能

    整段源码

    student_main.java主函数

    package student_lei;

    import java.util.Scanner;

    import java.util.ArrayList;

    public class student_main {

    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    //定义一个集合,装入student类 ArrayList arr = new ArrayList<>();

    //定义初使页面,并使用死循环,退出使用system.exit(0) while (true) {

    System.out.println("-----------");

    System.out.println("1.添加学生");

    System.out.println("2.删除学生");

    System.out.println("3.修改学生");

    System.out.println("4.查看所有学生");

    System.out.println("5.退出");

    System.out.println("输入你的选择:");

    int n = sc.nextInt();

    switch (n) {

    //按照输入的数字调用对应的函数 case 1 -> addStudent(arr);

    case 2 -> deleteStudent(arr);

    case 3 -> updateStudent(arr);

    case 4 -> showStudent(arr);

    case 5 -> System.exit(0);

    }

    }

    }

    //添加学生函数 public static void addStudent(ArrayList arr) {

    Scanner sc = new Scanner(System.in);

    //定义在外面,使后面的print能够调用 String sid;

    //用死循环配合isUsed函数判断是否输入相同学号 while (true) {

    System.out.println("学号");

    sid = sc.nextLine();

    if (isUsed(arr, sid)) {

    System.out.println("学号输入重复,请重新输入");

    } else break;

    }

    System.out.println("姓名");

    String name = sc.nextLine();

    System.out.println("年龄");

    String age = sc.nextLine();

    System.out.println("居住地");

    String address = sc.nextLine();

    //装进student类中 student s = new student();

    s.setSid(sid);

    s.setName(name);

    s.setAge(age);

    s.setAddress(address);

    //把类装到集合中 arr.add(s);

    System.out.println("添加学生成功!");

    }

    //删除学生函数 public static void deleteStudent(ArrayList arr) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入要删除学生的学号:");

    String sid = sc.nextLine();

    //用boolean来判断是否删除成功,Java中不能把0当作false boolean index = true;

    for (int j = 0; j < arr.size(); j++) {

    student s = arr.get(j);

    //遍历加if,删除对应的学生 if (s.getSid().equals(sid)) {

    arr.remove(j);

    index = false;

    System.out.println("删除成功!");

    break;

    }

    }

    if (index) {

    System.out.println("学号输入错误");

    }

    }

    //修改学生函数 public static void updateStudent(ArrayList arr) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入要修改的学生学号");

    String n = sc.nextLine();

    int temp = 0;

    for (int j = 0; j < arr.size(); j++) {

    if (arr.get(j).getSid().equals(n)) {

    temp = j;

    break;

    }

    }

    //修改学生功能菜单 System.out.println("-----------");

    System.out.println("1.修改学号");

    System.out.println("2.修改姓名");

    System.out.println("3.修改年龄");

    System.out.println("4.修改居住地");

    System.out.println("请输入你的选择");

    int s = sc.nextInt();

    switch (s) {

    case 1 -> {

    System.out.println("输入新的学号");

    //与which连用时,删除缓存 sc.nextLine();

    String newSid = sc.nextLine();

    arr.get(temp).setSid(newSid);

    System.out.println("修改成功");

    }

    case 2 -> {

    System.out.println("输入新姓名");

    sc.nextLine();

    String newName = sc.nextLine();

    arr.get(temp).setName(newName);

    System.out.println("修改成功");

    }

    case 3 -> {

    System.out.println("输入新年龄");

    sc.nextLine();

    String newAge = sc.nextLine();

    arr.get(temp).setAge(newAge);

    System.out.println("修改成功");

    }

    case 4 -> {

    System.out.println("输入新居住地");

    sc.nextLine();

    String newAddress = sc.nextLine();

    arr.get(temp).setAddress(newAddress);

    System.out.println("修改成功");

    }

    }

    }

    //展示学生函数 public static void showStudent(ArrayList arr) {

    //判断是否有数据存入其中 if (arr.size() == 0) {

    System.out.println("无数据,请先输入数据");

    return;

    }

    //使用制表符制作表格,更好的展示 System.out.println("学号" + "\t" + "姓名" + "\t" + "年龄" + "\t" + "地址");

    //可以使用增强for循环,针对只对数组,集合中对象单一遍历操作的函数 for (student s : arr) {

    System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "\t"+ s.getAddress());

    }

    }

    //判断是否有相同学号的函数,传入集合和输入的新学号,在studentAdd函数中使用,返回值根据情况有所不同 public static boolean isUsed(ArrayList arr, String sid) {

    boolean n = false;

    for (student s : arr) {

    if (s.getSid().equals(sid)) {

    n = true;

    break;

    }

    }

    return n;

    }

    }

    student.java类

    package student_lei;

    public class student {

    //学号 private String sid;

    //姓名 private String name;

    //年龄 private String age;

    //居住地 private String address;

    public student() {}

    //使用command + n 自动生成构造函数,配合shift,还能生成get,set函数 public student(String sid, String name, String age, String address) {

    this.sid = sid;

    this.name = name;

    this.age = age;

    this.address = address;

    }

    public String getSid() {

    return sid;

    }

    public void setSid(String sid) {

    this.sid = sid;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public String getAge() {

    return age;

    }

    public void setAge(String age) {

    this.age = age;

    }

    public String getAddress() {

    return address;

    }

    public void setAddress(String address) {

    this.address = address;

    }

    }

    如何利用IntelliJ自动生成构造函数,set(),get()函数

    相信大家都很厌倦写构造函数和get,set函数了,如果你使用的是intellij,那么可以用一个快捷键来快速解决哦,用完之后我直接感动,以后再也不用像个 一样自己写了

    Mac快捷键command + n

    Mac我会配合自己的截图,如果使用Windows,我查到快捷键的是alt + insert,用windows的小伙伴如果不清楚的话,可以搜索一下哦

    先创建一个Java类,然后随便定义几个变量,按下command + n 后,会有这个界面

    选你想选的,这里我选Getter + Setter,然后会有这个界面

    一般来说,你只能点一个,但是如果按下shift的同时点击,就能达到我这样的多选效果

    最后成果图

    省时又省力,芜湖

    学生管理系统初始化界面书写

    while (true) {

    System.out.println("-----------");

    System.out.println("1.添加学生");

    System.out.println("2.删除学生");

    System.out.println("3.修改学生");

    System.out.println("4.查看所有学生");

    System.out.println("5.退出");

    System.out.println("输入你的选择:");

    int n = sc.nextInt();

    switch (n) {

    //按照输入的数字调用对应的函数 case 1 -> addStudent(arr);

    case 2 -> deleteStudent(arr);

    case 3 -> updateStudent(arr);

    case 4 -> showStudent(arr);

    case 5 -> System.exit(0);

    }

    }

    前面一大段输出函数,用来输出一开始的选择界面

    这没说明好说的,到后面的switch(

    添加学生函数

    isUsed函数

    使用这个函数,是为了完成添加学生类的附加功能,判断学号是否重合

    public static boolean isUsed(ArrayList arr, String sid) {

    boolean n = false;

    for (student s : arr) {

    if (s.getSid().equals(sid)) {

    n = true;

    break;

    }

    }

    return n;

    }

    }

    要用一个函数来判断,可以使用boolean来定义,代码中的for循环为

    添加学生

    public static void addStudent(ArrayList arr) {

    Scanner sc = new Scanner(System.in);

    //定义在外面,使后面的print能够调用 String sid;

    //用死循环配合isUsed函数判断是否输入相同学号 while (true) {

    System.out.println("学号");

    sid = sc.nextLine();

    if (isUsed(arr, sid)) {

    System.out.println("学号输入重复,请重新输入");

    } else break;

    }

    System.out.println("姓名");

    String name = sc.nextLine();

    System.out.println("年龄");

    String age = sc.nextLine();

    System.out.println("居住地");

    String address = sc.nextLine();

    //装进student类中 student s = new student();

    s.setSid(sid);

    s.setName(name);

    s.setAge(age);

    s.setAddress(address);

    //把类装到集合中 arr.add(s);

    System.out.println("添加学生成功!");

    }

    重点在为什么把String sid放到while循环定义外,而不是直接使用

    String sid = sc.nextLine()

    因为定义在while循环内的变量循环外是无法访问到的,这也是我们容易忽视的一点

    删除学生函数

    public static void deleteStudent(ArrayList arr) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入要删除学生的学号:");

    String sid = sc.nextLine();

    //用boolean来判断是否删除成功,Java中不能把0当作false boolean index = true;

    for (int j = 0; j < arr.size(); j++) {

    student s = arr.get(j);

    //遍历加if,删除对应的学生 if (s.getSid().equals(sid)) {

    arr.remove(j);

    index = false;

    System.out.println("删除成功!");

    break;

    }

    }

    if (index) {

    System.out.println("学号输入错误");

    }

    }

    这个函数中,比较重要的是对于index的使用,我是第一次碰到,删除成功很好输出,跟在remove的后面就行了,但是输出失败(学号输入错误)的提示该放在哪呢,如果直接放在for循环外,那么输出成功后也会提示输出失败,所以,需要把加一个判断条件index,如果输出成功,就把index赋值为false,这样就不会在输出成功后也提示输出失败了

    修改学生函数

    public static void updateStudent(ArrayList arr) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入要修改的学生学号");

    String n = sc.nextLine();

    int temp = 0;

    for (int j = 0; j < arr.size(); j++) {

    if (arr.get(j).getSid().equals(n)) {

    temp = j;

    break;

    }

    }

    //修改学生功能菜单 System.out.println("-----------");

    System.out.println("1.修改学号");

    System.out.println("2.修改姓名");

    System.out.println("3.修改年龄");

    System.out.println("4.修改居住地");

    System.out.println("请输入你的选择");

    int s = sc.nextInt();

    switch (s) {

    case 1 -> {

    System.out.println("输入新的学号");

    //与which连用时,删除缓存 sc.nextLine();

    String newSid = sc.nextLine();

    arr.get(temp).setSid(newSid);

    System.out.println("修改成功");

    }

    case 2 -> {

    System.out.println("输入新姓名");

    sc.nextLine();

    String newName = sc.nextLine();

    arr.get(temp).setName(newName);

    System.out.println("修改成功");

    }

    case 3 -> {

    System.out.println("输入新年龄");

    sc.nextLine();

    String newAge = sc.nextLine();

    arr.get(temp).setAge(newAge);

    System.out.println("修改成功");

    }

    case 4 -> {

    System.out.println("输入新居住地");

    sc.nextLine();

    String newAddress = sc.nextLine();

    arr.get(temp).setAddress(newAddress);

    System.out.println("修改成功");

    }

    }

    }

    看起来有一大段代码,但是重要的只有一行代码,就是

    sc.nextLine();

    在switch中用nextLine(),需要先用上面的代码,否则在运行的时候会直接当你输入的值为空,具体为什么我没查到,但我猜跟

    展示学生函数

    public static void showStudent(ArrayList arr) {

    //判断是否有数据存入其中 if (arr.size() == 0) {

    System.out.println("无数据,请先输入数据");

    return;

    }

    //使用制表符制作表格,更好的展示 System.out.println("学号" + "\t" + "姓名" + "\t" + "年龄" + "\t" + "地址");

    //可以使用增强for循环,针对只对数组,集合中对象单一遍历操作的函数 for (student s : arr) {

    System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "\t"+ s.getAddress());

    }

    }

    比较重要的就是制表符的使用,在学C语言时就把\t叫制表符,这次使用\t按表格输出数据,会有更好的展示效果

    后记

    到此,需要注意的点都讲完了,这个管理系统虽然简单,但是在写它的过程中,我还是发现了许多我之前不知道的知识,算是有所收获吧,我也会经常拿这篇文章看看,复习一下,如果太长时间不敲,也会忘记,我一般复习的时候,会同时打开intellij和sublime,先用sublime敲一下代码中比较重要的部分,在对照intellij看看写错没有,只需要敲比较重要,容易出错的地方就行,希望大家也能多多复习哦

    展开全文
  • 本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下一、项目结构学生信息管理系统分三层进行实现。student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据。Stuview.java...
  • java课程设计(学生信息管理系统

    千次阅读 2021-02-12 17:44:09
    2.本组课题及本人任务本组的课题是学生信息管理系统,我负责的任务是完成学生信息管理系统的图形界面。3.总体设计(概要设计)本组完成的是学生信息管理系统,主要的功能有增,删,查,改,管理的学生信息有学号、姓名...
  • java写的学生信息管理系统,供大家参考,具体内容如下使用到了集合类ArrayLisat 来对Student类的对象进行存储。StudentManagerTest为主类,Student类里面进行了相应数据的封装。里面用了很多循环来写,并且运用了...
  • JAVA学生信息管理系统

    2021-03-01 08:50:03
    *^_^*今日思考,完成一个基于JAVA学生信息管理系统项目,需要实现哪些功能?此类项目常见描述如下:学生信息管理系统可对学生学籍注册、档案管理、学籍异动、升级、毕业、成长记录实现全程信息化管理。采用当前...
  • 项目描述javaweb学生信息管理系统运行环境jdk8+tomcat8+mysql5.6+IntelliJ IDEA项目技术(必填)jsp+java servlet+jdbc+h-ui+easyui数据库文件(可选)链接:https://pan.baidu.com/s/1Su-3YRi3WX5Fbj2Nn_V9GA提取码:...
  • System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 "); System.out.println(" 学生学号:"+stu[i].getstunumber() ); System.out.println(" 学生姓名:"+stu[i].getname() ); System.out....
  • 源码编号:B-E00012 点击查看分类规则项目类型:Java EE项目(java web项目)项目名称:基于java web的学生信息管理系统(StudentManagerWeb)当前版本:V2.0.0版本难度等级:✩✩✩复杂程度:✩✩点击查看难度等级用户...
  • import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.Image;import java.awt.Toolkit;import java.awt....
  • Java课程设计报告---学生信息管理系统 目 录 第一章第一章 总体设计总体设计 . 1 1.1 本系统的主要功能 1 1.2 系统包含的类及类之间的关系 . 1 1.3 Java 源文件及其功能 . 1 1.4 相关文件及其功能 2 第二章第二章 ...
  • 根据学号修改学生信息4.根据学号查看某一个学生信息5.根据性别查看同性别的所有学生6.根据学号删除某一个学生7.按照学号升序排序(默认)8.按照年龄降序排序Student 类- - -学生的javabean类package ...
  • import java.io.*;public class Text {public static void main(String[] args) throws MyException, IOException {Login l=new Login();l.login();}}class Student{private String stunumber;priv...
  • java学生管理系统总结报告.doc

    千次阅读 2021-02-12 15:11:52
    java学生管理系统总结报告成都东软信息技术职业学院期末项目报告项目名称:学生管理系统系 别:计算机科学与技术系年级专业:xx级软件技术班 级:x学 号:xx学生姓名:xxxx年 xx 月 xx 日项目内容及知识应用1.1项目...
  • 慢慢锻炼自己总结的能力,养成习惯以后去写自己的技术博客,古人云,温故而知新作为一个技术拓荒者,我希望分享我的学习心得,希望在枯燥的学习过程中找到哪怕一丁点的乐趣效果图如下:简易学生信息管理系统主要功能...
  • import java.io.*;import java.util.ArrayList;import java.util.Scanner;class MyObjectOutputStream extends ObjectOutputStream{public MyObjectOutputStream() throws IOException{super();}public MyObjectOutp...
  • java实现学生信息管理系统,java编程学生管理系统java学生信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下主要使用的增删改查操作首先,需要先建一个文件(点击左上角File,选择第一个New里的第一个...
  • 学生信息管理系统一、功能需求1、可设置学校信息2、可设置状态栏信息3、登录与注册功能4、登录用户修改密码功能5、对学生记录增加和修改6、查询:按学号、姓名、班级和系部进行查询7、删除:按学号、班级、系部删除...
  • 编写一个简单的学生管理信息系统。在oracle中设计一张学生表,以学号作为关键字。其他学生信息有:姓名、手机号。在进入系统时,显示如下菜单:**************************************************=====欢迎...
  • 本文实例为大家分享了java实现简单学生管理系统的具体代码,供大家参考,具体内容如下功能:1.增加学生2.查看学生3.根据学号修改学生信息4.根据学号查看某一个学生信息5.根据性别查看同性别的所有学生6.根据学号删除...
  • 基于JavaSpringMvc+mybatis实现学生信息管理系统

    万次阅读 多人点赞 2021-10-13 21:40:17
    Java经典基础毕设项目--学生信息管理系统详细设计【附源码】 主要模块设计如下: 使用Shiro权限管理框架,实现登录验证和登录信息的储存,根据不同的登录账户,分发权限角色,对不同页面url进行角色设置。 管理员...
  • Java实现学生信息管理系统

    万次阅读 多人点赞 2021-03-28 11:12:43
    学生信息管理系统,要求完成以下基本任务: 1.有良好程序风格(文档注释,函数注释,语句注释)。 2.将功能补充完全(基于文件处理,完成刷新和保存功能)。 3.将学生信息改为更好的数据组织,而非离散形式...
  • JAVA学生学籍管理系统

    2021-03-06 02:31:54
    *^_^*今天记录的项目是基于JAVA学生学籍管理系统,基于JAVA学生学籍管理系统项目是这么回事:电子学籍系统可对学生学籍注册、档案管理、学籍异动、升级、毕业、成长记录实现全程信息化管理。采用当前非常流行的B...
  • 基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学籍学生信息信息管理系统, 该项目可用各类java课程设计大作业中, 学籍学生信息信息管理系统的系统架构分为前后台两部分, 最终实现在线上进行学籍学生信息信息...
  • Java学生管理系统

    2021-03-05 19:13:37
    package Homework08;/*调试了一上午,收获:学会了昨天的debug的使用吸取教训:Student stus[]=new Student[2];for (int i=0;...}*/import java.util.Scanner;public class Main {public static void...
  • Java实现学生管理系统

    2021-02-12 15:47:07
    知识点:数组、do{}while循环、for循环、if语句、switch条件语句学生管理系统的流程图import java.util.Scanner;public class Stu{public static void main(String[] args){Scanner sc = new Scanne...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,178
精华内容 18,071
关键字:

学生管理系统修改学生信息java

java 订阅