StudentManager系统

系统的数据:

变量 stunumber 为字符串类型 String,用于存储学生的学号(有 8 位数字组成)

变量 name 为字符串类型 String,用于存储学生的姓名。

变量 mathematicsscore 为 double 类型,用于存储学生的高等数学成绩,高等数学的学分为 4 分。

变量 englishiscore 为 double 类型,用于存储学生的大学英语成绩,大学英语的学分为 3 分。

变量 networkscore 为 double 类型,用于存储学生的计算机网络成绩,计算机网络的学分为 4 分。

变量 databasescore 为 double 类型,用于存储学生的数据库成绩,数据库的学分为 3 分。

变量 softwarescore 为 double 类型,用于存储学生的软件工程成绩,软件工程的学分为 2 分。

功能要求:

1.实现成绩的录入

2.学生成绩修改

3.计算学生成绩绩点

4.退出程序界面

思路:

首先,利用对象数组来存储5个数据,只存学号和姓名,成绩都默认为零

利用while循环来控制选择的功能,选择4就退出循环,否则继续循环

根据所选的功能,利用case语句分开,分被执行功能

该程序会重复用到查找学号的方法,因此建立一个find()方法

该录入功能会有一个难题,就是如何实现实时的更新

因此,建立了一个方法来专门实现它

public void display5(int p)
{
System.out.println("*******************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("*******************************");
System.out.println(" 学生学号:"+s[p].getStunumber());
System.out.println(" 学生姓名:"+s[p].getName());
if(s[p].getMathematicsscore()!=0)
System.out.println(" 1.高等数学成绩为:"+s[p].getMathematicsscore());
if(s[p].getEnglishiscore()!=0)
System.out.println(" 2.大学英语成绩为:"+s[p].getEnglishiscore());
if(s[p].getNetworkscore()!=0)
System.out.println(" 3.计算机网络成绩为:"+s[p].getNetworkscore());
if(s[p].getDatabasescore()!=0)
System.out.println(" 4.数据库成绩为:"+s[p].getDatabasescore());
if(s[p].getSoftwarescore()!=0)
System.out.println(" 5.软件工程成绩为:"+s[p].getSoftwarescore());
}

这样根据成绩初始值为0,就可以实现更新输出;

这样第一个功能就完成了,接下来进行修改的功能

修改的时候,有一个问题就是:如果不录入修改的程序,那么之前的数据如何找回?

此时,我们就是需要找个变量去等于修改之前的数据,这样就避免了修改后的数据不能再找回之前的数据的问题。

第三步:就是计算学分绩点

根据

我们可以用if语句,来算出各科成绩的绩点,最终保留两位小数可以用String.format("%.2f",v)

来判断是否大于等于2,满足毕业要求!!

下面就是全部的代码:

package com.开学测试;
import java.util.Scanner;
/* 信1805-3班 */
/* 徐利峰 */
class ScoreInformation
{
private String stunumber;
private String name;
private double mathematicsscore;
private double englishiscore;
private double networkscore;
private double databasescore;
private double softwarescore;
public String getStunumber() {
return stunumber;
}
public void setStunumber(String stunumber) {
this.stunumber = stunumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMathematicsscore() {
return mathematicsscore;
}
public void setMathematicsscore(double mathematicsscore) {
this.mathematicsscore = mathematicsscore;
}
public double getEnglishiscore() {
return englishiscore;
}
public void setEnglishiscore(double englishiscore) {
this.englishiscore = englishiscore;
}
public double getNetworkscore() {
return networkscore;
}
public void setNetworkscore(double networkscore) {
this.networkscore = networkscore;
}
public double getDatabasescore() {
return databasescore;
}
public void setDatabasescore(double databasescore) {
this.databasescore = databasescore;
}
public double getSoftwarescore() {
return softwarescore;
}
public void setSoftwarescore(double softwarescore) {
this.softwarescore = softwarescore;
} } public class ScoreManagement { Scanner in=new Scanner(System.in);
public void display1()
{
System.out.println("*******************************");
System.out.println(" 石家庄铁道大学软件工程系 ");
System.out.println(" 学生学籍管理系统2019版 ");
System.out.println("*******************************");
System.out.println(" 1.学生考试成绩录入 ");
System.out.println(" 2.学生考试成绩修改 ");
System.out.println(" 3.计算学生成绩绩点; ");
System.out.println(" 4.退出学籍管理系统; ");
System.out.println("*******************************");
}
public int find(String t)
{
int i=0,k=0;
for(i=0;i<5;i++)
{
if(s[i].getStunumber().compareTo(t)==0)
{
k=1;
break;
}
}
if(k==0)
return -1;
else
{
return i;
}
}
public void display2()
{
System.out.println("*******************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("*******************************");
}
public void display3()
{
System.out.println("*******************************");
System.out.println("谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 制作人:徐利峰 ");
System.out.println("*******************************");
}
public void display4(int k)
{
System.out.println("*******************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("*******************************");
System.out.println(" 学生学号:"+s[k].getStunumber());
System.out.println(" 学生姓名:"+s[k].getName());
}
public void display5(int p)
{
System.out.println("*******************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("*******************************");
System.out.println(" 学生学号:"+s[p].getStunumber());
System.out.println(" 学生姓名:"+s[p].getName());
if(s[p].getMathematicsscore()!=0)
System.out.println(" 1.高等数学成绩为:"+s[p].getMathematicsscore());
if(s[p].getEnglishiscore()!=0)
System.out.println(" 2.大学英语成绩为:"+s[p].getEnglishiscore());
if(s[p].getNetworkscore()!=0)
System.out.println(" 3.计算机网络成绩为:"+s[p].getNetworkscore());
if(s[p].getDatabasescore()!=0)
System.out.println(" 4.数据库成绩为:"+s[p].getDatabasescore());
if(s[p].getSoftwarescore()!=0)
System.out.println(" 5.软件工程成绩为:"+s[p].getSoftwarescore());
}
public void display6()
{
System.out.println("*******************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩修改界面 ");
System.out.println("*******************************");
}
public void display7()
{
System.out.println("*******************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩绩点计算界面 ");
System.out.println("*******************************");
}
static ScoreInformation []s=new ScoreInformation[10];
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
ScoreManagement stu=new ScoreManagement();
boolean flag=true,flag2=true,flag3=true,flag4=true,flag5=true,flag6=true,flag7=true;
String xuehao;
int i,number;
for(i=0;i<10;i++)
s[i]=new ScoreInformation();
s[0].setStunumber("20183516");
s[0].setName("徐利峰");
s[1].setStunumber("20183517");
s[1].setName("小华");
s[2].setStunumber("20183518");
s[2].setName("小李");
s[3].setStunumber("20183519");
s[3].setName("小刚");
s[4].setStunumber("20183520");
s[4].setName("小风");
for(i=0;i<5;i++)
{
s[i].setDatabasescore(0);
s[i].setEnglishiscore(0);
s[i].setMathematicsscore(0);
s[i].setNetworkscore(0);
s[i].setSoftwarescore(0);
}
while(flag)
{
stu.display1();
System.out.println("请选择要执行的功能序号");
number=in.nextInt();
if(number<1||number>4)
System.out.println("该选项不存在");
else
{
switch(number)
{
case 1:
{
while(flag2==true)
{
stu.display2(); System.out.println("请输入学生学号:");
xuehao=in.next();
System.out.println("*******************************");
if(stu.find(xuehao)==-1)
{
flag2=true;
System.out.println("该不存在");
}
else
{
double m;
String c;
flag2=false;
int b=stu.find(xuehao);
while(flag7==true)
{
flag7=false;
stu.display4(b);
System.out.println("请输入高等数学成绩:");
m=in.nextDouble();
s[b].setMathematicsscore(m);
stu.display5(b);
System.out.println("请输入大学英语成绩:");
m=in.nextDouble();
s[b].setEnglishiscore(m);
stu.display5(b);
System.out.println("请输入计算机网络成绩:");
m=in.nextDouble();
s[b].setNetworkscore(m);
stu.display5(b);
System.out.println("请输入数据库成绩:");
m=in.nextDouble();
s[b].setDatabasescore(m);
stu.display5(b);
System.out.println("请输入软件工程成绩:");
m=in.nextDouble();
s[b].setSoftwarescore(m);
stu.display5(b);
System.out.println("该学生成绩已录入完毕,是否提交(Y/N) ");
c=in.next();
if(c.compareTo("N")==0)
{
flag7=true;
s[b].setDatabasescore(0);
s[b].setEnglishiscore(0);
s[b].setMathematicsscore(0);
s[b].setNetworkscore(0);
s[b].setSoftwarescore(0);
}
}
}
}
break;
}
case 2:
{
String q;
while(flag3==true)
{
stu.display6();
flag3=false;
System.out.println("请输入学号:");
q=in.next();
System.out.println("*******************************");
if(stu.find(q)==-1)
{
flag3=true;
System.out.println("该不存在");
}
else
{
int r;
int k=stu.find(q);
double j;
flag3=false;
stu.display5(k);
System.out.println("请选择要修改的成绩序号:");
r=in.nextInt();
if(r==1)
{
String m;
double old;
stu.display4(k);
old=s[k].getMathematicsscore();
System.out.println("请输入要修改后的高等数学成绩:");
j=in.nextDouble();
s[k].setMathematicsscore(j);
stu.display5(k);
System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
m=in.next();
if(m.compareTo("N")==0)
{
flag3=true;
s[k].setMathematicsscore(old);
}
}
else if(r==2)
{
String m;
double old;
old=s[k].getEnglishiscore();
stu.display4(k);
System.out.println("请输入要修改后的大学英语成绩:");
j=in.nextDouble();
s[k].setEnglishiscore(j);
stu.display5(k);
System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
m=in.next();
if(m.compareTo("N")==0)
{
flag3=true;
s[k].setEnglishiscore(old);
}
}
else if(r==3)
{
String m;
double old;
old=s[k].getNetworkscore();
stu.display4(k);
System.out.println("请输入要修改后的计算机网络成绩:");
j=in.nextDouble();
s[k].setNetworkscore(j);
stu.display5(k);
System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
m=in.next();
if(m.compareTo("N")==0)
{
flag3=true;
s[k].setNetworkscore(old);
}
}
else if(r==4)
{
String m;
double old;
old=s[k].getDatabasescore();
stu.display4(k);
System.out.println("请输入要修改后的数据库成绩:");
j=in.nextDouble();
s[k].setDatabasescore(j);
stu.display5(k);
System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
m=in.next();
if(m.compareTo("N")==0)
{
flag3=true;
s[k].setDatabasescore(old);
}
}
else if(r==5)
{
String m;
double old;
old=s[k].getSoftwarescore();
stu.display4(k);
System.out.println("请输入要修改后的软件工程成绩:");
j=in.nextDouble();
s[k].setSoftwarescore(j);
stu.display5(k);
System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
m=in.next();
if(m.compareTo("N")==0)
{
flag3=true;
s[k].setSoftwarescore(old);
}
}
else
{
System.out.println("请重新输入:");
}
}
}
break;
}
case 3:
{
String l;
while(flag4==true)
{
stu.display7();
in.nextLine();
flag4=false;
System.out.println("请输入学生学号:");
l=in.nextLine();
System.out.println("*******************************");
if(stu.find(l)==-1)
{
flag4=true;
System.out.println("该不存在");
}
else
{
int p=stu.find(l);
double []a=new double[5];
double []g=new double[]{4,3,4,3,2};
double v=0;
for(i=0;i<5;i++)
{
if(i==0)
{
if(s[p].getMathematicsscore()>=72)
{
if(s[p].getMathematicsscore()<=74.9)
a[i]=2.3;
else if(s[p].getMathematicsscore()<=77.9)
a[i]=2.7;
else if(s[p].getMathematicsscore()<=81.9)
a[i]=3.0;
else if(s[p].getMathematicsscore()<=84.9)
a[i]=3.3;
else if(s[p].getMathematicsscore()<=89.9)
a[i]=3.7;
else
a[i]=4.0;
}
else
{
if(s[p].getMathematicsscore()>=68)
a[i]=2.0;
else if(s[p].getMathematicsscore()>=66)
a[i]=1.7;
else if(s[p].getMathematicsscore()>=64)
a[i]=1.5;
else if(s[p].getMathematicsscore()>=60)
a[i]=1.0;
else
a[i]=0;
}
}
if(i==1)
{
if(s[p].getEnglishiscore()>=72)
{
if(s[p].getEnglishiscore()<=74.9)
a[i]=2.3;
else if(s[p].getEnglishiscore()<=77.9)
a[i]=2.7;
else if(s[p].getEnglishiscore()<=81.9)
a[i]=3.0;
else if(s[p].getEnglishiscore()<=84.9)
a[i]=3.3;
else if(s[p].getEnglishiscore()<=89.9)
a[i]=3.7;
else
a[i]=4.0;
}
else
{
if(s[p].getEnglishiscore()>=68)
a[i]=2.0;
else if(s[p].getEnglishiscore()>=66)
a[i]=1.7;
else if(s[p].getEnglishiscore()>=64)
a[i]=1.5;
else if(s[p].getEnglishiscore()>=60)
a[i]=1.0;
else
a[i]=0;
}
}
if(i==2)
{
if(s[p].getNetworkscore()>=72)
{
if(s[p].getNetworkscore()<=74.9)
a[i]=2.3;
else if(s[p].getNetworkscore()<=77.9)
a[i]=2.7;
else if(s[p].getNetworkscore()<=81.9)
a[i]=3.0;
else if(s[p].getNetworkscore()<=84.9)
a[i]=3.3;
else if(s[p].getNetworkscore()<=89.9)
a[i]=3.7;
else
a[i]=4.0;
}
else
{
if(s[p].getNetworkscore()>=68)
a[i]=2.0;
else if(s[p].getNetworkscore()>=66)
a[i]=1.7;
else if(s[p].getNetworkscore()>=64)
a[i]=1.5;
else if(s[p].getNetworkscore()>=60)
a[i]=1.0;
else
a[i]=0;
}
}
if(i==3)
{
if(s[p].getDatabasescore()>=72)
{
if(s[p].getDatabasescore()<=74.9)
a[i]=2.3;
else if(s[p].getDatabasescore()<=77.9)
a[i]=2.7;
else if(s[p].getDatabasescore()<=81.9)
a[i]=3.0;
else if(s[p].getDatabasescore()<=84.9)
a[i]=3.3;
else if(s[p].getDatabasescore()<=89.9)
a[i]=3.7;
else
a[i]=4.0;
}
else
{
if(s[p].getDatabasescore()>=68)
a[i]=2.0;
else if(s[p].getDatabasescore()>=66)
a[i]=1.7;
else if(s[p].getDatabasescore()>=64)
a[i]=1.5;
else if(s[p].getDatabasescore()>=60)
a[i]=1.0;
else
a[i]=0;
}
}
if(i==4)
{
if(s[p].getSoftwarescore()>=72)
{
if(s[p].getSoftwarescore()<=74.9)
a[i]=2.3;
else if(s[p].getSoftwarescore()<=77.9)
a[i]=2.7;
else if(s[p].getSoftwarescore()<=81.9)
a[i]=3.0;
else if(s[p].getSoftwarescore()<=84.9)
a[i]=3.3;
else if(s[p].getSoftwarescore()<=89.9)
a[i]=3.7;
else
a[i]=4.0;
}
else
{
if(s[p].getSoftwarescore()>=68)
a[i]=2.0;
else if(s[p].getSoftwarescore()>=66)
a[i]=1.7;
else if(s[p].getSoftwarescore()>=64)
a[i]=1.5;
else if(s[p].getSoftwarescore()>=60)
a[i]=1.0;
else
a[i]=0;
}
}
}
for(i=0;i<5;i++)
v+=a[i]*g[i];
v=v/16;
if(v>=2)
flag5=true;
else
flag5=false;
stu.display7();
System.out.println(" 学生学号:"+s[p].getStunumber());
System.out.println(" 学生姓名:"+s[p].getName());
System.out.println(" 1、高等数学成绩绩点:"+a[0]);
System.out.println(" 2、大学英语成绩绩点::"+a[1]);
System.out.println(" 3、计算机网络成绩绩点:"+a[2]);
System.out.println(" 4、数据库成绩绩点:"+a[3]);
System.out.println(" 5、软件工程成绩绩点:"+a[4]);
System.out.println(" 6、你的平均学分绩点为:"+String.format("%.2f",v));
if(flag5==true)
System.out.println(" 你的学分绩点已达到毕业要求!");
else
System.out.println(" 你的学分绩点不满足毕业要求!");
System.out.println(" 是否返回系统主界面:(Y/N) ");
String c;
c=in.next();
if(c.compareTo("Y")==0)
flag6=false;
}
if(flag6==false&&flag4==false)
break;
}
break;
}
case 4:
{
stu.display3();
flag=false;
break;
}
}
}
}
in.close();
}
}

JAVA之学生信息管理系统的更多相关文章

  1. Java 实现学生信息管理系统

    编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...

  2. java开发学生信息管理系统的实现(简洁易懂),适合计算机专业学生参考,课程设计、毕业论文设计参考等

    编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...

  3. java开发学生信息管理系统 源码

    开发环境:    Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MYSQL数据库 运行效果图 源码及原文链接:https://javadao.xyz/forum.php?mo ...

  4. Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

  5. Java课设(学生信息管理系统)

    1.团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模板或任务说明 设计登陆界面和学生信息界面的设计,学生信息的显示.退出等功 ...

  6. Java用户名登录学生信息管理系统并对其进行增删改查操作

    package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...

  7. Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

  8. 【JAVA】简陋的学生信息管理系统

    因为之前写了一个学生信息管理系统,但还是处于命令行界面,不美观,于是打算做一个完整的界面出来. 在网上查阅资料后发现C++本身是不支持图形化界面的(可以使用第三方的Qt来做) 权衡之下还是选择了JAV ...

  9. Java课程设计---学生信息管理系统需求分析及总体设计

    按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...

随机推荐

  1. 0R电阻在PCB布线中对布线畅通的一个小妙用

    在PCB布线中,我们都会尽量节约板子空间,将元器件排布的紧密一些,难免会遇到布线不通的时候. 博主下面就来说一个关于0R电阻在PCB布线使之畅通的一个小妙用. 使用0R电阻前 假设我们这个TXD的线周 ...

  2. Java学习多线程第一天

    内容介绍 Thread 线程创建 线程池 线程状态图 1 多线程 1.1     多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序 ...

  3. 5月29日 Java性能调优指南 读后感

    并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习

  4. Logback配置文件这么写,TPS提高10倍

    通过阅读本篇文章将了解到 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2.通过异步输出日志减少磁盘IO提高性能 3.异步输出日志的原理 配置文件logback-spring.xml ...

  5. exlipse php 插件安装地址

    以前的exlipse PHP插件老是有问题,下面这个地址可以使用. http://www.phpsrc.org/eclipse/pti/

  6. restapi(5)- rest-mongo 应用实例:分布式图片管理系统之一,rest 服务

    最近有同事提起想把网页上的图片存在MongoDB里,我十分赞同.比起把图片以文件形式存放在硬盘子目录的方式,MongoDB有太多的优势.首先,MongoDB是分布式数据库,图片可以跨服务器存储.在一个 ...

  7. Windos 上逆天又好用的软件有哪些?

    谷歌浏览器 Chrome 浏览器是大名鼎鼎的科技公司谷歌开发的一款浏览器,国内的360浏览器等大多都是基于谷歌开源出的浏览器内核,然后给他穿了一层360的衣服.至于性能和启动速度上来讲,我个人觉得Ch ...

  8. java学习之- 线程继承Thread类

    标签(空格分隔): 线程 在java.lang包中有个Thread子类,大家可以自行查阅文档,及范例: 如何在自定义的代码中,自定义一个线程呢? 1.通过对api的查找,java已经提供了对线程这类事 ...

  9. JMeter用户参数

    压测的时候,经常需要使用动态参数,即每次请求的参数不一样,这样才能更好的模拟真实的用户请求,我们首先能想到的也是最常见的就是用户ID 1.  用户参数 我们可以定义一个变量,然后指定多个值,这样每次请 ...

  10. docker An error occurred 虚拟化错误解决

    问题: 本人电脑上装了VMware和docker,系统是win10专业版,然后今天想用下docker,打开报错,Hyper-V未开启,开启之后再次报错 An error occurred Hardwa ...