客户信息管理系统
课程设计的题目及简介设计说明程序流图程序清单
Customer 类MainView类Tools类DataManager类
调试结果课程设计领会视频教程
课程设计的题目及简介
客户信息管理系统,功能如下:
(1)添加客户信息
(2)修改客户信息
(3)删除客户数据
(4)查询客户列表
(5)所有数据通过JDBC保管到MySql数据库中
1,数据库名:cms_hisoft
2,表名:users
3,字段列表和类型:
id,int,主键,自动增长
name,varchar(20),姓名
gender,varchar(5),性别
age,int,年龄
phone…
设计说明
实现一个基于文本界面的《客户信息管理软件》
• 进一步掌握编程技巧和调试技巧,熟悉面向对象编
程
• 主要涉及以下知识点:
– 类和对象(属性、方法及构造器)
– 类的封装
– 数据库的根本操作
– 数据的插入、删除和交换
– 对象的聚集处置
– java通过jdbc链接数据库
• 实现基于文本界面的《客户信息管理软件》。
• 该软件可以实现对客户对象的插入、修改和删除(
用数组实现),并可以打印客户明细表。
• 项目采用分级菜双方式,主菜单如下:
“添加客户”的界面及操作过程如下所示:
“修改客户”的界面及操作过程如下所示:
“删除客户”的界面及操作过程如下所示:
“客户列表”的界面及操作过程如下所示:
客户应当包含的信息:
– String name : 客户姓名
– char gender : 性别
– int age : 年龄
– String phone: 电话号码
– String email : 电子邮箱
程序流图
程序清单
Customer 类
这是一个用来封装客户信息的类,这里面封装了客户的根本信息,并提供了各属性的 get / set 方法以及自编的构造器对属性停止初始化,下方代码省略了 get / set 方法- // Customer 实体类,用于封装客户信息publicclassCustomer{privateint id;privateString name;privateString gender;privateint age;privateString phone;privateString email;publicintgetId(){return id;}publicvoidsetId(int id){this.id = id;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicStringgetGender(){return gender;}publicvoidsetGender(String gender){this.gender = gender;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age = age;}publicStringgetPhone(){return phone;}publicvoidsetPhone(String phone){this.phone = phone;}publicStringgetEmail(){return email;}publicvoidsetEmail(String email){this.email = email;}}
复制代码 MainView类
主函数所在的类,其为主模块,负责菜单的显示和处置用户操作以及对数据库停止增删改查操作,其中该类下的成员方法仅供 MainView() 方法调用,该类中实现的主要有以下函数:- importjava.sql.ResultSet;publicclassMainView{privateDataManager dataManager;publicstaticvoidmain(String[] args){newMainView();}publicMainView(){try{//初始化dataManager
- dataManager =newDataManager();//链接数据库
- dataManager.connetSql();while(true){System.out.println("--客户信息管理软件--");System.out.println("\t1 添 加 客 户");System.out.println("\t2 修 改 客 户");System.out.println("\t3 删 除 客 户");System.out.println("\t4 客 户 列 表");System.out.println("\t5 退 出");System.out.println();System.out.print("\t请选择(1-5):");switch(Tools.getMenu()){case1:addCustomer();break;case2:modifyCustomer();break;case3:delCustomer();break;case4://查询客户列表queryCustomerList();break;case5:
- dataManager.closeSql();System.out.println("bye bye !");return;}}}catch(Exception e){// TODO: handle exceptionSystem.out.println(e);}}/**
- * 修改客户信息
- */privatevoidmodifyCustomer()throwsException{/**
- * ---------------------修改客户---------------------
- * 请选择待修改客户编号(-1退出):1 姓名(张三):<直接回车表示不修改>
- * 性别(男): 年龄(30): 电话(010-52776976): * 邮箱(zhang@abc.com):zsan@abc.com
- * ---------------------修改完成---------------------
- */System.out.println("--修改客户--");System.out.print("请输入客户编号:");int id =Tools.getNum();if(id ==-1){System.out.println("--取消修改--");return;}//进入修改逻辑,ResultSet rs = dataManager.getCustomer(id);//保管数据条数int num=0;// 展开结果集数据库while(rs.next()){
- num++;Customer customer =newCustomer();
- customer.setId(id);//修改值System.out.print("姓名("+rs.getString("name")+"):");
- customer.setName(Tools.getStr(rs.getString("name")));System.out.print("性别("+rs.getString("gender")+"):");
- customer.setGender(Tools.getStr(rs.getString("gender")));System.out.print("年龄("+rs.getInt("age")+"):");
- customer.setAge(Tools.getNum(rs.getInt("age")));System.out.print("电话("+rs.getString("phone")+"):");
- customer.setPhone(Tools.getStr(rs.getString("phone")));System.out.print("邮箱("+rs.getString("email")+"):");
- customer.setEmail(Tools.getStr(rs.getString("email")));int num2=dataManager.modifyCustomer(customer);if(num2 ==1){System.out.println("--修改完成--");return;}System.out.println("--修改失败--");}if(num==0){System.out.println("没有查到数据!");return;}}/**
- * 删除客户信息
- */privatevoiddelCustomer()throwsException{/**
- * --------------------
- * 请选择待删除客户编号(-1退出):1 确认是否删除(Y/N):y
- * --------------------
- */System.out.println("--删除客户--");System.out.print("请输入客户编号:");int id =Tools.getNum();if(id ==-1){System.out.println("--取消删除--");return;}System.out.print("确认是否删除(Y/N):");String ynStr =Tools.getYn();//取消删除if(ynStr.equals("N")){System.out.println("--取消删除--");return;}//确定删除int num = dataManager.delCustomer(id);if(num==0){System.out.println("--删除失败--");return;}System.out.println("--删除完成--");}/**
- * 添加用户
- */privatevoidaddCustomer()throwsException{System.out.println("--添加客户--");Customer customer =newCustomer();System.out.print("姓名:");
- customer.setName(Tools.getStr());System.out.print("性别:");
- customer.setGender(Tools.getStr());System.out.print("年龄:");
- customer.setAge(Tools.getNum());System.out.print("电话:");
- customer.setPhone(Tools.getStr());System.out.print("邮箱:");
- customer.setEmail(Tools.getStr());int num = dataManager.addCustomer(customer);//判断是否添加胜利if(num==1){System.out.println("--添加完成--");}else{System.out.println("--添加失败--");}}/**
- * 查询客户信息
- * @throws Exception
- */publicvoidqueryCustomerList()throwsException{System.out.println("--客户列表--");ResultSet rs = dataManager.getCustomerList();System.out.println("编号\t姓名\t性别\t年龄\t电话\t邮箱");//保管数据条数int num=0;// 展开结果集数据库while(rs.next()){
- num++;// 输出数据System.out.print(rs.getInt("id")+"\t");System.out.print(rs.getString("name")+"\t");System.out.print(rs.getString("gender")+"\t");System.out.print(rs.getInt("age")+"\t");System.out.print(rs.getString("phone")+"\t");System.out.print(rs.getString("email"));System.out.print("\n");}if(num==0){System.out.println("没有查到数据!");}// 完成后关闭
- rs.close();System.out.println("--客户列表完成--");}}
复制代码 Tools类
该类主要对用户停止的输入的不合法数据停止修改,让用户输入数据合法- importjava.util.Scanner;publicclassTools{privatestaticScanner sc =newScanner(System.in);/**
- * 得到y/n
- * @return
- */publicstaticStringgetYn(){String ynStr;while(true){
- ynStr =getStr().toUpperCase();if(ynStr.equals("Y")|| ynStr.equals("N")){return ynStr;}System.out.print("输入错误,请输入y/n:");}}/**
- * 获得用户输入菜单
- * @return 菜单
- */publicstaticintgetMenu(){//菜单数字int menuNum;while(true){
- menuNum =getNum();if(menuNum>=1&& menuNum<=5){return menuNum;}System.out.print("输入错误,请输入(1-5):");}}/**
- * 获得数字
- * @return
- */publicstaticintgetNum(){String numStr;int num;while(true){
- numStr =getStr();try{
- num =Integer.parseInt(numStr);return num;}catch(Exception e){System.out.print("输入错误,请输入数字:");continue;}}}/**
- * 获取数字,有默认值
- * @param num0
- * @return
- */publicstaticintgetNum(int num0){String numStr;int num;while(true){
- numStr =getStr("");if(numStr.length()==0){//直接回车return num0;}try{
- num =Integer.parseInt(numStr);return num;}catch(Exception e){System.out.print("输入错误,请输入数字:");continue;}}}/**
- * 接收非空字符串
- * @return
- */publicstaticStringgetStr(){String str;while(true){
- str = sc.nextLine();//直接回车,得到空字符串if(str.length()==0){System.out.print("内容不许为空,重新输入:");continue;}//字符串非空,返回return str;}}/**
- * 接收字符串,允许为空
- * @return
- */publicstaticStringgetStr(String str0){String str = sc.nextLine();//直接回车,得到空字符串if(str.length()==0){return str0;}//字符串非空,返回return str;}}
复制代码 DataManager类
- importjava.util.Scanner;publicclassTools{privatestaticScanner sc =newScanner(System.in);/**
- * 得到y/n
- * @return
- */publicstaticStringgetYn(){String ynStr;while(true){
- ynStr =getStr().toUpperCase();if(ynStr.equals("Y")|| ynStr.equals("N")){return ynStr;}System.out.print("输入错误,请输入y/n:");}}/**
- * 获得用户输入菜单
- * @return 菜单
- */publicstaticintgetMenu(){//菜单数字int menuNum;while(true){
- menuNum =getNum();if(menuNum>=1&& menuNum<=5){return menuNum;}System.out.print("输入错误,请输入(1-5):");}}/**
- * 获得数字
- * @return
- */publicstaticintgetNum(){String numStr;int num;while(true){
- numStr =getStr();try{
- num =Integer.parseInt(numStr);return num;}catch(Exception e){System.out.print("输入错误,请输入数字:");continue;}}}/**
- * 获取数字,有默认值
- * @param num0
- * @return
- */publicstaticintgetNum(int num0){String numStr;int num;while(true){
- numStr =getStr("");if(numStr.length()==0){//直接回车return num0;}try{
- num =Integer.parseInt(numStr);return num;}catch(Exception e){System.out.print("输入错误,请输入数字:");continue;}}}/**
- * 接收非空字符串
- * @return
- */publicstaticStringgetStr(){String str;while(true){
- str = sc.nextLine();//直接回车,得到空字符串if(str.length()==0){System.out.print("内容不许为空,重新输入:");continue;}//字符串非空,返回return str;}}/**
- * 接收字符串,允许为空
- * @return
- */publicstaticStringgetStr(String str0){String str = sc.nextLine();//直接回车,得到空字符串if(str.length()==0){return str0;}//字符串非空,返回return str;}}
复制代码 调试结果
课程设计领会
此次课程设计,从最初的环境装置开端,到开发工具的配置及使用,模仿真实的开发流程,使我初步认识到了软件工程项目开发的过程。在此之间又初步学习了mysql的使用,工具类的使用以及怎么控制用户输入等科目。在教师的率领下完成了使用 JDBC 连接 MySQL 数据库,为今后的项目开发积累了宝贵经历。
这次课程设计目的是制作一个与数据库连接的客户信息管理系统。采用MYSQL作为数据库停止耐久化存储。在分析完项目需求后,便开端着手分析和搭建所需要的环境,学习框架和管理工具、开发工具的使用,之后便跟着教师一步步地停止代码的编写。
在开发过程中,我发现自己还有很多缺乏之处。本次开发所用到的技术根本上都是第一次上手,从技术到MySQL使用都是第一次使用。这是我充沛体验到只要学校学的知识是远不够独立完成一个项目的。知识常学常新,也许到我们真正参与工作时这一套消费环境也已过时,这启发我要有足够的学习才干以应对时代的开展。
通过这次课程设计,使我灵敏应用所学java知识,独立完成问题分析,结合java理论知识,编写程序求解指定问题。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等根本方法和技能;进步综合运用所学的理论知识和方法独立分析和处置问题的才干;并用系统的观点和软件开发一般规范停止软件开发,稳固、深化学生的理论知识,进步编程水平,在此过程中培养我们严谨的科学态度和良好的工作作风。熟练掌握数据的存储表示和根本操作的实现,可以利用MySQL高性能、动态扩缩容、高可用、易部署、易使用、海量数据存储、高压缩比的优势,并使用JDBC对数据库停止耐久化访问。同时在这学期的’实验中,培养了独立考虑、动手操作的才干,在各种其它才干上也都有了进步。
在实验课上,我学会了很多学习的方法。虽然这个项目还有一些bug,但是它的思路我都学会了,它让我学会了独立考虑问题还有很多方法。在今后的学习中我们要面对社会的挑战,只要不时的学习、理论,再学习、再理论。这对于我的将来也有很大的协助。以后,不论有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我都可以在实验完毕之后变的更加成熟,会面对需要面对的事情,以及学会遇到问题,不急不慌,渐渐处置它。
这次实训为我提供了与众不同的学习方法和学习领会,从书本中面对现实,为我将来走上社会打下了扎实的根底。作为在校计算机专业的学生,如今我能做的就是汲取知识,进步自身的综合素质,进步自己的职业技能,自己有了才干,到时候才会是 “车到山前必有路”。我相信在不久的将来,会有属于我自己的一片天空。
视频教程
B站
https://www.bilibili.com/video/BV1mq4y117Ej/
百度网盘:
https://pan.baidu.com/s/1J-CNriCeoQaFSvgl0T_aQQ?pwd=9t9t
提取码: 9t9t |