博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC项目实践(五)——逻辑操作的实现
阅读量:5147 次
发布时间:2019-06-13

本文共 7056 字,大约阅读时间需要 23 分钟。

接下来是逻辑操作的实现,直接决定了各页面中的各个操作类需要实现何种操作,它明确了各个页面的职责。

由设计文档可以知道我们的第一个页面为选择业务:

1 @model VolleyballScoring.Models.Team 2  3 @{ 4     ViewBag.Title = "Index"; 5 } 6  7 

Index

8

选择你想要进行的事情

9
@Html.ActionLink("查询队伍","Index","Teams")
10
@Html.ActionLink("计分台","Scoring")
11
@Html.ActionLink("观看比赛","Index","Audience")

以下为队伍的控制器操作:

1 namespace VolleyballScoring.Controllers  2 {  3     public class TeamsController : Controller  4     {  5         private VolleyballDBContext db = new VolleyballDBContext();  6   7         //  8         // GET: /Teams/  9  10         public ActionResult Index() 11         { 12             return View(db.Teams.ToList()); 13         } 14  15         // 16         // GET: /Teams/Details/5 17  18         public ActionResult Details(int id = 0) 19         { 20             Team team = db.Teams.Find(id); 21             if (team == null) 22             { 23                 return HttpNotFound(); 24             } 25             return View(team); 26         } 27  28         // 29         // GET: /Teams/Create 30  31         public ActionResult Create() 32         { 33             return View(); 34         } 35  36         // 37         // POST: /Teams/Create 38  39         [HttpPost] 40         public ActionResult Create(Team team) 41         { 42             if (ModelState.IsValid) 43             { 44                 db.Teams.Add(team); 45                 db.SaveChanges(); 46                 return RedirectToAction("Index"); 47             } 48  49             return View(team); 50         } 51  52         // 53         // GET: /Teams/Edit/5 54  55         public ActionResult Edit(int id = 0) 56         { 57             Team team = db.Teams.Find(id); 58             if (team == null) 59             { 60                 return HttpNotFound(); 61             } 62             return View(team); 63         } 64  65         // 66         // POST: /Teams/Edit/5 67  68         [HttpPost] 69         public ActionResult Edit(Team team) 70         { 71             if (ModelState.IsValid) 72             { 73                 db.Entry(team).State = EntityState.Modified; 74                 db.SaveChanges(); 75                 return RedirectToAction("Index"); 76             } 77             return View(team); 78         } 79  80         // 81         // GET: /Teams/Delete/5 82  83         public ActionResult Delete(int id = 0) 84         { 85             Team team = db.Teams.Find(id); 86             if (team == null) 87             { 88                 return HttpNotFound(); 89             } 90             return View(team); 91         } 92  93         // 94         // POST: /Teams/Delete/5 95  96         [HttpPost, ActionName("Delete")] 97         public ActionResult DeleteConfirmed(int id) 98         { 99             Team team = db.Teams.Find(id);100             db.Teams.Remove(team);101             db.SaveChanges();102             return RedirectToAction("Index");103         }104 105         protected override void Dispose(bool disposing)106         {107             db.Dispose();108             base.Dispose(disposing);109         }110     }111 }

其他实体类的控制器与之大同小异,就不在此赘述。

下面是操作双方得分的接口:

1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using NGuestBook.Entity; 5  6 namespace VolleyballScoring.Interface 7 { 8     ///  9     /// 业务逻辑接口——计分员10     /// 11     public interface IAdminBLL12     {13         /// 14         /// 增加计分15         /// 16         /// 新小节类17         /// 
是否成功
18 bool Add(Section sec);19 20 /// 21 /// 删除比分22 /// 23 /// 欲删除的小节ID24 ///
是否成功
25 bool Remove(int id);26 27 }28 }

以下是按照《2015-2016赛季中国排球联赛竞赛规程》的比分变化规则的逻辑表现

  

public  class  Admin:IAminBLL{     public void Action(Game game,Section sec)    {        if (sec.SNum < 4)//前四局的加分计算和判断。            {                if (sec.RouA >= 24 && sec.RouB >= 24)//当两队24分平的情况。                {                    if (Math.Abs(sec.RouA - sec.RouB) == 2)                    {                        if (sec.RouA > sec.RouB)                        {                            game.SscoA += 1;                            SscoA.Text = game.SscoA.ToString();                            sec.RouA = 0;                            ScoreA.Text = sec.RouA.ToString();                            sec.RouB = 0;                            ScoreB.Text = sec.RouB.ToString();                        }                        else                        {                            game.SscoB += 1;                            SscoB.Text = game.SscoB.ToString();                            sec.RouA = 0;                            ScoreA.Text = sec.RouA.ToString();                            sec.RouB = 0;                            ScoreB.Text = sec.RouB.ToString();                        }                    }                }                else if(sec.RouA<24||sec.RouB<24) //当两队没有达到24分平的时候。                {                    if (sec.RouA == 25)                    {                        game.SscoA += 1;                        SscoA.Text = game.SscoA.ToString();                        sec.RouA = 0;                        ScoreA.Text = sec.RouA.ToString();                        sec.RouB = 0;                        ScoreB.Text = sec.RouB.ToString();                    }                    else if (sec.RouB == 25)                    {                        game.SscoB += 1;                        SscoB.Text = game.SscoB.ToString();                        sec.RouA = 0;                        ScoreA.Text = sec.RouA.ToString();                        sec.RouB = 0;                        ScoreB.Text = sec.RouB.ToString();                    }                }            }            else if (sec.SNum == 4)//第五局的加分计算和判断。            {                if (sec.RouA >= 14 && sec.RouB >= 14)//当两队24分平的情况。                {                    if (Math.Abs(sec.RouA - sec.RouB) == 2)                    {                        if (sec.RouA > sec.RouB)                        {                            game.SscoA += 1;                            SscoA.Text = game.SscoA.ToString();                        }                        else                        {                            game.SscoB += 1;                            SscoB.Text = game.SscoB.ToString();                        }                    }                }                else if (sec.RouA < 14 || sec.RouB < 14) //当两队没有达到24分平的时候。                {                    if (sec.RouA == 15)                    {                        game.SscoA += 1;                        SscoA.Text = game.SscoA.ToString();                    }                    else if (sec.RouB == 15)                    {                        game.SscoB += 1;                        SscoB.Text = game.SscoB.ToString();                    }                }            }            else            {                Response.Write("");            }    }  }

以上就是主要的逻辑业务表现,下一篇是具体的UI页面的表现

转载于:https://www.cnblogs.com/hutengqi/p/7074056.html

你可能感兴趣的文章
Django web : CSRF verification failed. Request aborted.
查看>>
8公司3月获大股东增持近2700万股
查看>>
学术-物理-维空间:一维空间
查看>>
CSS:CSS 实例
查看>>
innodb的存储结构
查看>>
焦点控制
查看>>
python-文件读写操作
查看>>
P1129 [ZJOI2007]矩阵游戏 二分图匹配
查看>>
Git 内部原理之 Git 对象哈希
查看>>
Vue中引入TradingView制作K线图
查看>>
爱历史 - 朝代歌
查看>>
【笔记】Cocos2dx学习笔记
查看>>
PHP设计模式之:单例模式
查看>>
c++输出缓冲区刷新
查看>>
Linux查看CPU和内存使用情况总结
查看>>
session丢失问题
查看>>
Python 批量修改root密码
查看>>
ThinkSNS+ 基于 Laravel master 分支,从 1 到 0,再到 0.1
查看>>
WEB服务器:Apache、Tomcat、JBoss、WebLogic、Websphere、IIS的区别与关系
查看>>
软件工程 speedsnail 冲刺7
查看>>