1、软件课设学生成绩管理系统可行性研究【一】可行性概述分析1、市场可行性分析随着学生人数不断增加,同时时间、效率观念进一步的深化,传统的纸质学生成绩管理表很难满足现今教务员以及教师的需求,同时也为管理工作增加了一定的难度。如何实现学生成绩的计算机智能化管理是个大高校所面临的一个重要问题。因此一个智能化的管理系统必将是高校选择的对象,因此市场前景是欣欣向荣的。2、技术可行性分析由于学生成绩管理系统软件属于小型的软件,需要调研的数据也比较单一,数据设计的对象也很简单。因此,运用数据结构学习的技术完全能把程序编写完整,只要掌握学校的老师、教务员以及学生成绩的数据之间的关系,关于软件的各部分文档就能完整地
2、描述清楚,用户就能很顺利地和开发者交流此软件并顺手地运用之。因此,从技术上讲,我们并没有太大的难度,只要舍得投入一定的时间就能做得很好。3、经济可行性分析 该软件的程序设计部分只要在装有C+的软件的计算机上即可编制完成,而文档的编写只要在Word里面就能完成,而实验数据只要从身边的同学进行采样即可,同时,该软件之比较随意的支撑软件和操作系统下就能运行,因此从开发者来讲不需要大量的经济支出,而对于用户来讲,主要的经济支出是软件维护,且不需要大量支出。【二】可行性细节说明1、 编写目的1.1目的这份可行性研究报告是对南京航空航天大学“学生成绩管理系统”所作的一份可行性研究分析,列出了该项目的系统流
3、图、数据流程以及该项目能够带来的改进之处,说明了在开发软件初期用户和开发者应作的准备工作,并证实了开发系统和编写本可行性研究报告的必要。1.2预期读者南京航空航天大学教务员、管理员、教师以及本系统开发小组的成员1.3背景1 项目名称:学生成绩管理系统2 项目任务提出者:南京航空航天大学教务处开发者:朱德政 田旭娅 邵敏敏用户:南京航空航天大学教务员以及教师1.4 术语序号 术语或缩写词 说明性定义001 学生成绩管理系统 学生成绩管理系统是帮助教师、教务员对学生成绩管理的软件002 C+语言开发工具 全称为Visual C+,即高效的软件系统开发工具1.2 参考资料序号 资料名 文件编号 发表
4、日期 出版单位001 软件工程理论与实践 ISBN 7-03-016768-6 2006年7月 科学出版社002 C语言程序实验 2008年2月 南航出版社003 C+实验 2008年2月 南航出版社2 可行性研究的前提2.1 要求能够对学校学生成绩进行全方位的管理2.2 目标减少人力和物力的使用,提高操作速度以及管理效率,本项目截止到1月5日结束。2.3 条件和限制1 硬件环境CPU:PentiumP2或更高内存:在Windows运行需要6M以上显示器:VGA或更高分辨率硬盘空间:需要6M2 开发环境装有必要软件的计算机3、 对现有系统的分析现有的学生成绩管理系统还存在功能不完善、各模块之间
5、智能化没有得以实现,所需支出的工作负荷比大,而且安全性能有待提高。4、 所建议的系统4.1 改进之处 与以前的学生成绩管理系统比较起来,该系统操作更为简便,提高工作效率,减少人力物力的输出4.2 要求4.2.1 对软件的要求 计算机中应当安装有Visual C+6.0软件支持4.2.2 对用户单位机构的要求 学校应该有足够的计算机供管理人员使用,且管理人员能够熟练操作该系统。4.2.3 对系统运行过程的要求 用户在运行此系统时无需在手动的进行一系列的操作,无需编写学生成绩管理表,会由系统自动生成。4.3 技术条件方面的可行性在当前的限制条件下,该系统的功能目标能够达到;利用现有的技术,该系统的
6、功能能够实现。5、 投资及效益分析5.1 一次性投资 : 软件WindowsXP,Visual C+ 6.0开发工具,软件设计和开发费用5.2 经常性支出:软件维护费用。5.3 效益:进一步实现学生成绩管理自动化,减少人力投资和办公费用,极大的提高办公效率。5.4 收益/投资比 :1.5/15.5 敏感性分析:15年,系统的处理速度相当快,设备要符合运行环境的要求。6、社会因素方面的可行性 6.1 法律方面的可行性 合同正当且经过法律认可,未申请专利,申请了版权。 6.2 使用方面的可行性 从用户单位的设备以及管理制度来看,可以使用该软件系统;从用户单位的管理员素质来看,也符合满足使用该软件系
7、统的要求。需求规格说明书引言:编写目的随着时间观念的进一步深化,效率已是人们最为关注的话题。如果仍然使用手工操作或使用相当繁琐复杂的软件,不但浪费财力,而且浪费物力,效率也显然无法提高。而传统的学生成绩管理表查询复杂,一旦记录在案很难进行改动,同时纸质的学生成绩管理表很容易丢失,不易妥善保存。为此开发学生成绩管理系统显得如此重要,以便于管理。本工程的设计目标就是为学校学生成绩管理提供便捷途径,使教务员与教师能够便捷的进行学生成绩的处理,是学校成绩管理更加自动化、智能化。1 需求说明1)、系统界面需求进入系统时应当出现人性化、个性化、随性化的字符界面或图形界面,提供菜单选项,选择执行相应的功能,
8、输入输出数据或操作成功时要有相应提示信息,此外还要提供帮助信息,如系统的功能介绍等,提供系统信息或程序信息,如作者、联系方式等。2)、系统功能需求对设计题目进行分析,可知系统主要功能可以有下面几种,而且各种功能互相组合,形成或构成新的功能。、创建功能。第一次可通过在内存中新建或创建动态链表输入学生的成绩记录和其他数据记录,且随时可以退出输入,既可在退出时可自动保存或提示保存或输入完毕后返回主菜单选择“保存文件”命令进行手动保存到硬盘,也可以在输入过程中自动保存。如果以前已经建立过动态链表且已经保存到文件中,可先载入文件(相当于打开文件、读取文件),再插入新的记录到动态链表。、插入功能。插入或添
9、加一个学生的成绩记录到已有的动态链表中,比如载入文件后的动态链表或刚刚新建的动态链表。、显示功能。该项有四个功能:1.按照名次排序:对每个学生求其总成绩和平均值,然后排。2.班级排序报表:按照班号,将班级升序排列,同时输出每个班的各位学生的基本信息。3.班级平均分报表:对每门课求其平均值,并且按班级以报表的形式输出。4.统计分数段:可以看到在各科对应的分数段的人数以及基本信息。、查找功能。查找的目的可能是查看数据、修改数据或删除数据。、修改功能。根据学号、姓名或其他数据项在动态链表中查找并修改一个学生的成绩记录。、删除功能。根据学号、姓名或其他数据项在动态链表中查找并删除一个学生的成绩记录。、
10、保存文件。将新建的或修改的动态链表的所有数据写入(或存入、存到)二进制文件中。、载入文件。相当于打开文件并读取文件中所有学生的数据(包括班级、学号、姓名、成绩等)到动态链表。、帮助功能。显示帮助信息和系统信息。、退出功能。退出系统或退出程序,可增加一个退出函数,在退出时可显示系统信息或程序信息。此外还有排序功能、统计功能和加密功能。排序功能,指可按成绩、班级排序,而成绩排序又可按总成绩排序。统计功能,指统计不及格,及格,中等,良好,优秀人数。加密功能,指登录系统要使用密码验证,防止别人偷窥或篡改数据,保证软件的安全性。3)术语一览表序号 术语或缩写词 说明性定义001 学生成绩管理系统 学生成
11、绩管理系统是帮助教师、教务员对学生成绩管理的软件002 创建学生数据 输入学生原始数据003 插入学生数据 插入新增学生数据004 输出学生数据 输出存在的学生数据005 查找学生数据 通过查找通道查找到学生的数据006 修改学生数据 发现数据错误可以及时更改007 删除学生数据 学生资料不需要保存或者出现错误可以将其删除008 保存学生数据 保存输入的数据,保证不丢失009 载入文件 通过连接加载学生数据010 帮助 给用户提供解释011 退出 退出学生成绩管理系统4)参考文献序号 资料名 文件编号 发表日期 出版单位001 软件工程理论与实践 ISBN 7-03-016768-6 2006
12、年7月 科学出版社002 C语言程序设计实验 2008年2月 南航出版社003 2 系统概述1) 系统说明 任务提出单位:南京航空航天大学教务处。 开发单位:学生成绩管理系统开发组。 预期用户:南京航空航天大学教务员以及教师。2) 系统任务 系统目标: A、使学生成绩管理系统更加完善; B、使教务处对学生成绩管理更为便捷; C、减轻教师对学生成绩的工作量; D、提高了小组成员的合作和编程能力。 运行环境: 1、硬件环境:Pentium2或更高档微机,笔记本电脑 运行时内存要求:6MB 无需安装 2、软件环境:Windows95/98/200/XP3) 需求规定 、 功能需求 学生成绩信息:对学
13、生成绩记录进行载入、删除、查找、修改、添加、保存。 、 性能需求 数据准确度在进行查找时要保证查全率,所有相应域包含的查询关键字的记录都应能查到。 查询时应保证查准确率,查到的记录应该和查找条件相一致。 在进行其他的操作时同样也需要保证准确率。 时间需求 一般操作的响应时间应在12秒内,对软磁盘的操作,以及数据的加载和保存也应该在可接受的时间内完成。 故障处理 在开发阶段可以随即修改数据库中的相应内容。 适应性 满足个人使用的要求,对前面提到的运行环境要求不应存在困难。 、 接口需求 用户接口 该产品只要在装有C+或者C软件的计算机上通过密码校验即可应用。 软件接口 Windows9X,Win
14、dows2000,WindowsXP操作系统。 硬件接口 支持一般的Pentium2,或更高档微机,笔记本电脑、软件属性要求1 正确性要求发布的软件达到用户的预期目标,运行时基本没有错误。 可靠性在一般条件下,应不出故障 完整性要求能在发生意外的情况下,保证数据的不丢失。4 效率对于查询,添加,删除,修改等的一般操作,要求及时响应,在12秒内 易使用性要求能尽量为用户的使用提供方便,软件的界面符合目前流行的界面规范。 可维护性要求本软件在运行时发现错误时,能快速,准确对其进行定位,诊断和修改。7 安全保密性要求提供身份验证,只允许通过身份验证的用户使用本软件。 3 数据描述 3.1 静态数据描
15、述 char class_020; /*班级*/ char num15; /*学号*/ char name30; /*姓名*/ float score5; /*成绩*/ float total; /*总分*/ float ave; /*平均分*/ struct student *next; /*下一个结点*/ int order; /*排名*/3.2 动态数据输入数据:查询条件(学号),载入数据,新添加记录项输出数据:由查询条件确定的系统中全部记录。3.3 数据字典数据流图,层次图见概要设计说明书,和详细设计说明书。 概要设计说明书1、 引言1.1 编写目的将软件需求及分析转化为数据结构和软件
16、的系统结构,确定实现目标系统的总体思想和设计框架,确定程序的模块组成以及各个模块之间的关系,用通俗易懂的文字描述软件的相关说明,使程序员能够更为清楚的了解该系统,同时方便开发者和用户之间的交流,方便后序软件的维护,以及提高工作效率。 1.2 预期读者软件开发者、软件分析员、软件管理员、维护人员、软件用户。1.3 参考文献 序号 资料名 文件编号 发表日期 出版单位001 软件工程理论与实践 ISBN 7-03-016768-6 2006年7月 科学出版社002 C语言程序设计实验 2008年2月 南航出版社003 C+实验 2008年2月 南航出版社004 软件技术基础教程 2008年9月 南
17、航出版社2、 总体设计2.1 系统的物理结构 把学生成绩管理系统抽象成如下的系统结构图:2.2 软件流程图系统各个功能的详细解释。1.Create a new list of students data创建链表。输入学生的成绩和其他信息,并且自动计算总成绩和平均成绩2.Insert a student data插入记录。在动态链表中插入一个学生的成绩记录。3.Output all students data显示记录。该项有四项功能。4.Search a student data查找记录。根据学号在动态链表中查找并显示一个学生的成绩记录。5.Modify a student data修改记录。根
18、据学号在动态链表中查找并修改一个学生的成绩记录。6.Delete a student data删除记录。根据学号在动态链表中查找并删除一个学生的成绩记录。7.Save File 保存数据。将动态链表的所有数据写入(或存入、存到)二进制文件中。8.Load File读取数据。读取文件中所有学生的数据(包括班级、学号、姓名、成绩等)到动态链表。9.Help 帮助。显示帮助信息和系统信息。0.Exit 退出。如菜单返回值为0程序结束。3、接口设计 3.1 用户界面:Windows 3.2 硬件接口:输入终端(鼠标,键盘),输出终端(显示器)。 3.3 软件接口:Windows 9X,Windows
19、2000,WindowsXP操作系统。4、数据结构设计: 数据定义: 数据名数据类型数据长度class_0char20namechar20numchar10scorefloat10totalfloat10avefloat10orderint105、运行设计:5.1运行控制:先启动身份认证模块,身份验证通过后进入学生成绩管理界面,在界面出现的各模块中选择一项进行操作,根据提示进行下一步操作。5.2运行时间:各模块运行时间在1s以内。6、系统安全设计: 6.1采用用户身份鉴别机制:当密码输入正确时才可以进入学生成绩管理系统,否则出现报错信息,返回身份认证界面,供用户再次验证身份。 6.2添加数据加
20、载以及保存功能,来完成数据的备份。 6.3 出错处理:选择或输入有效的备份途径。7、维护设计 本软件严格遵循软件产品设计步骤来开发,充分的考虑了该软件的可维护性,并在该软件中设置用于系统检测维护的专用模块,预计今后进行功能扩充的模块,并对这些接口进行了专门定义。详细设计说明书引言:1.1 编写目的 随着时间观念的进一步深化,效率已是人们最为关注的话题。如果仍然使用手工操作或使用相当繁杂的软件,不但浪费财力,而且浪费物力,效率也显然无法提高。而传统的学生成绩管理表查询复杂,一旦记录在案很难进行改动,同时纸质的学生成绩管理表很容易丢失,不易妥善保存。为此开发学生成绩管理系统,便于管理。本工程的设计
21、目标就是为学校学生成绩管理提供便捷途径,使教务员与教师能够便捷的进行学生成绩的处理,是学校成绩管理自动化。1.2 本报告读者对象 研发组人员,项目设计,开发人员1.3 项目背景项目名称初步定义为:学生成绩管理系统,分为10个子功能模块:身份认证模块,创建模块、显示记录模块、删除记录模块,修改记录模块,查询记录模块,保存记录模块,添加记录模块,加载数据模块,退出模块。本项目的任务提出者为南京航空航天大学教务处,开发者为朱德政、邵敏敏、田旭娅三位同学。1.4 模块说明序号 术语或缩写词 说明性定义001 校验模块 通过调用该模块进行身份鉴别,只有知道密码的用户才能使用。002 创建模块 创建学生数
22、据的空间。003 插入模块 通过调用该模块,将新纪录添加到适当的位置。004 显示模块 通过调用该模块,将主窗口中符合条件的数据记录定位显示。005 查找模块 通过调用该模块,根据查找条件查找符合条件的字段。006 修改模块 通过调用该模块,修改错误的数据记录。007 删除模块 通过调用该模块,删除主创扩中当前显示的数据记录。 008 保存模块 通过调用该模块,对输入或者修改的记录保存。009 读取模块 通过调用该模块,读取所有数据。010 帮助模块 通过调用该模块,给用户提供解释011 退出模块 通过调用该模块,退出主窗口界面。1)、数据结构设计系统使用了结构体类型存储学生的成绩记录和其他记
23、录。#define NUM 5 /*定义课程的数目*/struct student /* 学生的数据结构 */ char class_020; /班级char num15; /学号char name30; /姓名float score5; /成绩float total; /总分float ave; /平均分struct student *next; /下一个结点/int order; /排名 stu;2)、算法结构设计系统使用了以下函数来实现系统各个模块的功能。函数名称函数功能struct student *create(void)创建链表,完成数据录入功能void TotalScore(st
24、ruct student *head)计算每个学生的总成绩和平均成绩void IntSwap(int *pt1, int *pt2)交换两个整型数void FloatSwap(float *pt1, float *pt2)交换两个实型数void CharSwap(char *pt1, char *pt2)交换两个字符串void SortScore(struct student *head)对学生成绩排序并确定名次void sort_class(struct student *head)对班级排序void class_aver(struct student *head)班级平均分报表struct
25、 student *InsertStudent(struct student *head)按学号插入一个结点数据void PrintScore(struct student *head ,int k )显示所有已经建立好的节点的节点号和该节点中数据项内容void SearchStudent(struct student *head)按学号查找并显示找到的结点数据void ModifyStudent(struct student *head)按学号查找并修改一个结点数据struct student *DeleteStudent(struct student *head)按学号查找并删除一个结点数
26、据void SaveFile(struct student *head)保存数据到文件模块struct student *LoadFile(void)加载存储在外部介质的文件到内存或导入信息模块void help()显示帮助信息和系统信息void PassWord()登录密码验证void fail(struct student *head,int m)得出不及格学生的信息以及人数void pass(struct student *head,int m)得出及格学生的信息以及人数void medium(struct student *head,int m) 得出中等学生的信息以及人数void g
27、ood(struct student *head,int m)得出良好学生的信息以及人数void excellent(struct student *head,int m)得出优秀学生的信息以及人数void subject_0(struct student *head,int i)显示分数段的菜单void subject_a(struct student *head)显示科目的菜单void select_print(struct student *head)显示输出项的菜单int menu_select(void)显示菜单并获得用户键盘输入的选项void welcome()显示Hellovoi
28、d main()程序从主函数开始执行创建链表。在界面状态下,输入1后调用struct student *create(void) 函数创建动态链表,即提示输入初始的学生信息,其中包括学生的学号、班级、姓名、和各科目的成绩,若学号为0退出返回主菜单。学号是字符型,长度要求15位而且必须是数字,班级和姓名是字符数组型而且长度为20和30,成绩是浮点型(输出成绩时可只输出1位小数或2位小数)。都输入完成后,系统调用void TotalScore(struct student *head) 函数计算每个学生的总成绩和平均成绩,还可以调用void SaveFile(struct student *hea
29、d) 函数对指定的文件进行写操作,把输入到动态链表的所有学生信息保存到文件中。在输入记录过程中若学号输入0则返回主菜单。插入记录。在界面状态下,输入2后调用struct student *InsertStudent(struct student *head) 函数在动态链表中插入一个学生的成绩记录,并且链表结点数加1。在插入记录过程中若学号输入0则返回主菜单。显示记录。该项有四个功能:1、名次排序报表:调用void SortScore(struct student *head) 函数对学生成绩排序并确定名次,而这个函数运用冒泡法进行排序,若后一结点的总成绩比前一结点的高,则调用void Int
30、Swap(int *pt1, int *pt2) 函数交换两个整型数如学号,调用void FloatSwap(float *pt1, float *pt2) 函数交换两个实型数如成绩,调用void CharSwap(char *pt1, char *pt2) 函数交换两个字符串如班级和姓名,交换两个字符串要用到strcmp,strcpy函数,排序完毕后再调用void PrintScore(struct student *head,int k) 函数显示所有已经建立好的节点的节点号和该节点中数据项内容,即按总成绩从高到低排序后显示动态链表中所有学生的成绩记录。输出所有记录到屏幕上显示后自动则返回主菜单。2、班级排序报表:按照班号,将班级升序排列,同时输出每个班的各位学生的基本信息。调用void sort_class(struct student *head)然后再次调用void PrintScore(struct student *head,int k) ,输出所有记录到屏幕上显
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1