x x x x 学 院
课 程 设 计 报 告
课程名称:
移动应用系统开发
设计题目:
学分管理程序
系
专
组
别:
业:
别:
学生姓名:
信息与计算机学院
xxxx
第 3 组
xxx
起止日期:
2020 年 5 月 29 日 ~ 2020 年 5 月 31 日
指导教师:
xxx
承诺书
本人郑重声明:本人所呈交的学术论文,是本人在导师指导下独
立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论
文不包括任何其他个人或集体已经发表或撰写过的作品成果。对本文
的研究作出重要贡献的个人和集体,均已在文中以明确的方式标明。
本人完全意识到本声明的法律结果由本人承担。
学生(签名):xxx
2020 年 6 月 5 日
目 录
一 、 系统功能和结构
1.1 程序设计目的
1.2 需求分析
1.3 概要设计
1.3.1
主要数据结构描述
1.3.2
算法分析及程序流程图
1.4 任务安排
二、 程序实现
2.1 模块详细设计
2.2 核心代码详细解析
三、 调试与操作说明
3.1 问题分析与解决
3.2 程序演示
四 、 设计体会与总结
4.1 程序不足及功能扩充
4.2 设计心得
参考文献
一 、 系统功能和结构
1.1 程序设计目的
问题描述: 随着学校设施及管理的不断完善,学生数量急剧增加,有关学生的各种信息
量也成倍增长,学校在时时刻刻需要对学生对各种信息进行统计分析。假设每位学生必须完
成基础课学分、专业课学分、选修课学分、人文类课程学分、实验性课程学分才能够毕业。
因此在管理学分时要考虑每个学分所属于的课程类别。该程序应该具有下列功能:
(1)通过键盘输入某位学生的学分
(2)给定学号显示某位学生的学分完成情况
(3)给定某个班级的班号显示该班所有学生学分完成情况
(4)给定某位学生的学号修改该学生的学分信息
(5)按照某类课程的学分高低进行排序
(6)提供一些统计各类信息的功能。
1.2 需求分析
【输入要求】
应用程序运行后在屏幕上显示一个菜单。用户可以根据需求选定相应的操作项目。进入
每个操作后根据应用程序的提示信息从键盘输入相应的信息。
【输出要求】
(1)应用程序运行后要在屏幕上显示一个菜单
(2)要求用户输入数据时要给出清晰、明确的提示信息包括输入的数据内容、格式及结
束方式等。
【功能要求】
为各项操作功能设计一个菜单。应用程序运行后先显示这个菜单然后用户通过菜单项选
择希望进行的操作项目
并且关键的操作需要详细提示信息
1.3 概要设计
1.3.1
主要数据结构描述
1>设计了一个二维数组来保存学生的学分信息如下:
static String[][]students=new String[50][100];//学生信息定义
第一维放每个学生,为了容易操作和理解,写了 5 个人
第二维放每个学生单独的信息
2>程序的主要数据框架:
1.3.2
算法分析及程序流程图
该程序可以分为 3 大步:、
1、首先我们得有一个主类和主函数,系统才能知道从哪里开始执行。
2、然后我们要执行什么操作,就是我们需要实现的功能了;
3、执行操作会有产生的结果,有什么样的显示
我们主要要关注的就是第 2 步,怎么实现这 6 个功能,我们分别从 6 个模块来进行重点剖析:
(1) 通过键盘输入某位学生的学分
从键盘输入内容需要用到输入流,我们需要加入头文件:import java.util.Scanner;
首先定义 scanner,方法:Scanner scanner = new Scanner(System.in);
输入了学分,我们需要保存起来,不然每次再输入之前的内容会被覆盖掉,所以我
们可以建一个数组把输入的信息保存到数组当中去
(2) 给定学号显示某位学生的学分完成情况
该功能可简单分为,从键盘输入一个学号,然后系统从已经保存信息中的学号信息
中查询是否有这个学号,找到之后输出该学号对应的学分信息
(3) 给定某个班级的班号显示该班所有学生学分完成情况
该功能和第 2 个功能类似,但是需要注意的是,它是通过班号来输出全班每个同学
的学分信息
(4) 给定某位学生的学号修改该学生的学分信息
该功能是要先输入学号,找到该学号对应的信息进行修改
(5) 按照某类课程的学分高低进行排序
该功能是需要把某一类课程的学分排序,排序有八大排序算法,我们就选择其中容
易理解的冒泡排序法,排序后数据从大到小排列
冒泡排序法:
比较相邻的元素,如果第一个比第二个小,就交换他们两个
对每一对相邻元素作同样的工作,从第一对到结尾的最后一对。在这一点,最
后的元素应该会是最小的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任一对数字需要比较。
(6) 提供一些统计各类信息的功能。
该功能说了个大体思路,并没有具体去说,我们这里可以自由发挥一下想象,假如
学分和有一个总值,不少于某一个阀值就完成通过,可以毕业,那我们可以通过定义一
个计数值来辨认有多少人通过,并可以输出他们的信息。
系统功能总框图如图 1.1 所示。
图 1.1 系统功能总框图
二、 程序实现
2.1 模块详细设计
根据上面的流程图,下面分析每个模块具体的功能,包括每个模块的参数和得出的结果
函数名
inputGrade( )
入口参数 无
返回值
无
模块功能 键盘输入某位学生的学分
函数名
showGrade( )
入口参数 无
返回值
无
模块功能 给定学号显示学分完成情况
模块 2.1
模块 2.2
函数名
showClassAllstuGrade( )
入口参数 无
返回值
无
模块功能 给定班号显示该班所有学生学分完成情况
模块 2.3
函数名
changeGrade( )
入口参数 无
返回值
无
模块功能 给定学号修改该学生的学分信息
模块 2.4
函数名
creditSort( )
入口参数 无
返回值
无
模块功能 给定课程,学分从高到低排序
模块 2.5
函数名
Statistics( )
入口参数 无
返回值
无
模块功能 统计功能,统计学分达标的人数
模块 2.6