光阴似箭日月如梭,大家学习已经有了一段时间了,转眼间,从刚开始如何配置JDK已经到了现在快学完网络编程了。学了这么多,眼看就要进入下一个阶段了,数据库编程了,那么在进入下个阶段前,我们来完成一个综合性比较强的结业项目,告别JavaSE阶段,学完JavaSE,大家已经对编程这块相信已经有了一个很深的理解,但是仅仅是JavaSE还是不够的,我们还需要学习更多的,更全面知识才足以在接下来的生活中过五关斩六将。为了提高大家的编程技能和逻辑思维。特地整理出了一份综合性比较全面的结业项目。大家各自发挥想象力,创造力,计算力,逻辑力完成下面这道题。

整个项目涉及到的类如下

抽象类 Person

ID(id)、  用户名(username)密码(password)、性别(age)

管理员类 Admin (继承Person)

属性有 ID(id)、  用户名(username)、性别(age)

老师类 Teacher (继承Person)

老师教的课程(course)、班级(className)

学生类 Student (继承Person)

学生的专业(major)  、班级(className)、成绩(score)

//以上类字段属性为基础,如需要可自行在上面扩展

管理员账号默认为admin,老师帐号默认为t1,学生默认帐号为s1,t1和s1是默认帐号,用户用t1和s1登录进去的时候任何也做不了,只能选择注册老师或者注册学生,(用t1或者s1登录进去后不需要验证密码,直接显示菜单,用非t1和s1帐号需要验证密码)

项目启动在控制台打印如下:

我是管理员

我是老师

我是学生

常用工具

显四三个菜单,用户选择对应的序号进行对应的操作和显示子菜单。每选择一个菜单相当于确定了你目前的身份,需要输入帐号和密码进行验证。如果都正确,则提示登录成功,显示子菜单。比如输入1后,控制台提示

请输入帐号:

请输入密码:

用户输入后后台程序进行验证,如果成功。就进行下一步操作。

下面我们来看管理员对应的操作有:(也就是输入1,以管理员的身份进入系统):

以管理员的身份进入系统,控制台打印如下:

***********************************************************

1、查看所有学生 (注:这里显示所有的学生)

2、查看所有老师 (注:这里显示所有的老师)

3、分类查看

4、添加班级

5、添加课程

// 当用户输入3后,3下面对应的子菜单有

***********************************************************

1、按性别查看 (具体输入值为男或者女)

2、按班级查看 (输入2之后在控制台继续显示,1、按班级查看老师 2、按班级查看学生)

3、查看成绩大于_分的学生(这里输入具体数字,输入后把大于多少分的匹配出来)

4、查看成绩小于_分的学生(同上)

5、查看成绩等于_分的学生(同上)

6、查看具体学生的信息(提示输入学生的姓名和ID,防止有重名同学)

7、查看学生的平均成绩

8、按成绩降序查看所有学生

9、按成绩升序查看所有学生

10、查看当前老师和学生的总数

11、显示成绩综合信息 (打印如下信息)

//这里针对11 打印的信息如下 (60分及格)

学生总成绩 学生平均成绩 及格学生所占百分比 未及格学生所在百分比

345分 80分 80% 20%

***********************************************************

/*

当用户输入4 添加班级 控制台提示请输入班级名称,用户输入班级名称后,程序保存到后台,最好能保存到文件中,下次启动程序直接去读取使用,不用每次都输入。

当用户输入5 添加课程 控制台提示请输入课程名称,用户输入课程名称后,程序保存到后台,最好能保存到文件中,下次启动程序直接去读取使用,不用每次都输入。

以上不管是添加班级还是添加课程,程序都要判断用户输入的有没有重复的,比如第一次输入的是计算机班,第二次如果在输入计算机班的话就是重复的,控制台提示当天班级已经存在,请重新输入

*/

以老师的身份进去系统,控制台打印如下:(注:老师只能看见他班级下面的学生,下面所有的菜单均是,比如按性别查看,也是看的他班级下面的)

1、查看所有学生

2、按性别查看学生(选择2之后输入男或者女进行查看)

3、查看成绩大于_分的学生(这里输入具体数字,输入后把大于多少分的匹配出来)

4、查看成绩小于_分的学生(同上)

5、查看成绩等于_分的学生(同上)

6、查看具体学生的信息(提示输入学生的姓名和ID,防止有重名同学)

7、查看学生的平均成绩

8、按成绩降序查看所有学生

9、按成绩升序查看所有学生

10、显示成绩综合信息 (这里统计的信息和管理员端一样,只不过是统计本班级下面的,用户可以选择导出,和学生端查看成绩的情况一样,具体看学生端这块)

=========================================

11、注册老师帐号

//当用户选择11的时候控制台如下:

请输入您的姓名:

请输入您的密码:

请输入您的性别:

请输入您的年龄:

请选择您的课程:

请选择您的班级:

/*

这里注意,课程由管理员端添加,当用户输入完年龄后,系统自动列出管理员添加的课程,用户可以

输入现有的课程,程序接收到后进行判断用户输入的课程名字是否存在,如果存在的话就添加成功。

选择班级也一样

老师类里边有一个id,继承自person类,系统判断目前有多少个老师,自动生成老师总个数+1的序号设置上去

*/

12、修改老师信息

//当用户输入12后,控制台显示子菜单如下:

1、修改年龄

2、修改性别

3、修改密码(如果选择3,请提示用户输入原密码)

注:用户的信息最好存储到文件,避免程序启动每次添加

以学生的身份进入系统,当用户输入3之后

以学生的身份进入系统后控制台打印如下菜单:

1、查看本班所有学生

2、按性别查看本班学生(提示用户输入男或者女)

3、查找本班学生(输入学生的姓名)

4、按课程查看(有的学生是同班不同课程,当输入4的时候系统自动查询管理员添加的所有的课程,列出来)

5、查看所在班的老师信息(打印所在班级的老师)

//用户输入5后打印如下信息

老师姓名 性别 年龄 所在班级 所授课课程

张丽丽 女 12 1班 计算机

6、注册/修改学生帐号

*********************************************

//当用户输入6之后,控制台显示如下菜单

1、注册学生帐号

//当用户输入1之后,控制台打印如下信息

请输入您的姓名:

请输入您的密码:

请输入您的年龄:

请输入您的性别:

请输入您的综合成绩:

请输选择您的课程:(系统自动列出管理员添加的所有课程,用户输入后,判断是不是存在的)

请选择您的班级:(系统自动列出管理员添加的所有班级,用户输入后,判断是不是存在的)

//学生类里边有个id,继承自Person,类的id系统自动判断当前班级有多个人,根据人数+1生成

2、修改学生信息

//用户输入2的情况下,控制台打印以下子菜单

1、修改年龄

2、修改性别

3、修改班级(系统自动列出,同上)

4、修改课程(系统自动列出,同上)

5、修改密码(如果选择5,请提示用户输入原密码)

注:用户的信息最好存储到文件,避免程序启动每次添加

3、注销学生 (删除学生)

*********************************************

7、查看本班成绩情况

//当用户输入7以后,控制台显示如下:

本班总成绩 本班平均成绩 及格学生所在比例 未及格学生所在比例

345 89 70% 60%

100~80分人数 80~60分人数 60~40分人数 40分以下人数

6 8 8 1

======= 导出当前结果请输入 p ,把当前的结果保存到记事本,文件路径为当前的类路径,同包下,记事本标题为:A班学生成绩.txt ========

常用工具菜单

当用户输入4之后,进入常用工具菜单,(此菜单主要包含了学生对javase的理解和综合使用)

输入4之后,控制台打印如下:

1、计算质数(请输入一个数,计算后该数以内有多少个质数,在控制台打印来一共有多少个,分别是什么)

2、查看电脑信息

//当用户输入2后,在控制台打印

当前电脑磁盘空间总共有:400G

当前电脑内存空间总共有:8G

当前电脑系统的版本是:xxxx

当前电脑共有磁盘:4个,分别是 C盘、D盘、E盘、F盘

。。。。其他信息同学们自己收集,越详细越好

3、查看目录

//当用户输入3之后,在控制台打印出来当前目录下面所有的文件名,比如用户输入的是C盘,以下是我电脑C盘的信息。

Mode LastWriteTime Length Name

---- ------------- ------ ----

d----- 2019/2/12 14:02 360安全浏览器下载

d----- 2019/1/10 7:50 AppData

d----- 2019/1/29 13:10 downloads

d----- 2018/9/14 19:07 DRMsoft

d----- 2018/1/19 20:06 EFI

d----- 2019/2/3 20:09 FFOutput

d----- 2018/11/26 14:37 gofile

d----- 2018/11/17 12:32 golog

d----- 2018/1/19 21:24 Intel

d----- 2019/2/12 13:42 KuGou

d----- 2019/2/3 21:20 LDSGameMaster

d----- 2018/8/1 19:52 logs

d----- 2018/6/9 8:36 lpwz

d----- 2018/10/6 10:17 MinGW

d----- 2018/1/19 21:28 NVIDIA

d----- 2018/4/12 7:38 PerfLogs

d-r--- 2019/4/13 14:14 Program Files

d-r--- 2019/4/9 16:25 Program Files (x86)

d----- 2019/1/18 18:05 QMLogEx

d----- 2019/2/1 21:24 temp

d----- 2018/12/16 20:03 tourism

d-r--- 2018/10/3 18:04 Users

d----- 2019/4/19 21:45 Windows

d----- 2018/2/11 22:43 Windows10Upgrade

-a---- 2019/4/11 9:03 24568651 aow_drv.log

-a---- 2007/11/7 8:00 17734 eula.1028.txt

-a---- 2007/11/7 8:00 17734 eula.1031.txt

-a---- 2007/11/7 8:00 5686 vcredist.bmp

-a---- 2007/11/7 8:09 1442522 VC_RED.cab

-a---- 2007/11/7 8:12 232960 VC_RED.MSI

4、压缩文件

//当用户输入4的时候,提示用户输入文件路径,用户把文件路径输入后判断这个路径是不是目录,如果是目录的话压缩这个目录里边所有的文件,如果是文件,压缩单独一个文件,压缩后的文件放在原目录同级目录下

5、播放音乐

//当用户输入5的时候,系统按照序号把电脑的的上的mp3检索出来,显示前10个,用户输入对应的序号后播放对应的,这里启用多线程进行播放,用户输入2后,开启一个线程去播放序号为2的音乐,用户输入3后,结束原来播放2的线程,重新开启一个线程去播放序号为3的音乐

6、Socket通信相关(选做题)

//当用户输入6的时候,控制台显示菜单如下:

1、开启一个服务端

2、给服务端发送一个消息,服务器接收到后原样返回

7、从网上下载一个首歌

//当用户输入7后,控制台提示用户输入一个有效的mp3网址,用户输入后程序去把这个mp3下载下来放到同包目录下面,下载完成后提示下载完成,是否播放,选是进行播放

8、读取文件显示到控制台

//当用户输入8之后,程序要求输入一个txt文本的路径,判断路径是不是存在的,如果存在,就把内容读出来打印到控制台,如果不存在,提示不存在,请重新输入。

9、常用效验

//当用户输入9之后,控制台显示子菜单为:

1、效验电话号码

2、效验邮箱

3、效验密码强度

4、效验是否为字母

5、效验是否为数字

6、效验是否为中文

10、打开文件

//当用户输入10之后,在控制台输入一个路径,系统检测路径是否存在有效,如果有效,调用bat命令打开文件。

以上为JavaSE阶段结业综合项目。项目为初始版本。

几点要求

以上控制台所显示的子菜单后面都加一个n1和nn的选项,n1退回上一级,nn退回到顶层

所有在控制台输入的数据都要进行效验,比如说成绩,如果输入的是a12,或者,,,之类的,控制台提示,您输入的数据类型错误,应该输入整型的,例如 24,98等

保证程序的健壮性,用户无论怎么玩,程序进程都不会退出,除非是手动退出

以上项目都是比较基础的,但是逻辑能力稍强,完成的代码量稍大,所以一步一步来,不要急于求成

对可用性强的代码进行单独封装,多次调用的原则

针对以上项目具体的实现思路学员自己完成,思路想好后先把实现思路发给老师,老师看看是否可行。

在完成的过程中要求每个方法和每行代码都有相关的注释

控制台打印相关信息布局要求美观,简单,一目了然。

尽可能用已经学到的知识点去实现和编码,活学活用

以上就是整个项目的流程,此项目并不难,但是逻辑稍微有点绕,但是我相信大家只要愿意思考,对你们来说都不是问题,问题是你们不去思考。天行健,君子以自强不息。

有问题可以在下面留言,技术问题可以私聊我。

java se项目_JavaSE综合项目演练相关推荐

  1. java se 试题_JavaSE基础试题附答案

    第一章练习题(Java入门) 1.下列哪项不是JDK所包含的内容?(选一项) A.Java编程语言 B.工具及工具的API C.Java EE扩展API D.Java平台虚拟机 2.下列关于JDK.J ...

  2. 愤怒的小鸟java项目_JavaSE实战项目 LOL工具箱+愤怒的小鸟拼图

    JavaSE实战项目(1) - LOL工具箱 1.项目介绍 2.创建项目 3.展示第一张logo 4.实现按钮连帧播放动画 5.加入线程 6.实现自动化动画效果 7.编制主菜单类 8.主菜单的主界面 ...

  3. java se 试题_javaSE试题

    一.不定项选择题(共10小题,每题3分,共30分) 1.以下选项中是对一个Java源文件进行正确编译的语句是( A). A.    javac Test.java B.    javac Test C ...

  4. java se好用吗_利用 Java SE 7 更好地管理资源

    2011 年 5 月发布 作者:Julien Ponge 本文介绍 Java 7 针对自动资源管理问题给出的解决办法,即 Coin 项目中提出的新语言结构 try-with-resources 语句. ...

  5. java se 与j2se_关于java:J2EE和J2SE项目之间的区别

    本问题已经有最佳答案,请猛点这里访问. 我已经从github下载了一个开源项目. 这是一个基于Maven的项目. 我如何理解该项目是J2SE项目还是J2EE项目? 这两种项目在结构上有何不同? Jav ...

  6. Eclipse java SE版本解决无法新建web项目问题

    Eclipse java SE版本解决无法新建web项目问题 参考文章: (1)Eclipse java SE版本解决无法新建web项目问题 (2)https://www.cnblogs.com/lf ...

  7. Java综合项目----开发团队分配管理软件

    Java综合项目----开发团队分配管理软件 源代码下载地址: 简介 需求说明 系统功能结构 系统流程 用户注册和登录模块 开发人员管理模块 Equipment接口及其实现子类的设计 Employee ...

  8. Java实现宿舍管理系统、基于java、JDBC、GUI(含源文件/综合项目)

    1 绪论 1.1 项目概述 本项目是一个小型宿舍管理系统.首先由超管增加.删除.修改.查找.导入超管和宿管信息,再由宿管界面登录负责增加.删除.修改.查找.学生的相关缺寝信息.学生通过注册将信息加到数 ...

  9. JAVA EE综合项目(二手书籍出售消息)

    JAVA EE综合项目(二手书籍出售消息) 2.2 二手书交易系统(中) 会员:会员注册,基本信息修改:二手书籍出售信息的编辑.修改.发布(发布后不可再修改).关闭(关闭后他人不可再留言):查询并维护 ...

最新文章

  1. iOS UICollectionView 使用
  2. zzuliOJ 2536: 绿绿学姐与AI 1
  3. 2022Go安装goimports第三方库命令
  4. 爬虫 spider08——爬取腾讯娱乐新闻【使用redis去重】
  5. 多样人群,多面生活——观星盘八大策略人群洞察
  6. 基于词典和朴素贝叶斯中文情感倾向分析算法
  7. 配置管理小报091103-2: CVS中的tag规则
  8. 内核中的TCP的追踪分析-9-TCP(IPV4)的socket的地址绑定--续2
  9. table切换数据 vue_Vue实现表格中对数据进行转换、处理的方法
  10. ms17010批量扫描备忘
  11. 36D杯CTF Re WP
  12. opencv实现matlab的median()函数
  13. 【数据可视化】python/pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)、动态流向图
  14. K8s项目实战笔记 图文并茂带你深度解析Kubernetes
  15. 邮箱的容量怎么算怎么看?免费邮箱容量多大?能办公用吗?
  16. betaflight 10.8.0_win10调试笔记(未完待续)
  17. shell脚本编程学习笔记8(XDL)——流程控制和循环
  18. leecode:977. 有序数组的平方
  19. p2p网络测试工具_DHT之路丨大规模网络测试的全新工具!
  20. 魔兽世界n 服服务器维护时段,wowN服新服务器开放时间_魔兽世界N服新服务器发布内容_快吧游戏...

热门文章

  1. springboot jar包 一键部署,开机自动启动
  2. EasyMonitor 视频监控开发平台 安装教程(保姆式教程)
  3. R语言实战应用精讲50篇(三十五)-R语言实现xgboost回归(附R语言代码)
  4. 20180430-A · ACS Census Data (2015) · ggplot2 maps rcstatebin 地图 热图 蜂窝地图 动态图 · R 语言数据可视化 案例 源码
  5. Android Studio开发环境
  6. Linux系统下利用Impost3r劫持sudo命令窃取凭据
  7. 模拟实现atoi函数
  8. 简单讲解ANSI Unicode、GBK、GB2312
  9. wince 系统定制
  10. 【整理】PJSIP开源库详解