数据库设计说明书 数据库设计说明书,由谁编写,写给谁看
大家好,今天小编来为大家解答以下的问题,关于数据库设计说明书,数据库设计说明书,由谁编写,写给谁看这个很多人还不知道,现在让我们一起来看看吧!
什么是程序设计说明书
开发人员:黄涛学号:2004551425计算机3班
开发日期:2006年2月22日
版本:————
程序功能:建立一个简单的学生管理系统,存储的学生信息至少包括:班级,学号,姓名,各个科目的成绩.能够完成的功能至少有:输入,查询,修改,删除学生信息,计算学生的平均成绩,名次,按某个科目的成绩排序输出.注意:只能采用文件形式管理,不得采用现成的数据库管理.
开发环境:程序在Visual c++ 6.0下开发,编译工具为Vc 6.0,操作系统为Windows XP.
数据结构和算法:本程序包含数个函数,且用链表存储信息,每个节点包含一个学生的信息.
本程序中有两种结构体:
typedef struct student{ typedef struct score{
char name[MAX+1];/*学生姓名*/ char name[MAX+1];/*学生姓名*/
int num;/*学生学号*/ int aver;/*学生成绩*/
char class[MAX+1];/*班级*/ struct score*next;/*指向后继节点*/
int Chinese;/*语文成绩*/}Sco,*SCO;
int English;/*英语成绩*/
int math;/*数学成绩*/
int computer;/*计算机成绩*/
struct student*next;/*指向后继节点*/
}Stu,*STU;
程序流程图如下:
*****主程序流程图*****
主要函数功能说明
函数原型:STU insert();功能:插入学生信息
入口参数:无出口参数:无返回值:无
函数原型:STU xiugai();功能:修改学生信息
入口参数:无出口参数:无返回值:无
函数原型:STU shanchu();功能:删除学生信息
入口参数:无出口参数:无返回值:无
函数原型:STU find();功能:查找学生信息
入口参数:无出口参数:无返回值:无
函数原型:int xianshi();功能:显示文件内容
入口参数:无出口参数:无返回值:无
函数原型:int eaverage();功能:计算学生名次
入口参数:无出口参数:无返回值:无
函数原型:int chinese();功能:语文成绩
入口参数:无出口参数:无返回值:无
函数原型:int english();功能:英语成绩
入口参数:无出口参数:无返回值:无
函数原型:int math();功能:数学成绩
入口参数:无出口参数:无返回值:无
函数原型:int computer();功能:计算机成绩
入口参数:无出口参数:无返回值:无
函数原型:void fresh();功能:清屏
入口参数:无出口参数:无返回值:无
——————————说明书结束——————————————————
——————源程序————————
#include
#include
#include
#include
#include
#define LEN sizeof(struct student)
#define NEM sizeof(struct score)
#define MAX 8
typedef struct student{/*学生信息节点*/
int num;
char class[MAX+1];
char name[MAX+1];
int chinese;
int english;
int math;
int computer;
struct student*next;
}Stu,*STU;
typedef struct score{
char name[MAX+1];
float aver;
struct score*next;
}Sco,*SCO;
struct score stud[1000];
FILE*fp;
void print()/*清屏*/
{ system("cls");
printf("\t\t\t--学生成绩管理系统--\n");
printf("creat(建立文件模型)\t");
printf("insert(插入学生信息)\t");
printf("xiugai(修改学生信息)\t\n");
printf("find(查找学生信息)\t");
printf("fresh(清屏)\t");
printf("shanchu(删除学生信息)\t\n");
printf("xianshi(显示文件内容)\t");
printf("eaverage(计算学生平均成绩和名次)\t\n");
printf("chinese(语文课程排序)\t");
printf("english(英语课程排序)\t");
printf("math(数学课程排序)\t");
printf("computer(计算机课程排序)\t");
printf("quit(退出)\t\n");
}
void cin(STU p1)
{printf("请输入姓名:");
scanf("%s",p1->name);
printf("学号:");
scanf("%d",&p1->num);
printf("班级:");
scanf("%s",p1->class);
printf("请输入成绩:\n");
printf("语文:");
scanf("%d",&p1->chinese);
printf("英语:");
scanf("%d",&p1->english);
printf("数学:");
scanf("%d",&p1->math);
printf("计算机:");
scanf("%d",&p1->computer);
}
STU creat(void)/*创建函数模型*/
{ STU head,p1,p2;
char ch;
int i=1,k=0;
p1=p2=(STU)malloc(LEN);
while(i)
{
k++;
if(k==1)
head=p1;
else
{p2->next=p1;
p2=p1;}
printf("Do you Want to Continue yes or no");
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
{ i=0;
p1->next=NULL;}
else
{p1=(STU)malloc(LEN);
cin(p1);}
}
printf("信息输入完毕.");
Indat(head);
}
Indat(STU p){/*把链表中的信息存入到文件*/
if((fp=fopen("stulist","wb"))==NULL)
{printf("can not open file!\n");
return;
}
while(p!=NULL)
if(fwrite(p,LEN,1,fp)!=1)
{printf("file write error\n");
break;}
else
p=p->next;
printf("写入完毕!");
fclose(fp);
}
STU Outdat()/*把文件中的信息放入到链表*/
{ STU head,p1,p2,p4;
while((fp=fopen("stulist","rb"))==NULL);
printf("cannot open infile!\n");
p4=p2=p1=head=(STU)malloc(LEN);
while(1)
{ if(fread(p1,LEN,1,fp)!=1)
{printf("读出完毕!");
p4->next=NULL;
free(p1);
fclose(fp);
return(head);
}
p1=(STU)malloc(LEN);
p2->next=p1;
p4=p2;
p2=p1;
}
}
find(){/*查找学生的信息*/
char name[10];
int b=0;
STU p3;
p3=Outdat();
printf("请输入您要查询信息的用户名:\n");
scanf("%s",name);
while(p3)
if(strcmp(name,p3->name)!=0)
p3=p3->next;
else
{ printf("这是您要查询的信息!\n");
printf("%s\t%d\t%s",p3->name,p3->num,p3->class);
printf("语文:");printf("%d\t",p3->chinese);
printf("英语:");printf("%d\t",p3->english);
printf("数学:");printf("%d\t",p3->math);
printf("计算机:");printf("%d\t",p3->computer);
b=1;printf("信息输出完毕!\n");
break;
}
if(b==0)
printf("对不起!没有与您要查的相关信息!");
}
STU insert()/*插入学生信息*/
{ STU p1,p2,p3,head;
int i=1;
char ch;
p3=Outdat();
head=p3;
p1=(STU)malloc(LEN);
printf("请输入要插入的学生信息!\n");
cin(p1);
while(i)
{ if(p3->next==NULL)
{ p1->next=NULL;
p3->next=p1;
}
else
{p1->next=p3->next;
p3->next=p1;}
printf("Do you Want to Continue yes or no");
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
i=0;
else
{ p1=(STU)malloc(LEN);
printf("请输入要插入的学生信息!\n");
cin(p1);
}
Indat(p3);}
return(head);
}
STU xiugai()/*修改学生信息*/
{ char name[10];
STU head,p3;
int b=0;
p3=Outdat();
head=p3;
printf("请输入您要修改信息的用户名:\n");
scanf("%s",name);
while(p3)
if(strcmp(name,p3->name)!=0)
p3=p3->next;
else
{printf("这是您要修改的信息!\n");
printf("%s\t%d\t%s",p3->name,p3->num,p3->class);
printf("语文:");
printf("%d\t",p3->chinese);
printf("英语:");
printf("%d\t",p3->english);
printf("数学:");
printf("%d\t",p3->math);
printf("计算机:");
printf("%d\t",p3->computer);
b=1;
printf("信息输出完毕!\n");
printf("请输入您的新信息!\n");
cin(p3);
Indat(head);
return;
}
if(b==0)
printf("对不起!没有您要查的相关信息!");
}
STU shanchu()/*删除学生信息*/
{char name[10];
STU head,p1,p3;
char ch;
int b=0;
p3=Outdat();
head=p3;
printf("请输入您要查询信息的用户名:\n");
scanf("%s",name);
while(p3)
if(strcmp(name,p3->name)!=0)
{p1=p3;
p3=p3->next;
}
else
{ printf("这是您要删除的信息!\n");
printf("%s\t%d\t%s",p3->name,p3->num,p3->class);
printf("语文:");
printf("%d\t",p3->chinese);
printf("英语:");
printf("%d\t",p3->english);
printf("数学:");
printf("%d\t",p3->math);
printf("计算机:");
printf("%d\t",p3->computer);
b=1;
printf("信息输出完毕!\n");
printf("您确实想删除以上信息吗!yes or no\n");
ch=getchar();
ch=getchar();
if(ch=='y'||ch=='Y')
{ p1->next=p3->next;
free(p3);
printf("信息删除完毕!\n");
Indat(head);
return;
}
}
if(b==0)
printf("对不起!没有与您要查的相关信息!");
}
xianshi()/*显示文件中的所有信息*/
{ STU p;
p=Outdat();
while(p!=NULL)
{printf("%s\t%d\t%s",p->name,p->num,p->class);
printf("语文:");
printf("%d\t",p->chinese);
printf("英语:");
printf("%d\t",p->english);
printf("数学:");
printf("%d\t",p->math);
printf("计算机:");
printf("%d\t\n",p->computer);
p=p->next;
}
printf("这是所有信息!");
}
eaverage()/*计算学生的平均成绩和名次*/
{STU p3,head;
float a;
char ch;
int i, b=0,j=1;
char name[10];
SCO L,L1,L2;
p3=Outdat();
head=p3=p3->next;
L=L1=(SCO)malloc(NEM);
while(p3)//复制链表;
{ L2=L1;
a=(p3->chinese+p3->english+p3->math+p3->computer)/4;
L2->aver=a;
strcpy(L2->name,p3->name);
L1=(SCO)malloc(NEM);
L2->next=L1;
p3=p3->next;
}
L2->next=NULL;
free(L1);//while
while(j)
{L1=L2=L;
i=1;
printf("请输入您要查的用户名!\n");
scanf("%s",name);
while(L1)
if(strcmp(name,L1->name)!=0)
L1=L1->next;
else
{printf("用户已被找到!\n");
b=1;
while(L2)
if(L1->aver>L2->aver||L1->aver==L2->aver)
L2=L2->next;
else
{ i++;
L2=L2->next;}
printf("此学生的成绩情况是:\n");
printf("%s\t平均分是%f",L1->name,L1->aver);
printf("第%d名!",i);
break;
}
if(b==0) printf("对不起!没有与您要查的相关信息!");
printf("您是否还想继续 yes or no!");
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
j=0;
}
return;
}
chinese()/*语文成绩排名*/
{STU p3,head;
SCO L,L1,L2;
int k,max,j;
p3=Outdat();
p3=p3->next;
head=p3;
max=0;
j=0;
L=L1=(SCO)malloc(NEM);
while(p3)
{ L2=L1;
L2->aver=p3->chinese;
strcpy(L2->name,p3->name);
L1=(SCO)malloc(NEM);
L2->next=L1;
p3=p3->next;
}
L2->next=NULL;
free(L1);
while(L)
{ p3=head;
max++;
while(p3)
if(L->aver>=p3->chinese)
p3=p3->next;
else
{j++;
p3=p3->next;
}
strcpy(stud[j].name,L->name);
stud[j].aver=L->aver;
L=L->next;
}
printf("语文成绩情况:\n");
for(k=0;knext;
head=p3;
max=0;
j=0;
L=L1=(SCO)malloc(NEM);
while(p3)
{ L2=L1;
L2->aver=p3->english;
strcpy(L2->name,p3->name);
L1=(SCO)malloc(NEM);
L2->next=L1;
p3=p3->next;
}
L2->next=NULL;
free(L1);
while(L)
{ p3=head;
max++;
while(p3)
if(L->aver>=p3->english)
p3=p3->next;
else
{j++;
p3=p3->next;
}
strcpy(stud[j].name,L->name);
stud[j].aver=L->aver;
L=L->next;
}
printf("英语成绩情况:\n");
for(k=0;knext;
head=p3;
max=0;
j=0;
L=L1=(SCO)malloc(NEM);
while(p3)
{ L2=L1;
L2->aver=p3->math;
strcpy(L2->name,p3->name);
L1=(SCO)malloc(NEM);
L2->next=L1;
p3=p3->next;
}
L2->next=NULL;
free(L1);
while(L)
{ p3=head;
max++;
while(p3)
if(L->aver>=p3->math)
p3=p3->next;
else
{j++;
p3=p3->next;
}
strcpy(stud[j].name,L->name);
stud[j].aver=L->aver;
L=L->next;
}
printf("数学成绩情况:\n");
for(k=0;knext;
head=p3;
max=0;
j=0;
L=L1=(SCO)malloc(NEM);
while(p3)
{ L2=L1;
L2->aver=p3->computer;
strcpy(L2->name,p3->name);
L1=(SCO)malloc(NEM);
L2->next=L1;
p3=p3->next;
}
L2->next=NULL;
free(L1);
while(L)
{ p3=head;
max++;
while(p3)
if(L->aver>=p3->computer)
p3=p3->next;
else
{j++;
p3=p3->next;
}
strcpy(stud[j].name,L->name);
stud[j].aver=L->aver;
L=L->next;
}
printf("计算机成绩情况:\n");
for(k=0;k printf("%s%f\n",stud[k].name,stud[k].aver);
printf("成绩输出完毕!");
}
void main()/*主函数*/
{ STU p;
int j;
print();
while(1)
{
printf("Enter choice:");
scanf("%d",&j);
if(j13)
{
printf("Enter num from 1 to 13:\n");
exit(1);
}
switch(j)
{case 1:
creat();
break;
case 2:
insert();
break;
case 3:
xiugai();
break;
case 4:
find();
break;
case 5:
print();
break;
case 6:
shanchu();
break;
case 7:
xianshi();
break;
case 8:
eaverage();
break;
case 9:
chinese();
break;
case 10:
english();
break;
case 11:
math();
break;
case 12:
computer();
break;
case 13:
exit(1);
break;
}
scanf("%d",&j);
}
}
————————————用户使用手册——————————
程序功能:建立一个简单的学生管理系统,存储的学生信息至少包括:班级,学号,姓名,各个科目的成绩.能够完成的功能至少有:输入,查询,修改,删除学生信息,计算学生的
平均成绩,名次,按某个科目的成绩排序输出.
完成日期:2006年2月22日
版本:———
运行环境:Windows XP
版权人:黄涛学号:2004551425计算机3班
硬件要求:486以上机器,32M以上RAM,32M硬盘空间
本人保留所有版权.
使用方法:打开文件目录下的可执行文件即可运行程序,程序运行时,屏幕上会显示13个备选的键,每个键都可以完成一个操作,如:插入,删除,修改,学生信息,计算成绩等等······
注意:在使用本程序之前请认真阅读手册.
***********************************************
数据库设计说明书,由谁编写,写给谁看
开发团队
如果你们对于数据库和应用程序的开发有分工的话,那么所有关于数据库方面的都有数据库那边的人写,如果没有分工,就你们自己写
存档的目的一个是便于团队之间的沟通,再一个就是方便事后对程序或者数据库进行修正\升级等,会有一定记录来告诉你数据库中各个表\字段等都是什么含义,以及他们之间的关系,尤其对一些年久失修的应用程序来说,就不用全部看代码了
数据库设计说明书中的数据字典应该如何编写啊
正文
1引言
1.1编写目的
说明编写这份数据库设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.说明待开发的数据库的名称和使用此数据库的软件系统的名称;
b.列出该软件系统开发项目的任务提出者、用户以及将安装该软件和这个数据库的计算站(中心)。
1.3定义
列出本文件中用到的专门术语的定义、外文首字母组词的原词组。
1.4参考资料
列出有关的参考资料:
a.本项目的经核准的计划任务书或合同、上级机关批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2外部设计
2.1标识符和状态
联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
2.2使用它的程序
列出将要使用或访问此数据库的所有应用程序,对于这些应用程序的每一个,给出它的名称和版本号。
2.3约定
陈述一个程序员或一个系统分析员为了能使用此数据库而需要了解的建立标号、标识的约定,例如用于标识数据库的不同版本的约定和用于标识库内各个文卷、、记录、数据项的命名约定等。
2.4专门指导
向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导,例如将被送入数据库的数据的格式和标准、送入数据库的操作规程和步骤,用于产生、修改、更新或使用这些数据文卷的操作指导。如果这些指导的内容篇幅很长,列出可参阅的文件资料的名称和章条。
2.5支持软件
简单介绍同此数据库直接有关的支持软件,如数据库管理系统、存储定位程序和用于装入、生成、修改、更新数据库的程序等。说明这些软件的名称、版本号和主要功能特性,如所用数据模型的类型、允许的数据容量等。列出这些支持软件的技术文件的标题、编号及来源。
3结构设计
3.1概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图。
3.2逻辑结构设计
说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文卷结构、所建立的各个文卷之间的相互关系,形成本数据库的数据库管理员视图。
3.3物理结构设计
建立系统程序员视图,包括:
a.数据在内存中的安排,包括对索引区、缓冲区的设计;
b.所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;
c.访问数据的方式方法。
4运用设计
4.1数据字典设计
对数据库设计中涉及到的各种项目,如数据项、记录、系、文卷、模式、子模式等一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。在本节中要说明对此数据字典设计的基本考虑。
4.2安全保密设计
说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。
关于数据库设计说明书和数据库设计说明书,由谁编写,写给谁看的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。