이 글은 자바로 개발되어 구현된 아주 완전한 코드입니다. 시간적인 문제로 인해 설명이 부족한 부분이 있으면 함께 논의해 보세요. 코드에서 지적해도 좋습니다.
java 회계 시스템
package com.ss.file; import java.io.*; public class FileIO { private String filename = "tally.txt"; public FileIO() { File file = new File(filename); if(!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } public void write(String data,boolean mode) { try { FileWriter fw = new FileWriter(filename,mode); BufferedWriter bw = new BufferedWriter(fw); bw.write(data); bw.close(); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String read() { FileReader fr; String line = ""; String fileStr = ""; try { fr = new FileReader(filename);//不能一行行的读 BufferedReader br = new BufferedReader(fr);//可以一行行的读效率高 while((line = br.readLine()) != null) { fileStr += line + "\n"; } br.close(); fr.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return fileStr; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } }
package com.ss.oper; import java.util.Vector; import com.ss.file.FileIO; import com.ss.util.Tool; public class Operation { FileIO io = new FileIO(); public void add(String data) { io.write(data, true); } public void delete(String data) { io.write(data, false); } public void update(String data) { io.write(data, false); } /* * 全部查询 */ public Vector select() { String str = io.read(); Tool tool = new Tool(); return tool.StringToVec(str); } /* * 条件查询 */ public Vector select(String type,String remark) { Vector vecData = new Vector(); Vector vecAll = select(); for(int i = 0;i < vecAll.size();i++) { Vector smallVec = (Vector)vecAll.get(i); boolean select = (smallVec.get(1).toString().equals(type) || type.equals("")) && (smallVec.get(4).toString().equals(remark) || remark.equals("")); if(select) { vecData.add(smallVec); } } return vecData; } }
package com.ss.util; import java.text.SimpleDateFormat; import java.util.*; import com.ss.file.FileIO; public class Tool { public String getTime() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(date); return str; } /* * 将String转化成Vector类型 */ public Vector StringToVec(String data) { Vector bigVec = new Vector(); if(data != null && !data.equals("")) { String[] array = data.split("\n"); for(int i=0;i<array.length;i++) { String[] a = array[i].split(","); Vector smallVec = new Vector(); smallVec.add(a[0]); smallVec.add(a[1]); smallVec.add(a[2]); smallVec.add(a[3]); smallVec.add(a[4]); smallVec.add(a[5]); smallVec.add(a[6]); smallVec.add(a[7]); smallVec.add(a[8]); smallVec.add(a[9]); smallVec.add(a[10]); bigVec.add(smallVec); } } return bigVec; } /* * 获取下一个流水账号 */ public int getNewID() { int id = 1; FileIO io = new FileIO(); String data = io.read(); if(data != null && !data.equals("")) { Vector bigVec = StringToVec(data); Vector smallVecLast = (Vector)bigVec.get(bigVec.size()-1); String str = (String)smallVecLast.get(0); id = Integer.parseInt(str) + 1; } return id; } }
package com.ss.view; import javax.swing.*; import javax.swing.table.DefaultTableModel; import com.ss.oper.Operation; import com.ss.util.Tool; import java.util.Vector; import java.awt.*; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class UI_t extends JFrame{ private JComboBox<String> typeCom = new JComboBox<String>(); private JComboBox<String> typeCom2 = new JComboBox<String>(); private JTextField moneyText = new JTextField(); private JTextField stateText = new JTextField(); private JTextField tjText = new JTextField(); private JTextField kehuText = new JTextField(); private JTextField jishuText = new JTextField(); private JTextField jsmoneyText = new JTextField(); private JTextField jsfenchengText = new JTextField(); private JTextField yingliText = new JTextField(); private JTextField wanchengText = new JTextField(); private JTable table = new JTable(); private DefaultTableModel dtm = new DefaultTableModel(); private Vector<String> colName = new Vector<String>(); public UI_t(){ super("个人账目管理系统"); this.setBounds(300, 200, 1200, 800); init(); } public void init(){ JScrollPane p1 = new JScrollPane(setTable()); final JSplitPane p2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,setInfo(),p1); p2.addComponentListener(new ComponentListener(){ @Override public void componentResized(ComponentEvent arg0) { p2.setpiderLocation(0.4); } @Override public void componentHidden(ComponentEvent arg0) { // TODO Auto-generated method stub } @Override public void componentMoved(ComponentEvent arg0) { // TODO Auto-generated method stub } @Override public void componentShown(ComponentEvent arg0) { // TODO Auto-generated method stub } }); this.add(p2); } public static void main(String[] args) { // TODO Auto-generated method stub new UI_t().setVisible(true); } public JPanel setInfo(){ JPanel jp = new JPanel(); jp.setLayout(null); JLabel label1 = new JLabel("类型"); label1.setBounds(10, 50, 30, 30); jp.add(label1); typeCom.addItem("生旦净末丑"); typeCom.addItem("齐怪了"); typeCom.setBounds(50, 50, 60, 30); jp.add(typeCom); JLabel label2 = new JLabel("客户名"); label2.setBounds(120, 50, 60, 30); jp.add(label2); kehuText.setBounds(160, 50, 60, 30); jp.add(kehuText); JLabel jishulabel = new JLabel("技术名"); jishulabel.setBounds(240, 50, 60, 30); jp.add(jishulabel); jishuText.setBounds(280, 50, 60, 30); jp.add(jishuText); JLabel dingdanlabel = new JLabel("订单金额"); dingdanlabel.setBounds(340, 50, 60, 30); jp.add(dingdanlabel); moneyText.setBounds(400, 50, 60, 30); jp.add(moneyText); JLabel jsjiagelabel = new JLabel("技术价格"); jsjiagelabel.setBounds(460, 50, 60, 30); jp.add(jsjiagelabel); jsmoneyText.setBounds(520, 50, 60, 30); jp.add(jsmoneyText); JLabel jsfenchenglabel = new JLabel("技术分成"); jsfenchenglabel.setBounds(580, 50, 60, 30); jp.add(jsfenchenglabel); jsfenchengText.setBounds(640, 50, 60, 30); jp.add(jsfenchengText); JLabel yinglilabel = new JLabel("盈利"); yinglilabel.setBounds(700, 50, 40, 30); jp.add(yinglilabel); yingliText.setBounds(740, 50, 60, 30); jp.add(yingliText); JLabel wanchenglabel = new JLabel("完成时间"); wanchenglabel.setBounds(820, 50, 60, 30); jp.add(wanchenglabel); wanchengText.setBounds(880, 50, 60, 30); jp.add(wanchengText); JLabel statelabel4 = new JLabel("状态信息"); statelabel4.setBounds(940, 50, 60, 30); stateText.setBounds(1000, 50, 40, 30); jp.add(statelabel4); jp.add(stateText); JButton addBut = new JButton("增加"); addBut.setBounds(400, 100, 60, 30); jp.add(addBut); addBut.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent arg0) { } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { } @Override public void mouseEntered(MouseEvent arg0) { } @Override public void mouseClicked(MouseEvent arg0) { String type = (String)typeCom.getSelectedItem();//返回当前所选项 String kehuname=kehuText.getText(); String jishuname=jishuText.getText(); String dingdanmoney=moneyText.getText(); String jishumoney=jsmoneyText.getText(); String jishufencheng=jsfenchengText.getText(); String yingli=yingliText.getText(); String finnishdata=wanchengText.getText(); String remark = stateText.getText(); Tool tool = new Tool(); String kaishitime = tool.getTime(); int id = tool.getNewID(); //修改部分 String data = id + "," + type + "," + kehuname + "," + jishuname + "," +dingdanmoney + ","+jishumoney + ","+jishufencheng + ","+yingli + ","+kaishitime+","+finnishdata+","+remark +"\n"; Operation oper = new Operation(); oper.add(data); select(); } }); JButton xgBut = new JButton("修改"); xgBut.setBounds(500, 100, 60, 30); jp.add(xgBut); xgBut.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseClicked(MouseEvent e) { String data = changeTableData(); Operation oper = new Operation(); oper.update(data); } }); JButton deleteBut = new JButton("删除"); deleteBut.setBounds(600, 100, 60, 30); jp.add(deleteBut); deleteBut.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseClicked(MouseEvent e) { int i = table.getSelectedRow(); dtm.removeRow(i); String data = changeTableData(); Operation oper = new Operation(); oper.delete(data); } }); JLabel chaxunlabel = new JLabel("按店铺查询"); chaxunlabel.setBounds(100, 200, 100, 30); jp.add(chaxunlabel); typeCom2.addItem(""); typeCom2.addItem("生旦净末丑"); typeCom2.addItem("齐怪了"); typeCom2.setBounds(180, 200, 60, 30); jp.add(typeCom2); JLabel tianjiaolabel = new JLabel("按条件查询"); tianjiaolabel.setBounds(280, 200, 100, 30); jp.add(tianjiaolabel); tjText.setBounds(380,200,100,30); jp.add(tjText); JButton selectBut = new JButton("查询"); selectBut.setBounds(500, 200, 60, 30); jp.add(selectBut); selectBut.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseClicked(MouseEvent e) { String type = (String) typeCom2.getSelectedItem(); String remark = tjText.getText(); Operation oper = new Operation(); Vector data = oper.select(type,remark); dtm.setDataVector(data, colName); table.setModel(dtm); } }); return jp; } public JTable setTable(){ colName.add("流水账号"); colName.add("类型"); colName.add("客户名"); colName.add("技术名"); colName.add("订单金额"); colName.add("技术价格"); colName.add("技术分成"); colName.add("盈利"); colName.add("开始时间"); colName.add("完成时间"); colName.add("状态信息"); Operation oper = new Operation(); Vector data = oper.select(); dtm.setDataVector(data, colName); table.setModel(dtm); return table; } /* * 从文件中重新读取一遍数据相当于刷新 */ public void select(){ Operation oper = new Operation(); Vector data = oper.select(); dtm.setDataVector(data, colName); table.setModel(dtm); } /* * 获取表格内容 */ public String changeTableData(){ String data = ""; int row = table.getRowCount(); for(int i=0;i<row;i++){ String line = ""; for(int j=0;j<11;j++){ line += dtm.getValueAt(i, j)+","; } line += "\n"; data += line; } return data; } }
관련 기사:
위 내용은 사례 공유: Java를 사용하여 회계 시스템 개발 및 구현(전체 코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.

이 기사에서는 분산 응용 프로그램을 구축하기위한 Java의 원격 메소드 호출 (RMI)에 대해 설명합니다. 인터페이스 정의, 구현, 레지스트리 설정 및 클라이언트 측 호출을 자세히 설명하여 네트워크 문제 및 보안과 같은 문제를 해결합니다.

이 기사는 네트워크 통신을위한 Java의 소켓 API, 클라이언트 서버 설정, 데이터 처리 및 리소스 관리, 오류 처리 및 보안과 같은 중요한 고려 사항에 대해 자세히 설명합니다. 또한 성능 최적화 기술, i

이 기사에서는 맞춤형 Java 네트워킹 프로토콜을 작성합니다. 프로토콜 정의 (데이터 구조, 프레임, 오류 처리, 버전화), 구현 (소켓 사용), 데이터 직렬화 및 모범 사례 (효율성, 보안, Mainta를 포함합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版
시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
