Sistema de gerenciamento de livrarias:
Objetivos do exercício do projeto:
1. Análise básica de aplicativos Java
2. Cultive as idéias básicas da programação orientada a objetos
3. Aplicação abrangente de padrões básicos de design de java
4. Domine o design básico de camadas e interfaces
5. Construa uma estrutura de pacote de aplicativos Java razoável
6. Conhecimento aprendido por aplicação abrangente de JSE
7. Use a estrutura de coleta racionalmente no aplicativo
8. Uso abrangente de componentes comuns de balanço em aplicações
9. Mecanismo básico de implementação da camada de desempenho
10. Operações básicas de fluxos de IO e arquivos
11. Desenvolva bons hábitos de programação Java
12. Cultive a capacidade de depurar programas Java e cultivar a capacidade de corrigir erros
Requisitos funcionais do projeto:
1. Pode operar o registro do usuário, modificar informações básicas, excluir e consultar.
2. Pode adicionar, excluir, modificar e consultar as informações básicas do livro.
3. Você pode preencher o formulário de compra. Um formulário de compra contém várias informações de compra específicas. Os livros adquiridos já devem estar disponíveis no gerenciamento de livros; Ao comprar, modificando o volume do inventário dos livros correspondentes no inventário.
4. Você pode preencher o formulário de vendas. Um formulário de vendas contém várias informações específicas de vendas. Os livros vendidos já devem estar no gerenciamento de livros, e a quantidade de vendas não pode exceder a quantidade atual de inventário; Durante a venda, modifique o volume do inventário dos livros correspondentes no inventário.
5. Você pode ver os detalhes do inventário e encontrar o valor do inventário de livros específicos de acordo com as condições.
6. Simplifique as permissões e implemente o controle de permissão fixa. O usuário é dividido em pessoal com diferentes permissões operacionais de acordo com o módulo, e um usuário de administrador especial pode operar todas as funções.
Design básico do projeto:
★ Estrutura geral do design de arquitetura, divisão de módulos: 5 módulos: usuário, livro, compra, vendas e inventário
★ Projeto de estrutura funcional do sistema Submódulos funcionais específicos de cada módulo funcional
★ Implementação do projeto de projeto de design de banco de dados: Módulo, camada, subcontrato e aplicativos de construção
1. Gerenciamento de usuários (user.txt)
Nota: O tipo é o tipo int, usado para representar o tipo de operador.
1 - indicado como administrador, todas as operações podem ser executadas
2-denotei como uma pessoa que pode operar o módulo de livro
3 - expresso como uma pessoa que pode operar o módulo de compra
4 - expresso como uma pessoa que pode operar módulos de vendas
5 - Expresso como uma pessoa que pode operar módulos de inventário
2. Gerenciamento de livros (book.txt)
3. Gerenciamento de compras (inmain.txt)
4. Gerenciamento de detalhes de compra (indetail.txt)
5. Gerenciamento de vendas (Outmain.txt)
6. Gerenciamento de detalhes de vendas (OutdoTail.txt)
7. Gerenciamento de inventário (Stock.txt)
Subcontrato do projeto
A primeira camada: Módulo de Usuário (Usuário) de acordo com o módulo
Livros (livros),
Compra (in),
Vendas (fora),
Inventário (loja)
A segunda camada: de acordo com o modo de três camadas, é dividido em camada de apresentação (UI), camada lógica (negócios) e camada de dados (DAO)
Geralmente, uma camada de objeto de valor (VO) precisa ser adicionada
A terceira camada: depende da situação específica de acordo com a divisão dentro da camada. Por exemplo, os sub-pacotes devem ser construídos na forma de um triângulo de ferro, enquanto a interface do usuário e o VO não precisam ser divididos nos sub-pacotes).
Idéias de estratificação do projeto:
Não aperfeiçoado, continue prestando atenção a esta série (ii)
A seguir, faz parte do Código: (uma classe pública no UTIL)
cn.hncu.bookstore.util
Fileioutil.java:
pacote cn.hncu.bookstore.util; importar java.io.file; importar java.io.fileInputStream; importar java.io.fileNotFoundException; importar java.io.fileOutStream; importação java.io.ioxception; importação.ObjactinutStream; importStream; importação; java.util.ArrayList; importar java.util.list; importar javax.swing.JOptionPane;/*** Dados públicos do usuário Leia e grava classe de classe* @author chen haoxiang** @version 1.0*/public class DataItil {publicIoutile () {}/** ** ** ** ** lida com todos os dados do DataTil {publicioutile () {}/** *** tabela) * @param ee (tipo do genérico passado!) * @return registros de todas as tabelas! */@Suppresswarnings ("desmarcado") // Pressione aviso public static <e> list <e> readFile (string filename, e ee) {list <e> list = new ArrayList <E> (); arquivo final arquivo = novo arquivo (nome do arquivo); ObjectInputStream in = null; if (! file.exists ()) {joptionpane.showMessagedialog (null, "a tabela de dados não existe!"); lista de retorno; } tente {in = new ObjectInputStream (new FileInputStream (nome do arquivo)); tente {list = (list <e>) in.readObject (); } catch (classNotFoundException e) {e.printStackTrace (); }} catch (filenotfoundException e) {e.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); } finalmente {if (in! = null) {tente {in.close (); } catch (ioexception e) {lança nova runtimeException ("Falha de fechamento do banco de dados"); }}} Lista de retorno; } / ** * Escreva uma coleção de listas no arquivo de arquivo de dados * * * @param List (a coleção de dados que precisa ser armazenada) * @param filename (o nome do arquivo em qual arquivo está escrito) * / public static void write2File (list <fject> list, string filename) {objectOutTream Out = null; tente {out = new ObjectOutputStream (new FileOutputStream (nome do arquivo)); out.WriteObject (List); } catch (filenotfoundException e) {e.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); } finalmente {if (out! = null) {try {out.close (); } catch (ioexception e) {lança nova runtimeException ("Database Close falhou!"); }}}}}}}}}Dados do usuário encapsulados:
cn.hncu.bookstore.user.vo;
Usermodel.java
pacote cn.hncu.bookstore.user.vo;/** * @author chen haoxiang * @version 1.0 * * <br/> * objeto de valor usado para salvar informações do usuário <br/> * 1. seriarize <br/> * 2. Privatize todos os membros da variável e suplementos-fetters Métodos <br/ * 3. Código <br/> * 4. Método da ToString <br/> * 5. Método de construção de parâmetros vazios <br/> */public class Usermodel {private String uuid; // Código de identificação exclusivo do usuário Nome de string privado; // nome de usuário private int tipo; // tipo de usuário String privada PWD; User Public Public Usermodel () {}/** ** ** ** ** FUNCTIM Código de identificação exclusivo*/ public String getUuid () {return uuid; } / *** Função: Defina o código de identificação exclusivo do UUID-User* @param uuid-user Código de identificação exclusivo Tipo de string parâmetro* / public void setuuid (string uuid) {this.uuid = uuid; } / *** Função: Obtenha o nome de usuário do usuário* @return-Nome-nome-usuário* / public String getName () {Nome de return; } / *** Função: Obtenha o nome de usuário do usuário* @return-Nome-nome-usuário* / public String getName () {Nome de return; } / *** Função: Defina o nome do usuário** Nome @param-nome do usuário definido pelo usuário, parâmetro de string type* / public void setName (nome da string) {this.name = name; } / *** Função: Obtenha o tipo de usuário:* 1 - representa o administrador, e todas as operações podem ser executadas* 2 - representa a pessoa que pode operar o módulo do livro* 3 - representa a pessoa que pode operar o módulo de compra* 4 - Representa a pessoa que pode operar o módulo de vendas* 5 - Representa a pessoa que pode operar o invasor. } /** * Function: Set the user type: * 1― represents the person who can operate the book module* 2― represents the person who can operate the book module* 3―Denoted as a person who can operate the purchase module* 4―Denoted as a person who can operate the sales module* 5―Denoted as a person who can operate the inventory module* @param type--user's type-int type parameter*/ public void settype (int tipo) {this.type = type; } / ***Função: Obtenha a senha do usuário*@return string tipo, senha do usuário* / public String getpwd () {return pwd; } / ***Função: Defina a senha do usuário*@param pwd-string type Parâmetro* / public void setpwd (string pwd) {this.pwd = pwd; } @Override public int hashCode () {final int prime = 31; int resultado = 1; resultado = prime * resultado + ((uuid == null)? 0: uuid.hashcode ()); resultado de retorno; } @Override public boolean equals (object obj) {if (this == obj) retorna true; if (obj == null) retorna false; if (getClass ()! = obj.getclass ()) retornar false; UserMermodel Outro = (Usermodel) OBJ; if (uuid == null) {if (other.uuid! = null) retorna false; } else if (! uuid.equals (outros.uuid)) retorna false; retornar true; } @Override public string tostring () {return }} Dados de consulta de usuário encapsulados:
cn.hncu.bookstore.user.vo;
UserQueryModel.java
pacote cn.hncu.bookstore.user.vo; classe pública userQuerymodel estende UserModel {}Embora essa aula não tenha nada, apenas herda o Usermodel, ainda precisa ser escrito. Esta é a especificação de escrita de Java que todos cumprem!
Usuário DAO (camada de dados): (interface)
cn.hncu.bookstore.user.dao.dao;
Userdao.java
pacote cn.hncu.bookstore.user.dao.dao; importar java.util.list; importar cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userModel; interface userdao { / *** função: Crie um usuário** @param userModel --- Dados do usuário a serem criados* @return-True significa criação bem-sucedida, false significa criação falhou* / public boolean Create (Usermodel User); / *** Função: Exclua um usuário** @param uuid --- Código de identificação exclusivo do usuário, cada usuário não será o mesmo* @return --- true significa que a exclusão é bem-sucedida, false significa que a exclusão falhou*/ Public Boolean Excluir (string uuid); / *** Função: Modifique os dados do usuário** @param User --- Nome do parâmetro de dados do usuário que precisa ser modificado* @return retornar true- indica que a modificação é bem-sucedida, retornar false-indica que a modificação falhou*/ Atualização booleana pública (usuário de Usermodel); / *** Função: obtenha todos os dados do usuário** @return --- Uma coleção UserModel, ou seja, os dados do usuário*/ Lista pública <UserModel> getall (); /** * Função: Pesquise de acordo com certas condições de pesquisa, * <br/> * Retorne dados do usuário que atendem às condições de pesquisa. ** @param uqm --- Condições de pesquisa encapsuladas* @return ---- Conjunto de dados do usuário que atende às condições de pesquisa*/ Lista pública <UserModel> getByCondition (userQueryModel uqm); / *** Função: Obtenha um determinado Dados do Usuário** @param uuid --- Código de identificação exclusivo do usuário* @return --- Retorne os dados do usuário encontrados de acordo com este código de identificação exclusivo*/ public UserModel Getsingle (String uuid);}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.