概述
文章目录
- Scala项目-客户信息管理系统
- 1. 项目开发流程
- 2. 项目需求分析
- 3. 项目界面
- 主界面
- 添加客户界面
- 修改客户界面
- 删除客户界面
- 查询客户界面
- 4. 项目框架图
- 5. 项目功能实现
- 数据层Customer
- 业务逻辑层CustomerService
- ☆界面层CustomerView
- 程序入口CustomerMain
- ☆
Scala项目-客户信息管理系统
1. 项目开发流程
2. 项目需求分析
- 模拟实现基于文本界面的《客户信息管理系统》。
- 该系统Scala能够实现对客户对象的插入、修改和删除、显示,查询(用ArrayBuffer或者ListBuffer实现),并能够打印客户明细表。
- 我们使用ListBuffer实现!
3. 项目界面
主界面
添加客户界面
修改客户界面
删除客户界面
查询客户界面
4. 项目框架图
程序框架图:设计系统有多少个文件,以及文件(一般来说,一个文件对应一个类)之间的调用关系,可以帮助程序员实现模块的设计(清晰),便于程序员之间对项目交流分析(业务,优化,设计方案)
5. 项目功能实现
根据项目框架图依次实现功能模块
数据层Customer
package com.atguigu.chapter15.dao
/**
* @Date 2021/4/4 18:49
* @Version 10.21
* @Author DuanChaojie
*/
class Customer {
/**
* 客户信息
*/
var id: Int = _
var age: Int = _
var name: String = _
var gender: Char = _
var phone: String = _
var email: String = _
/**
* 辅助构造器
* @param id
* @param age
* @param name
* @param gender
* @param phone
* @param email
*/
def this(id: Int, age: Int, name: String, gender: Char, phone: String, email: String) {
this
this.id = id
this.age = age
this.name = name
this.gender = gender
this.phone = phone
this.email = email
}
/**
* 辅助构造器
* @param age
* @param name
* @param gender
* @param phone
* @param email
*/
def this(age: Int, name: String, gender: Char, phone: String, email: String) {
this
this.age = age
this.name = name
this.gender = gender
this.phone = phone
this.email = email
}
/**
* 重写toString方法
* @return
*/
override def toString: String = {
this.id + "tt" + this.age + "tt" + this.name + "tt" + this.gender + "tt" + this.phone + "tt" + this.email
}
}
业务逻辑层CustomerService
package com.atguigu.chapter15.service
import com.atguigu.chapter15.dao.Customer
import scala.collection.mutable.ListBuffer
import scala.io.StdIn
import util.control.Breaks._
/**
* @Date 2021/4/4 18:49
* @Version 10.21
* @Author DuanChaojie
*/
class CustomerService {
val customer1 = new Customer(1, 18, "tom", '男', "14725836995", "tom@qq.com")
val customer2 = new Customer(2, 18, "jac", '男', "15869951472", "jac@qq.com")
var customerInfo = new ListBuffer[Customer]()
var customerId = 3
// 添加数据
customerInfo.append(customer1)
customerInfo.append(customer2)
/**
* 获取顾客信息:
*/
def getCustomerInfo(): Unit = {
println(Console.BLUE + "客户列表:")
println("编号tt年龄tt姓名tt性别tt电话tt邮箱")
for (customer <- customerInfo) {
println(customer.toString)
}
println("客户列表显示完毕...n.....................................")
}
/**
* 添加顾客信息
*/
def addCustomerInfo(): Unit = {
println(Console.GREEN + "添加客户:")
println("请依次输入用户信息:")
println("姓名:")
val name = StdIn.readLine()
println("年龄:")
val age = StdIn.readShort()
println("性别:")
val gender = StdIn.readChar()
println("电话:")
val tel = StdIn.readLine()
println("邮箱:")
val email = StdIn.readLine()
//构建对象
val customer = new Customer(customerId, age, name, gender, tel, email)
customerId += 1
customerInfo.append(customer)
println("添加客户信息完成!n")
}
/**
* 删除顾客信息
*/
def delCustomerInfo(): Unit = {
println(Console.YELLOW + "删除客户操作:")
println("请选择待删除客户编号(-1退出):")
val id = StdIn.readInt()
if (id == -1) {
println("退出删除操作")
return
}
println("确认是否删除(Y/N):")
var choice = ' '
breakable {
do {
choice = StdIn.readChar().toLower
if (choice == 'y' || choice == 'n') {
break()
}
} while (true)
}
if (choice == 'y') {
if (del(id)) {
println("删除完成!")
return
}
}
println("删除失败!")
}
/**
* @param id 根据id删除用户信息
* @return
*/
def del(id: Int): Boolean = {
val index = findIndexById(id)
if (index == -1) {
false
} else {
customerInfo.remove(index)
true
}
}
/**
* 根据id找到customerInfo的index
*
* @param id
* @return
*/
def findIndexById(id: Int) = {
//默认-1,如果找到就改成对应,如果没有找到,就返回-1
var index = -1
// 遍历customerInfo
breakable {
for (i <- 0 until customerInfo.length) {
// 找到
if (customerInfo(i).id == id) {
index = i
break()
}
}
}
index
}
def updateCustomerInfo(): Unit = {
println(Console.CYAN + "修改客户操作:")
println("请选择待修改客户编号(-1退出):")
val id = StdIn.readInt()
if (id == -1) {
println("退出修改操作")
return
}
val index = findIndexById(id)
if (index == -1) {
println("请输入正确的客户id!")
return
} else {
println("请依次输入新的用户信息:")
println("姓名(" + customerInfo(index).name + "):")
customerInfo(index).name = StdIn.readLine()
println("年龄(" + customerInfo(index).age + "):")
customerInfo(index).age = StdIn.readShort()
println("性别(" + customerInfo(index).gender + "):")
customerInfo(index).gender = StdIn.readChar()
println("电话(" + customerInfo(index).phone + "):")
customerInfo(index).phone = StdIn.readLine()
println("邮箱(" + customerInfo(index).email + "):")
customerInfo(index).email = StdIn.readLine()
println("修改用户信息完成!")
return
}
}
}
☆界面层CustomerView
package com.atguigu.chapter15.view
import com.atguigu.chapter15.service.CustomerService
import scala.io.StdIn
/**
* @Date 2021/4/4 18:49
* @Version 10.21
* @Author DuanChaojie
*/
class CustomerView {
var flag = true
private val customerService = new CustomerService()
/**
* 主菜单
*/
def mainMenu(): Unit = {
do {
println(Console.RED + "客户信息管理系统:")
println("t1 添加客户")
println("t2 修改客户")
println("t3 删除客户")
println("t4 查询客户")
println("t5 退出系统")
println("t请输入(1-5)__")
val operNum = StdIn.readInt()
operNum match {
case 1 => customerService.addCustomerInfo()
case 2 => customerService.updateCustomerInfo()
case 3 => customerService.delCustomerInfo()
case 4 => customerService.getCustomerInfo()
case 5 => flag = false
}
} while (flag)
println("已经退出系统....")
}
}
程序入口CustomerMain
/**
* @Date 2021/4/4 18:48
* @Version 10.21
* @Author DuanChaojie
*/
object CustomerMain {
def main(args: Array[String]): Unit = {
// 程序的入口
new CustomerView().mainMenu()
}
}
☆
最后
以上就是寒冷蜜粉为你收集整理的scala学习复习笔记超详细(项目-客户信息管理系统)的全部内容,希望文章能够帮你解决scala学习复习笔记超详细(项目-客户信息管理系统)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复