学生学籍管理系统的设计报告.docx

上传人:b****0 文档编号:12550696 上传时间:2023-04-20 格式:DOCX 页数:25 大小:77.84KB
下载 相关 举报
学生学籍管理系统的设计报告.docx_第1页
第1页 / 共25页
学生学籍管理系统的设计报告.docx_第2页
第2页 / 共25页
学生学籍管理系统的设计报告.docx_第3页
第3页 / 共25页
学生学籍管理系统的设计报告.docx_第4页
第4页 / 共25页
学生学籍管理系统的设计报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

学生学籍管理系统的设计报告.docx

《学生学籍管理系统的设计报告.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统的设计报告.docx(25页珍藏版)》请在冰豆网上搜索。

学生学籍管理系统的设计报告.docx

学生学籍管理系统的设计报告

学生学籍管理系统的设计报告

一、需求分析

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。

计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。

为了适应现代社会人们高度强烈的时间观念,学籍管理系统软件将会为教学办公室带来了极大的方便。

学籍管理的繁索给具有强烈时间观念的人员带来了诸多不便,教学办公室缺少一种完善的学籍管理软件,为了对学生档案的管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,并在次基础上着手开发《学籍管理系统》软件。

二、概要设计

软件适用于教育界,对学生的学籍可以随时输入、输出、查找、修改。

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<num

<name

<dizhi<dihua<banjicout<<""<

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1