java实验(3)

湘潭大学 Java实验 3 java第三次实验课内容 阅读详情

学生信息管理系统。
学生成绩表Student(Sno字符串,长度9, Sname字符串,长度10, Class 字符串,长度10,Age 整型,Sex字符串,长度2)
实现如下功能:
A.输入若干个学生的信息到Student表;
B.修改指定学号学生的基本信息;
C. 删除指定学号的学生基本信息;
D.按照性别找出所有相应的学生基本信息;
E.按照年龄段找出所有相应的学生基本信息,例如[19, 21]的学生;
F.按照专业查询所有学生的基本信息;
G.以上功能用菜单形式实现功能选择

package lab3;
import java.util.Scanner;
import java.sql.*;
public class Student_management_system {

	public static void main(String[]args)throws SQLException
	{
		 String No;
		 Connection conn = null;
		 Scanner cin = new Scanner(System.in);
		 try
		 {
			 Class.forName("com.mysql.jdbc.Driver");
	    	 String url = "jdbc:mysql://localhost:3306/数据库名称";
	    	 String username = "xxx";
	    	 String password = "xxxxx";
	    	 conn = DriverManager.getConnection(url, username, password); 
			 while(true)
			 {
				 show();
				 System.out.println("输入编号");
				 No = cin.nextLine();
				 while(!Check(No))
				 {
					 Waring();
					 Again();
					 No = cin.nextLine();
				 }
				 if(No.charAt(0) == '1')
				 {
					 PreparedStatement prestmt  = null;
					 Fun1();
					 String Sno,Sname,Class,Sex;
					 int Age;
					 System.out.println("请输入 学生学号");
					 Sno = cin.nextLine();
					 System.out.println("请输入 学生姓名");
					 Sname = cin.nextLine();
					 System.out.println("请输入 学生班级");
					 Class = cin.nextLine();
					 System.out.println("请输入 学生性别");
					 Sex = cin.nextLine();
					 System.out.println("请输入 学生年龄");
					 Age = cin.nextInt();
					 String sql = "INSERT INTO Student VALUES(?,?,?,?,?)";
					 prestmt = conn.prepareStatement(sql);
					 prestmt.setString(1, Sno);
					 prestmt.setString(2, Sname);
					 prestmt.setString(3, Class);
					 prestmt.setInt(4, Age);
					 prestmt.setString(5, Sex);
                     prestmt.executeUpdate();	
                     prestmt.close();
                     
				 }
				 else if(No.charAt(0) == '2')
				 {
					 PreparedStatement prestmt  = null;
					 Fun2();
					 String Sno,Sname,Class,Sex;
					 int Age;
					 System.out.println("请输入 学生学号");
					 Sno = cin.nextLine();
					 System.out.println("请输入 学生姓名");
					 Sname = cin.nextLine();
					 System.out.println("请输入 学生班级");
					 Class = cin.nextLine();
					 System.out.println("请输入 学生性别");
					 Sex = cin.nextLine(); 
					 System.out.println("请输入 学生年龄"); 
					 Age = cin.nextInt();
					 String sql = "UPDATE Student "
					 		+ "SET Sname = ?,Class = ?,Age = ?,Sex = ? "
					 		+ "WHERE Sno = ?";
					 prestmt = conn.prepareStatement(sql);
					 prestmt.setString(1, Sname);
					 prestmt.setString(2, Class);
					 prestmt.setInt(3, Age);
					 prestmt.setString(4, Sex);
					 prestmt.setString(5, Sno);
                     prestmt.executeUpdate();	
                     prestmt.close();
                     System.out.println("修改成功");
				 }
				 else  if(No.charAt(0) == '3')
				 {
					 PreparedStatement prestmt  = null;
					 Fun3();
					 String Sno;
					 System.out.println("请输入 学生学号");
					 Sno = cin.nextLine();
					 String sql = "DELETE "
					 		+ "FROM Student "
					 		+ " WHERE Sno = ?";
					 prestmt = conn.prepareStatement(sql);
					 prestmt.setString(1, Sno);
                     prestmt.executeUpdate();	
                     prestmt.close();
                     System.out.println("删除完毕");
				 }
				 else  if(No.charAt(0) == '4')
				 {
					 Fun4();
					 String Sex;
					 ResultSet rs = null;
					 PreparedStatement prestmt  = null;
					 System.out.println("请输入 性别");
					 Sex = cin.nextLine();
					 String sql = "select * from Student where Sex = ?";
					 prestmt = conn.prepareStatement(sql);
					 prestmt.setString(1, Sex);
					 rs = prestmt.executeQuery();
					 while(rs.next())
					 {
						 String Sno = rs.getString("Sno");
						 String Sname = rs.getString("Sname");
						 String Class = rs.getString("Class");
						 int Age = rs.getInt("Age");
					     System.out.println(Sno + "   " + Sname + "   " + Class + "   " + Age + "   " + Sex);
						 
					 }
					 prestmt.close();
					 rs.close();
				 }
				 else  if(No.charAt(0) == '5')
				 {
					 Fun5();
					 int Age1,Age2;
					 ResultSet rs = null;
					 PreparedStatement prestmt  = null;
					 System.out.println("输入年龄下限");
					 Age1 = cin.nextInt();
					 System.out.println("输入年龄上限");
					 Age2 = cin.nextInt();
					 String sql = "select * from Student where Age BETWEEN ? AND ?";
					 prestmt = conn.prepareStatement(sql);
					 prestmt.setInt(1, Age1);
					 prestmt.setInt(2, Age2);
					 rs = prestmt.executeQuery();
					 while(rs.next())
					 {
						 String Sno = rs.getString("Sno");
						 String Sname = rs.getString("Sname");
						 String Class = rs.getString("Class");
						 int Age = rs.getInt("Age");
						 String Sex = rs.getString("Sex");
					     System.out.println(Sno + "   " + Sname + "   " + Class + "   " + Age + "   " + Sex);
						 
					 }
					 prestmt.close();
					 rs.close();
				 }
				 else  if(No.charAt(0) == '6')
				 {
					 Fun6();
					 String Class;
					 ResultSet rs = null;
					 PreparedStatement prestmt  = null;
					 System.out.println("输入需要查询的专业名称");
					 Class = cin.nextLine();
					 Class += '%';
					 String sql = "select * from Student where Class like ?";
					 prestmt = conn.prepareStatement(sql);
					 prestmt.setString(1, Class);
					 rs = prestmt.executeQuery();
					 while(rs.next())
					 {
						 String Sno = rs.getString("Sno");
						 String Sname = rs.getString("Sname");
						 int Age = rs.getInt("Age");
						 String Sex = rs.getString("Sex");
						 Class = rs.getString("Class");
					     System.out.println(Sno + "   " + Sname + "   " + Class + "   " + Age + "   " + Sex);
						 
					 }
					 prestmt.close();
					 rs.close();
					 
				 }
				 else  if(No.charAt(0) == '7') Explain();
				 else  if(No.charAt(0) == '8')
				 {
					 Ends();
					 break;
				 }
				
				 
			 }
			 
		 }catch(Exception e)
		    {
		    	e.printStackTrace();
		    	System.out.println("操纵数据库时发生未知错误");
		    }finally
		    {
		    	if(conn!=null)conn.close();
		    	if(cin!=null)cin.close();
		    }
	}
	public static void show()
	{
		System.out.println("--------欢迎来到学生管理系统--------");
		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("----------7.使用说明书----------");
		System.out.println("----------8.退出程序-----------");
		System.out.println("----------请输入功能编号---------");
	}
	public static void Explain()
	{
		System.out.println("使用说明书:\n"
				+ "需要输入数字才能调用相应功能\n"
				+ "比如:\n"
				+ "请输入你想选择的功能的编号:"
				+ "4"
				+ "这就是有效输入,输入不存在的编号或者非法字符系统会提醒你再次输入");
	}
	public static void Waring()
	{
		System.out.println("输入数据错误");
	}
	public static void Again()
	{
		System.out.println("请输入:");
	}
	public static void Ends()
	{
		System.out.println("欢迎再次使用,再见");
	}
	public static boolean Check(String No)
	{   
		if(No.length() != 1) return false;
		if(No.charAt(0)<'1' || No.charAt(0) > '9') return false;
		return true;
	}
	public static void Fun1()
	{
		System.out.println("------录入学生信息功能------");
		System.out.println("需要输入:学号,学生姓名,班级,年龄,性别。每位同学的信息需要输入完整");
	}
	public static void Fun2() 
	{
		System.out.println("------修改学生信息功能------");
		System.out.println("需要输入需要修改信息的同学的学号");
		System.out.println("需要注意的是,修改学生信息,可能只修改部分内容,但是仍需要将不修改的部分输入一遍");
	}
	public static void Fun3() 
	{
		System.out.println("------删除学生信息功能------");
		System.out.println("需要输入需要删除信息的同学的学号");
		
	}
	public static void Fun4() 
	{
		System.out.println("------按照性别查找学生信息功能------");
		System.out.println("输入想要查找的性别");
		
	}
    public static void Fun5()
    {
    	System.out.println("------按照年龄查找学生基本信息-------");
    	System.out.println("输入想要查找的年龄范围");
    }
    public static void Fun6()
    {
    	System.out.println("-------按照专业查找学生信息--------");
    	System.out.println("输入专业名称,因为一般班级的开头是专业名称简写,所以仅输入英文简写就可");
    }
}


STM32 ES8266上阿里云IOT MQTT实践【第七章】:ESP8266+MQTT上阿里云物联网平台实践 本篇文章讲述了如何使用stm32接入阿里云IOT,WiFi模块为ESP8266,可以实现发布以及订阅。 阅读详情

相关推荐

使用bandersnatch搭建pypi 本地镜像源(20211026)

需求背景:公司内网不能联网,同时开发工作需要各种python的模块,因此需要搭建一个pypi的本地镜像源。 参考网上的方法,总结了大致有下面几种方式搭建pypi本地源: devpi: 企业内网利用devpi搭建pypi私服 - 简书 pip2pi: https://yangfannie.com/1439.html pypiserver: https://zhongneng.github.io/2019/02/16/creat-pip/ bandersnatch:基于bandersnatch搭...

liurizhou的博客 6468

JAVA--数据库操作系统

目录 介绍: 原理: 界面: 代码实现: 介绍: 学生信息管理系统。 学生成绩表Student(Sno 字符串,长度9, Sname 字符串,长度10, Class 字符串,长度10, Age 整型, Sex 字符串,长度2) 实现如下功能: A.输入若干个学生的信息到Student表; B.修改指定学号学生的基本信息; C.删除指定学号的学生基本信息; D.按照性别找出所有相应的学生基本信息; E.按照年龄段找出所有相应的学生基本信息,例如[19,21]的学生;

zcq12345678444的博客 1047

用 Python 和 uiautomation 实现微信批量发送

思路是这样,将要发送的人员名单(包括称呼)以及发送内容都维护到Excel里,程序运行时读取Excel里内容,自动搜索人员姓名(微信昵称或备注名),填入要发送的内容,拼接上称呼(如果需要的话)自动点击发送,这样轮巡直至名单人员全部发送完成。、

jankingdom的专栏 1471

学生信息管理系统

//按学生成绩进行排序 # include <stdio.h> # include <malloc.h> struct Student { int age; float score; char name[100]; }; int main(void) { int len; struct Student * pArr; int i, j; struct Student t; //动态的构造一维数组 printf("请输入学生的个数:\n"); printf("len

浮生未歇 845

工业音频故障检测:从CNN到Transformer的技术演进

音频信号处理是工业设备预测性维护的核心技术之一,通过分析设备运行时产生的声波特征实现故障预警。传统方法依赖梅尔频率倒谱系数(MFCC)等手工特征,而深度学习技术尤其是Transformer架构,通过自注意力机制突破了CNN在跨频段特征提取上的局限。Audio Spectrogram Transformer(AST)等先进模型在工业场景中展现出91.2%的高召回率,显著优于传统方案。这种非接触式监测技术结合边缘计算优化,已成功应用于石油化工、电力能源等领域,实现提前72小时预测轴承故障,单项目可避免数百万元的

weixin_30467861的博客 326

电路板功能测试系统-FCT for PCBA

电路板功能测试系统用于电路板组件(PCBA)的功能测试(FCT),满足自动化大批量生产的要求。  ● 用户根据自己需要定义测试步骤,灵活方便  ● 适合工业自动化大批量生产应用  ● 系统测试精度高,稳定可靠   一、电路板功能测试系统概述 电路板测试过程通常由多个步骤组成,每单个步骤中需要对多个物理量(电压、电流、电阻、频率、波形等)进行测试。在每个步骤测试时

6811

案例:演示PreparedStatement对象的使用

创建Example02类,在该类中使用PreparedStatement对象来插入数据 public class Example02 { public static void main(String[] args) throws SQLException { Connection conn = null; PreparedStatement preStmt = null; try { // 加载数据库驱动 Class.forName("com.mys

daqi1983的博客 566

9、双玩家博弈中的精确与近似纳什均衡及中国股市再融资偏好研究

本文研究了双玩家博弈中精确与近似纳什均衡的计算方法,提出通过线性松弛问题LR在多项式时间内求解正则双矩阵博弈的纳什均衡,并分析其在α-平滑博弈中的近似性能。同时,探讨了中国股市2001-2009年期间再融资偏好的动态变化,重点考察非流通股改革对再融资方式选择的影响。研究表明,改革前配股为主导,改革后公开发行(含定向增发)因溢价发行和低参与门槛成为主流,显著提升了资金募集效率和市场参与度。结合博弈论模型与实证分析,揭示了制度变革对企业融资行为的深远影响。

nn3456的博客 82

编写JDBC程序使用PreparedStatement向数据库插入一条数据

//编写JDBC程序使用PreparedStatement //向数据库插入一条数据 package qqq; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Date; public class Example02 { public static void mai.

qq_44242891的博客 828

Altium Designer应用技巧5: Altium Live账号的获得

为了更好的应用Altium Designer,我们需要得到一个Altium Live账号,但从其英文或者中文官方网站取得,都需要7个工作日的时间,而且对于个人用户来说,并不是100%都能够获取到。本文介绍一种,从俄罗斯Altium官方网站获取账号的方法,可以立即使用。     1、点击http://live.altium-ru.com/#Join网址进入俄罗斯Altium官方网站,Altiu

snmplink的博客 1万+

8年ES运维经验整理出的Elasticsearch运维手册(超实用)

k1 : 控制非线性词频率归一化(饱和),Elasticsearch中默认值为1.2。用人能看懂的话说就是词语在文档中出现的次数对于得分的重要性。例如说我觉得在某些场景,一个搜索词在文档中出现越多则越接近我希望搜索的内容,就可以将这个参数调大一点。b :控制文档长度对于分数的惩罚力度。变量b处于分母上,它乘以刚刚讨论过的字段长度的比值,Elasticsearch中的b 默认值为0.75。如果b较大,则文档长度相对于平均长度的影响更大。

yonggeit的博客 5274

(1)学生信息管理系统。 学生成绩表Student(Sno 字符串,长度9, Sname 字符串,长度10, Class 字符串,长度10, Age 整型, Sex 字符串,长度2) 实现如下功能:

(1)学生信息管理系统。 学生成绩表Student(Sno 字符串,长度9, Sname 字符串,长度10, Class 字符串,长度10, Age 整型, Sex 字符串,长度2) 实现如下功能: A.输入若干个学生的信息到Student表; B.修改指定学号学生的基本信息; C.删除指定学号的学生基本信息; D.按照性别找出所有相应的学生基本信息; E.按照年龄段找出所有相应的学生基本信息,例如[19,21]的学生。 package mysol; import java.io.*; im

潞的博客 2924

第51节:cesium 范围查询(含源码+视频)

cesium 范围查询

qq_29384639的博客 1497

JAVA实验3

     

Royal_JAVA的博客 419

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java实验3_Java实验3

实验3 常用类(2学时)一、实验目的1. 熟悉Java中的String、StringBuffer、Math、包装器类、Scanner类的使用方法。 2. 使用常用类解决一般性的应用问题。 3. 掌握JavaSE API文档的使用方法。二、实验内容1. 编写一个Java应用程序。用户从键盘输入一个整数,程序将判断这个数是几位数并输出其位数,并判断这个数是否是回文数(是,则输出“是回文数”,否则输出“...

weixin_42513522的博客 1609

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java实验3_《Java实验3.doc

《Java实验3实验3继承和多态实验目的:学习和使用类的继承。掌握关键字super的意义和用法。学习掌握类的方法覆盖技术。熟悉Object类,以及它提供给子类的方法equals、toString、clone。学习掌握修饰符protected和final的用法。学习掌握抽象类的概念和使用方法。学习掌握多态性和动态绑定的概念,学习使用多态进行程序设计。学习掌握接口的概念和定义接口的方法。学习使用Clo...

weixin_32767137的博客 719

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java实验3答案_java实验3 .doc

【单选题】主机甲与主机乙之间建立一个TCP连接,主机甲向主机乙发送了3个连接的TCP段,分别包含300字节、400字节和500字节的有效载荷,第3个段的序号为900.若主机乙仅正确接收第1和第3个段,则主机乙发送给主机甲的确认序号是( )。【其它】某施工合同约定如下: ( 1)合同工期为110天,工期奖励或惩罚均为3000元/天。 ( 2)当某一分项工程实际量比清单量增减超过10%以上时,调节综合...

weixin_29035147的博客 1617

java实验3_java实验-3

实验内容1.XP基础2.XP核心实践3.相关工具实验内容一。在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。代码:public class CodeStandard {public static void main(String [] args){StringBuffer...

weixin_29661407的博客 190

南邮java实验三_南邮JAVA程序设计实验3 流处理程序设计

南邮JAVA程序设计实验3 流处理程序设计实验目的:要求学生能在学习和理解课堂学习内容中JAVA流编程理论的基础上,学习并逐步掌握JAVA流程序的编写和调试,学习根据处理需求对不同流的正确选择使用和组合使用方法。实验内容:设计和编写一个程序从键盘读入一行字符串,将其写入一个文本文件中,再编写另一个程序从文本文件中读入字符串并在命令行窗口显示出来。实验程序1:用数据的基本的读入Scanner读入一...

weixin_32950005的博客 429

Java 实验3

实验3 /* * @(#)AverageNumbers2 *  * Copyright 2008 School of Software, Yunnan University. *                                  All rights reserved */package cn.edu.ynu.sei.Java_Labs.Lab3;/** * 求1-50的平均数 *

Eleven's Blog 1086

【java】实验3类的封装

面向对象程序设计实验 实验项目名称: 实验3类的封装 提交时间: 2019年9月25日 ******************************************************************************* 一、实验目的: 1、掌握Java类的声明格式; ...

韩旭051的博客 1178

springboot+vue3+java开放实验室设备资源管理系统

实验室最重要的就是仪器设备、耗材和教学,实验室管理系统必须包括这三个方面的管理。所以实验室管理系统的功能模块必须包含两个个方面:1、资源管理模块(为减少本课题的编程规模和工作量,其中教学管理模块另做课题,要求两个课题前端界面风格保持一致)2、教学管理模块主要用于对实验室日常开放进行管理(如右图示)实验室开放管理根据我院教学管理方法和实施办法,包括实验(室)申请预约,实验室安排,课表发布和查询,以及实验室教学活动相关事务公布。

豆包程序员 1110

【Java】实验3——类与继承实验报告

实验任务三(面向对象基础一) Java的课堂小实验报告,放到上来水一下 可以帮助一些刚入门不想写类似实验报告的人(误) 设计一个汽车类Vehicle,包含的成员属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含属性载人数。卡车Truck是Vehicle的子类,其中包含载人数和载重量payload。每个类都有相关数据的输出方法。 代码: class Vehicle{ int wheel,weight; protected Vehicle(int wheel,

TanYC的博客 3047

3个人的java 实验_20165104-JAVA第三次实验

20165104-JAVA第三次实验一、实验目的与要求完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析实验报告中统计自己的PSP(Personal Software Process)时间掌握使用IDEA完成基础编程与程序调试的能力二、实验内容XP基础XP核心实践相关工具三、实验步骤安装alibaba 插件,解决代码中的规范问题打开Settings ->Plugins -...

weixin_29664819的博客 218

Java第3周实验

第3周:实现随机点名的签到程序。 1、计算闰年,P45 2-4 2,判断某一年份是否为闰年。(类名:LeapYear) 提示:年份能被4整除但不能被100整除,或者能被4整除又能被400整除,即为闰年。  2、实现随机点名的签到程序。(类名:RegisterDemo)

我的专栏 751

[Java] 实验3参考代码

平方根 double res = Math.sqrt(num); // Math.sqrt(num)用来求num的平方根 // res是作为result的缩写 // 将result定义成double而非int类型:int类型无法表示浮点数。 求余 int num = 4 % 5; // num为4除5的余数,亦即num=4

Stephen Wong的专栏 1662
上一篇: java语法学习(10)GUI——SWing 顶级容器
下一篇: java实验(4)
dearzcs
博客等级 码龄7年 2796粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dearzcs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值