学生学籍管理系统的设计报告.docx
- 文档编号:12550696
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:25
- 大小:77.84KB
学生学籍管理系统的设计报告.docx
《学生学籍管理系统的设计报告.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统的设计报告.docx(25页珍藏版)》请在冰豆网上搜索。
学生学籍管理系统的设计报告
学生学籍管理系统的设计报告
一、需求分析
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。
计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。
为了适应现代社会人们高度强烈的时间观念,学籍管理系统软件将会为教学办公室带来了极大的方便。
学籍管理的繁索给具有强烈时间观念的人员带来了诸多不便,教学办公室缺少一种完善的学籍管理软件,为了对学生档案的管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,并在次基础上着手开发《学籍管理系统》软件。
二、概要设计
软件适用于教育界,对学生的学籍可以随时输入、输出、查找、修改。
1、功能需求
1能够游览学生学籍的所有信息
2能够制定招生计划并能进行学生注册登记管理
3能够通过学生的一个信息找到个人学籍的相关信息(例如:
知道学生的姓名能够找到该学生的所有有关的学籍信息)
4通过一条信息找到与之匹配的信息(例如:
查询同一专业的所有人员)
5相关人员能对包含学生的学籍信息进行管理(因为学生有关情况不是固定
不变的所以一旦学生信息发生改变就要对原有信息进行诸如添加,删除,
修改等的操作)
6必须能对学生有关信息进行相关统计计算(例如:
评定各项奖项,德育考评等)
7需要提供打印功能(能对要打印的各项内容都能进行打印服务)
8对毕业生进行档案管理
9能提供条形码进行刷卡服务
2、性能需求
数据精确度:
查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到
时间特性:
一般操作的响应时间应在1-2秒内,对软磁盘和打印机及条形码刷卡服务响应时间也应在可接受的时间内完成。
适应性:
对前面提到的运行环境要求不应存在困难。
三、详细说明
本系统的主要任务是实现对学校教导处的学生信息管理、成绩管理、课程管
理及相关查询。
其主要功能包括:
1、学生信息管理功能
班级管理:
提供给班主任进行本班学生的信息更新、删除。
添加学生:
以班级为单位,进行学生入库。
其中分为单个添加和成批添加。
单
个添加学生供数量较少的学生信息入库;成批添加可以从现存的学生信息
EXCEL文件中成批录入到数据库中。
删除学生。
当学生毕业后,学生信息转移备份数据库中,系统的基本数据库中需要删除学生信息。
该功能主要进行成批地删除学生信息,如连续学号区段的多位学生信息删除,整个班级的删除,所有学生信息的删除。
新生管理。
本部分的功能主要有新生导入、分班、及设置学号。
新生导入实现从现存的EXCEL新生名单中录入学生信息。
分班功能实现按新生的报考专业、成绩及性别进行分班。
设置学号实现自动为各班学生编发学号。
学生信息备份。
在学生信息删除前,将其按班级为单位保存到备份数据库。
2•学生成绩管理功能
分数录入:
以班级为单位,录入各科目的期中、期末、总评成绩。
总分及名次:
计算指定班级学生的总分及名次。
补考成绩录入:
修改总评成绩,以决定最终补考人数。
成绩备份:
为指定班级及指定的学期数的学生成绩保存到备份数据库中。
3、课程信息管理功能
课程管理:
提供本学期各年级各专业所开课程名称的录入、修改、删除。
它是学生成绩管理的基础:
用以保证数据库中一致性原则。
4、查询功能。
学生信息查询:
根据用户的要求,查询学生数据库的所有可能的信息,其中包括成绩查询。
备份成绩查询:
按班级为单位查询备份数据库的学生信息,补考情况
四、软件编码
#include
#include
#include
#include
usingnamespacestd;
#defineNULL0
classstudent
{
public:
longnum;
stringname;
stringdizhi,dihua,banji;
student*next;
};
intn;//链结点的个数
student*head,*stu;
/////////////////////////////////////////////////////////////////////
//创建动
student*creat(void)
态链表返回以各指向链表头的指针
{student*head;
student*p1,*p2;
n=0;
p1=p2=newstudent;
单元,用P1P2指向
cout<<"按顺序输入学生的学号,姓名,地址,电话,班级,输入意字符)"< cin>>p1->num>>p1->name>>p1->dizhi»p1->dihua»p1->banji;head=NULL; while(p1->num! =O) {n=n+1; if(n==1)head=p1; elsep2->next=p1; p2=p1; p1=newstudent; cin>>p1->num>>p1->name>>p1->dizhi»p1->dihua»p1->banji; } p2->next=NULL; return(head); } ///////////////////////////////////////////作为二进制储存和读出二进制文件 voidwrite_read() {student*p; studentstud[1OO]; n=0; for(p=head;p! =NULL;p=p->next) {stud[n].dizhi=p->dizhi; stud[n].dihua=p->dihua; stud[n].banji=p->banji; stud[n].name=p->name; stud[n].num=p->num; n++; } ofstreamoutfile("student.dat",ios: : binary); if(! outfile) {cerr<<"openerror...."< 〃开辟新 0****就停止录入(*为任 //循环输入的作用 //开辟新单元, //输入数据 〃p2指向最后 abort(); for(inti=O;i outfile.write((char*)&stud[i],sizeof(stud[i]));outfile.close(); ifstreaminfile("student.dat",ios: : binary); if(! infile) {cerr<<"openerror...."< abort(); } for(intj=O;j infile.read((char*)&stud[i],sizeof(stud[i])); infile.close(); for(intk=O;k {cout<<"姓名: "< cout<<"学号: "< cout<<"地址: "< cout<<"电话: "< cout<<"班级: "< } } /////////////////////////////////////////////////////////////// voidexit() { 图形的输出 cout<<" 1 \n" II 1 \n" II 111 \n II 11 \n" n1 1 「\n" 1 n\n "1 AAAAA谢谢使用AAAAAAA I\n" "1 I\n" "1 偷得浮生半日闲 I\n" "1 I\n" "1 I\n" "1 丄\n"; ///////////////////////////////////////////////////////////////////////////////////////////////////// //输出链表 voidprint(student*head) {student*p; cout<<" student*del(student*head,longnum) {student*p1,*p2; if(head==NULL) {cout<<"此为空表"< while(num! =p1->num&&p1->next! =NULL) {p2=p1;p1=p1->next;} if(num==p1->num) {if(p1==head)head=p1->next; elsep2->next=p1->next; cout<<"删除"< n=n_1;} else cout<<"没有该同学数据! "< return(head); cout< //节点+1 查找学生 voidfind() {student*p; inta; cout<<"请输入想要找的学生的学号"< cin>>a; for(p=head;p! =NULL;p=p->next) {if(a==p->num) 地址地话 班级 {cout<<""< cout<<"学号姓名 "< cout<<""< cout< < < break; } else continue; } } ///////////////////////////////////////////////////////////////////////////////删除和添加的链表的多次执行的实现 voidlist() {inta; longdel_num; student*creat(void);〃输入学生数据 student*cunt_put(student*); student*del(student*,long); student*insert(student*,student*); voidprint(student*); cout<<""< head=creat(); print(head);//输出全部结点 cout<<"如果要删除学生资料请输入1,如果需要添加请输入2"< cin>>a; if(a==1) {cout<<"输入要删除学号"< cin>>del_num; while(del_num! =0) {head=del(head,del_num); print(head);//调用输出函数 cout<<"是否继续删除: 是(输入学号),不是(输入0)"< cin>>del_num; } } cout<<",往下执行就按任意数字"< cin>>a; if(a==2)//操作选择 {cout<<"输入要添加的就输入学号"< stu=newstudent;//开创新的空间 cin>>stu->num>>stu->name>>stu->dizhi»stu->dihua»stu->banji;//输入数据 while(stu->num! =0)//可以循 环删除,删除多个 {head=insert(head,stu);//调用添加函数 print(head);〃调用输 出函数 cout<<"如果需要添加请输入学号,无需添加输入0****就停止录入(*为任意字符)"< stu=newstudent; cin>>stu->num>>stu->name>>stu->dizhi»stu->dihua»stu->banji; } } cout< } /////////////////////////////////////////////////////////////////////////调用各个函数 voidswich() {inta; list();//删除和添加调用 cout<<"退出软件输入9直接查看学生资料输入10"< cin>>a; if(a==9) exit(); if(a=10) {for(intu=0;;u++) { cout<<"0按学号查某个学生的数据1查看成绩表3退出系统且读取二进制文 件"< intt; cin>>t; if(t==1) {print(head);continue; } if(t==3) {exit(); break; } if(t==0) {find();continue; } } } cout<<"读取二进制文件如下"< write_read(); } ////////////////////////////////////////////////////////密码实现 voidmima() {intn,m=1988825; for(intj=O;;j++) { cout<<"这是我的地盘,请输入密码: "< cin»n; if(m==n) {cout<<"恭喜你猜对了"< swich(); break; } else { cout<<"内有怪物,生人勿进! "< continue; } } } //////////////////////////////////////////////////主函数 intmain() {mima(); return0; } 五、测试文档 1、集成测试 集成测试将测试每一个部件之间的工作是否正常。 在这个阶段,我们 假设所有的单元已通过开发人员个人在单元测试阶段测试全部通过, 没有任何错误。 集成测试包括以下内容: 连续集成测试数据库测试数据整合测试 2、功能测试功能测试环境操作系统: windows98内存: 128M网络环境: 校园网本功能测试共分为: 系统功能测试测试是否可以正常添加用户和修改密码,系统正常退出测试是否可以正常对班级进行管理,学生的单个或成批添加,删除以及新生信息的导入和学生信息备份测试成绩管理中是否可以进行分数录入,汇总及排名和成绩备份等操作 测试课程信息模块中针对课程管理,老师和课程的关系之间操作是否正常 测试是否可以正常查询学生,老师和成绩 3、链接测试这一部分将测试系统各模块之间的超链接跳转是否正确 4、文档测试本章主要内容为: 测试文档是否包括全部内容测试软件功能描述与其他功能有没有冲突 查看软件功能描述是否是原来系统分析和需求 查看文档内容在特定的情况和进度下,以现有人力,物力和资源能否实现 5、负载测试 这一部分将测试正常情况下系统性能和用户数目之间的关系 本章主要内容为: 查看在多个用户同时使用本系统时是否正常 6、极限测试 这一部分将测试所有极端的情况,如速度非常快的情况下和速度非常慢的情况下,以及所有其它的极端情况。 本章主要内容为: 网络资源极限测试 综合极限测试 六、其它 简单的说明学籍管理系统数据库各数据表的结构如下。 (1)数据库名: studen。 (2)student表(学生信息表)如表1-1所示。 表1-1student表(学生信息表) 字段名称 类型 宽度 允许空值 主键 说明 sno char 8 NOTNULL 是 学生学号 sname char 8 NOTNULL 学生姓名 sex char 2 NULL 学生性别 native char 20 NULL 籍贯 birthday smalldate 4 NULL 学生出生日期 dno char 6 NULL 学生所在院系编号 (外键) spno char 8 NULL 专业代码(外键) classno char 4 NULL 班级号 entime smalldate 4 NULL 学生入校时间 home varchar 40 NULL 学生家庭住址 tel varchar 40 NULL 学生联系电话 (3)course表(课程信息表)如表1-2所示 表1-2course表(课程信息表) 字段名称 类型 宽度 允许空值 主键 说明 eno char 10 NOTNULL 是 课程编号 spno char 8 NULL 专业代码(外键) cname char 20 NOTNULL 课程名称 ctno tinyint 1 NULL 课程类型编号(外 键) experiment tinyint 1 NULL 实验时数 lecture tinyint 1 NULL 授课学时 semester tinyint 1 NULL 开课学期 credit tinyint 1 NULL 课程学分 (4)student_course表(学生选课成绩表)如表1-3所示。 表1-3student_course表(学生选课成绩表) 字段名称 类型 宽度 允许空值 主键 说明 sno char P8 NOTNULL 是 学生学号 tcid smallint 2 NOTNULL 是 上课编号 score tinyint 1 NULL 学生成绩 注意: 上课编号tcid是指teacher_cours&教师上课课表)中的tcid,而不是course表(课程信息表)中的课程编号eno。 (5)teacher表(教师信息表)如表1-4所示。 表1-4teacher表(教师信息表) 字段名称 类型 宽度 允许空值 主键 说明 tno char 8 NOT NULL 是 教师编号 tname char 8 NOTNULL 教师姓名 sex char 2 NULL 教师性别 birthday smalldate 4 NULL 教师出生日期 dno char 6 NULL 教师所在院系编号 (外键) pno tinyint 1 NULL 教师职务或职称编号 home varchar 40 NULL 教师家庭住址 zipcode char 6 NULL 邮政编码 tel varchar 40 NULL 联系电话 email varchar 40 NULL 电子邮件 (6)department表(院系信息表)如表1-5所示。 表1-5department表(院系信息表) 字段名称 类型 宽度 允许空值 主键 说明 dno char 6 : NOTNULL 是 : 院系编号 dname char 20 NOTNULL 院系名称 header char 8 NULL 院系负责人 addr varchar 40 NULL 院系办公地址 del varchar 40 NULL 联系电话 (7)user表(用户信息表)如表1-6所示。 表1-6user表(用户信息表) 字段名称 类型 宽度 允许空值 主键 说明 usrno char 8 NOTNULL 是 用户名 usrpwd char 8 NULL 密码 usrrights int 4 NOTNULL 操作权限 (8)speciality表(专业信息表)如表1-7所示。 表1-7speciality表(专业信息表) 字段名称 类型 宽度 允许空值 主键 说 明 spno char 8 NOTNULL 是 专业代码 dno char 6 NOTNULL 院系编号 (外键) spname char 20 NOTNULL 专业名称 (9)class表(班级信息表)如表1-8所示。 表1-8class表(班级信息表) 字段名称 类型 宽度 允许空值 主键 说明 classno char 4 NOTNULL 是 班级号 spno char 8 NOTNULL 是 专业代码 header char 8 NULL 班负责人 (10)teacher_course表(教师上课课表)如表1-9所示。 表1-9teacher_course表(教师上课课表) 字段名称 类型 宽度 允许空值 主键 说 明 tcid smallint 2 NOTNULL 是 上课编号 tno char 8 NULL 教师编号 (外键) spno char 8 NULL 专业代码 (外键) classno char 4 NULL 班级号 eno char 10 NOTNULL 课程编号 (外键) semester char 6 NULL 学期 schoolyear char 10 NULL 学年 classtime varchar 40 NULL 上课时间 classroom varchar 40 NULL 上课地点 weektim
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 管理 系统 设计 报告