1. 首页 > 笙耀百科 >

学分管理系统任务书 学分管理系统课程设计

哎、老大、你该不会让帮你写毕业试题吧!!!不过帮你分析一下吧!!我也是新手!!!1、首先创建数据库(以为你的需求较少不用写项目文档了直奔主题好了)学生表(Students)学分表(Score)学科表(Greade)估计这三个就够用了(不够你在添加、、)2、(使用JSP完成)创建页面(根据你的需求创建吧)以及导入数据库驱动、、、3、数据库连接类、实体类、Dao类、业务类!4、你的录入,查、修改、分别用1、insertinto(表名)values(列值)2、select*(或列名)from表名where=?;3、delete*from表名where=?;4、关于页面的验证你在创建jsp页面时,添加javascript进行验证就行了!!四、到此分析完了说实话、这项目不难、朋友如果你动手的话,也就三四个小时就K.O了!!学习要肯动手!!!加油啊!!!傍晚快乐!选我吧!Thanks

学分管理系统任务书 学分管理系统课程设计学分管理系统任务书 学分管理系统课程设计


一.XX学院学生管理系统。

要求:①学生基本情况

②学生成绩管理

③学生综合测评,奖学金名单

④各班班委组成,院系学生会组成

⑤学生宿舍、电话查询

二.图书管理信息系统。

要求:①读者分类以及读者信息管理,可以添加、修改、删除读者种类,可以添加、修改、删除、查询读者信息。

②书籍分类以及书籍信息管理,可以添加、修改、删除书籍类别,可以添加、修改、删除、查询书籍信息。

③借书信息管理,可以进行添加、修改、删除、查询借书信息。

④还书信息管理,可以进行添加、修改、查询还书信息,并对超过借书时间作出相应惩罚。

步骤与方法:

1.绘制业务流程图,并进行功能数据分析,绘制新系统的数据流程图,编制数据字典,对较为复杂的处理逻辑编写处理逻辑说明。

2.绘制功能结构图。

3.进行代码设计

4.进行输入、输出设计

5.进行文件及数据库设计

6.编写程序设计说明书

#include

#include

#include

#include

#include

#include

#define null '\0'

int shoudsave=0;

struct student /*声明一个结构体类型struct student*/

{char clas[20]; /*定义成员班级号*/

char name[20]; /*定义成员学生姓名*/

char classnum[20]; /*定义成员学生学号*/

float basis; /*定义成员基础学分*/

float major; /*定义成员专业学分*/

float elective; /*定义成员选修学分*/

float humanity; /*定义成员人文学分*/

float laboratory; /*定义成员实验学分*/

float sum; /*定义成员学分总和*/

float average; /*定义成员平均学分*/

};

typedef struct node /*声明一个节点类型struct node*/

{struct student data; /*定义节点数据*/

struct node *next; /*定义节点指针*/

}Node,*Link;

void menu1() /*输出系统名称及简介*/

{printf("\n 学生学分管理系统 \n");

printf("********************************************************************************");

printf("说明:本系统旨在帮助师生方便,快捷地统计,管理学分。您可以进行输入,修改,查看,排序等操作,界面清爽,操作简单,欢迎您的使用。\n");

printf("********************************************************************************");

}//menu1

void menu2() /*输出主菜单*/

{printf(" 菜 单 \n");

printf("\t\t0:退出本次登入\t\t\t5:清除屏幕内容\n");

printf("\t\t1:输入学生信息\t\t\t6:修改学生学分\n");

printf("\t\t2:删除学生信息\t\t\t7:显示学生学分\n");

printf("\t\t3:查询学生学分\t\t\t8:统计学生信息\n");

printf("\t\t4:排序学生学分\t\t\t9:保存学生学分\n");

}//menu2

void menu3() /*输出排序菜单,供void sort(Link l)函数调用*/

{printf("\n\t\tA:基础学分\t\t\tB:专业学分\n");

printf("\t\tC:选修学分\t\t\tD:人文学分\n");

printf("\t\tE:实验学分\t\t\tF:学分总和\n");

printf("\t\tG:平均学分\t\t\t\n");

printf("\n请选则您要排序的课程代码:");

}//menu3

void menu4() /*输出菜单上下限制符*/

{printf("================================================================================");

}//menu4

void title() /*输出显示菜单,供void display(Link l)函数调用*/

{printf(" 班级\t学号\t姓名\t基础\t专业\t选修\t人文\t试验\t总分\t平均\n");

}//title

void data(Node *p,char find[]) /*输出按姓名查找的结果,供void search(Link l)函数调用*/

{if(strcmp(p->data.name,find)==0)

printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);

}//data

void data1(Node *p) /*输出按学号查找的结果,供void search(Link l)函数调用*/

{printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);

}//data1

void data2(Node *p,char find[]) /*输出按班级查找的结果,供void search(Link l)函数调用*/

{if(strcmp(p->data.clas,find)==0)

printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);

}//data2

Node* Locate(Link l,char find[],char match[]) /*查找匹配函数定义,该函数用于定位链表中符合要求的节点,并返回该指针*/

{Node *r; /*定义节点指针r*/

if(strcmp(match,"classnum")==0) /*按学号查询*/

{r=l->next; /*初始化r,指向第一个节点*/

while(r!=NULL) /*r非空*/

{if(strcmp(r->data.classnum,find)==0) /*查询成功*/

return r;

r=r->next; /*节点后移*/

} //while

} //if

else if(strcmp(match,"name")==0) /*按姓名查询*/

{r=l->next; /*初始化r,指向第一个节点*/

while(r!=NULL) /*r非空*/

{if(strcmp(r->data.name,find)==0) /*查询成功*/

return r;

r=r->next; /*节点后移*/

} //while

} //else if

else if(strcmp(match,"clas")==0) /*按班级号查询*/

{r=l->next; /*初始化r,指向第一个节点*/

while(r!=NULL) /*r非空*/

{if(strcmp(r->data.clas,find)==0) /*查询成功*/

return r;

r=r->next; /*节点后移*/

}//while

}//else if

return 0;

}//Locate

void input(Link l) /*输入函数定义,用于增加学生信息*/

{char clas[10];

Node *r,*p; /*定义节点r和p*/

r=l; /*将r指向头结点*/

while(r->next!=NULL)

r=r->next; /*将指针置于最末尾*/

while(l)

{printf("\n友情提示:输入'#'返回上一菜单\n");

printf("\n输入学生的班级号:");

scanf("%s",clas);

if(strcmp(clas,"#")==0)

break;

p=(Node *)malloc(sizeof(Node)); /*生成新的节点*/

strcpy(p->data.clas,clas); /*将clas字符串复制到p->data.clas中*/

printf("输入学生的学 号:");

scanf("%s",&p->data.classnum);

getchar();

printf("输入学生的姓 名:");

scanf("%s",&p->data.name);

getchar();

printf("输入学生的基础分:");

scanf("%3.1f",&p->data.basis);

getchar();

printf("输入学生的专业分:");

scanf("%3.1f",&p->data.major);

getchar();

printf("输入学生的选修分:");

scanf("%3.1f",&p->data.elective);

getchar();

printf("输入学生的人文分:");

scanf("%3.1f",&p->data.humanity);

getchar();

printf("输入学生的实验分:");

scanf("%3.1f",&p->data.laboratory);

getchar();

p->data.sum=p->data.basis+p->data.major+p->data.elective+p->data.humanity+p->data.laboratory; /*计算学分总和*/

p->data.average=p->data.sum/5; /*计算平均学分*/

p->next=NULL; /*p节点的下一个节点为空*/

r->next=p; /*节点前移*/

r=p;

}//while

}//input

void delet(Link l) /*删除函数定义*/

{char find[10];

Node *p,*r; /*定义节点r和p*/

if(!l->next) /*删除位置不合理*/

{ printf("\n\a对不起,无信息可删除!");

printf("\n");

return;

}//if

printf("\n请输入要删除学生的学号:");

scanf("%s",find);

p=Locate(l,find,"classnum");

if(p)

{ r=l; /*r指向头结点*/

while(r->next!=p) /*r的下一个节点不是p,一直循环*/

r=r->next; /*顺指针向后查找,直到r指向p的前一个节点*/

r->next=p->next; /*删除节点p*/

free(p); /*释放节点p*/

printf("\n\a系统提示:信息删除成功!\n");

shoudsave=1; /*保存资料*/

}//if

else

{ printf("\n\a对不起,无信息可删除!");

printf("\n");

}//else

}//delet

void search(Link l) /*查询函数定义*/

{char temp; /*定义单字符temp*/

char find[10]; /*定义字符串find[]*/

Node *p; /*定义节点p*/

if(!l->next)

{printf("\n\a对不起,无信息可查询!");

printf("\n");

return;

}//if

printf("\n\t\t1:按学号查询\t 2:按姓名查询\t 3:按班级查询\n");

printf("\n请输入您要查询的方式:");

scanf("%s",&temp);

if(temp!='1' && temp!='2' && temp!='3')

printf("\n\a\a系统提示:您输入错误!\n");

else if(temp=='1')

{printf("\n请输入要查询的学号:");

scanf("%s",find);

p=Locate(l,find,"classnum"); /*按学号进行查找匹配*/

}//else if

else if(temp=='2')

{printf("\n请输入要查询的姓名:");

scanf("%s",find);

p=Locate(l,find,"name"); /*按名字进行查找匹配*/

}//else if

else if(temp=='3')

{printf("\n请输入您要查询的班级:");

scanf("%s",find);

p=Locate(l,find,"clas"); /*按班级号进行查找匹配*/

}//else if

if(p)

{printf("\n ==============>查询结果<==============\n");

menu4();

title();

if(temp=='1')

data1(p); /*输出按学号查找的结果*/

else if(temp=='2')

while(p)

{data(p,find); /*输出按名字查找的结果*/

p=p->next; /*节点后移*/

}//while

else if(temp=='3')

while(p)

{data2(p,find); /*输出按班级号查找的结果*/

p=p->next; /*节点后移*/

}//while

menu4();

}//if

else

{printf("\n\a对不起,无信息可查询!");

printf("\n");

}//else

}//search

Link sortH(Link l,char ch) /*分类排序函数定义*/

{Node *p,*q,*wei,*s,*p1; /*定义节点p,q,wei,s,p1*/

wei=NULL; /*将尾节点置空*/

char temp;

temp=ch;

if(!l->next)

{printf("\n\a对不起,无信息可排序!");

printf("\n");

return 0;

}//if

while(l->next!=wei)

{p=l;

q=p->next;

while(q->next!=wei)

{if(temp=='A') /*按基础学分由高到低进行排序*/

{if(p->next->data.basisnext->data.basis)

{s=q->next;

p->next=q->next;

q->next=q->next->next;

p->next->next=q;

q=s;

}//if

}//if

else if(temp=='B') /*按专业学分由高到低进行排序*/

{if(p->next->data.majornext->data.major)

{s=q->next;

p->next=q->next;

q->next=q->next->next;

p->next->next=q;

q=s;

}//if

}//else if

else if(temp=='C') /*按选修学分由高到低进行排序*/

{if(p->next->data.electivenext->data.elective)

{s=q->next;

p->next=q->next;

q->next=q->next->next;

p->next->next=q;

q=s;

}//if

}//else if

else if(temp=='D') /*按人文学分由高到低进行排序*/

{if(p->next->data.humanitynext->data.humanity)

{s=q->next;

p->next=q->next;

q->next=q->next->next;

p->next->next=q;

q=s;

}//if

}//else if

else if(temp=='E') /*按实验学分由高到低进行排序*/

{if(p->next->data.laboratorynext->data.laboratory)

{s=q->next;

p->next=q->next;

q->next=q->next->next;

p->next->next=q;

q=s;

}//if

}//else if

else if(temp=='F') /*按学分总和由高到低进行排序*/

{ if(p->next->data.sumnext->data.sum)

{s=q->next;

p->next=q->next;

q->next=q->next->next;

p->next->next=q;

q=s;

}//if

}//else if

else if(temp=='G') /*按平均学分由高到低进行排序*/

{if(p->next->data.averagenext->data.average)

{s=q->next;

p->next=q->next;

q->next=q->next->next;

p->next->next=q;

q=s;

}//if

}//else if

p=p->next;

q=q->next;

}//while

wei=q;

}//while

p1=l->next;

printf("\n ==============>排序结果<==============\n");

menu4();

if(temp=='A') /*输出按基础学分排序的结果*/

{ printf("\t\t\t班级\t学号\t姓名\t基础学分\n");

while(p1)

{printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.basis);

p1=p1->next;

}//while

}//if

if(temp=='B') /*输出按专业学分排序的结果*/

{printf("\t\t\t班级\t学号\t姓名\t专业学分\n");

while(p1)

{printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.major);

p1=p1->next;

}//while

}//if

if(temp=='C') /*输出按选修学分排序的结果*/

{printf("\t\t\t班级\t学号\t姓名\t选修学分\n");

while(p1)

{printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.elective);

p1=p1->next;

}//while

}//if

if(temp=='D') /*输出按人文学分排序的结果*/

{printf("\t\t\t班级\t学号\t姓名\t人文学分\n");

while(p1)

{printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.humanity);

p1=p1->next;

}//while

}//if

if(temp=='E') /*输出按实验学分排序的结果*/

{printf("\t\t\t班级\t学号\t姓名\t实验学分\n");

while(p1)

{printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.laboratory);

p1=p1->next;

}//while

}//if

if(temp=='F') /*输出按学分总和排序的结果*/

{printf("\t\t\t班级\t学号\t姓名\t学分总和\n");

while(p1)

{printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.sum);

p1=p1->next;

}//while

}//if

if(temp=='G') /*输出按平均学分排序的结果*/

{printf("\t\t\t班级\t学号\t姓名\t平均学分\n");

while(p1)

{printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.average);

p1=p1->next;

}//while

}//if

printf("\n");

menu4();

printf("\n");

return l;

}//sortH

void sort(Link l) /*排序函数定义*/

{menu3();

char temp;

scanf("%s",&temp);

switch(temp) /*对要排序的类别进行选择*/

{case 'A':sortH(l,'A');break;

case 'B':sortH(l,'B');break;

case 'C':sortH(l,'C');break;

case 'D':sortH(l,'D');break;

case 'E':sortH(l,'E');break;

case 'F':sortH(l,'F');break;

case 'G':sortH(l,'G');break;

default:printf("\n\a\a系统提示:您输入错误!\n");getchar();break;

}//switch

}//sort

void modify(Link l) /*修改函数定义*/

{char temp;

char find[10];

Node *p; /*定义节点p*/

if(!l->next)

{printf("\n\a\a对不起,无信息可修改!");

printf("\n");

return;

}//if

printf("\n\t\t1:按学号修改\t 2:按姓名修改\n");

printf("\n请输入您要修改的方式:");

scanf("%s",&temp);

if(temp!='1'&&temp!='2')

{printf("\n\a\a系统提示:您输入错误!\n");

return;

}//if

else if(temp=='1') /*按学号修改*/

{printf("请输入要修改的学号:");

scanf("%s",find);

p=Locate(l,find,"classnum"); /*按学号查找匹配*/

}//else if

没有空间了 邮箱给我 发你邮箱去

以上回答你满意么?

#include

using namespace std;

typedef struct Element{

Element* next;

int value;

}Element,*Link,*Position;

class SortedUnion

{private:

Link sorted_link;

public :

SortedUnion()

{//创建单链表的头节点

sorted_link = (Link)malloc(sizeof(Element));

sorted_link->next = NULL;

}void addValue(int value)

{Position pos = insertPosition(value);

if(pos!=NULL)

{Link tmp = (Link)malloc(sizeof(Element));

tmp->value = value;

tmp->next = pos->next;

pos->next = tmp;

}}

void deleteValue(int value)

{Position pos,pre=sorted_link;

for(pos=sorted_link->next; pos; pos=pos->next)

{if(pos->value == value)

{pre->next = pos->next;

free(pos);

break;

}pre = pos;

}}

Position insertPosition(int value)

{Position pos;

for(pos = sorted_link; pos->next; pos=pos->next)

{if(pos->next->value > value)

break;

if(pos->next->value == value)

return NULL;

}return pos;

}void print()

{Link ptr;

for(ptr=sorted_link; ptr->next; ptr=ptr->next)

cout << ptr->next->value << " ";

}friend SortedUnion Intersection(SortedUnion A, SortedUnion B)

{SortedUnion C;

Position posA = A.sorted_link->next, posB = B.sorted_link->next;

while(posA && posB)

{if(posA->value < posB->value)

posA = posA->next;

else if(posB->value < posA->value)

posB = posB->next;

else{

C.addValue(posA->value);

posA = posA->next;

posB = posB->next;

}}

return C;

}};

int main()

{SortedUnion u1,u2,u3;

u1.addValue(2);

u1.addValue(3);

u1.addValue(1);

u1.addValue(4);

u2.addValue(1);

u2.addValue(2);

u3 = Intersection(u1, u2);

u3.print();

}

没法传图,自己想一下怎么改吧……

一.开发目的:

总结软件开发过程中的方法和技巧,更好的应用和数据库技术

1.开发内容:开发一套学生成绩管理系统软件

采取的研究方法:采用面向对象的编程,结合网络和数据库技术,实现控制和管理。通过系统分析、需求分析、概要设计、详细设计、编写代码、软件测试、软件维护、经验方法总结等一系列实验方案,实验软件的开发。

2.具体开发方案:

分七个阶段进行:

系统分析、需求收集和分析

概念设计

第一阶段:系统分析、需求收集和分析

这一阶段首先进行系统分析,分析确定系统的规模和范围,确定软件的总体要求以及所需要的硬件和支撑软件,确定待开发软件与外界的接口,根据用户的情况确定软件对操作的要求,以及待开发软件总体上的约束和限制,完善项目计划。

在这之后,这一阶段的大部分时间将被用来进行需求收集和分析。向学校管理人员及学生了解情况,确定软件系统的综合要求,分析软件系统的数据要求,导出系统的逻辑模型,修正项目开发计划。

采用结构化分析方法,生成数据流图、数据词典及加工逻辑说明。

估计阶段跨度:2006年某月初至某月中旬

第二阶段:概要设计

在这一阶段将确定软件系统的结构,对全局数据结构进行设计,进行模块划分,确定每个模块的功能 接口以及模块间的调用关系。

采用与结构化方法衔接的结构化设计方法,生成结构图及概念设计说明书。

估计阶段跨度:2006年某月中旬至某月底

第三阶段:详细设计

为每个模块设计实现的细节将成为这个阶段的主要任务,还要对局部数据结构进行设计。

采用结构化设计方法。采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。使得程序具有良好的结构,增强程序的可读性。生成程序流程图及详细设计说明书。

详细设计时,如果不满意,须回到概要设计中重新完善设计。

估计阶段跨度:2006年某月初至某月中旬

第四阶段:编写代码

这一阶段用来根据详细设计说明书编写代码。

采用计算机语言编写。追求高质量的代码,生成源程序代码、内部文档。

估计阶段跨度:2006年某月中旬至某月底

第五阶段:软件测试

这将是一个很重要也将是一个很耗时间和精力的阶段。

在这一阶段中将尽可能多地发现软件中的错误和缺陷。如果有错,还将退回到编码阶段进行调试。测试过程分为单元测试、集成测试和确认测试。

估计阶段跨度:2006年某月初至某月中旬

第六阶段:完善各项文档及和报告,从整个开发过程和这些文档中总结经验和教训,罗列各种方法和技巧。

估计阶段跨度:2007年某月中旬至某月底。

需求分析说明书

一,引言

21世纪以高科技为核心的知识经济将占主导地位,国家的综合国力和国际竞争力将越来越取决于科学技术创新水平。教育作为知识创新、传播和应用的基础,培养和输送人才的摇篮,已经成为经济发展和社会进步的基础。尽管人类进步的程度随着不同时代,不同地区而有所变化,教育的口径却在不断扩宽,以便使过去仅供少数人使用的教育资源能够为更多各种年龄、不同社会阶层和背景的人们所用。在信息爆炸的时代,传统教学管理面临着诸多挑战。

1.编写目的:

开发基于互联网的学生选课系统,提高管理工作的效率、提高信息的开放性、改善学生和教师对其最新信息查询的准确性。

2.背景说明

随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的体育课信息管理系统来提高管理工作的效率。基于互联网的学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。

3.术语定义及参考资料

1. (美) Grady Booch,James Rumbaugh,Ivar Jacobson,《UML用户指南》,机械工业出版社,2001年8月

2.Microsoft,MSDN

3.Microsoft, SQL Server2000联机手册

4.Roger S. Pressman。软件工程——实践者的研究方法。机械工业出版社,1997

5.IPL。Software Testing and Software Development Lifecycles。IPL,1996

6.Karl E. Wiegers《软件需求》机械工业出版社,1999

7.张海藩《软件工程导论》清华大学出版社。

4任务概述

4.1. 目标

系统开发的总体任务是实现学生选课信息关系的系统化、规范化和自动化。

4.2. 系统技术

学生选课系统要求具有信息处理的开发性,方便教师上传学生成绩、学生上网选课和查询选课信息及成绩等,因此本系统设计为基于WWW的网络数据库应用系统,使用ASP脚本以Access为数据库的开发技术,运行在支持ASP的服务器上。

4.3基本设计概念和处理流程

采用基于SQL Server 的分布式数据库管理系统。三层结构是目前用得最多的,这种结构比传统的C/S结构增加了一个应用程序服务器,应用程序服务器包括了统一的界面、业务规则和数据处理逻辑等等,这样客户端程序就可以做得比较小,也就是常说的瘦客户,更由于业务规则和数据处理逻辑的集中在服务器上统一管理,客户端无须进行复杂的计算,也不会因为错误的操作而影响到其他的用户,所以他的可靠性、稳定性和效率都比较好。

4.4. 用户的特点

为保证系统安全高效的运行,本系统把用户划分为3类:教务处、教师和学生。不同的用户在系统中的作用和权限也有所不同,所以它所需要完成的功能也就不同。

教务处可以完成本系统所有的功能:

1) 学生信息管理,除学生基本信息外,还可管理学生所选课程、成绩等;

2) 教师信息管理,包括教师个人的基本情况和任课情况;

3) 项目及班数的设定:根据学校教务处所排课进行班级数及人数的统计,然后根据统计结果进行项目及班数的设定;

4) 排课:根据上一步分班情况安排任课教师;

5) 报表生成及输出:生成教师担任课程分班表、按项目生成学生成绩表、按学生行政班生成成绩表及所有报表的输出。

教师在本系统的功能:查询学生选课情况、自己任课情况、获取自己所担任课程分班表、录入及修改成绩等。

学生在本系统的功能:查询本人信息、教师任课信息、选课、选课信息查询、成绩查询。

5.需求规定

5.1. 对功能的规定

1.可实现学生选课注册

2.方便实现学生选课信息查询

3.可对学生成绩档案进行管理,成绩表单生成简便。

4.安全有效的用户区分,管理

5.档案数据的高安全性,保密性

6.有帮助文档

5.2. 对性能的规定

使用稳定,操作性能好,操作方法易于掌握,系统的安全性强

6. 设计思想

用户的需求具体表现在对各种信息的提供、编辑、处理及查询统计上。这就要求数据库结构能充分满足各种信息的输入、处理和输出。通过分析学生选课管理系统的现实需求,学生选课管理系统各环节的基本数据及数据处理流程,在与管理人员沟通、交流与探讨的基础上,得到以下学生选课系统的数据流程图

6.1. 数据库的设计

通过对学生选课管理系统工作内容和相关数据流程分析,根据学生选课管理系统的需要,就可以设计出能满足用户需求的各种实体,以及它们之间的关系,由此得到数据库所支持的数据模型,即数据库的逻辑结构,具体情况如下:

1.学生信息表:开学时将教务处提供的学生信息库按系统的要求修改库结构并导入Access数据库中,应包括如下信息:姓名、学号、院系、班级、性别、所选课程、任课教师、备注等。

2.教师信息表:包括教师姓名、教师代码、性别、年龄、职称、主要教授课程、兼任课程等。

3.课程信息:包括课程目录、课程、课程代码、教学内容、任务与目的、考试方法、要求等。

4.课程表:包括课程名称、课程编号、任课教师、课程学分、上课时间。

5.成绩单列表:包括学生姓名、学号、院系、班级、课程、任课教师、成绩。

6.2. 系统功能特点

1.内容全面 系统全面覆盖了体育课信息,可为学校、教师和学生提供全面准确的信息。

2.层次分明 系统采用模块化程序设计结构。各模块之间既相互独立,又具有一定的联系,各模块可独立编制、调试、查错、修改和执行,结构严谨,便于扩展和维护。

7.系统需求分析

说明:

学校每年新生入学,毕业生离校和各种其它变动,如学籍变动,个人信息修改。每学期学校者要开设一定的课程提供给学生根据自己的情况来选择,最后的选择结果要给出学生的课程表。如何有效的管理这些学生信息,帮助学校和老师管理和掌握这些情况,这就是学生信息管理系统需要完成的任务。下面用软件工程的思想和方法完成该系统的设计过程。

功能:

个人信息查询和修改,包括流动,注册,更新管理

可行性研究报告

1. 编写目的

编写这份可行性研究报告的目的是让读者能够了解本系统的开发可行性。预期的读者包括上级领导,相关开发人员以及管理人员。

一.可行性研究的前提

随着科学技术的进步和社会经济的发展,计算机在现实生活中扮演越来越重要的角色,PC机价格不断的下降和生活水平的提高使得更多的中国家庭能够拥有自己的改变世界的机器,与此同时,我们也已经注意到,在大学校园里,越来越多的计算机已经进入同学们的宿舍,成为他们学习,生活中的一部分。

学生成绩管理方面,进入了信息化时代,我们有能力让我们的生活变的更好,对于学生成绩管理人员每日繁重的工作可以通过计算机来进行缓解,以实现管理自动化,工作人员对资料的管理,信息的发布,用电安全的控制均是人工作业,运作效率较低。因此,建立一个自动化的管理服务的计算机应用软件是十分必要的

1.1 要求,传感器,SQL.

1.2 目标

能够快速的查询出学生的各科成绩以及所在班级等各种用途。

1.3 进行可行性研究的方法

对学生和校领导采用问卷调查的方法,询问他们,以确定最佳的可行性研究方案。软件采用现代流行WINDOWS操作界面。是标准的WIN32应用程序,可运行在WIN95\WIN98\WinMe\WIN2000\WINXP\WINNT等系统平台上的多任务应用程序。在运行时可以直观的浏览、查询和掌握学生的成绩,同时能够了解学生的基本信息所在系部、班级、宿舍的具体地址。结束了人工统计的耗时长、工作量大、错误率高的缺点。

1.4 评价尺度

1. 是否功能齐全,运行稳定。2.在网络功能方面是否方便管理。3.设置是否灵活开4.是否具有多任务,高效率的特点。5.是否具有界面友好,操作简单的特点。

2 处理流程和数据流程

2. 所建议的系统

2.1 对所建议系统的说明

我们所建议的系统为学生成绩管理系统。它是为了提高学生成绩管理的自动化程度而开发的。它可以解决一下问题:改变学生成绩输入的麻烦以及查询工作量大的问题还有输出的不便。

3.影响

3.1 对设备的影响

由于以前无自动化管理的方案,所以所有设备都需要购买。

3.2.对软件的影响

由于以前无自动化管理的方案,所以不需要考虑对现存应用软件合支持软件的影像。

3.3.对用户单位机构的影响

为了建立和运行所建议系统,需要提高管理人员的技术水平。

3.4.对系统运行过程的影响

所建议系统没有影响运行过程。

3.5.对开发的影响

所建议系统对软件开发人员要求不高,但是对硬件要求比较高。

3.6.对地点和设施的影响

所建议系统对建筑物无改造,可以利用原有的通信线路。

3.7 技术条件方面的可能性

本软件有计算机系的学生开发,调试,由计算机系老师知道。可完成性很高。

4. 可选择的其他系统方案

由于此系统方案是学生开发,而且资金有限所以暂时无其他系统方案。

5. 投资及效益分析

5.1 支出分析:

5.2 收益分析:

5.3 收益/投资比

5.4 投资回收周期

5.5 敏感性分析

6. 社会因素方面的可能性

所有软件都选用正版。

所有技术资料都由提出方保管。

合同制定确定违约责任。

7.用户使用可行性

由于学校的老师都有一定的计算机基础,不用培训就可以使用,所以用户使用可行性通过。

8. 结论

通过上述分析可以知道这个软件操作简单、功能齐全、功能开放、运行稳定、多任务、高效率等特点。所以说是计算机与学生成绩管理上的好软件!

设计说明书

一.概要设计说明书

1.系统功能设计

2.数据库概念设计

根据以上数据流图导出数据库所需数据项和数据结构

学生:学号,姓名,性别,生日,所在院系,所在班级:

课程:课程号,课程名,讲师,上课时间,地点,课程简介

选课结果:记录号,选课学生,所选课程

学籍变更记录:记录号,变更情况,记录时间,详细描述

2.1数据库概念结构设计的E-R 图

说明:E-R图中矩形代表实体,菱形代表实体间的联系,圆角矩形代表实体的属性

2.2数据库逻辑结构设计

根据以上E-R图,需要五个基本表:学生信息表、课程信息表、选课结果表、奖惩信息表、其中教师信息是处部表,不列出,由于使用打开系统的不光是教务人员,每个学生都要登录到选课系统进行课程的选择,因此,需要对不同的登录人员进行密码的认证和权限的限制,防止越权行为,用户名,密码,权限,保存在一个表中。

1. USER-PASS用户密码信息表字典

字段名

数据类型

是否可空

说明

ID

CHAR

NOT NULL

用户名(主键)

PASSWORD

CHAR

NOT NULL

密码

AUTHORITY

CHAR

NOT NULL

权限

2. COURSE课程信息表数据字典

字段名

数据类型

是否可空

说明

ID

CHAR

NOT NULL

课程号(主键)

NAME

VARCHAR

NULL

课程名

TEACHER

VARCHAR

NILL

讲师

CLASTIME

VARCHAR

NULL

上课时间

CLASSROM

CHAR

NULL

上课地点

INTRO

VARCHAR

NULL

简介

3. COURSE-SELECT选课结果表数据字典

字段名

数据类型

是否可空

说明

ID

SMALL INT

NOT NILL

记录号(主键)

COURSE

CHAR

NULL

课程名

STUDENT

CHAR

NULL

选课学生(外部关键

4. STUDENT学生个人信息表数据字典

字段名

数据类型

是否可空

说明

ID

SMALL INT

NOT NULL

学号(主键)

NAME

VARCHAR

NOT NULL

姓名

SEX

CHAR

NOTNULL

性别

CLASS

CHAR

NULL

班级

DEPARTMENT

CHAR

NULL

院系

BIRTHDAY

VARCHAR

NULL

生日

5. 奖惩记录信息表

字段名

数据类型

是否可空

说明

ID

SMLL INT

NOT NULL

记录号(主键)

STUDENT

CHAR

NOT NULL

学号(外部键)

LEVEL

CHAR

NULL

奖惩代码

TIME

DATA

NULL

时间

DESCRIPTION

VARCHAR

NULL

描述

二主要模块详细设计说明书

1用户身份认证模块

功能:按用户输入的用户名和密码是否合法

合法则进入应用程序

非法则显示出错信息

界面:由总控模块调用

模块说明细化为详细逻辑IPO图

用户身份认证模块

输入 处理 输出

连接数据库表 连接数据库错误中断程序

捕捉错误

用户名 获取用户名

用户密码 获取用户密码

读USER-PAS

判断用户名是否存在

判断密码是否存在 提示信息

捕捉异常

判断用户权限是合法

隐藏登录窗口

显示主窗体

文件

USER-PASS表

2.选课模块

功能:接受学生选课信息

刷新学生课程表

界面:调用添加、删除模块,打印课表模块

将模块说明细化为详细逻辑

选课处理IPO图

输入 处理 输出

课程编号 为课程号过滤 输入课程编号异常提示

接受课程号

打开课程信息表

判断是添加或是删除

添加

检索课程表读该记录

若该记录存在

显示所选课程详细信息 执行添加语句

调用添加模块

将选课结果刷新

删除 执行删除语句

调用删除模块

将稳定课结果刷新

提交 课表:课程编号,课程名

调用打印课表模块文件

课程信息表

选课结果表

3. 课程申请模块

功能:接受输入的新添课程信息

将新课程信息存入课程信息表

删除旧课程

界面:调用已开课程信息表

调用申请修改程序

将模块细化为详细逻辑IPO图

课程管理模块

输入 处理 输出

课程编号 添加新课程

获取当前教师所选课程

打开已开课程表

查询是否存在该记录

若无该记录则是新课程

调用添加模块

提取课程编号

提取课程名称

提取课程简介

提交

若有该记录则不是新课程

出错处理 提示信息

删除旧课程

文件

课程信息表

软件测试

输入数据

有效等价类

无效等价类

证件号码

1、6位数字字符

2、有效数字字符

3、少于6个字符

4、大于6个字符

使用功能

5、选课

6、查询

7、输入其他文字

有效测试用例

测试数据 期望结果 测试范围

123456 输入有效 1

选课 输入有效 5

5无效测试用例

测试数据

期望结果

测试范围

12jda1

输入无效

21234561

输入无效

412341

输入无效

312t21

输入无效

2、 3

排课

输入无效

7(折半查找算法测试)2

测试名称:模块输入课程编号过滤的测试方案

a) 规定课程编号为输入4个字符,头两个字符为字母,后2个字符为数字例如TP38

b) 测试方法采用黑盒测试法中的等价类划分法

划分等价类

输入数据

有效等价类

无效等价类

课程号

1 两字母+两数字

2有非数字或字母

字母

3 A--Z

4字母少于两个或多于两个

数字

5 00--99

6数字少于两个或多于两个

为有效等价类和每个无效等价类设计测试用例

测试数据

期望结果

测试范围

HY76

输入有效

1、3、5

@D78

输入无效

2S86

输入无效

4MA2

输入无效

6HY345

输入无效

6DEH94

输入无效

4测试名称:课程查找模块设计测试方案

a) 本模块采用的是折半查找算法主要是测试各程序在各种典型情况下是不能有效的进行查找

b) 测试方案采用选择白盒测试法中的路径覆盖法

说明:由于输入的课程编号已经被过滤,所以编号接受的范围为00--99

计算机专业毕业设计任务书格式范文

一段充实而忙碌的大学生活即将结束,毕业生都要通过最后的毕业论文,毕业论文是一种、有准备的检验大学学习成果的形式,下面是我帮大家整理的计算机专业毕业设计任务书格式,欢迎阅读与收藏。

计算机专业毕业设计任务书

课题名称: 远程教育系统的设计与实现

学生姓名与学号:某某某

所在院系:计算机科学与技术学院

专业年级:

指导教师及职称:

填表日期:

平顶山学院教务处制

课题任务与具体要求 (包括选题、开题、毕业论文(设计)撰写进度安排等):

一、课题来源、研究目的及意义

二、主要研究内容

在对国内外远程教育现状充分研究的基础上,结合分布式应用技术与现代远程教育中的教学模式,采用基于Web的应用体系,设计和实现了一个基于Internet的现代远程教育系统。

本设计应用WEB服务平台,以MySQL为后台数据库,使用C语言进行程序开发,以实现与数据库的连接和前端浏览器的控制。因此,其主要的研究内容为:

(1)详细分析并调研系统的需求,针对远程教育系统的Web应用特点,设计系统的体系架构;

(2)对系统涉及的相关技术进行学习和掌握,并通过多方面的比较和设计,构建出较为合理的硬件平台。

(3)完成系统的总体设计、详细设计和数据库设计;

(4)针对系统中的页面设计、功能模块设计和用户群组设计等方方面面进行探讨和验证;

(5)实现课件制作、教学管理、作业管理、教学资源管理、题库维护、在线学习、在线测试和网上答疑等教学功能;

(6)详细阐述系统实现过程中的难点和关键技术。

本毕业设计要求设计并实现了一个远程教育系统:详细分析并调研系统的需求,针对远程教育系统的Web应用特点,设计系统的体系架构;完成了系统的总体设计、详细设计和数据库设计;实现了课件制作、教学管理、作业管理、教学资源管理、题库维护、在线学习、在线测试和网上答疑等教学功能;详细阐述系统实现过程中的难点和关键技术。

其主要设计思路是采用面向对象编程技术,采用程序运行状态和可视化结果展示同步的设计思想,实现动态展示的可操作性效果,从而达到学习者可以任意选择学习的平台进行相关的学习选项,并且在访问过程中,学生可以自由的控制数据的变化、课程的启停过程,着实根据自身情况进行高效的学习,使学习质量显著提高。

三、成果要求:

可运行的程序和源代码(不要求打印,电子版即可);按规定格式的毕业设计论文文稿(打印版和电子版)。

四、进度安排:

1.选题(11年11月1日—11年11月24日)

2.开题报告(11年11月25日—11年12月14日)

3.收集资料、实施研究(11年12月15日—12年2月8日)

4.中期检查(12年2月8日)

5.完成初稿(12年1月13日—12年2月15日)

6.完成中稿(12年2月16日—12年2月29日)

7.完成定稿(12年3月1日—12年3月14日)

8.答辩(12年4月2日—12年4月8日)

主要参考文献(指导教师指定部分):

1.王善利,张丽娟,吴利生.基于WEB教学资源的共享与共建体系研究[J].现代教育技术,2003(03):52-55

2.中国教育和科研计算机网.远程教育对高等教育的影响及应用分析.2008-10-09.

3.微软公司.数据库程序设计—SQLServer2005.北京:高等教育出版社,2006.1-27

4.教育部现代远程教育资源建设委员会.现代远程教育资源建设技术规范,2000.5

5.佩奇,王军.Dreamweaver8网页设计标准教材.电子工业出版社,2006-9-1

6.党庆忠.网页设计与制作.重庆大学出版社,2004.8

7.郭瑞军.Asp数据库开发实例精粹.北京,电子工业出版社,2005.2

8.贾志铭.Fireworks网页设计.北京,清华大学出版社,2004.7

9.王保顺.校园网设计与远程教学系统开发.北京,人民邮电出版社,2003

10.姜伟.网页美工传奇.北京,机械工业出版社,2004.3

11.赵增敏.Asp可视化编程及应用.北京,机械工业出版社,2005.1

12.王宗义、祝军、傅捷.Web网站重构.电子工业出版社,2005.4

拓展阅读:大学计算机科学与技术专业本科生毕业设计开题

一、课题来源及意义

企业管理系统是一种面向制造行业的企业管理系统,是对物质资源、资金资源和信息资源进行一体化管理。企业资源规划(EnterpriseResourcePlanning,ERP)在现代企业管理中是一种比较重要的管理手段,它的基本思想是将企业流程视为建立在企业价值链上的供需链,把企业内部各个部门划分为相对独立的子系统,但这些子系统又是相互协同作业的,相互之间有很多业务联系,如生产计划管理、采购管理、销售管理、财务管理等。

采购管理模块作为企业资源流通的重要环节,是企业资源规划的重要组成部分。它主要由两个部门组成:一方面:采购管理模块根据企业的需要来进行采购,其流程包括下计划单、下订单及采购物料入库;另一方面,该模块对采购物料进行结算,实现物流和资金流的统一。采购在企业中占有十分重要的地位,它是企业资金周转流畅、企业生产顺利的重要保证。所以采购数据进行科学分析和决策,可以为企业经营管理者提供可靠、合理的决策数据,是企业管理的重要方面。

二、国内外发展状况

综合观察国内外许多成功实施ERP的企业,他们在实施ERP的过程中,首先从需求出发,结合本企业的实际情况,总体规划,分步实施。尤为重要的是:企业必须重视建立现代化的企业管理模式并优化调整;技术方面的基础工作与从业人员的培训必须同步落实,这样才最终达到提升企业竞争优势的目的。一个企业的健康发展,离不开客户的满意程度和市场的发育,同时也离不开其内部高效的管理,所以经营与管理缺一不可。采购管理作为ERP系统中的重要组成部分,其功能和作用日趋重要。

美国采购协会出版的供应链年报每年都会公布一些全球最大的几百家采购者的采购数据,经过一定的数据处理后结果显示,在这些企业中,有超过70%的企业,采购金额占销售收入的百分比大于50%,而且很多行业的数据趋向一致。美国采购协会出版的《采购》杂志中显示了IBM公司在过去几年中采购金额占销售额的比例增大的趋势。IBM公司不断地强化采购的战略地位和战略管理,使其获得了比竞争对手更多更强的竞争优势。由此可见,采购管理部门可以给一个公司带来额外的利润和竞争优势。

国内企业相对起步较晚,并且还没有把采购放在足够重视的战略地位。采购活动一般来说分为以下几类:生产型采购、通用型采购、客户服务型采购和物流运输采购等。这样的采购内容基本上覆盖了公司抽有的财务支出,而公司的对外投资以及不动产投资不在采购金额的统计之内。很多公司在年底统计的时候,对于财务支出的具体情况都掌握不清楚,主要原因就是花钱的出口太多。公司内各部门经理都有财务支出的决定权,根本不需要采购部门管理。支出没有得到管理,钱花得痛快,并且烂账、糊涂账、解释不清楚支出就会比较多,所以统计起来很困难。财务部门的会计人员是很难统计的,他们没有权利和能力过问详细花费情况,所以只能一律按费用下账。如果加强了采购部门的战略地位和管理性能,采购部门的经理就可以知道这些费用是哪个部门的哪个人花费的,并且可以说清楚每一笔费用的流向,还能给出相应的明细账目。

因此可见,国内大部分公司系统的采购部门急需完善和提高。这种进步是要以整个ERP体系的管理理念和管理方法为基础的。虽然我们的ERP发展目前仍然处在起步阶段,但是我们可以利用和引进国外的先进理念、管理经验和系统化的方法,再结合我国企业的自身情况和特有国情,开辟出一条具有社会主义特色的.ERP发展之路。

三、课题的研究目标、内容

1、研究目标

由于采购业务的完成需要企业的采购部门、仓库管理部门、财会部门等协调工作,目前的信息的手工传递无法满足采购业务的实时性要求。所以,在如今采购业务变化大,日常数据处理频繁且实时性要求增高,业务更复杂,与其他系统模块之间的数据交换民日益增多的诸多要求和前提下,企业必须建立一个采购业务和核算为一体的系统管理模块,从而保证能够完成各个时期和阶段的采购业务的处理和管理。

2、研究内容

企业的采购管理主要包括以下内容:进行采购的录入、维护,并可按采购单号、采购日期、供应商、采购员等条件查询每一张采购单;处理采购,采购退货等各种业务;可以由采购直接生成采购货物入库的收料统计单,简化仓库人员的作业;可查询供应商开给本单位的各种费用发票和采购发票,以便于账款管理,减轻财务人员的重复性工作,确保数据的一致性;可在已完成采购入库的采购单中追加采购明细;可修改采购单明细中的未出货部分;提供采购状况统计表和分析,提供多角度的数据查询和汇总功能,使管理人员可以随时掌握采购的最新情况。

四、设计方法及手段

首先,认真分析本模块所要达到的功能要求,做出需求分析(通过运用UML面向对象的分析方法)。然后从整体架构上进行总体设计,例如模块各部分功能的整体设计及流程、菜单界面等。

其次,在以上工作的基础上,开始对各功能的详细设计。主要包括:用户、用户权限的分配;安全策略;找出各种类,并设计出相应的类图、顺序图、流程图等;对各功能细化并作出详细设计;还要进行数据库的设计。

最后,通过以上分析和设计,应用C#进行实际的代码编写,实现所设计的模块功能,达到本次课题的目标。

五、课题研究的进度安排

本课题研究具体进度安排计划如下。

1~2周:查找课题相关资料。

3~4周:仔细学习研读相关资料;进行需求分析和总体设计。

5~6周:对各功能进行详细设计;数据库设计;熟悉C#。net。

7~8周:开始程序编写,通过编写具体代码实现本模块的功能。

9~10周:系统测试并完成代码编写工作;开始撰写毕业论文。

11~12周:完成论文初稿,向老师提交课题作品。

13~14周:在老师指导下,对本课题作品及论文进行修改和完善,并做最后的总结整理;提交最后审查。

15~16周:毕业答辩。

六、可行性分析

(1)技术可行性:目前国内很多软件公司都在从事ERP系统的开发及研究,为各行各

业的公司及单位提供可靠、可行的企业管理系统。通过大学期间对编程语言和基础课程的学习,应用已有的编程软件是可以编写出适当的采购管理模块的。

(2)经济可行性:前文已经提及了采购模块的作用及优点――能够给公司节省开支、增加竞争优势。所以,开发或者使用企业管理系统中的采购模块可以给公司带来丰厚利润,利润远超过它的开发成本。

(3)操作可行性:根据使用部门处理的流程和习惯,从操作方式或操作过程看,采用了用户能够接受的方案。

七、已具备的实验条件

目前,前期实验条件已准备就绪,已经准备好了本次课题有关C#的书籍和资料,找到多篇相关学术报告及论文和商品化的演示系统作为参考。实验室内的工作用机也已分配妥当,实验过程中所需要用到的C#。net相关软件工具也准备就绪。

指导教师意见

注:

1、开题报告应根据教师下达的毕业设计(论文)任务书,在教师的指导下由学生独立撰写。

2、“课题来源及意义”不至少800字,“课题的研究目标、内容;”不少于600字。

3、指导教师意见:应从选题的理论或实际价值出发,阐述学生利用的知识、原理、建立的模型正确与否?学生的论证充分与否?通过学生的努力能否完成课题,达到预期的目标?课题及报告的难度、深度、综合性、创造性是否达到本科生应该具有的要求。

4、结论:是否同意进入设计(论文)阶段。

计算机专业毕业设计工作指南

一、计算机专业实践环节形式:

毕业设计

二、毕业设计实践环节应注意的事项

1、“毕业设计”实践环节在全部毕业学分中占有一定学分;

2、“毕业设计”实践环节从起步到毕业答辩结束历时至少4周以上;

3、“毕业设计”实践环节包括两部分内容:

①完成“毕业设计”所开发的应用程序;

②针对所开发的应用程序书写“毕业设计”说明书(即论文);

三、毕业设计实践环节应先完成的工作

在毕业设计实践环节之前,应向有关主管设计工作的单位或老师上报如下材料:①《毕业设计实践环节安排意见》(包括领导小组名单,毕业班专业、级别、性质、工作计划安排、实践环节工作步骤,指导教师名单,学生分组名单)、②《毕业设计(论文)审批表》一式两份(要求认真审核、填写指导教师资格,包括职称、从事专业、有何论著,每人指导学生不得超过一定人数,兼职(或业余)指导教师指导学生数根据情况酌减)。

四、关于“毕业设计”工作的过程步骤

1、“毕业设计”题目的选择选题时应遵循以下原则:

①选题必须符合计算机专业的综合培养要求;

②应尽可能选择工程性较强的课题,以保证有足够的工程训练;

③毕业设计工作要有一定的编程量要求,以保证有明确的工作成果;

④选题原则上一人一题,结合较大型任务的课题,每个学生必须有毕业设计的独立子课题;

⑤选题应尽量结合本地、本单位的教学、科研、技术开发项目,在实际环境中进行。总之选题要体现综合性原则、实用性原则、先进性原则、量力性原则等

选题时要达到以下目标:

①选题与要求提高综合运用专业知识分析和解决问题的能力;

②掌握文献检索、资料查询的基本方法和获取新知识的能力;

③掌握软硬件或应用系统的设计开发能力;

④提高书面和口头表达能力;

⑤提高协作配合工作的能力。

2、“毕业设计”题目审核有关单位将毕业学生选择的题目填写在同一个“毕业设计(论文)审批表”中的“毕业设计安排表”相应栏目中,,审核通过后方可开展下一步工作。

3、“毕业设计”应用程序开发实施(大致用时安排)

①需求分析阶段(约一周时间完成)

②系统分析阶段(约一周时间完成),同时完成毕业设计说明书前两章资料整理工作。

③系统设计阶段(约一周时间完成)

④代码实现阶段(约三周时间完成)同时完成毕业设计说明书第三章、第四章资料整理工作。

⑤系统调试阶段(约二周时间完成),同时完成毕业设计说明书第五章资料整理工作。

⑥投入运行阶段(约一周时间完成),同时完成毕业设计说明书中第六章资料整理工作。

⑦毕业设计说明书的整理定稿阶段(约二周时间完成)一份完整、规范的毕业设计说明书应大致包括以下项目(各院校要求不完全相同):

摘要及关键词

目录正文

第一章引言

1、本课题的研究意义

2、本论文的目的、内容及作者的主要贡献

第二章研究现状及设计目标

1、相近研究课题的特点及优缺点分析

2、现行研究存在的问题及解决办法

3、本课题要达到的设计目标

第三章要解决的几个关键问题

1、研究设计中要解决的问题

2、具体实现中采用的关键技术及复杂性分析

第四章系统结构与模型

1、设计实现的策略和算法描述

2、编程模型及数据结构

第五章系统实现技术

1、分模块详述系统各部分的实现方法

2、程序流程

第六章、性能测试与分析

1、测试实例(测试集)的研究与选择

2、测试环境与测试条件

3、实例测试(表格与曲线)

4、性能分析

第七章结束语

;

[以教务管理系统为基础的高校智能排课模式] 高校教务管理系统

摘 要: 排课是高教管理中一项非常重要的工作。近年高校规模的扩大与教育改革的推进给排课工作带来了新的挑战,而教务信息系统的引入又给高校的排课工作的方式带来了新的转变。作者结合排课经验,阐述了建立于教务管理信息系统平台之上的高校智能排课模式。

关键词: 高校排课模式 教务管理系统 智能化

排课是高等学校教学管理工作中非常重要的一项工作,编排科学、合理的课表有利于建立良好的教学秩序、提高高校教学质量。多年来,随着高等学校改革的不断推进,高校招生规模的不断扩大和学分制的实行,教学资源紧张的日益加剧和学生选课的不确定性给排课工作增加了新的难度,带来了新的挑战。新的挑战总是带来新的发展,目前,大多数高校都开始采用教务信息管理系统来进行教务工作的多模块统一管理,这种信息化的管理模式突破了许多局限性,大大提高了数据的存储与共享能力,也打破了传统手工排课的方式,引入了基于教务管理系统的智能排课模式,实现了课表的半自动化编排,在提高排课效率的同时也减少了错误率,节省了大量的时间与人力。

一、课表编排的核心

课表是 教学计划 的体现,严格执行教学计划是排课工作的核心灵魂。教学计划是课程设置的整体规划,它规定了不同课程类型相互结构的方式,也规定了不同课程在学习方式的要求及其所占比例,同时,对学校的教学、生产劳动、课外活动等作出了全面安排。从本质上来看,课表其实就是教学计划付诸实施的具体方案。可见,制订合理、详细、周密的教学计划,不仅是高校教学质量的重要保障,更是排课工作顺利、有效进行的重要前提。教学计划的制订是大学生培养工作的重中之重,具有极高的权威性,一旦确定,不得随意变动。教学计划制订完毕后由人工将其录入教务信息系统中的教学计划模块,并成为排课的基本依据。

二、课表编排的流程

(一)开课任务书的下达与录入

每学期排课伊始,教务处首先向各院系下达本学期的开课任务书。开课任务书即为教学计划的严格对照,是教学计划中各专业本学期应开设的全部课程的集合。所以,若教学计划有所微调,就必须在开课任务书下达之前进行,否则将无法在排课中执行。各院系教学秘书在收到开课任务书后,应首先对照各专业培养计划进行核对(如开课学期、学时数等),并及时向教务处反馈。在确保开课任务书准确无误后,将其下发到各个专业负责人处,由其负责落实各门课程的任课教师合理安排课程的上课周学时、上课周次等,也可针对课程提出排课的特殊要求。最后,由教学秘书将本学院已落实的开课任务手工录入到教务管理信息系统中。录入的内容包括:课程属性、上课自然班(相对于教学班而言)、任课教师、教室类型、时间模式、周学时、上课周次等。在录入完毕后,教务管理系统的核对功能可实现开课任务书与教学计划的核对,帮助排课人员完成任务书录入的核查工作。

(二)人机交互的智能排课模式

教务处所进行的排课工作是对各学院的开课计划进行的全校性统筹规划,是教学资源的合理分配、教学要素根据不同的约束规则优化组合的过程。教学秘书向教务系统录入的开课要求即为约束条件,然而由于开设课程与上课班级的交叉及教学资源的有限,使得这些约束条件将不可避免地产生冲突。如果产生冲突,就只能适当地放宽约束条件,本着教师、学生、时间、教室不能冲突的基本原则,尽量合理地进行统筹。

在排课过程中,教务信息系统中排课软件的自动排课模式,可根据开课的要求自动完成大部分课程的安排,而那些有冲突的课程则需在指定排课模式下手工地进行必要的调整,这就是所谓的人机交互的智能排课模式。然而,在人工调整的过程中,由于排课人员的经验不足、对课程了解程度有限等约束,很难做到尽善尽美。因此,为减少手工排课,更多地满足开课要求,则要求排课人员在计算机排课前期对课程及教学资源预先进行一些合理的规划,减少冲突的产生。长期的经验告诉我们,前期准备工作的细致到位能为后期排课的顺利打下良好的基础,以下介绍排课的前期统筹工作。

1.合理地安排排课顺序

一个学期的课程往往要开设上千门,优先安排的课程无论是在时间资源、教室资源还是教师资源上都具有更高的选择权。所以在排课前期,首先应根据课程的性质合理地设置排课顺序,优先考虑对课表整体影响程度大的课程,提高排课工作的有效性。根据排课的实际需要,我们将课程按照性质分为以下几类:实验课、体育课、分级教学课、必修课、任选课、公选课等。由于优先级越靠后的课程可排性越差,故合理的排课顺序应为:实验课先于理论课、分级教学课先于普通理论课程、必修课先于任选课、任选课优于公选课。除按课程性质安排排课顺序以外,实践经验告诉我们,为提高排课效率,排课时还应遵循大学分的课先于小学分的课、周学时多的课先于周学时少的课、上课班级数多的课先于上课班级数少的课等原则。所以,在任务书网上录入的过程中,应正确地为每门课程设置属性,帮助实现分批次排课。

2.实验课程的统一安排

由上可见,实验类型的课程由于其对上课时间的要求最高,处于排课的最优级别。此类课程在排课之前,应先由开课院系统规划上课时间和开课周次,并且在教务信息管理系统中直接指定开课时间与场地,在安排后续课程时,必须将此时间块避开,否则将造成冲突。在广泛推行三学期制度之后,各学校更多地将实践实习类课程安排在小学期,这样不仅能集中实践环节,更好地保障实践教学效果,还能尽量减少实践课程对理论课程安排的影响,保障理论课程教学的连续性。

3.模块课程的规划协调

在优先安排实验课程后,我们将诸如《大学英语》、《高等数学》、《体育》之类的全校性必修课按照模块课的方式进行安排。对于模块课,排课人员先统筹该类课程的上课时间、学生人数、教师人数和教学场地,合理地划分模块,确定各模块的上课时间和上课学生,并在教务信息系统中直接指定模块课的上课时间,让其占据最佳的时间组合模块,以保证课表的整体优化。在同一时间模块中可开设若干个教学班,学生在选课时,在指定的时间模块内能任意选择任课教师,实现学分制下学生学习的自主。在分配时间模块时,排课人员应充分考虑老师授课效果和学生学习效率,尽量将《大学英语》、《高等数学》等重要的公共基础课安排在每天早上的一二节课或者下午的一二大节,将《体育》等实践类型的课程安排在早上的三四大节或者下午的三四大节。这种对上课时间进行的合理优化,有利于实现提高教学质量的目标。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息