zoukankan      html  css  js  c++  java
  • sqlserver 自学笔记 函数实训 学分学期转换函数的设计

    设计目的:

    1.运用sql基本知识,编写学期转换函数。

    2.运用sql基本知识,编写学分转换函数,将考试成绩转换为学分

    3.通过上述函数的编写与调试,熟练掌握 sql函数的编写、调试与使用方法。

    设计内容:

    1.根据需求,分析并设计函数的功能、入口参数和返回值。

    ①学分转换函数

    在学籍管理中,需要根据学生选修课程的成绩,查询所获学分情况,如果成绩大于等于60分,就可以获得该课程对应的学分,否则所得学分为0.这种需求可以通过函数实现,根据要求,该函数的功能以及入口参数和返回值要求如下。

    功能要求:将学生考试成绩转换为学分的功能。如果考试通过则获得该课程的学分,否则获得学分为0.

    入口参数:成绩和课程学分

    返回:返回应得学分

    ②学期转换函数

    在学籍管理中,每门课程都会在规定学期(如学生入学后的第四学期开课)而入学时间不同,对应的具体开课时间不同。

    例如“面向对象程序设计”规定学生入学后的第四学期开设,2005年入学的同学需要在2006-2007/2学期学习该门课程,而2006年入学的同学需要在2007-2008/2学期学习该课程。反过来如果需要统计2005年入学同学在2006-2007/2学期学习哪些课程,这些课程的考试情况怎么样,需要将2006-2007/2的学期表示形式转换为4的学期表示形式,然后再查询学生对4学期开设课程课程的考试情况即可。

    为了完成上述学期转换的功能,需要设计一个学期转换函数。该函数的功能以及入口参数和返回值要求如下。

    功能要求:结合学生入学年份,将如“2006-2007/2”的学期表述的字符串转换为如1,2,3等表述的数字方式。例如2005年入学的同学的2006-2007/2学期是其在校的第四学期。

    入口参数:学年和入学年份。

    返回:数字表示的学期。

    函数实现

    1.CreditConvert(功能:学分转换)

    CREATE FUNCTION CreditConvert(@score NUMERIC(3,1),@CCredits NUMERIC(3,1))

    --@score : 考试成绩

    --@CCredits:课程规定学分

    RERURNS NUMERIC(5,2) --应得学分

    AS

    BEGIN

    RETURN

    CASE SIGN(@score-60)--sign函数取结果符号,当为零时结果为0

    WHEN 1 THEN @CCredits

    WHEN 0 THEN @CCredits

    WHEN -1 THEN 0

    END

    END

    termConvert(功能:学期转换)

    CREATE FUNCTION termConvert(@term CHAR(11),@clno CHAR(6))

    --@term  学年,格式如:2006-2007/2

    --@clno  班级编号,前两位代表入学年份

    RETURNS INT --在校第几学期

    AS

    BEGIN

    RETURN(CONVERT(NUMERIC,SUBSTRING(@term,1,4))-CONVERT(NUMERIC,'20'+SUBSTRING(@clno,1,2)))*2+CONVERT(NUMERIC,SUBSTRING(@term,11,1))

    END

    执行函数

    ①学分转换函数

    SELECT CName,dbo.CreditConvert(30,CCredits) fail,dbo.CreditConvert(70,CCredits)pass FROM Course

    ②学期转换函数

    SELECT dbo.termConvert('2005-2006/2','04')

    整理自:教科书《数据库试验指导》 人民邮电出版社

  • 相关阅读:
    .NET定时任务执行管理器开源组件–FluentScheduler
    ASP.NET MVC 使用 FluentScheduler 定时器计划任务
    Windows 2008 IIS7.5中创建独立账号的FTP站点图文教程
    除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法启动FTP站点。服务目前已停止
    Web API--自定义异常结果的处理
    C#怎么遍历一个对象里面的全部属性?
    WebApi 接口参数不再困惑:传参详解
    C#进阶系列——WebApi 接口测试工具:WebApiTestClient
    WebApi安全性 使用TOKEN+签名验证
    ASP.NET(C#) Web Api通过文件流下载文件到本地实例
  • 原文地址:https://www.cnblogs.com/wjcnet/p/3390265.html
Copyright © 2011-2022 走看看