Актуальность
Многие люди ежедневно играют в компьютерные игры. Данная ниша в данный момент занята несколькими крупными игроками, однако рынок представляет интерес с точки зрения его емкости, поэтому имеет инвестиции в данную нишу имеют смысл.
Постановка задачи
2.1 Назначение комплекса задач
Целью работы интернет-магазина «Компьютерных игр» является обеспечение пользователей дистанционной возможностью заказывать игры и приложения.
2.2 Описание назначения выходной информации
Назначение выходной информации состоит в том, чтобы предоставить пользователю легальный доступ к выбранной компьютерной игре.
2.3 Периодичность решения и ограничения по срокам выдачи выходной информации
Периодичность решения зависит от особенностей работы пользователя в программе и не ограничивается программно.
Продолжительность решения зависит от:
• скорости работы пользователя;
• параметров быстродействия технических средств.
2.4 В практической части сайта
Пользователь должен добавить интересующие товары в корзину и оформить покупку
2.5 Выходная информация
Выходными данными сайта являются:
• справочная информация об играх.
• информация о результатах правильности ввода платежных данных
• предоставление ссылок и ключей для приобретенных игр
А также практическая информация о:
• промежуточных этапах заказа
• результат неправильного ввода платежных данных
2.6 Входная информация
Сайт получает следующие входные сообщения:
• информация от пользователя
Техническое задание
3.1 Назначение разработки
Получение практических и теоретических навыков разработки интернет-магазина в рамках курсового проекта.
3.2 Основная идея
Реализация интернет-магазина по теме: Розничная продажа компьютерных игр.
3.3 Программное обеспечение, необходимое для реализации проекта
Для программной реализации данного проекта необходим:
· Web-сервер ASP.NET
· Visual Studio 2015 c компилятором C#
Все эти компоненты уже входят в комплект поставки Visual Studio 2015 Community Edition.
Руководство программиста
Сайт написан, при помощи HTML(структура сайта), CSS(макияж сайта), С#(функциональность сайта).
4.1 Используемые на сайте таблицы каскадных стилей(CSS)
body {
font-family: Cambria, Georgia, "Times New Roman";
margin: 0;
}
div#header div.title, div.item h3, div.item h4, div.pager a {
font: bold 1em "Arial Narrow", "Franklin Gothic Medium", Arial;
}
div#header {
background-color: #444;
border-bottom: 2px solid #111;
color: white;
}
div#header div.title {
font-size: 2em;
padding:.6em;
}
div#content {
border-left: 2px solid gray;
margin-left: 9em;
padding: 1em;
}
div#categories {
float: left;
width: 8em;
padding:.3em;
}
div.item {
border-top: 1px dotted gray;
padding-top:.7em;
margin-bottom:.7em;
}
div.item:first-child {
border-top:none;
padding-top: 0;
}
div.item h3 {
font-size: 1.3em;
margin: 0 0.25em 0;
}
div.item h4 {
font-size: 1.1em;
margin:.4em 0 0 0;
}
div.pager {
text-align:right;
border-top: 2px solid silver;
padding:.5em 0 0 0;
margin-top: 1em;
}
div.pager a {
font-size: 1.1em;
color: #666;
text-decoration: none;
padding: 0.4em 0.4em;
}
div.pager a:hover { background-color: Silver; }
div.pager a.selected {
background-color: #353535;
color: white;
}
div#categories a
{
font: bold 1.1em "Arial Narrow","Franklin Gothic Medium",Arial; display: block;
text-decoration: none; padding:.6em; color: Black;
border-bottom: 1px solid silver;
}
div#categories a.selected { background-color: #666; color: White; }
div#categories a:hover { background-color: #CCC; }
div#categories a.selected:hover { background-color: #666; }
div.item button {
color:White;
background-color: #333;
border: 1px solid black;
float: right;
}
h2 { margin-top: 0.3em }
#cartTable { width: 90%;}
#cartTable tfoot td { border-top: 1px dotted gray; font-weight: bold; }
#cartTable thead th { text-align: right;}
#cartTable thead th:first-child { text-align: center;}
#cartTable thead th:nth-child(2) { text-align: left;}
#cartTable tbody td { text-align: right;}
#cartTable tbody td:first-child { text-align: center;}
#cartTable tbody td:nth-child(2) { text-align: left;}
#cartTable tfoot tr td { text-align: right;}
p.actionButtons { text-align: center;}
.actionButtons a, button.actionButtons {
font:.8em Arial; color: White; margin:.5em;
text-decoration: none; padding:.15em 1.5em.2em 1.5em;
background-color: #353535; border: 1px solid black;
}
div#cartSummary {
float:right;
margin:.8em;
color: Silver;
background-color: #555;
padding:.5em.5em.5em 1em;
}
div#cartSummary a {
text-decoration: none;
padding:.4em 1em.4em 1em;
line-height:2.1em;
margin-left:.5em;
background-color: #333;
color:White;
border: 1px solid black;
}
.checkout label {
display: inline-block;
width: 60px;
text-align: right;
}
.checkout div input {
width: 200px;
margin: 2px;
}
#errors { color: red;}
4.2 Структура HTML
Listing.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Listing.aspx.cs" Inherits="GameStore.Pages.Listing"
MasterPageFile="~/Pages/Store.Master" %>
<%@ Import Namespace="System.Web.Routing" %>
<asp:Content ContentPlaceHolderID="bodyContent" runat="server">
<div id="content">
<asp:Repeater ItemType="GameStore.Models.Game"
SelectMethod="GetGames" runat="server">
<ItemTemplate>
<div class="item">
<h3><%# Item.Name %></h3>
<%# Item.Description %>
<h4><%# Item.Price.ToString("c") %></h4>
<button name="add" type="submit" value="<%# Item.GameId %>">
Добавить в корзину
</button>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
<div class="pager">
<%
for (int i = 1; i <= MaxPage; i++)
{
string category = (string)Page.RouteData.Values["category"]
?? Request.QueryString["category"];
string path = RouteTable.Routes.GetVirtualPath(null, null,
new RouteValueDictionary() { {"category", category}, { "page", i } }).VirtualPath;
Response.Write(
String.Format("<a href='{0}' {1}>{2}</a>",
path, i == CurrentPage? "class='selected'": "", i));
}
%>
</div>
</asp:Content>
4.3 Код С#.
Cart.cs
public class Cart
{
private List<CartLine> lineCollection = new List<CartLine>();
public void AddItem(Game game, int quantity)
{
CartLine line = lineCollection
.Where(p => p.Game.GameId == game.GameId)
.FirstOrDefault();
if (line == null)
{
lineCollection.Add(new CartLine
{
Game = game,
Quantity = quantity
});
}
else
{
line.Quantity += quantity;
}
}
public void RemoveLine(Game game)
{
lineCollection.RemoveAll(l => l.Game.GameId == game.GameId);
}
public decimal ComputeTotalValue()
{
return lineCollection.Sum(e => e.Game.Price * e.Quantity);
}
public void Clear()
{
lineCollection.Clear();
}
public IEnumerable<CartLine> Lines
{
get { return lineCollection; }
}
}
public class CartLine
{
public Game Game { get; set; }
public int Quantity { get; set; }
}
Game.cs
public class Game
{
public int GameId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
Order.cs
public class Order
{
public int OrderId { get; set; }
[Required(ErrorMessage="Пожалуйста введите свое имя")]
public string Name { get; set; }
[Required(ErrorMessage="Вы должны указать хотя бы один адрес доставки")]
public string Line1 { get; set; }
public string Line2 { get; set; }
public string Line3 { get; set; }
[Required(ErrorMessage="Пожалуйста укажите город, куда нужно доставить заказ")]
public string City { get; set; }
public bool GiftWrap { get; set; }
public bool Dispatched { get; set; }
public virtual List<OrderLine> OrderLines { get; set; }
}
public class OrderLine
{
public int OrderLineId { get; set; }
public Order Order { get; set; }
public Game Game { get; set; }
public int Quantity { get; set; }
}
5 Руководство пользователя
5.1 Общие сведения о сайте
Сайт находится на виртуальном сервере, поэтому не доступен в интернете. После запуска отладки из Visual Studio, на экране появляется окно, показанное на рисунке 1.
Скриншоты
Рисунок 1 – Главная страница
Здесь пользователь может увидеть основную информацию об ассортименте игр.
Рисунок 2 – Корзина покупок
Здесь пользователь может просмотреть и оплатить свой заказ.
Рисунок 3 – Заполнение информации о заказе
Здесь пользователь может заполнить платежную информацию.
ЗАКЛЮЧЕНИЕ
В процессе создания данного проекта разработан интернет мазагин, оторый написан при помощи HTML(структура сайта), CSS(макияж сайта), C# (функциональность сайта).
В ходе работы над курсовым проектом было выполнено следующее:
• Описаны важные теоретические моменты, затрагивающие интеграцию интернет магазина с имеющейся базой данных;
• В соответствии с поставленной задачей разработан и реализован сайт;
• Разработано руководство программиста, в котором отражены важные моменты реализации;
• Разработано руководство пользователя, в котором описаны общие сведения о сайте и инструкция по работе.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. Джон Дакетт. Основы веб-программирования с использованием HTML,XHTML и CSS.
2. Савельева Н.В. Основы программирования на ASP.Net. Интернет-университет информационных технологий - ИНТУИТ.ру, 2005.
3. Храмцов П.Б., Брик С.А., Русак А.М., Сурин А.И. Основы web-технологий. Интернет-университет информационных технологий - ИНТУИТ.ру, 2003.
4. Дригалкин В.В. HTML в примерах. Как создать свой Web-сайт. Самоучитель. Диалектика, 2003.