完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这是需求,需要在linux系统下双击pro文件,或者在超级终端下面运行 注意必须在当前目录下面./pro
学生管理系统需求分析说明书 一. 引言1.编写目的通过与多位软件使用者进行全面深入地探讨和分析,并完成《学生管理系统》市场的前期调查后,提出了这份软件需求分析说明书。 此需求分析说明书对《学生管理系统》软件做了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。 本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。而且其很强的交互性及简单易行性,可以让人在很短时间内熟悉它的操作方法,不论用户文化水平如何,都会很轻松的学会使用它。 由于本程序简单易操作,交互性好,对用户没什么特别要求。一般用户经过几分钟练系都可以熟悉本系统的规则。 分必选项和任选项,其中,必选项是必须完成的,属于项目答辩的入口条件,所有人都要做,未完成者取消答辩资格;任选项不是入口条件,但每完成一项都会加分,对于完成了必选项的同学,尽可能地多完成一些任选项,以期获得更高的答辩成绩。如果所有项(包括必选和任选)都完成,那么功能分就是满分。如果设计思路、界面效果、代码组织等方面有个性(或和别人的不同),则获得附加分。 1.1 服务器功能 1.1.1 学生信息定义 属性:必选 描述:学生信息必须包含如下项(包括但不限于): ● 学号(ID):ID要求全局唯一、不可重复; ● 姓名; ● 密码; ● 班级; ● 成绩(至少3门); ● 年龄; ● 名次(本学生在本班级的成绩总分排名,自动计算,非输入); 1.1.2 管理员信息定义 属性:必选 描述:管理员信息必须包含如下项(包括但不限于): ● 用户名; ● 密码; 1.1.3 增加学生 属性:必选 描述:管理员能够增加学生。 1.1.4 保存 属性:必选 描述:学生信息既能够在内存中存在,也能够存于磁盘中,掉电后信息不丢失。必须完成下面两种情况: ● 在内存中,所有学生的信息以链表的方式存在; ● 在硬盘中,以文件形式存在(文件格式不限、内容形式不限)。 1.1.5 删除 属性:必选 描述:管理员能够删除学生,完成下列情况的任一种即可: ● 一条一条删除(例如根据ID删除); ● 批量删除(例如根据某种区间删除)。 1.1.6 修改 属性:必选 描述:管理员能够修改学生,完成下列情况的任一种即可: ● 一项一项地修改(如提示是否修改哪一项,是学号还是姓名); ● 批量修改(例如一下子修改好学号、姓名、成绩……等)。 1.1.7 查询 属性:必选 描述:能够查询某些学生信息,必须完成下列所有情况: ● 根据姓名; ● 根据单科成绩; ● 根据排名; 1.1.8 排序 属性:必选 描述:能够按序显示学生信息,排序算法不限,必须完成下列所有情况: ● 根据姓名; ● 根据单科成绩; ● 根据排名; 1.2 客户端功能 1.2.1 查看个人信息 属性:必选 描述:学生能够登录系统查看个人信息。 1.2.2 修改密码 属性:必选 描述:学生能够登录系统中修改个人密码,必须完成下列所有情况: ● 检验旧密码是否正确,如不正确提示重新输入旧码; ● 如正确,检验两次输入的新密码是否一致,如不一致,提示重新输入密码,如一致,用新密码覆盖旧密码; 1.3 登陆 属性:必选 描述:管理员和学生能够登陆到系统中,必须有密码出错提示,输入错误超过三次则自动退出系统。 1.4 密码隐藏 属性:任选 描述:登陆时,用户输入的密码对外不可见,例如全部用“******”显示。 1.5 登陆验证码 属性:任选 描述:登陆时,需要输入验证码。例如,Ht0y。 1.6 密码加密保存 属性:任选 描述:自己设计一个加密算法,保存前加密,读取后解密。例如,密码是ht1234,在每个字符头上加3,那么就变成如下字符串kw4567;读取时再减3。具体算法不限。 1.7 身份验证 属性:任选 描述:登陆时,根据登陆的账号不同进入不同的欢迎界面和操作权限。 1.8 学号产生器 属性:任选 描述:根据班级自动产生学号。例如HT120201表示HQ1202班第1个学生: 1.9 转班 属性:任选(特别注意:此项无分,做和不做不影响项目成绩) 描述:一个学生转到另一个班,要求 ● 有分班管理; ● 学号、姓名、成绩等都不变; ● 排名和班级其他学生排名都要变化; 1.10 界面友好 属性:必选 描述:用户的一些操作前后做出一些必要的提示或确认。所有完成的功能都需要友好,例如: ● 增加失败提示; ● 删除失败和成功提示、删除前的确认; ● 修改失败和成功提示、修改前/后的确认; ● 查找失败提示、查找成功的确认; ● 退出系统时,如果有修改要提示是否保存; ● 其它方面的界面问题; 本系统在设计方面本着方便、实用的宗旨,性能方面应遵循如下原则: ● 执行效率(时间): 软件运行应该尽量高效;避免没有必要的循环处理、重复处理; ● 资源损耗(空间):设计尽量节约资源(内存、数组、链表等);不用的资源要及时释放; ● 初始化: 变量、数组、内存块、链表节点(其next要置NULL)等都要初始化; ● 健壮性:不能出现野指针、内存泄露、数组越界访问等等: ◎ 申请内存之后,应该立即检查指针值是否为NULL;动态内存的申请与释放必须配对,防止内存泄漏。释放了内存之后,立即将指针设置为NULL,防止产生“野指针”; ◎ 函数的入参必须进行有效性判断;用户输入、函数返回值(如果用到的话)都要判断; ◎ switch-case一定要有default;if-else if等后要有else,除非if满足后返回或退出; ◎ 不允许出现goto语句; ◎ 数组的下标不要发生“多1”或者“少1”操作。 ● 缩进要对齐; ● 长行拆分; ● 二元操作符的前后应当加空格,包括如下操作符: 赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如"="、"+="">="、"<="、"+"、"*"、"%"、"&&"、"||"、"<<","^" 等; ● 空行: ◎ 结构体 声明之后、每个函数定义结束之后都要加1行空行; ◎ 逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔; ◎ 一行代码只做一件事情; ◎ "if"、"for"、"while"、"do"等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加 "{ }"; 对可维护性的最终要求:别人能够轻松上手你的代码。 ● 结构清晰: ◎ 模块化:对界面(显示)、菜单管理、逻辑管理、文件操作等等代码要独立,必须多个.c文件,用makefile; ◎ 封装:一个函数只做一件事,函数功能要单一;一个函数不能超过50行; 避免重复、冗余代码; ◎ 代码块清晰。 ● 变量命名规范,变量名应该具有自明性: ◎ 常量,枚举和宏定义命名 常量名,宏和枚举值由全大写字母组成,单词间通过下划线来界定; ◎ 函数的命名: 使用"动词"或者"动词+名词"(动宾词组)的形式,由一个或多个单词组成且以小写字母开头,以后每个单词之间用下划线隔开 ◎ 变量的命名与定义 应当使用"名词"或者"形容词+名词",由一个或多个单词组成且以小写字母开头,以后每个单词之间用下划线隔开。 ● 注释充分:变量、函数(包括参数、返回值)、代码功能块、一些复杂算法……等都需要 清晰明了地说明; 把项目做出个性出来。下列各项中有和比人不同之处、或很有创意,即可认为有个性。独立设计的软件,一般都会出现一些个性。参考、抄袭不会出现个性。 ● 设计思路:包括软件的整体架构、功能块的设计思路、函数封装等等; ● 功能实现:从用户的角度,使用上发现与众不同的地方; ● 其它方面; 本着紧张但不急躁、不参考、不拷贝的原则进行。 ü 紧张但不慌张 项目周期只有一周,这还包括项目答辩时间。所以项目时间比较紧张,但不能慌张。要有自己明确的设计思路,一步步沿着思路走下去,以此来巩固自己所学,锻炼自己的独立工作能力。 ü 能自己做,绝不参考别人 自己还没有做,还没有想,就去看比人的,这样尽管功能做出来了,但却没有什么意义,真正面试时还是不会。作者和读者,天壤之别。 如果自己实在无法搞定,一个问题卡了快一天了,则可以咨询别人一下想法,再行编码;尽量不直接看别人代码。 ü 不拷贝 一旦发现拷贝,取消答辩资格。答辩时发现,答辩成绩减半。 copy别人的代码,甚至直接运行别人的代码,以此作为自己的项目进展,这是严禁的。严禁运行效果出来了,却不知道是哪些代码造成的,严禁明明是自己写的代码,但却不知道为什么这么写。
|
|
相关推荐
9 个讨论
|
|
只有小组成员才能发言,加入小组>>
12047 浏览 2 评论
4402 浏览 3 评论
3621 浏览 5 评论
9133 浏览 47 评论
4333 浏览 9 评论
582浏览 0评论
365浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-5 13:24 , Processed in 0.912573 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191