当前位置:文档之家› 远程网络教学系统

远程网络教学系统

while(p)
{
cout<<setw(6)<<p->id<<" "<<setw(10)<<p->name<<" "<<setw(10)<<p->outtime<<endl;
p=p->next;
}
}
Node* Link::getHead()
{
return head;
}
//类S,用于包装Link类及菜单操作
{
Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL
while(p)
{
if(p->id==nid)
break;
else
p=p->next;
}
return p;
}
void Link::linkView() //显示链表数据
{
Node *p=head;
cout<<setw(6)<<"课程编号"<<" "<<setw(10)<<"课程名称"<<""<<setw(10)<<"上传时间"<<endl;
3处理注册申请:系统管理员可以处理学生或教师用户的注册申请。
图2-1系统管理员子系统用例图
2.2本章小结
用例图描述系统外部的执行者与系统提供的用例之间的某种联系。所谓用例是指对系统提供的功能的一种描述。执行者是使用用例的人或外部系统,二者之间的联系描述了“谁使用哪个用例”。用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并指明该执行者是谁。在用例图中,椭圆表示用例,小人表示执行者。
{
p->next=(p->next)->next;
return true;
}
p=p->next;
}
return false;
}
void Link::linkClear() //清空链表
{
head=NULL;
}
Node* Link::linkFind(int nid) //查找id值为nid的结点,返回该结点的指针
};
Node::Node(int nid,string nname,string nnum,string nmark,string nfirm,int nouttime)
{
id=nid;
name=nname;
num=nnum;
mark=nmark;
firm=nfirm;
outtime=nouttime;
};
S::S()
{
Link();//调用成员对象的构造函数
SLoad();//从文件中读取数据,创建链表
k=false;//设置数据被修改
}
void S::SClear()
{
clink.linkClear();
cout<<"登陆成功!"<<endl;
}
void S::SInsert() //插入记录
UML及面向对象分析与设计
实训
题目:远程网络教学系统
子课题:系统管理员子系统
学号:
姓名:
班级:
教师:
江苏师范大学
计算机科学与技术学院
4.3创建系统管理员子系统状态图...................................................................................................................8
{
Node *p1;
if(!head)//链表为空的情况
head=newnode;
else if((head->id)>(newnode->id)) //插入到第一个结点的情况
{
newnode->next=head;
head=newnode;
}
else //插入到第二个及以后情况
{
p1=head;
while(1)
#include<sstream> //字符串输入输出流类、字符串缓冲区流类
#include<iomanip> //setw操作符域宽设置
using namespace std;
class Node//结点类,用于存放课程各种数据
{
public:
int id;
string name;
string num;
void SLoad();
void SSave();
void Exit();//退出程序
void showMenu();//显示菜单
void showMenu1();
void showMenu2();
void showMenu3();
void showTip();//显示操作提示
void doMenu(char n);//执行相应菜单项功能
bool linkDelete(int nid);//从链表中删除的结点
void linkClear();//清空链表中数据
void linkView();//查看链表中数据
Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针
Node* getHead();//获取头指针
图4-3
4.3
在网上教学管理系统中,有明确状态转换的类是页面更新,从用系统管理员的输入网站的地址开始到页面更新结束整个过程的状态图如下图4-4所示。
图4-4
4.4
在#include<iostream> //cin cout
#include<cstdlib>
#include<string>
#include<fstream> //文件输入输出流类、磁盘文件的流缓冲区类
(2)教师可以登陆网站给出课程见解、发布、修改和更新消息以及上传课件。
(3)系统管理员可以对页面进行维护、批准用户的注册申请和审批上传课件。
1.1.2
满足上述需求的系统主要包括下面几个模块
(1)数据库管理模块:提供使用者录入、修改并维护数据的途径。
(2)基本业务模块:教师可以上传文件、发布消息、修改和更新消息;学生可以下载文件;管理员可以维护页面,批准注册等。
if(clink.linkIsEmpty())//链表为空的情况
cout<<"没有课程记录!"<<endl;
else
{
cout<<"请输入要查找课程的编号:";
cin>>n;
p=clink.linkFind(n);//获得找到的结点的指针
if(p) //指针值不为NULL时

3.1
从前面的需求分析中,我们可以依据主要的五个类对象:页面、上传下载和系统管理员创建完整的类图如图3-1所示。
图3.1整体功能结构
3.3
系统静态模型是建立一个系统的根本。静态系统模型是指决定系统特性的因素不随时间推移而变化的系统模型。当然在现实世界中,不存在绝对静态的系统;静态系统的假定本身是对系统的一种简化。当系统对象的主要特征在我们所关心的时间段内不发生明显变化,或者发生的变化对系统的整体性质明显没有影响时,把一个系统看做是静态可能是一种明智的选择。静态系统模型一般而言,相对比较简单。建立静态系统模型的关键就是找到模型的平衡关系,并用模型表示出来。
cin>>i;
if(clink.linkDelete(i))
{
cout<<"成功删除编号为"<<i<<"的课程记录!"<<endl;
k=true;
}
else
cout<<"没有找到编号为"<<i<<"的课程!"<<endl;
}
}
void S::SFind() //查找某编号的课程记录
{
int n;
Node *p;
string mark;
string firm;
int outtime;
Node *next;
Node(int nid=0,string nname="noname",string nnum="0",string nmark="0",string nfirm="0",int nouttime=0);//构造函数,初始化变量
(3)信息浏览、查询模块:主要用于对网站的信息进行浏览、搜索查询。
图1.1系统功能需求
1.2
(1)教师信息管理:负责教师信息的管理。
(2)课程简介信息管理:负责课程简介信息的管理。
(3)文件上传信息管理:负责文件上传信息的管理。
图1.2数据库管理模块
1.3
图1.3基本业务模块
(1)文件上传:教师可以使用此模块将课程的数据上传到网站服务器。
(2)文件下载:学生可以使用此模块从网站上下载课件及其他资料。
(3)消息发布:教师可以通过此模块发布学习方法、课程重点等和教学相关的文章,以及和课程相关的通知等。
(4)消息修改和更新:教师可以通过此模块对自己发布的信息进行修改和更新。
(5)页面维护:网站管理员可以使用此模块对网站的页面进行维护。
相关主题