签到考勤java课设_用Java设计一个考勤模拟程序Attendance

这篇博客介绍了一个用Java编写的考勤模拟程序Attendance,具备上班签到、下班签出、考勤信息查阅等功能。用户信息存储在HashMap中,签到签出信息记录在attendance+username.txt文件中,程序会检查迟到和早退情况。通过菜单式交互,用户可以选择所需操作,实现了简单的考勤管理系统。
摘要由CSDN通过智能技术生成

用Java设计一个考勤模拟程序Attendance,实现如下功能选择界面:

1--上班签到

2--下班签出

3--考勤信息查阅

4--退出

考勤程序运行后,提示用户输入上述功能选择,并验证用户输入的用户名和密码;用户信息保存在HashMap中。

如果是上班签到,记录签到信息,如果签到时间大于上午9时,则提示用户迟到,并记录该迟到信息到attendance+username.txt中(username指的是登录用户)。

如果是下班签出,记录签出信息,如果签出时间小于下午6时,则提示用户早退,并记录该早退信息到attendance+username.txt中(username指的是登录用户)。

如果用户选择考勤信息查询,则将attendance+username.txt中对应该用户的迟到早退信息查出并显示。

用户选择功能执行完,程序继续回到功能选择界面等待下一个用户进行操作。

李纯宇 22:36:58

1、完成课设前的准备工作:(1)安装JDK1.8;(2)配置环境变量;(3)安装开发工具Eclipse。

2、编写Map存储用户信息,包括用户名、密码和考勤信息。

3、编写用户登录验证方法login(如果密码错误允许重新输入直至输入正确为加分项,非必须完成)

3、编写新用户注册的方法reg(此项为加分项,非必须完成)

4、撰写相关部分的课设报告书

李纯宇 22:37:31

1、编写上班签到方法check_in()

记录签到信息,如果签到时间大于上午9时,则提示用户迟到,并记录该迟到信息到attendance+username.txt中(username指的是登录用户)。

李纯宇 22:37:43

1、下班签出方法check_out()

记录签出信息,如果签出时间小于下午6时,则提示用户早退,并记录该早退信息到attendance+username.txt中(username指的是登录用户)。

李纯宇 22:37:58

1、编写查询考勤信息方法display_record()

2、编写系统功能选择方法opera()并编写测试类Test

在main方法中创建Attendance类的对象,并调用相应的方法,

3、程序测试

Attendance.java

import java.io.*;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.Scanner;

public class Attendance {

Scanner scan = new Scanner(System.in);

static HashMap map = new HashMap<>();

private String username;

private String password;

static boolean circulation = true;

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String format = df.format(new Date());

String time = format.substring(11, 13);

public Attendance() {

}

public Attendance(String username, String password) {

setUsername(username);

setPassword(password);

map.put(getUsername(),getPassword());

}

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;

}

public void opera(){

while(true) {

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

System.out.println("请选择功能 1.(注册) 2.(登陆)");

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

int option = 0;

boolean b = true;

while (b){

try {

option = scan.nextInt();

b = false;

} catch (Exception e) {

System.out.println("输入错误,请重新输入!");

scan.nextLine();

}

}

switch (option) {

case 1:

reg();

circulation = true;

while (circulation) {

menu();

}

break;

case 2:

login();

circulation = true;

while (circulation) {

menu();

}

break;

default:

System.out.println("你的选择有误,请重新输入");

}

}

}

public void menu(){

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

System.out.println(" 1——上班签到");

System.out.println(" 2——下班签出");

System.out.println(" 3——考勤信息查阅");

System.out.println(" 4——退出");

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

int choice = 0;

boolean b = true;

while (b){

try {

choice = scan.nextInt();

b = false;

} catch (Exception e) {

System.out.println("输入错误,请重新输入!");

scan.nextLine();

}

}

switch(choice){

case 1:

check_in();

break;

case 2:

check_out();

break;

case 3:

display_record();

break;

case 4:

System.out.println(getUsername()+"用户已退出!");

circulation = false;

break;

default:

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

}

}

public void login(){

boolean input = true;

while (input){

System.out.print("请输入用户名:");

setUsername(scan.next());

System.out.print("请输入密码:");

setPassword(scan.next());

if (map.containsKey(getUsername())){

if (map.get(getUsername()).equals(getPassword())){

input = false;

System.out.println(getUsername()+"用户,登录成功!");

}else {

System.out.println("密码错误!");

}

}else {

System.out.println("密码或用户名错误,请重新输入!");

}

}

}

public void reg(){

while(true){

System.out.println("请输入用户名:");

setUsername(scan.next());

if(map.get(getUsername())!=null){

//如果存在

System.out.println("该账号已经存在,请重新输入账号");

}else{

//不存在

break;

}

}

System.out.println("请输入密码:");

setPassword(scan.next());

//添加用户到map集合

map.put(getUsername(),getPassword());

System.out.println("注册成功!");

System.out.println("当前注册的人员:"+getUsername());

}

//上班签到

public void check_in(){

if (Integer.valueOf(time)>9){

System.out.println(getUsername()+"用户迟到,已经记录!");

//写入到attendance+username.txt文件

String saveFile = "attendance"+getUsername()+".txt";

String fileContent = format+" "+getUsername()+"迟到";

File file = new File(saveFile);

FileOutputStream fos = null;

OutputStreamWriter osw = null;

try {

if (!file.exists()){

fos = new FileOutputStream(file);

}else {

fos = new FileOutputStream(file,true);

}

osw = new OutputStreamWriter(fos,"utf-8");

osw.write(fileContent);

osw.write("\r\n");

} catch (IOException e) {

e.printStackTrace();

}finally {

try {

if (osw != null) {

osw.close();

}

} catch (IOException e) {

e.printStackTrace();

}

try {

if (fos != null) {

fos.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}else {

System.out.println("签到成功!");

}

System.out.println(format);

}

//下班签出

public void check_out(){

if (Integer.valueOf(time)<18){

System.out.println(getUsername()+"用户早退,已经记录!");

//写入到attendance+username.txt文件

String saveFile = "attendance"+getUsername()+".txt";

String fileContent = format+" "+getUsername()+"早退";

File file = new File(saveFile);

FileOutputStream fos = null;

OutputStreamWriter osw = null;

try {

if (!file.exists()){

fos = new FileOutputStream(file);

}else {

fos = new FileOutputStream(file,true);

}

osw = new OutputStreamWriter(fos,"utf-8");

osw.write(fileContent);

osw.write("\r\n");

} catch (IOException e) {

e.printStackTrace();

}finally {

try {

if (osw != null) {

osw.close();

}

} catch (IOException e) {

e.printStackTrace();

}

try {

if (fos != null) {

fos.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}else {

System.out.println("签出成功!");

}

System.out.println(format);

}

//查询考勤信息

public void display_record(){

String filePath = "attendance"+getUsername()+".txt";

try {

String encoding="utf-8";

File file=new File(filePath);

if(file.isFile() && file.exists()){ //判断文件是否存在

InputStreamReader read = new InputStreamReader(

new FileInputStream(file),encoding);//考虑到编码格式

BufferedReader bufferedReader = new BufferedReader(read);

String lineTxt = null;

while((lineTxt = bufferedReader.readLine()) != null){

System.out.println(lineTxt);

}

read.close();

}else{

System.out.println("找不到指定的文件");

}

} catch (Exception e) {

System.out.println("读取文件内容出错");

e.printStackTrace();

}

}

}

Test.java

public class Test {

public static void main(String[] args) {

//新建默认用户

Attendance at = new Attendance("root","123");

at.opera();

}

}

标签:username,Attendance,Java,String,System,考勤,println,public,out

来源: https://www.cnblogs.com/tanjiangtao/p/13098745.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值