前期准备
项目需要写的类
类:Users Product Orders Admin Operation Test
Users:id u_name u_password
Product:id p_name price num
Orders:id count sum Users Product
Admin:id a_name u_password
以上红字代表用类作为返回值
-
用户
- 注册
- 登录
- 查看商品
- 购买商品
- 查看订单
- 修改订单
- 删除订单
-
管理员
- 登录
- 对商品增删查改
- 对用户查删
- 对订单查删
-
对象
- 用户 管理员 商品 订单
-
字段/属性
- 用户(Users):id name password tel address
- 管理员(Admin):id name password
- 商品(Product):id name price num(库存量)
- 订单(Orders):id 用户(Users) 商品(Product) count(商品总数量) sum(总价钱)
-
类
- Users
- Admin
- Product
- Orders
- UserOperation(用户操作类) AdminOperation(管理员操作类)
- Test
-
面向接口编程
- 管理员接口:登录
- 用户接口:注册、登录
-
MVC设计模式
- M:model 模型 (业务逻辑操作)
- V:view 视图 (界面)
- C:controller 控制器 (调用模型和视图)
controller:测试类 Test
view:操作类 XXXOperation
model:
dao:接口IAdmin IUsers
Impl: 接口实现类 Adminimpl UsersImpl
pojo:封装类 Users Admin Product Orders
操作思路:
- 接口(IAdminDao设计方法功能)
- 实现类(AdminImpl实现接口里面的所有方法)
- 操作类(AdminOperation调用实现类里面的方法)
- 测试类(Test调用操作类里面的方法)
8.项目树型结构
9,效果展示
代码实现
1,构建项目树型结构
2,给类和接口添加属性和构造方法
pojo的封装类
Admin类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20class Admin { public Admin() { } public Admin(int id, string name, string password) { Id = id; Name = name; Password = password; } public int Id { get; set; } public string Name { get; set; } public string Password { get; set; } }
Users类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24class Users { public int Id { get; set; } public string Name { get; set; } public string Password { get; set; } public string Tel { get; set; } public string Address { get; set; } public Users(int id, string name, string password, string tel, string address) { Id = id; Name = name; Password = password; Tel = tel; Address = address; } public Users() { } }
Product类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27class Product { public int Id { get; set; } public string Name { get; set; } public int Price { get; set; } public int Num { get; set; } public string Desc { get; set; } public Product(int id, string name, int price, int num, string desc) { Id = id; Name = name; Price = price; Num = num; Desc = desc; } public Product() { } }
Orders类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25class Orders { public int Id { get; set; } public int Count { get; set; } public int Sum { get; set; } public Users Users { get; set; } // Users类做返回值 public Product Product { get; set; } //Product 做返回值 public Orders(int id, int count, int sum, Users users, Product product) { Id = id; Count = count; Sum = sum; Users = users; Product = product; } public Orders() { } }
3,给dao接口声明方法
IAdminDao接口
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32interface IAdminDao { //登录 /* * 需要账户和密码两个参数,获取外部输入的信息 * 管理员账户需要初始化 ,不用注册直接登录 * 初始化的值:在集合里存放,登录是从集合里读取账号 * 读取出来说明账号存在,反之 * 由于这个方法要别人调,需要返回结果判断成功还是失败 * 所以这个方法需要返回值,登录成功后:会提示欢迎XX登录 * 这个返回值就是对象 */ Admin A_Login(string name,string password); //增删改返回值都是整形的 //添加商品 Product InsertProduct(int id, string name, int price, int num, string desc); //查看商品 List<Product> SelectAllProduct(); //public int SelectProduct(int id, string name, int price, int num, string desc); //修改商品 Product UpdateProduct(int id, string name, int price, int num, string desc); //删除商品 Product DeleteProduct(int id); //根据商品编号查看商品(单个) Product SelectById(int id); //查看用户 //删除用户 //查看订单 //修改订单 }
4,在实现类中实现接口
AdminDaoImpl类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88class AdminDaoImpl : IAdminDao //ImpI就被认为是业务逻辑的功能 { List<Admin> list = new List<Admin>(); //3,写一个集合接受adminde的值 public List<Product> productList=new List<Product>(); //定义为公共的方法 //写一个方法把AdminController的InsertProduct五个字段传进集合里 public Product InsertProduct(int id, string name, int price,int num,string desc) { Product p = new Product(id,name,price,num,desc); productList.Add(p); return p; } public Admin A_Login(string name, string password) //1,先实现抽象类 { Admin a = null; foreach (var admin in list) //5,循环判断 { if (admin.Name.Equals(name) && admin.Password.Equals(password)) //【判断 { a = new Admin(); a.Name = admin.Name; //把从集合拿出来的Name赋给a.Name break; //第一次找到之后退出 } } return a; //2,返回 a } public void Init() //4,初始化管理员的方法,不需要返回值,不需要参数 { Admin a1 = new Admin(101, "张三", "123"); //用构造方法初始化更简单 Admin a2 = new Admin(102, "李四", "456"); list.Add(a1); //添加到集合 list.Add(a2); } public List<Product> SelectAllProduct() { return productList; } //public int SelectProduct(int id, string name, int price, int num, string desc) //{ // throw new NotImplementedException(); //} public Product SelectById(int id) { Product p = null; foreach (var pro in productList) { if (pro.Id == id) { p = pro; break; } } return p; } public Product UpdateProduct(int id, string name, int price, int num, string desc) { Product pro = SelectById(id); productList.Remove(pro); Product p = new Product(id, name, price, num, desc); productList.Add(p); return p; } public Product DeleteProduct(int id) { Product p2 = SelectById(id); productList.Remove(p2); return p2; } }
5,欢迎界面
AdminOperation类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24class AdminOperation { public void Welcome() { Console.WriteLine("*********************************"); Console.WriteLine("********* 欢迎光临当当网 *********"); Console.WriteLine("********************************"); } public void OperationAll() { Console.WriteLine("******************************"); Console.WriteLine("*********1 添加商品 **********"); Console.WriteLine("*********2 查看商品 **********"); Console.WriteLine("*********3 修改商品 **********"); Console.WriteLine("*********4 删除商品 **********"); Console.WriteLine("*********5 查看用户 **********"); Console.WriteLine("*********6 删除用户 **********"); Console.WriteLine("*********7 查看订单 **********"); Console.WriteLine("*********8 删除订单 **********"); Console.WriteLine("*********0 返回上一级 **********"); } }
6,控制器登录操作
AdminController类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217class AdminController { AdminOperation ao = new AdminOperation(); //3,实例界面对象 IAdminDao adi = new AdminDaoImpl(); //操作类 // 1,一个页面一个方法 public void LoginInput() { ao.Welcome(); //4,调用方法 new AdminDaoImpl().Init(); Console.WriteLine("请输入账号:"); //5,输入账号密码 string name = Console.ReadLine(); Console.WriteLine("请输入密码:"); string password = Console.ReadLine(); Admin a = adi.A_Login(name, password); if (a != null) //6,判断 { Console.WriteLine("登陆成功"); ao.OperationAll(); OperationInput(); } else { Console.WriteLine("登录失败"); LoginInput(); // 7,回调 } } public void OperationInput() { Console.WriteLine("请输入你的选择"); int a = int.Parse(Console.ReadLine()); switch (a) { case 1: InsertProduct(); break; case 2: SelectProduct(); break; case 3: SelectByPid(); break; case 4: DeleteProduct(); break; case 5: break; case 6: break; case 7: break; case 8: break; case 0: break; default: //输错的情况 //Console.WriteLine("请输入以上数字,谢谢!"); //OperationInput(); break; } } //添加商品 int pid = 100; public void InsertProduct() { pid++; Console.WriteLine("请输入商品名称"); string name = Console.ReadLine(); Console.WriteLine("请输入商品单价"); int price = int.Parse(Console.ReadLine()); Console.WriteLine("请输入商品库存"); int num = int.Parse(Console.ReadLine()); Console.WriteLine("请输入商品描述"); string desc = Console.ReadLine(); //上面五个字段都要作为参数传进集合AdminDaoImpl中 Product p = adi.InsertProduct(pid, name, price, num, desc); if (p!=null) { Console.WriteLine("添加商品成功"); } else { Console.WriteLine("添加商品失败"); } OperationInput(); } //查看商品 public void SelectProduct() { List<Product> list = adi.SelectAllProduct(); if (list.Count > 0) { Console.WriteLine("商品编号t商品名称t商品单价t商品库存t商品描述"); foreach (var p in list) { //p.id后的第一个t要用双引号 Console.WriteLine(p.Id + "tt" + p.Name + "tt" + p.Price + "tt" + p.Num + "tt" + p.Desc); } } else { Console.WriteLine("库存在没有该商品了"); } OperationInput(); } //查看商品编号 int pidd = 0; public void SelectByPid() { Console.WriteLine("请输入要修改的产品编号:"); pidd = int.Parse(Console.ReadLine()); Product p = adi.SelectById(pidd); if (p != null) { Console.WriteLine("商品编号t商品名称t商品单价t商品库存t商品描述"); Console.WriteLine(p.Id + "tt" + p.Name + "tt" + p.Price + "tt" + p.Num + "tt" + p.Desc); UpdateProduct(); } else { Console.WriteLine("无此商品"); } } //修改商品 public void UpdateProduct() { Console.WriteLine("是否要修改商品 ?: (y/n)"); String a = Console.ReadLine(); if (a.Equals("Y") || a.Equals("y")) { Console.WriteLine("请输入商品名称"); string name = Console.ReadLine(); Console.WriteLine("请输入商品单价"); int price = int.Parse(Console.ReadLine()); Console.WriteLine("请输入商品库存"); int num = int.Parse(Console.ReadLine()); Console.WriteLine("请输入商品描述"); string desc = Console.ReadLine(); Product p = adi.UpdateProduct(pidd, name,price, num, desc); if (p != null) { Console.WriteLine("修改商品成功"); } else { Console.WriteLine("修改商品失败"); } } OperationInput(); } //删除商品 private void DeleteProduct() { Console.WriteLine("请输入要删除的商品编号:"); int id = int.Parse(Console.ReadLine()); Console.WriteLine("是否删除该商品?:(y/n)"); String b = Console.ReadLine(); if (b.Equals("Y") || b.Equals("y")) { Product p = adi.DeleteProduct(id); if (p != null) { Console.WriteLine("删除商品成功"); } else { Console.WriteLine("删除商品失败"); } } OperationInput(); } //static void Main(string[] args) //{ // AdminController ac = new AdminController(); //2new出对象调用登录类 // ac.LoginInput(); //} }
用户操作:
1,声明接口方法
IUsersDao接口
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16interface IUsersDao { //注册 Users Register(int id,string name, string password); //登录 Users Login(string name, string password); //查看商品 //购买商品 Orders InsertOrder(int id, int count, int sum, Users users, Product product); //根据用户编号查看订单 Orders SelectByOid(int id); //修改订单 //删除订单 }
2,实现用户接口方法
UsersDaoImpl 实现类继承 IUsersDao 接口
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66class UsersDaoImpl:IUsersDao { List<Users> usersList = new List<Users>(); public List<Product> productList = new List<Product>(); List<Orders> ordersList = new List<Orders>(); public Users Login(string name, string password) { Users u = null; foreach (var users in usersList) { if (users.Name.Equals(name) && users.Password.Equals(password)) { u = new Users(); u.Name = users.Name; break; } } return u; } public Users Register(int id, string name, string password) { Users u = new Users(id, name, password); usersList.Add(u); return u; } public void InitProduct() //初始化商品 { Product p1 = new Product(101, "苹果", 2, 100, "富士苹果"); Product p2 = new Product(102, "梨", 1, 200, "砀山梨"); productList.Add(p1); productList.Add(p2); } public Product SelectById(int id) { Product p = null; foreach (var pro in productList) { if (pro.Id == id) { p = pro; break; } } return p; } public Orders InsertOrder(int id, int count, int sum, Users u, Product p) { Orders orders = new Orders(id,count,sum,u,p); ordersList.Add(orders); return orders; } public Orders SelectByOid(int id) { throw new NotImplementedException(); } }
3,用户操作界面
UsersOperation类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23class UsersOperation { public void Welcome() { Console.WriteLine("*********************************"); Console.WriteLine("********* 欢迎光临当当网 *********"); Console.WriteLine("*********** 1 注册 **************"); Console.WriteLine("*********** 2 登录 **************"); Console.WriteLine("*********** 0 退出 **************"); Console.WriteLine("********************************"); } public void OperationAll() { Console.WriteLine("********* 1 查看商品 **********"); Console.WriteLine("********* 2 查看订单 **********"); Console.WriteLine("********* 3 修改订单 **********"); Console.WriteLine("********* 4 删除订单 **********"); Console.WriteLine("********* 0 返回上一级 **********"); } }
4,用户控制器
UsersController类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157class UsersController { UsersOperation uo = new UsersOperation(); IUsersDao udi = new UsersDaoImpl(); UsersDaoImpl ud = new UsersDaoImpl(); Users u = null; //方便用户购物使用 public void UsersInput() //老师教的 { uo.Welcome(); Console.WriteLine("请输入你的选择"); string a = Console.ReadLine(); if (a.Equals("1")) { Register(); } else if (a.Equals("2")) { Login(); } else if (a.Equals("0")) { Environment.Exit(0); } else { Console.WriteLine("请输入正确的数字"); } } int uid = 1000; private void Register() { uid++; Console.WriteLine("请输入注册的账号名"); string name = Console.ReadLine(); Console.WriteLine("请输入注册的密码"); string password = Console.ReadLine(); Users u = udi.Register(uid, name, password); if (u != null) { Console.WriteLine("注册成功"); } else { Console.WriteLine("注册失败"); } UsersInput(); } private void Login() { Console.WriteLine("请输入账号:"); //5,输入账号密码 string name = Console.ReadLine(); Console.WriteLine("请输入密码:"); string password = Console.ReadLine(); u = udi.Login(name, password); if (u != null) //6,判断 { Console.WriteLine("登陆成功"); uo.OperationAll(); ShoppingInsert(); } else { Console.WriteLine("登录失败"); } } public void ShoppingInsert() { Console.WriteLine("请输入你的选择"); string a = Console.ReadLine(); switch (a) { case "0": UsersInput(); break; case "1": SelectProduct(); break; case "2": break; case "3": break; case "4": break; default: Console.WriteLine("请输入正确的数字"); break; } } public void SelectProduct() { //uo.OperationAll(); ud.InitProduct(); List<Product> list = ud.productList; Console.WriteLine("商品编号t商品名称t商品单价t商品库存t商品描述"); foreach (var p in list) { //p.id后的第一个t要用双引号 Console.WriteLine(p.Id + "tt" + p.Name + "tt" + p.Price + "tt" + p.Num + "tt" + p.Desc); } Console.WriteLine("是否要购买商品 ?: (y/n)"); String a = Console.ReadLine(); if (a.Equals("Y") || a.Equals("y")) { Shopping(); } else { ShoppingInsert(); } } int oid = 10000; public void Shopping() { oid++; Console.WriteLine("请输入购买的产品编号"); int pid = int.Parse(Console.ReadLine()); Console.WriteLine("请输入购买的产品数量"); int count = int.Parse(Console.ReadLine()); Product p = ud.SelectById(pid); int sum = p.Price * count; Orders order = udi.InsertOrder(oid, count, sum, u, p); if (order != null) { Console.WriteLine("购物成功!"); } else { Console.WriteLine("购物失败!"); } } static void Main(string[] args) { //new出对象调用登录类 new UsersController().UsersInput(); } }
最后
以上就是务实曲奇最近收集整理的关于简易当当网项目前期准备代码实现的全部内容,更多相关简易当当网项目前期准备代码实现内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复