学生学籍管理系统的设计报告Word格式.docx
- 文档编号:17529056
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:22
- 大小:23.31KB
学生学籍管理系统的设计报告Word格式.docx
《学生学籍管理系统的设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统的设计报告Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
2.学生成绩管理功能
分数录入:
以班级为单位,录入各科目的期中、期末、总评成绩。
总分及名次:
计算指定班级学生的总分及名次。
补考成绩录入:
修改总评成绩,以决定最终补考人数。
成绩备份:
为指定班级及指定的学期数的学生成绩保存到备份数据库中。
3、课程信息管理功能
课程管理:
提供本学期各年级各专业所开课程名称的录入、修改、删除。
它是学生成绩管理的基础:
用以保证数据库中一致性原则。
4、查询功能。
学生信息查询:
根据用户的要求,查询学生数据库的所有可能的信息,其中包括成绩查询。
备份成绩查询:
按班级为单位查询备份数据库的学生信息,补考情况。
四、软件编码
#include<
iostream>
string>
iomanip>
fstream>
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<
<
"
按顺序输入学生的学号,姓名,地址,电话,班级,输入0****就停止录入(*为任意字符)"
<
endl;
cin>
>
p1->
num>
name>
dizhi>
dihua>
banji;
head=NULL;
while(p1->
num!
=0)//循环输入的作用
{n=n+1;
if(n==1)head=p1;
elsep2->
next=p1;
p2=p1;
p1=newstudent;
//开辟新单元,
cin>
//输入数据
}
p2->
next=NULL;
//p2指向最后
return(head);
///////////////////////////////////////////作为二进制储存和读出二进制文件
voidwrite_read()
{student*p;
studentstud[100];
for(p=head;
p!
=NULL;
p=p->
next)
{stud[n].dizhi=p->
dizhi;
stud[n].dihua=p->
dihua;
stud[n].banji=p->
stud[n].name=p->
name;
stud[n].num=p->
num;
n++;
ofstreamoutfile("
student.dat"
ios:
:
binary);
if(!
outfile)
{cerr<
openerror...."
abort();
for(inti=0;
i<
n;
i++)
outfile.write((char*)&
stud[i],sizeof(stud[i]));
outfile.close();
ifstreaminfile("
infile)
for(intj=0;
j<
j++)
infile.read((char*)&
infile.close();
for(intk=0;
k<
k++)
{cout<
姓名:
"
stud[k].name<
cout<
学号:
stud[k].num<
地址:
stud[k].dizhi<
电话:
stud[k].dihua<
班级:
stud[k].banji<
endl<
///////////////////////////////////////////////////////////////图形的输出
voidexit()
{
┃\n"
┏━━━━┻━━━━┓\n"
┃┃\n"
┏━━━━┻━━━━━━━━━┻━━━━┓\n"
┃^^^^^谢谢使用^^^^^^^┃\n"
┃┃\n"
┃偷得浮生半日闲┃\n"
┗━━━━━━━━━━━━━━━━━━━┛\n"
;
/////////////////////////////////////////////////////////////////////////////////////////////////////
voidprint(student*head)//输出链表
学生信息表"
p=head;
if(head!
=NULL)
学号姓名地址电话班级"
if(head!
do
setw(12)<
p->
num
setw(14)<
name
setw(10)<
dizhi
dihua
banji
p=p->
next;
}while(p!
=NULL);
////////////////////////////////////////////////////////////////////////删除链表
student*del(student*head,longnum)
{student*p1,*p2;
if(head==NULL)
{cout<
此为空表"
p1=head;
while(num!
=p1->
num&
&
p1->
next!
{p2=p1;
p1=p1->
if(num==p1->
num)
{if(p1==head)head=p1->
next=p1->
删除"
num<
n=n-1;
else
没有该同学数据!
/////////////////////////////////////////////////////////////////////////////链表的舔加
student*insert(student*head,student*stud)
{student*p0,*p1,*p2;
//P1指向第一个节点
p0=stud;
//要插入的节点
{head=p0;
p0->
}//是P0指向节点作为头
{while((p0->
num)&
(p1->
=NULL))
{p2=p1;
p1=p1->
if(p0->
{if(head==p1)head=p0;
else
p2->
next=p0;
p0->
}
else
{p1->
}//差如节点之后
n=n+1;
//节点+1
///////////////////////////////////////////////////////////////////////查找学生
voidfind()
inta;
请输入想要找的学生的学号"
a;
{if(a==p->
学号姓名地址地话班级"
banji
break;
continue;
///////////////////////////////////////////////////////////////////////////////删除和添加的链表的多次执行的实现
voidlist()
{inta;
longdel_num;
student*creat(void);
//输入学生数据
student*cunt_put(student*);
student*del(student*,long);
student*insert(student*,student*);
voidprint(student*);
head=creat();
print(head);
//输出全部结点
如果要删除学生资料请输入1,如果需要添加请输入2"
if(a==1)
输入要删除学号"
del_num;
while(del_num!
=0)
{head=del(head,del_num);
print(head);
//调用输出函数
是否继续删除:
是(输入学号),不是(输入0)"
往下执行就按任意数字"
if(a==2)//操作选择
输入要添加的就输入学号"
stu=newstudent;
//开创新的空间
stu->
while(stu->
=0)//可以循环删除,删除多个
{head=insert(head,stu);
//调用添加函数
//调用输出函数
如果需要添加请输入学号,无需添加输入0****就停止录入(*为任意字符)"
stu=newstudent;
/////////////////////////////////////////////////////////////////////////调用各个函数
voidswich()
list();
//删除和添加调用
退出软件输入9直接查看学生资料输入10"
if(a==9)
exit();
if(a=10)
{for(intu=0;
u++)
{
0按学号查某个学生的数据1查看成绩表3退出系统且读取二进制文件"
intt;
t;
if(t==1)
{print(head);
continue;
}
if(t==3)
{exit();
if(t==0)
{find();
读取二进制文件如下"
write_read();
////////////////////////////////////////////////////////密码实现
voidmima()
{intn,m=1988825;
j++)
这是我的地盘,请输入密码:
if(m==n)
{cout<
恭喜你猜对了"
swich();
内有怪物,生人勿进!
//////////////////////////////////////////////////主函数
intmain()
{mima();
return0;
五、测试文档
1、集成测试
集成测试将测试每一个部件之间的工作是否正常。
在这个阶段,我们假设所有的单元已通过开发人员个人在单元测试阶段测试全部通过,没有任何错误。
集成测试包括以下内容:
连续集成测试
数据库测试
数据整合测试
2、功能测试
功能测试环境
操作系统:
windows98
内存:
128M
网络环境:
校园网
本功能测试共分为:
系统功能测试
测试是否可以正常添加用户和修改密码,系统正常退出
测试是否可以正常对班级进行管理,学生的单个或成批添加,删除以及新生信息的导入和学生信息备份
测试成绩管理中是否可以进行分数录入,汇总及排名和成绩备份等操作
测试课程信息模块中针对课程管理,老师和课程的关系之间操作是否正常
测试是否可以正常查询学生,老师和成绩
3、链接测试
这一部分将测试系统各模块之间的超链接跳转是否正确
4、文档测试
本章主要内容为:
测试文档是否包括全部内容
测试软件功能描述与其他功能有没有冲突
查看软件功能描述是否是原来系统分析和需求
查看文档内容在特定的情况和进度下,以现有人力,物力和资源能否实现
5、负载测试
这一部分将测试正常情况下系统性能和用户数目之间的关系
查看在多个用户同时使用本系统时是否正常
6、极限测试
这一部分将测试所有极端的情况,如速度非常快的情况下和速度非常慢的情况下,以及所有其它的极端情况。
本章主要内容为:
网络资源极限测试
综合极限测试
六、其它
简单的说明学籍管理系统数据库各数据表的结构如下。
(1)数据库名:
student。
(2)student表(学生信息表)如表1-1所示。
表1-1student表(学生信息表)
字段名称
类型
宽度
允许空值
主键
说明
sno
char
8
NOTNULL
是
学生学号
sname
学生姓名
sex
2
NULL
学生性别
native
20
籍贯
birthday
smalldate
4
学生出生日期
dno
6
学生所在院系编号(外键)
spno
专业代码(外键)
classno
班级号
entime
学生入校时间
home
varchar
40
学生家庭住址
tel
学生联系电话
(3)course表(课程信息表)如表1-2所示。
表1-2course表(课程信息表)
cno
10
课程编号
cname
课程名称
ctno
tinyint
1
课程类型编号(外键)
experiment
实验时数
lecture
授课学时
semester
开课学期
credit
课程学分
(4)student_course表(学生选课成绩表)如表1-3所示。
表1-3student_course表(学生选课成绩表)
tcid
smallint
上课编号
score
学生成绩
注意:
上课编号tcid是指teacher_course(教师上课课表)中的tcid,而不是course表(课程信息表)中的课程编号cno。
(5)teacher表(教师信息表)如表1-4所示。
表1-4teacher表(教师信息表)
tno
教师编号
tname
教师姓名
教师性别
教师出生日期
教师所在院系编号(外键)
pno
教师职务或职称编号
教师家庭住址
zipcode
邮政编码
联系电话
电子邮件
(6)department表(院系信息表)如表1-5所示。
表1-5department表(院系信息表)
院系编号
dname
院系名称
header
院系负责人
addr
院系办公地址
del
(7)user表(用户信息表)如表1-6所示。
表1-6user表(用户信息表)
usrno
用户名
usrpw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 管理 系统 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)