
Курсач технологии программированияV2
.pdf
}
startActivity(intent);
}
}
});
regButton.setOnClickListener(view -> {
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); startActivity(intent);
});
}
private static class UserInfo { private final String status; private final int id;
public UserInfo(String status, int id) { this.status = status;
this.id = id;
}
public String getStatus() { return status;
}
public int getId() { return id;
}
}
}
Данный класс отвечает за вход пользователя в систему
Класс «MenuActivity»:
public class MenuActivity extends AppCompatActivity {
private String getDescriptionFromDatabase(String itemName) { String description = "";
try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "SELECT * FROM [deliveryDB].[dbo].[menu_table] WHERE NAME
= ?";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setString(1, itemName);
ResultSet set = ps.executeQuery(); if (set.next()) {
description = set.getString("DESCRIPTION");
}
set.close();
ps.close();
connection.close(); } catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
22 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

return description;
}
private String getPriceFromDatabase(String itemName) { String price = "";
try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "SELECT * FROM [deliveryDB].[dbo].[menu_table] WHERE NAME
= ?";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setString(1, itemName);
ResultSet set = ps.executeQuery(); if (set.next()) {
price = set.getString("PRICE");
}
set.close();
ps.close();
connection.close(); } catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return price;
}
private String getIDFromDatabase(String itemName) { String id = "";
try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "SELECT * FROM [deliveryDB].[dbo].[menu_table] WHERE NAME
= ?";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setString(1, itemName);
ResultSet set = ps.executeQuery(); if (set.next()) {
id = set.getString("ID");
}
set.close();
ps.close();
connection.close(); } catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return id;
}
Connection connection; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu_page);
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
23 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

ListView listView = findViewById(R.id.menu_list); SQL_Controller sql_con = new SQL_Controller(); connection = sql_con.connectionClass();
try {
String sqlStatement = "Select * from [deliveryDB].[dbo].[menu_table]"; Statement smt = connection.createStatement();
ResultSet set = smt.executeQuery(sqlStatement); ArrayList<String> list = new ArrayList<String>(); while (set.next()) {
String str = set.getString("NAME"); list.add(str);
}
ArrayAdapter arrayAdapter = new ArrayAdapter(MenuActivity.this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(arrayAdapter);
connection.close();
} catch (Exception e) { Log.e("Error: ", e.getMessage());
}
listView.setOnItemClickListener((parent, view, position, id) -> {
String selectedItemName = (String) parent.getItemAtPosition(position);
String selectedItemDescription = getDescriptionFromDatabase(selectedItemName); String selectedItemPrice = getPriceFromDatabase(selectedItemName);
String selectedItemID = getIDFromDatabase(selectedItemName); Intent intent = new Intent(MenuActivity.this, PositionInfo.class); intent.putExtra("selected_item_name", selectedItemName); intent.putExtra("selected_item_description", selectedItemDescription); intent.putExtra("selected_item_price", selectedItemPrice); intent.putExtra("selected_item_id", selectedItemID); startActivity(intent);
});
}
}
public class MenuActivity extends AppCompatActivity {
private String getDescriptionFromDatabase(String itemName) { String description = "";
try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "SELECT * FROM [deliveryDB].[dbo].[menu_table] WHERE NAME
= ?";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setString(1, itemName);
ResultSet set = ps.executeQuery(); if (set.next()) {
description = set.getString("DESCRIPTION");
}
set.close();
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
24 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

ps.close();
connection.close(); } catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return description;
}
private String getPriceFromDatabase(String itemName) { String price = "";
try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "SELECT * FROM [deliveryDB].[dbo].[menu_table] WHERE NAME
= ?";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setString(1, itemName);
ResultSet set = ps.executeQuery(); if (set.next()) {
price = set.getString("PRICE");
}
set.close();
ps.close();
connection.close();
}catch (Exception e) { Log.e("Error: ", e.getMessage());
}
return price;
}
private String getIDFromDatabase(String itemName) { String id = "";
try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "SELECT * FROM [deliveryDB].[dbo].[menu_table] WHERE NAME
= ?";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setString(1, itemName);
ResultSet set = ps.executeQuery(); if (set.next()) {
id = set.getString("ID");
}
set.close();
ps.close();
connection.close(); } catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return id;
}
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
25 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

Connection connection; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu_page);
ListView listView = findViewById(R.id.menu_list); SQL_Controller sql_con = new SQL_Controller(); connection = sql_con.connectionClass();
try {
String sqlStatement = "Select * from [deliveryDB].[dbo].[menu_table]"; Statement smt = connection.createStatement();
ResultSet set = smt.executeQuery(sqlStatement); ArrayList<String> list = new ArrayList<String>(); while (set.next()) {
String str = set.getString("NAME"); list.add(str);
}
ArrayAdapter arrayAdapter = new ArrayAdapter(MenuActivity.this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(arrayAdapter);
connection.close();
}catch (Exception e) { Log.e("Error: ", e.getMessage());
}
listView.setOnItemClickListener((parent, view, position, id) -> {
String selectedItemName = (String) parent.getItemAtPosition(position);
String selectedItemDescription = getDescriptionFromDatabase(selectedItemName); String selectedItemPrice = getPriceFromDatabase(selectedItemName);
String selectedItemID = getIDFromDatabase(selectedItemName); Intent intent = new Intent(MenuActivity.this, PositionInfo.class); intent.putExtra("selected_item_name", selectedItemName); intent.putExtra("selected_item_description", selectedItemDescription); intent.putExtra("selected_item_price", selectedItemPrice); intent.putExtra("selected_item_id", selectedItemID); startActivity(intent);
});
}
}
Данный класс отвечает за отображение позиций меню.
Класс «CartActivity»:
public class CartActivity extends AppCompatActivity { private ArrayList<CartItem> cartItems;
private CartAdapter cartAdapter; @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
26 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

super.onCreate(savedInstanceState); setContentView(R.layout.activity_cart_page);
SharedPreferences settings = getSharedPreferences(LoginActivity.PREFS_NAME, 0); int userId = settings.getInt(LoginActivity.USER_ID_KEY, -1);
cartItems = new ArrayList<>();
cartAdapter = new CartAdapter(this, cartItems); ListView listView = findViewById(R.id.cartListView); listView.setAdapter(cartAdapter);
listView.setOnItemClickListener((parent, view, position, id) -> { CartItem cartItem = cartItems.get(position); cartItem.setSelected(!cartItem.isSelected()); cartAdapter.notifyDataSetChanged();
}); try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "SELECT m.NAME, m.PRICE, c.QUANTITY FROM dbo.cart_table c JOIN dbo.menu_table m ON c.POSITION_ID = m.ID WHERE c.USER_ID = ?";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setString(1, String.valueOf(userId));
ResultSet set = ps.executeQuery(); while (set.next()) {
String name = set.getString("NAME"); int price = set.getInt("PRICE");
int quantity = set.getInt("QUANTITY"); cartItems.add(new CartItem(name, price, quantity));
}
set.close();
ps.close();
connection.close();
cartAdapter.notifyDataSetChanged();
}catch (Exception e) { Log.e("Error: ", e.getMessage());
}
Button orderSubmit = findViewById(R.id.orderButton); orderSubmit.setOnClickListener(view -> {
ArrayList<CartItem> selectedItems = new ArrayList<>(); for (CartItem item : cartItems) {
if (item.isSelected()) { selectedItems.add(item);
}
}
int totalPrice = 0;
for (CartItem item : selectedItems) {
totalPrice += item.getPrice() * item.getQuantity();
}
String address = "User's address"; saveOrderToServer(userId, totalPrice, address);
Intent intent = new Intent(CartActivity.this, OrderActivity.class);
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
27 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

intent.putExtra("selectedItems", selectedItems); intent.putExtra("totalPrice", totalPrice); intent.putExtra("address", address); startActivity(intent);
});
}
private void saveOrderToServer(int userId, int totalPrice, String address) { try {
SQL_Controller sql_con = new SQL_Controller(); Connection connection = sql_con.connectionClass();
String sqlStatement = "INSERT INTO dbo.order_table (USER_ID, ORDER_STATUS, ORDER_ADDRESS, TOTAL_PRICE, ORDER_DATE) VALUES (?, ?, ?, ?, GETDATE())";
PreparedStatement ps = connection.prepareStatement(sqlStatement); ps.setInt(1, userId);
ps.setString(2, "Pending"); ps.setString(3, address); ps.setInt(4, totalPrice); ps.executeUpdate(); ps.close(); connection.close();
}catch (Exception e) { Log.e("Error: ", e.getMessage());
}
}
}
Данный класс отвечает за отображение корзины
2.8 Разработка руководства пользователя
Руководство:
1.Для того, чтобы начать взаимодействие с приложение, его следует запустить.
2.После запуска перед вами появится окно авторизации (рисунок 14). В
этом окне вам нужно ввести логин и пароль если вы уже зарегистрированы в приложении. Если у вам нет аккаунта, вы должны перейти на страницу регистрации, нажав на кнопку «Регистрация»
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
28 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

Рисунок 14 — Авторизация
3. Для регистрации введите свои данные в нужные поля и нажмите кнопку
«Зарегистрироваться»
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
29 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

Рисунок 15 — Регистрация
4. Чтобы добавить позицию в корзину нажмите на позицию и затем нажмите
кнопку «Добавить в заказ»
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
30 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|

Рисунок 16 — Добавление позиции в корзину
5. Чтобы сформировать заказ перейдите в корзину затем выберите нужные вам позиции и нажмите кнопку «Заказать».
Рисунок 17 – Корзина
|
|
|
|
|
|
Лист |
|
|
|
|
|
КП-09.03.02-11-638-ПЗ |
|
|
|
|
|
|
31 |
|
Изм. |
Лист |
№ докум. |
Подп. |
Дата |
|
|
|
|