教务管理系统接口设计(教务管理系统api接口)

网友投稿 449 2023-01-03


本篇文章给大家谈谈教务管理系统接口设计,以及教务管理系统api接口对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享教务管理系统接口设计的知识,其中也会对教务管理系统api接口进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

数据库原理设计教务管理系统信息要求是什么

数据库原理设计教务管理系统信息要求是明确系统目标、系统功能描述、建立数据流图和数据字典等。

数据库原理就是教你如何去有效管理那些大量教务管理系统接口设计的数据信息的学科教务管理系统接口设计,教会你创建数据库来存储数据,优化数据库字段等等,设计出一个良好的数据库对一个系统或者是一个网站这些应用来说都是极其重要的。

相关信息介绍:

对数据库系统的基本要求是:

1、能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。

2、系统的用户接口简单,用户容易掌握,使用方便。

3、能够确保系统运行可靠,出现故障时能迅速排除教务管理系统接口设计;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。

4、有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。

求C语言课程设计(教务信息管理系统)

/*-------------1-------------*/
#include<bios.h
#include<dos.h /*头文件*/
#include<conio.h
#include<ctype.h
#include<process.h
#include<stdlib.h
#include<stdio.h
#include<string.h

#define NULL 0
#define ESC 0x001b /* 退出 */
#define F1 0x3b00 /* 查看帮助信息,调用HelpMassage()函数 */
#define F2 0x3c00 /*输入学生成绩*/
#define F3 0x3d00 /*按学号查找*/
#define F4 0x3e00 /*按姓名查找*/
#define F5 0x3f00 /*列出所有学生成绩*/
#define F6 0x4000 /*统计*/
struct stuType /*定义结构体变量*/
{
char NO[11]; /*学号长度为10*/
char XM[10];
char AGE[2]; /*年龄长度为2*/
float CJ[4]; /*包含4门成绩*/
};
/*-------------2-------------*/
int JY_NO(char *stu_num,FILE *fp) /*检验学号的正确性*/
{ struct stuType stud;
int NO;
char *p=stu_num;
if(strcmp(stu_num,"#")==0) return 1; /*若输入"#"返回真值,不再循环输入*/
while(*p!='\0') /*学号必须是数字,否则返回重新输入*/
{ NO=(int)*p;
if(NO<48||NO57)
{ puts("\t\tUndefined SN!Please input again!\n");/*非法学号!请重新输入!*/
return 0;
}
else p++; /*指针加1*/
}
if(strlen(stu_num)!=10) /*若学号长度不为10,则返回重新输入*/
{ puts("\t\tLength of SN Error!\n");/*学号长度不对*/
return 0;
}
if(getchar()!='\n') /*若学号后面的字符不是回车符,则学号长度大于10*/
{ printf("\t\tThe length of SN should more than 10!Please input again!\n");/*学号长度大于10个,请重新输入*/
do{}while(getchar()!='\n'); /*用getchar接收多余的字符*/
return 0;
}
else
{
rewind(fp); /*使文件指针指向头*/
while(!feof(fp)) /*若文件指针未到结尾,就继续执行下面的循环,feof遇到文件结束符返回非零值,否则返回0*/
{ fread(stud,sizeof(struct stuType),1,fp); /*读取一定长度的数据*/
if(strcmp(stu_num,stud.NO)==0) /*学号的唯一性*/
{ printf("\t\t Repeat SN,Please input again!\n");/*学号重复!请重新输入*/
printf("\t\tThe Record of this student:\n");/*该学生成绩如下*/
printf("\t\tChinese:%.1f\n",stud.CJ[0]);/*语文*/
printf("\t\tMath:%.1f\n",stud.CJ[1]);/*数学*/
printf("\t\tEnglish:%.1f\n",stud.CJ[2]);/*英语*/
printf("\t\tTotal:%.1f\n",stud.CJ[3]);/*总评*/
return 0;
}
}
}
return 1;

}
/*-------------3-------------*/
int JY_NO2(char *stu_num) /*检验学号*/
{ int NO;
char *p=stu_num;
if(strcmp(stu_num,"#")==0)return 1; /*若输入“#”,则返回真值结束*/
if(strlen(stu_num)!=10) /*学号长度不为10*/
{ puts("\t\tLength of SN Error!\n");/*学号长度不对*/
return 0;
}
while(*p!='\0') /*学号必须用数字,若包含有字母,或其它字符则返回假值重新输入*/
{ NO=(int)*p;
if(NO<48||NO57)
{ puts("\t\tUndefined SN!Please input again!\n");/*非法学号!请重新输入*/
return 0;
}
else p++; /*指针加1*/
}
if(getchar()!='\n') /*检验学号长度是否大于10,并把多余的字符去掉*/
{ printf("\t\tThe length of SN should more than 10!Please input again!\n");/*学号长度大于10个,请重新输入*/
do{}while(getchar()!='\n');
return 0;
}
return 1;
}
/*-------------4-------------*/
int JY_XM(char *stu_XM) /*检验姓名*/
{ int PD;
char *p;
p=stu_XM;
while(*p!='\0') /*姓名只能用英文*/
{
PD=(int)*p;
if(PD<0)
{ puts("\t\tName should use English, Please input again!\n");/*姓名只能用英文请重新输入*/
return 0;
}
else p++; /*使指针加1,指向下一汉字*/
}
if(getchar()!='\n') /*姓名长度不得大于5个*/
{ printf("\t\tThe length of Name is more than 5, Please input again!\n");/*姓名长度大于5个请重新输入*/
do{}while(getchar()!='\n');
return 0;
}
return 1; /*字符串全为汉字返回真*/
}
/*-------------5-------------*/
int JY_AGE(float stu_AGE) /*年龄只能在0~100之间*/
{
if(stu_AGE<0||stu_AGE100)
{ printf("\t\tInput Error! Record should between 0~100!\n");/*输入错误,成绩只能在0~100之间*/
return 0;
}
return 1;
}
/*-------------6-------------*/
int JY_CJ(float stu_CJ) /*学生成绩只能在0~100之间*/
{
if(stu_CJ<0||stu_CJ100)
{ printf("\t\tInput Error! Record should between 0~100!\n");/*输入错误,成绩只能在0~100之间*/
return 0;
}
return 1;
}
/*-------------7-------------*/
void CreatFile() /*输入文件*/
{ FILE *fp;
struct stuType stu,stu0={"","",}; /*对stu0xianfuzhi*/
fp=fopen("stu.dat","wb+"); /*打开或创建一个二进制文件,打开时将原来的内容删除*/
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\t\tPress Anykey back...");/*文件打开失败,按任意键返回*/
getch();
return;
}
else
{ while(1)
{ stu=stu0;
do{ printf("\n\t\tPlease input SN:"); /*输入学号并检验其正确性*/
scanf("%10s",stu.NO);
}while(!JY_NO(stu.NO,fp));
if(strcmp(stu.NO,"#")==0)break;
do{ printf("\n\t\tPlease input Name:"); /*输入姓名并检验其正确性*/
scanf("%10s",stu.XM);
}while(!JY_XM(stu.XM));
do{ printf("\n\t\tPlease input age:"); /*输入年龄绩并检验其正确性*/
scanf("%f",stu.AGE);
}while(!JY_AGE(stu.AGE[0]));
do{ printf("\n\t\tPlease input record of Chinese:"); /*输入成绩并检验其正确性*/
scanf("%f",stu.CJ[0]);
}while(!JY_CJ(stu.CJ[0]));
do{ printf("\n\t\tPlease input record of Math:"); /*同上*/
scanf("%f",stu.CJ[1]);
}while(!JY_CJ(stu.CJ[1]));
do{ printf("\n\t\tPlease input record of English:");
scanf("%f",stu.CJ[2]);
}while(!JY_CJ(stu.CJ[2]));
do{ printf("\n\t\tPlease input record of Total:");
scanf("%f",stu.CJ[3]);
}while(!JY_CJ(stu.CJ[3]));
fwrite(stu,sizeof(struct stuType),1,fp); /*写文件*/
}
}
fclose(fp); /*关闭文件*/
}
/*-------------8-------------*/
void Search_Xuehao() /*按学号查询*/
{ FILE *fp;
int flag;
struct stuType stu,stud;
fp=fopen("stu.dat","rb");
if(fp==NULL) /*若文件打不开则输出下面的信息*/
{ printf("\t\tFile opens Error!\n\t\t\tPress Anykey back...");
getch();
return;
}
else
{ do{ puts("\n\t\tPress\"#\" or search");
do{ printf("\t\tPlease input the SN what you want:");
scanf("%10s",stu.NO);
}while(!JY_NO2(stu.NO));
if(strcmp(stu.NO,"#")==0)break; /*若输入“#”则结束循环*/
flag=0;
rewind(fp);
while(fread(stud,sizeof(struct stuType),1,fp)) /*检查文件指针结束*/
{ if(strcmp(stu.NO,stud.NO)==0) /*比较学号*/
{ puts("\t\tThe Record of this student:");
printf("\t\tSN:%s\n",stud.NO);
printf("\t\tName:%s\n",stud.XM);
printf("\t\tAGE:%.1f\n",stud.AGE[0]);
printf("\t\tChinese:%.1f\n",stud.CJ[0]);
printf("\t\tMath:%.1f\n",stud.CJ[1]);
printf("\t\tEnglish:%.1f\n",stud.CJ[2]);
printf("\t\tTotal:%.1f\n",stud.CJ[3]);
flag=1; /*记录学号是否查到*/
}
}
if(flag==0)puts("\t\tUndefined SN");
}while(strcmp(stu.NO,"#")!=0);
}
fclose(fp); /*关闭文件*/

}
/*-------------9-------------*/
void Search_Xingming() /*按姓名查找*/
{ FILE *fp;
int flag=0;
struct stuType stu,stud;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\tPress Anykey back...");
getch();
return;
}
else
{ do{
do{ printf("\t\tPlease input the Name of the Student what you want:");
scanf("%10s",stu.XM);
}while(!JY_XM(stu.XM));
rewind(fp); /*文件指针指向头*/
while(fread(stud,sizeof(struct stuType),1,fp))
{ if(strcmp(stu.XM,stud.XM)==0) /*比较姓名是否相同*/
{ puts("\t\tThe name of the Student is:");
printf("\t\tSN:%s\n",stud.NO);
printf("\t\tName:%s\n",stud.XM);
printf("\t\tAGE:%.1f\n",stud.AGE[0]);
printf("\t\tChinese:%.1f\n",stud.CJ[0]);
printf("\t\tMath:%.1f\n",stud.CJ[1]);
printf("\t\tEnglish:%.1f\n",stud.CJ[2]);
printf("\t\tTotal:%.1f\n",stud.CJ[3]);
flag=1; /*记录姓名是否被查到*/
}
}
if(flag==0)puts("\n\t\tUndefined Name!");
puts("\t\tContinue?(y--yes,Else key back)?");
}while(getch()=='y');
}
fclose(fp);
/* puts("\t\tPress Anykey to continue...");*/
/* getch();*/
}
/*-------------10-------------*/
int ListFile(void) /*输出文件,列出所有学生成绩*/
{ FILE *fp;
int REC=0; /*记录学生人数*/
struct stuType stu;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\tPress Anykey back...");
getch();
return 1;
}
else{ printf("\t\tRecords of the Students:\n");
printf("\t\tSN\t\tName\tChinese\tMath\tEnglish\tTotal\n");
rewind(fp);
while(fread(stu,sizeof(struct stuType),1,fp))
{ /*每读取一个长度的数据就输出*/
printf("\t\t%s",stu.NO);
printf("\t%s",stu.XM);
printf("\t%.1f",stu.AGE);
printf("\t%.1f",stu.CJ[0]);
printf("\t%.1f",stu.CJ[1]);
printf("\t%.1f",stu.CJ[2]);
printf("\t%.1f",stu.CJ[3]);
printf("\n");
REC++;
if(REC%20==0) /*20个学生成绩,停一下*/
{ printf("\t\tPress Anykey to continue...\n");
getch();
}
}
}
fclose(fp); /*关闭文件*/
printf("\t\tContinue...");
getch();

}
/*-------------11-------------*/
void Statistics() /*统计及格和优秀人数*/
{ FILE *fp;
int REC=0,unpass[4]={0},good[4]={0}; /*REC--记录个数,即人数,unpass--重修人数,good--优秀人数*/
float highest[4]={0},score[4]={0}; /*highest--最高分,score--总分*/

struct stuType stu;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\tPress Anykey back...");
getch();
return;
}
else { rewind(fp);
while(fread(stu,sizeof(struct stuType),1,fp))
{ REC++;
score[0]=score[0]+stu.CJ[0]; /*语文*/
if(stu.CJ[0]<=60)unpass[0]++;
if(stu.CJ[0]=80)good[0]++;
if(highest[0]<stu.CJ[0])highest[0]=stu.CJ[0];
score[1]=score[1]+stu.CJ[1]; /*数学*/
if(stu.CJ[1]<=60)unpass[1]++;
if(stu.CJ[1]=80)good[1]++;
if(highest[1]<stu.CJ[1])highest[1]=stu.CJ[1];
score[2]=score[2]+stu.CJ[2]; /*英语*/
if(stu.CJ[2]<=60)unpass[2]++;
if(stu.CJ[2]=80)good[2]++;
if(highest[2]<stu.CJ[2])highest[2]=stu.CJ[2];
score[3]=score[3]+stu.CJ[3]; /*总评*/
if(stu.CJ[3]<=60)unpass[3]++;
if(stu.CJ[3]<=80)good[3]++;
if(highest[3]<stu.CJ[3])highest[3]=stu.CJ[3];
}
if(REC==0) /*可以防止记录为0是REC作除数而造成的错误*/
{ printf("\t\tYou did't input the Name!Press Anykey back...");
getch();
return;
}
else{
printf("\t Chinese\t Math\t English\tTotal\n"); /*输出统计信息*/
printf("\tAverage: %.1f\t %.1f\t %.1f\t\t%.1f\n",score[0]/REC,score[1]/REC,score[2]/REC,score[3]/REC);
printf("\tTop record: %.1f\t %.1f\t %.1f\t\t%.1f\n",highest[0],highest[1],highest[2],highest[3]);
printf("\tNumber of good students: %d\t\t %d\t %d\t\t %d\n",good[0],good[1],good[2],good[3]);
printf("\tNumber of unpassed students:%d\t\t %d\t %d\t\t %d\n",unpass[0],unpass[1],unpass[2],unpass[3]);
}
}
fclose(fp);
printf("\n\t\t\tPress Anykey to continue...");
getch();

}
/*-------------12-------------*/
void HelpMessage()
{ clrscr();
printf("\n\n\n\n\n chi xi tong shi lao shi suo bu zhi zuoye bianzhi ercheng,gai xitong juyou cunchu xuesheng shuju,an xuehao,xingming chaxun,liechu xuesheng chengji he tongjigongneng.\n \n shiyongfangfa:xitong shulu shuju hou,jiangzai dangqian muluzhong jianli yige mingwei stu.dat wenjian,yongyubaocun shulu de shuju.xuehao shulu zhineng yong shuzi shulu qie xuehao zhineng shi10wei.xingming shulu fuhe zhongguoren de xingming,zhineng yong zhongwen pinying,qie zuichangwei5 ge hanzhi.\n chi chenxu zai Turbo C2.0xia yunxing tongguo \n\n ");
getch();
}
/*-------------13-------------*/
int GetKey(void) /*此函数返回一个按键的数值*/
{ int key;
key=bioskey(0); /*bioskey为调用BIOS键盘接口*/
if(key<<8) /*位移*/
{
key=key0x00ff;

}
return key; /*返回按键*/
}
/*-------------14-------------*/
void main()
{ int key;
struct date d; /*定义时间结构体*/
getdate(d); /*读取系统日期并把它放到结构体d中*/
clrscr(); /*清除屏幕*/
printf("\n\n\n\n\n");
printf("\t ========================================================\n"); /*版本信息*/
printf("\n");
printf("\t\t The System of Students Records Management 1.0 \n");
printf("\n");
printf("\n");
printf("\t\t Builder: XG042-WZM YS HYF WQ \n");
printf("\t\t Teacher:Song Zheyuan\n");
printf("\t\t Time:2005\\7\\5 \n");
printf("\n");
printf("\t ========================================================\n");
printf("\t\t\tPress Anykey to continue...");
/*while(!kbhit());*/
getch(); /*从键盘读取一个字符,但不显示于屏幕*/
system("cls"); /*调用DOS的清屏函数,TC中可用clrscr代替*/
while(1) /*主菜单*/
{
printf("\n\n\n\n\n");
printf("\t **************************************************\n");
printf("\t **\t **\n");
printf("\t **\tF1 --Help **\n");
printf("\t **\t **\n");
printf("\t **\tF2 --Data Input Save **\n");
printf("\t **\t **\n");
printf("\t **\tF3 --Search by SN **\n");
printf("\t **\t **\n");
printf("\t **\tF4 --Search by Name **\n");
printf("\t **\t **\n");
printf("\t **\tF5 --Contents Input **\n");
printf("\t **\t **\n");
printf("\t **\tF6 --Count Students Number(PassedGood) **\n");
printf("\t **\t **\n");
printf("\t **\tESC--Quit the System **\n");
printf("\t **\t **\n");
printf("\t **************************************************\n");
printf("\n\t Please select...\t\t%d\\%d\\%d\n\n",d.da_year,d.da_mon,d.da_day); /*提示信息,并显示当前系统日期*/
key=GetKey(); /*调用自定义函数,读取一个键*/
switch(key)
{
case F1: HelpMessage(); break;
case F2: CreatFile(); break;
case F3: Search_Xuehao(); break;
case F4: Search_Xingming();break;
case F5: ListFile(); break;
case F6: Statistics(); break;
case ESC:exit(1); break;
/*default: puts("\t\t\tWrong SN input!");
printf("\t\t\tPress Anykey back...");
getch();*/
}
clrscr(); /*每执行完一项功能后,自动清屏*/
}

}

软件工程 图书管理系统需求分析

1.可行性研究报告
1.1编写目教务管理系统接口设计
本报告分析教务管理系统接口设计了《****学院学院教务管理系统》开发的可行性教务管理系统接口设计,请院领导审阅并对是否进行该系统的开发做出批示。
1.2项目背景
随着我国教育体制改革的深入,学生人数的不断上升,课程设置不断向深度和广度发展,教学体制也逐渐由学年制向学分制过渡,教务管理工作无论从管理模式还是手段都需要尽快适应快速发展的高教事业。随着高校新生的扩招力度加大,各高校都面临着资源紧张的问题,如教室问题,原来每个班有一个固定教室的模式己不存在,甚至原来一个系专用的教学楼都要考虑参加全校的教室资源统一调整。对高校教务处来说确实是一个艰巨的任务。
而知识经济时代己向我们走来,信息化已经成为社会发展的时代特征。计算机技术、通信技术和现代信息技术的迅速发展,以及管理科学、行为科学和系统科学等相关学科的不断发展,为实现教务管理系统提供了坚实的理论与技术基础。建设高校教务管理,不仅是时代发展的要求,而且是发展教育事业、提高高校教学管理水平和办学效益的需要。高校教务管理是一个庞大的系统,包括方方面面,其中一个重要的子系统就是教务管理系统。
随着Intemet技术的日益发展,Web应用的逐渐普及,多数高校都建成了规模或大或小的校园网,并在此基础上实现了部分应用,如办公自动化系统、人事管理系统等,实现教务管理系统升级改选具备了条件,可实现教务管理系统由学年制改为学分制、由单机或局域网结构改成Intemet结构、通过Web浏览器访问学校的教务管理系统、进行教务管理等。
本系统的研究和开发,就是在这个大环境下由学院教务处提出进行的。
1.3技术可行性
本系统运行时要求计算机网络连接稳定可靠。
对现有人工数据采集、统计分析的流程进行了调查,并对软件系统实现的技术可行性进行了分析,我们认为《教务管理系统》具备开发的需求及条件。我们细致一对人工系统及软件系统实现测评的费用进行了计算及对比,得出的结论是使用软件系统可节省人力、物力,而且可以提高测评结果的准确性。
1.4经济可行性
基本建设投资25720元
其他一次性支出105600元
非一次性支出11200元
综上合计142520元
2.项目开发计划
2.1系统目标
以校园网为依托,在学院信息化建设总体建设框架下,遵循教务管理的模式,以较先进的开发平台开发学院教务管理系统。系统运行稳定可靠,数据安全性高,系统界面友好,方便通过INTERNET进行数据输入和查询。
系统要求能够实现学生学籍管理、教学计划管理、成绩管理、教师管理、排课管理、教材管理、教学设施管理和教学评价管理等功能,最大限度减轻教务管理听手工劳动,使学院教务管理水平提升到新的水平。
系统能够导入高校招生系统数据,并与学院其它应用系统有数据接口,能够实现数据共享。
2.2主要功能
按照系统开发业务分析要求和原则,在与教务管理人员员充分沟通,整理出教务管理系统所需求的基本功能,这些需求将作为系统分析和逻辑设计的依据。在开发过程中,有必要对这些要求进行细化和整合。
2.2.1学生学籍管理系统
1.能够根据高考录取名单导入学生花名册。
2.能够修改学生信息,按专业、成绩、性别等分班、生成学号等。
3.能够处理学籍异动情况(转入、转出、留级、退学、升本、毕业时间)。
4.打印功能。
2.2.2学生基本信息管理系统
1.能够完成学生基本情况录入、修改、导入和删除功能。
2.学生基本信息查询和统计功能。
2.2.3学生成绩管理系统
能够完成成绩录入功能,需要录入录入名称、学年、学期、考试/考察和总学时。
任课教师可以进入系统进行成绩录入,但确定后不可以再行修改。
可以添加课程补考及毕业前再补考成绩。
毕业论文题目及成绩录入、查询。
可以实现以班为单位的成绩统计,学生各科成绩统计,按科目分类的成绩统计,如不及格人数名单、缺考人数及名单,超1/4人数及名单。
各项统计的打印功能。
2.2.4教师基本信息管理系统
1.教师基本情况录入修改和导入功能。
2.教师基本信息查询和统计功能。
2.2.5学生选课管理系统
1.可以根据学生所在专业、年级自动生成可选课程相关信息列表。
2.学生根据信息列表可以完成选课。
3.在学生完成选课之后,显示其已选课程列表。
2.2.6教学计划信息管理系统
1.专业教学计划的录入、修改和生成。
2.根据教学计划生成各学期的执行教学计划。
3.查询各系、专业、年级教学计划。
4.查询各专业教学指导书、实习、实训指导书。
5.查询专业课程配置图。
6.按类别、学年、专业查询课程。
7.查询课内总学时数。
8.教学执行计划的打印功能
学院教务综合管理系统,其组织结构如图2.1所示。 图2.1教务管理组织机构图
2.3.主要业务流程
将教务管理系统划分为以下几个部分,即业务过程:.
学生学籍管理.
学生成绩管理.
教学计划管理.
学生选课管理.
教师基本信息管理.
统计管理.
这些业务过程贯穿在教学过程中,主要是通过授课来实现的,授课的结果主要表现为学生的成绩。新生入学后分配到各个不同的专业班级,在教学过程中按照教学的组织原则编排到不同的教学班级中,教务处和各院系按照全校各专业教学计划负责相关的课程设置、教学大纲、编排课程、选课条件、授课、成绩、毕业审核等教学和教学教务管理工作。

2.4实施计划
09/9/10——09/9/17系统的初步调查 09/9/17——09/9/0系统分析 09/10/9——09/10/22模块设计 09/10/22——09/11/5数据库设计 09/11/5——09/11/27部分运行界面与代码
2.5人员分工
售前服务教务管理系统接口设计
系统设计教务管理系统接口设计
编码:
测试:
售后服务:
3.需求分析
3.1数据描述
3.1.1数据流图
对教务管理系统的业务分析后发现,“核实学生情况登记表”是在招就办参与下进行的,对于教务管理系统而言,最终只是负责将准确的学生情况登记表存入档案,以备学生在校学习期间的各项业务处理使用,因此考虑本系统只实现信息的输入功能。“开会讨论”这项业务是在教务处的主持下,各系部中的专业针对每一学期的课程安排进行相互协商,最终产生教学执行计划存入档案,因此,这项业务在本系统中也只考虑实现信息的输入功能。‘旧常事务处理”业务中经常涉及到一些信息的检索查询或是一些只能用手工完成的随机业务,因此在教学系统中可以考虑将信息检索查询放在其它的业务过程中实现,而不考虑具体实现这项业务过程。
通过分析,可以画出现行系统的数据流程图,如图3.1。
图3.1现行系统数据流程图
数据流程图中外部项有:学生、各专业、教师、学生、各单位、院长和省教委。
数据存储有:学生情况档案、学生变动台帐、教学执行计划、学生成绩档案。
数据流有:学生情况登记表、教学执行计划、教学任务分配表、老师情况登记表、学生成绩单和种类统计报表。
处理功能有:输入学生情况登记表、建立学生变动台帐、输入教学执行计划、打印教学执行计划、排课、学生学籍管理和学生情况统计。
3.2 各功能数据流程图
3.2.2学生信息管理子系统数据流程图
学生信息管理子系统数据流图如图3.2所示。
数据流程图中外部项有:学生、招就办、各单位、院长和省教委。
数据存储有:新生名册、学生学籍。
数据流有:学生情况登记表、错误的学生情况登记表、新生名单、各类统计报表。
处理功能有:编班、审核登记表、建立学籍表和统计学生变动。
3.2.3学生学籍管理子系统数据流程图
学生学籍管理子系统数据流程图如图3.3
数据流程图中外部项有:学生、用人单位和成绩处理模块。
数据存储有:审批表、学生学籍和学生成绩档案。
数据流有:学籍变动申请、学籍变动通知、毕业证书、毕业登记表、退留名单和奖励名单。
处理功能有:审批变动申请、修改学生学籍、打印变动通知、退留处理、奖励处理、审批毕业资格和学生毕业登记。
图3.3 学生学籍管理子系统数据流图
3.2.4成绩管理子系统数据流程图
学生学籍管理子系统数据流程图如图3.4
数据流程图中外部项有:教师和学籍管理处理模块。
数据存储有:学生成绩。
数据流有:学生成绩单。
处理功能有:登记期末成绩和成绩分析。
图3.4 成绩管理子系统数据流图
3.2.5教学管理系统主题数据库方案
通过对系统业务流程中数据处理部分分析,可以确定以下主题数据表:
学生学籍管理数据表:刻录学生基本信息、学生奖惩情况、学生学籍变动情况、参加学校课外活动等信息,反映了学生在校期间的主要情况。
教师管理数据表:刻录都是自身基本信息及所属教研室、所属系的基本情况。
课程管理数据表:刻录了教学执行计划的详细内容。
教师任课数据表:刻录每一教师任课情况及日常必需的调课信息。
课表数据表 :是各专业、各班级课程安排的具体体现。
学生成绩管理数据表:刻录学生各门课程的学习成绩及补考成绩,反映学生在校的学习情况。
统计数据表:是根据教师、学生的各类信息进行分类汇总形成的一个初步的综合统计信息。
以上主题数据表确定了教务管理系统的数据库方案,每个主题数据库确定了其中所包含的内容。如学生学籍管理数据库刻录了学生基本信息、奖惩信息、学籍变动情况、学生参加课外活动情况、学生换证情况等信息。
3.3功能描述(界面)

学籍管理系统 数据库程序编写!!

一. 应用实例的分析与开发
---- 我们以学籍管理系统为背景,基于Windows DNA的思想,开发了一套应用系统。在该系统中,有关教务学籍的事务逻辑都是由定制COM组件来处理的,动态Web页面通过ASP脚本调用这些组件。系统在开发速度和软件质量等方面都优于不用COM组件而仅用ASP脚本的方案。为说明问题,我们通过一个定制组件和ASP脚本的主要代码简单介绍局部功能的实现过程。
---- 在displayscore.asp页面中接受、辨别用户的查询请求,做出不同的查询处理。当客户的身份为教师或教务时,可以查询所有学生的成绩;当客户的身份为学生时,只能查询该生本人的成绩。
---- 定制COM组件Score.dll进行查询处理。首先设计该组件的接口,为组件设置四个属性: Subj(课程)、Term(课程所属学期)、Class(查询的班级)和Stu_No(查询学生的学号);定义两个方法:RequeryScores和RequeryAllScores,分别对教师、教务部门和学生的请求做出相应的处理,并将查询结果集返回给用户。
---- 以下是实现该组件Score.dll的部分关键代码。从中我们可以看到组件的接口是如何实现的:
Option Explicit
Private m_StuNo As Variant
Private m_Subj As String
Private m_Term As String
Private m_Class As String
' 设置属性为可写入的
Public Property Let StuNo(ByVal vNewValue As Variant)
m_StuNo = vNewValue
End Property
Public Property Let Subj(ByVal vNewValue As Variant)
m_Subj = vNewValue
End Property
......
' 学生查询成绩请求处理
Public Function RequeryScores() As Object
Dim objContext As MTxAS.ObjectContext
Set objContext = GetObjectContext()
' 建立事务性组件
Dim ObjConn As ADODB.Connection
' 利用ADO访问数据库
Dim ObjRecordset As ADODB.Recordset
Set ObjConn = New ADODB.Connection
ObjConn.Open "xia", "sa", ""
Set ObjRecordset = New ADODB.Recordset
Dim query As String
' 根据查询要求(查询所有课程、查询特定学期的所有课程、
查询指定课程、查询特定学期的某一课程)进行不同的查询操作
If (m_Subj = "all" And m_Term < "all") Then
query="select Client_Name,Client.Client_No,Courses.subject,
stu_score.score,stu_score.term,sub_type"
query = query " from client,stu_score,courses"
query=query"where client.client_no=stu_score.client_no
and stu_score.subject=courses.subject
and courses.term=stu_score.term
and courses.term='" m_Term "'
and Client.Client_no='" m_StuNo "'"
End If
......
ObjRecordset.Open query, ObjConn
' 进行数据库查询
ObjContext.SetComplte
' 若事务成功完成,则提交该事务
RequeryScoresExit:
Set RequeryScores = ObjRecordset
' 返回查询结果集
Exit Function
RequeryScoresErr:
Set RequeryScores=Nothing
' 事务失败处理
End Function
' 教师、教务查询成绩请求处理
Public Function RequeryAllScores() As Object
......
End Function
---- 在ASP页面displayscore.asp中引用组件,ASP代码如下(其中加粗的部分便是对该组件的调用):
< %@ LANGUAGE="VBSCRIPT" %
< HTML
< HEAD
< META NAME="GENERATOR" Content="Microsoft
Visual InterDev 1.0"
< META HTTP-EQUIV="Content-Type"
content="text/html; charset=gb_2312-80"
< TITLE Show To Teacher< /TITLE
< /HEAD
< BODY background="images/bk.GIF"
< %
dim objResult
set objResult=Server.CreateObject("Display.Score")
dim Term,Subject
Term=Cstr(Request.Form("Term"))
Subject=Cstr(Request.Form("Subject"))
objResult.term=Request.Form("term")
objResult.Subj=RequestForm("Subject")
objresult.class=Request.Form("Class")
dim Scores
set Scores=objResult.RequeryAllScores
%
' 以下代码为显示处理的结果
< div align="center" < center
......
< table border="0" cellpadding="0"
cellspacing="1" width="100" < tr
< %For I = 0 To Scores.Fields.Count - 1%
< td bgcolor="#004080"
< strong < font color="#FFFFFF" < small   
< %=scores(I).Name% < /font < /strong  < /td
< %NEXT
Do While (Not Scores.EOF)%
< /tr < tr
< % For I = 0 To Scores.Fields.Count - 1%
< td bgcolor="#ACE8F9" < p align="center"
  < %= Scores(I).Value% < /td
< %Next
Scores.MoveNext% < /tr
< %Loop%
< %Scores.close
' 关闭数据库连接
set Scores=Nothing
set objResult=Nothing %
' 释放对象
< /table < /center < /div
< /BODY
< /HTML
---- 可以想象,如果仅使用ASP脚本进行业务处理就会使ASP页面中代码十分臃肿、晦涩。而使用组件的方案也较单纯的ASP脚本执行速度速度快。并且可以将整个查询处理作为一个事务,保证数据库信息的安全、完整。将该组件在MTS中注册,又可避免多用户访问该主页时可能造成的网络拥塞。实际应用中,学生和教师的使用权限是不同的。在学生查询成绩的页面中,可重用该组件,只是调用其不同的接口而已。仅使用ASP脚本进行业务处理,则需重新编写与displayscore.asp类似的、同样烦琐的代码。在开发过程中,不同的开发人员可各尽所能,同时进行组件和ASP页面的设计,缩短了软件开发周期。
---- 以下两图显示的是教师(教务)查询成绩和显示查询结果的页面:
二. 开发过程中辅助工具的使用
---- 传统的软件工程进行的需求分析、数据库设计等都是人们“纯手工”完成的,缺乏严谨性和规范性。而在以组件为中心的系统分析和软件开发过程中,应力争使用有效的计算机辅助工具,以适应快速建模和组件方法新形势的需要,提高分析的质量及精度。
---- 有很多辅助工具可以利用。由于以组件为中心的系统分析过程仍保留着传统软件工程方法的脉络痕迹,北大青鸟的CASE工具对传统的软件工程方法比较有效,我们采用了这一工具。在数据库建模方面,我们选用了SYBASE 公司的S-Designer,可将数据库概念模型自动转化为物理模型。
---- 1. 利用青鸟CASE工具编写需求分析文档
---- 长久以来,人们已习惯于“纯手工”地进行需求分析。开发人员对现有系统和用户要求进行调查后,需要设计系统的数据流图(DFD图),编写小说明,设计系统的结构图(SC图)。但这种分析方法是不严谨的,由于种种原因,可能会发生加工、数据流、文件的语法定义错误;数据流图上下各层不一致;数据流图分解后的数据不平衡,或文件等重名及文档不完备等各种问题,影响了我们对用户需求的分析和理解,防碍了今后的工作。尤其是对组件的分析失当,后果不堪设想。
---- 青鸟CASE工具提供的即是一套支持软件工程中采用传统的结构化方法进行需求分析、软件设计的工具。由工具生成的每个文件即一个项目,每个项目均包括数据流图和模块结构图两部分:
数据流图部分辅助系统分析员完成对软件系统的需求分析、建立目标系统的需求模型、生成一份正确、完整的关于目标系统的说明文档;同时,提供对需求文档的查询、列表、分片、影响范围等分析功能,辅助软件设计人员对需求分析的结果文档进行深入、细致的分析和理解,以利于软件设计工作。
模块结构图部分辅助程序设计人员在需求分析阶段完成后对软件系统进行设计,支持模块的逐层细化,建立系统的软件体系结构,最后得到一份正确、完整的软件设计文档。同时,提供对设计文档进行查询、列表、分片、影响范围等分析功能,完成对设计的结果文档进行深入、细致的分析理解,以利于软件开发及维护工作。在SC图中组件的规划方案已见端倪,继续细化将得出每个组件的概要设计方案。
---- 在教务系统的实例中,利用青鸟CASE工具生成的DFD图和SC图如下图所示:
---- 系统1层DFD图 系统0层SC图
---- 2. 利用S-Designer进行数据库设计
---- 当完成系统的详细设计后,接下来便是数据库设计。数据库设计在整个软件工程中占有举足轻重的地位。数据库设计不合理,数据得不到合理、有效的存储,数据存在潜在的不一致性、不完整性或有大量冗余,都会降低系统性能,甚至使系统崩溃。
---- 手工的数据库设计完全依赖于设计者的设计水平。设计者首先必须根据实际需要建立若干个逻辑上存在的数据库表,并使其满足第三范式;而后根据它们之间的联系建立特定数据库表将其联系起来。这是一件相当烦琐的事。数据库设计者既要进行数据库的逻辑设计,又要将逻辑模型转成物理模型,而且设计出的数据库不一定能满足第三范式。合理的库表结构决定了访库组件接口的设计质量,所以原先数据库设计方式不适用于以组件对象为中心的软工设计。
---- 在教务系统的实例中,S-Designer使数据库设计变得轻松、简单起来。设计者只须根据现实需要,设计出数据库的E-R图,S-Designer会将逻辑模型转化为物理模型,为数据库表间的联系建立新表,指明表的主码、外码,并自动对数据库表进行一致性、冗余性、完整性检查,使数据库表满足第三范式。
---- 例:可首先设计出数据库表课程(Courses)和学生(Client)的逻辑模型:
---- 接下来,为表Courses和Client间建立联系。由S-Designer自动生成的物理模型,如下图所示,它们为访库组件的接口设计提供了准确的依据。
---- 可以相信,随着软件工程学的进一步成熟,将出现更多的计算机辅助工具,帮助软件开发人员构建出更完善的应用系统。许多辅助软件工具可以完成相似的工作,到底选用何种辅助工具取决于这些工具的性能以及使用者的习惯。
---- 以组件对象为中心的动态Web方法和DNA思想并不高深莫测,开发技术也愈加规范化。应当说,这套方法更适合客观信息结构的现实,也更接近于人们的思维方式,其技术有如行云流水般自然,很适合在中小型企业环境中推广和普及。

求一个用C+编写的题目为学生学籍信息管理系统设计,整个系统要设计为数据录入、查询,删除,排序模块,

没法传图,自己想一下怎么改吧……
一.开发目的:
总结软件开发过程中的方法和技巧,更好的应用和数据库技术
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 要求
C++.net,传感器,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
输入无效
2
1234561
输入无效
4
12341
输入无效
3
12t21
输入无效
2、 3
排课
输入无效
7
(折半查找算法测试)2
测试名称:模块输入课程编号过滤的测试方案
a) 规定课程编号为输入4个字符,头两个字符为字母,后2个字符为数字例如TP38
b) 测试方法采用黑盒测试法中的等价类划分法
划分等价类
输入数据
有效等价类
无效等价类
课程号
1 两字母+两数字
2有非数字或字母
字母
3 A--Z
4字母少于两个或多于两个
数字
5 00--99
6数字少于两个或多于两个
为有效等价类和每个无效等价类设计测试用例
测试数据
期望结果
测试范围
HY76
输入有效
1、3、5
@D78
输入无效
2
S86
输入无效
4
MA2
输入无效
6
HY345
输入无效
6
DEH94
输入无效
4
测试名称:课程查找模块设计测试方案
a) 本模块采用的是折半查找算法主要是测试各程序在各种典型情况下是不能有效的进行查找
b) 测试方案采用选择白盒测试法中的路径覆盖法
说明:由于输入的课程编号已经被过滤,所以编号接受的范围为00--99
另外,团IDC网上有许多产品团购,便宜有口碑 关于教务管理系统接口设计和教务管理系统api接口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 教务管理系统接口设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于教务管理系统api接口、教务管理系统接口设计的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现任务超时处理方法
下一篇:别在Java代码里乱打日志了,这才是正确的打日志姿势
相关文章

 发表评论

暂时没有评论,来抢沙发吧~