数据库课程设计是在学生系统的学习了数据库原理课程后,按照关系型数据库的基本原理,综合运用所学的知识,以小组为单位,设计开发一个小型的数据库管理系统。通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。
总体设计要求:
四到五人为一个小组,小组成员既要有相互合作的精神,又要分工明确。每个学生都必须充分了解整个设计的全过程。
从开始的系统需求分析到最后的软件测试,都要有详细的计划,设计文档应按照软件工程的要求书写。
系统中的数据表设计应合理、高效,尽量减少数据冗余。
软件界面要友好、安全性高。
软件要易于维护、方便升级。
编程语言可由小组根据自己的情况选择,但一般情况下应该是小组的每个成员都对该语言较熟悉。避免把学习语言的时间放在设计期间。
参考使用的语言有:VF、VB、Delphi 、PB、VC、SQL_Server等。
学生学籍管理系统
一、设计目的
学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。
二、设计内容
1.主要的数据表
学生基本情况数据表,学生成绩数据表,课程表,代码表等。
2.主要功能模块
1)实现学生基本情况的录入、修改、删除等基本 *** 作。
2)对学生基本信息提供灵活的查询方式。
3)完成一个班级的学期选课功能。
4)实现学生成绩的录入、修改、删除等基本 *** 作。
5)能方便的对学生的个学期成绩进行查询。
6)具有成绩统计、排名等功能。
7)具有留级、休学等特殊情况的处理功能。
8)能输出常用的各种报表。
9)具有数据备份和数据恢复功能。
三、设计要求
学生成绩表的设计,要考虑到不同年级的教学计划的变化情况。
对于新生班级,应该首先进行基本情况录入、选课、然后才能进行成绩录入。
图书管理系统
一、设计目的
学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。
二、设计内容
1.要的数据表
图书基本信息表,借书卡信息表,借阅信息表,图书分类信息表,代码表等。
2.功能模块
1)图书基本情况的录入、修改、删除等基本 *** 作。
2)办理借书卡模块。
3)实现借书功能。
4)实现还书功能。
5)能方便的对图书进行查询。
6)对超期的情况能自动给出提示信息。
7)具有数据备份和数据恢复功能。
三、设计要求
图书编号可参考国家统一的图书编码方法,再完成基本功能模块的情况下,尽量使系统能具有通用性。
银行储蓄系统
一、设计目的
学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。
二、设计内容
1.主要的数据表
定期存款单,活期存款帐,存款类别代码表等。
2.功能模块
1)实现储户开户登记。
2)办理定期存款帐。
3)办理定期取款手续。
4)办理活期存款帐
5)办理活期取款手续。
6)实现利息计算。
7)输出明细表。
8)具有数据备份和数据恢复功能。
三、设计要求
要进行实际调研,系统功能在实现时参照实际的储蓄系统的功能。同时要考虑银行系统数据的安全与保密工作。数据要有加密功能。
设备管理系统
一、设计目的
学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。
二、设计内容
1.主要数据表
设备明细帐表,设备使用单位代码表,国家标准设备分类表等。
2.功能模块
1)实现设备的录入、删除、修改等基本 *** 作。
2)实现国家标准设备代码的维护。
3)能够对设备进行方便的检索。
4)实现设备折旧计算。
5)能够输出设备分类明细表。
6)具有数据备份和数据恢复功能。
三、设计要求
具体设备编码参考国家统一编码方法,功能实现也要考虑通用性。
医院药品进销存系统
#include<iostream>#include<stdlib.h>
#include<windows.h>
#include<string>
#include<conio.h>
#define FILE_PATH "D:/text.txt"
using namespace std
int superscript[20]
int MARK=0
char FLAG='f'
int credits=0
struct Node
{
char data[10]
int num
Node *next
}
class Stack
{
public:
Stack(){top=NULL}
~Stack(){}
void Push(char a[10],int num)
void Pop(FILE *fp,int cre)
int Empty()
{
if(top==NULL)
return 0
else
return 1
}
private:
Node *top
}
void Stack::Push(char a[],int num)
{
Node *m
m=new Node
strcpy(m->data,a)
m->num=num
m->next=top
top=m
}
void Stack::Pop(FILE *fp,int cre)
{
char a[10]
int num
Node *p
if(top==NULL)
{
cout<<" "
}
else
{
credits+=top->num
if(credits<=cre)
{
strcpy(a,top->data)
num=top->num
p=top
top=top->next
delete p
cout<<a<<" "<<num<<""
fprintf(fp,"%s %d",a,num)
MARK=0
}
else if(credits>cre)
{
MARK=1
credits-=top->num
}
}
}
struct ArcNode
{
int adjvex
ArcNode *next
}
struct VertexNode
{
int in
char CourseNum[10]
char ProCourseNum[10][10]
int Credit
ArcNode *firstedge
}
class Courses
{
public:
Courses(int n)
~Courses(){}
void Plan1(Courses a,int term,int cre)
void Plan2(Courses a,int term,int cre)
private:
VertexNode adjlist[20]
int vertexNum
}
Courses::Courses(int n)
{
int i,j,k
ArcNode *s
vertexNum=n
for(i=0i<vertexNumi++)
{
k=0
cin>>adjlist[i].CourseNum
cin>>adjlist[i].Credit
while(1)
{
cin>>adjlist[i].ProCourseNum[k]
if(strcmp(adjlist[i].ProCourseNum[k],&FLAG)==0)
break
k++
}
adjlist[i].firstedge=NULL
adjlist[i].in=0
}
for(i=0i<vertexNumi++)
for(j=0j<vertexNumj++)
{
k=0
while(1)
{
if(strcmp(adjlist[j].ProCourseNum[k],&FLAG)==0)
break
else if(strcmp(adjlist[j].ProCourseNum[k],adjlist[i].CourseNum)==0)
{
s=new ArcNode
s->adjvex=j
s->next=adjlist[i].firstedge
adjlist[i].firstedge=s
adjlist[j].in++
}
k++
}
}
}
void Courses::Plan1(Courses co,int term,int cre)
{
ArcNode *p
FILE *fp=NULL
int a[10]
int j=0,f=0,k,i,l=0,m=0,z,count=0,addterm=0,flag=0
Stack s
for(i=0i<co.vertexNumi++)
{
if(co.adjlist[i].in==0)
{
s.Push(co.adjlist[i].CourseNum,co.adjlist[i].Credit)
superscript[j]=i
j++
}
}
fp=fopen(FILE_PATH,"w")
if(fp!=NULL)
{
fprintf(fp,"\t教学计划安排如下\n")
while(s.Empty()==1)
{
if(flag==1)
break
l=0j=0
while(s.Empty()==1)
{
addterm++
if(addterm>term)
{
cout<<"课程条件与学期条件不符,出现错误,抱歉!!"<<endl
fprintf(fp,"课程条件与学期条件不符,出现错误,抱歉!!")
flag=1
break
}
credits=0
cout<<"第"<<addterm<<"学期应安排的课程为:"
fprintf(fp,"第%d学期应安排的课程为:",addterm)
for(z=0z<2z++)
{
s.Pop(fp,cre)
a[l]=superscript[j]
j++
l++
if(MARK==1)
break
count++
}
cout<<"本学期获得学分为:"<<credits<<"分"
fprintf(fp,"本学期获得学分为:%d分",credits)
cout<<endl
fprintf(fp,"\n")
}
j=0
for(f=0f<lf++)
{
m=a[f]
p=co.adjlist[m].firstedge
while(p!=NULL)
{
k=p->adjvex
co.adjlist[k].in--
if(co.adjlist[k].in==0)
{
s.Push(co.adjlist[k].CourseNum,co.adjlist[k].Credit)
superscript[j]=k
j++
}
p=p->next
}
}
}
}
while(addterm<term)
{
addterm++
cout<<"第"<<addterm<<"学期无课程安排"<<endl
fprintf(fp,"第%d学期无课程安排\n",addterm)
}
fclose(fp)
if(count<co.vertexNum)
cout<<"课程安排出错!"<<endl
}
void Courses::Plan2(Courses co,int term,int cre)
{
ArcNode *p
FILE *fp=NULL
int a[10]
int j=0,f,i,k,l=0,m=0,count=0,addterm=0,flag=0,zhan=0
Stack s
for(i=0i<co.vertexNumi++)
{
if(co.adjlist[i].in==0)
{
s.Push(co.adjlist[i].CourseNum,co.adjlist[i].Credit)
superscript[j]=i
j++
}
}
fp=fopen(FILE_PATH,"w")
if(fp!=NULL)
{
fprintf(fp,"\t教学计划安排如下\n")
while(s.Empty()==1)
{
l=0j=0
addterm++
if(addterm>term)
{
cout<<"课程条件与学期条件不符,出现错误,抱歉!!"<<endl
fprintf(fp,"课程条件与学期条件不符,出现错误,抱歉!!")
break
}
credits=0
cout<<"第"<<addterm<<"学期应安排的课程为:"
fprintf(fp,"第%d学期应安排的课程为:",addterm)
while(s.Empty()==1)
{
s.Pop(fp,cre)
a[l]=superscript[j]
j++
l++
if(MARK==1)
break
count++
}
cout<<"本学期获得学分为:"<<credits<<"分"
fprintf(fp,"本学期获得学分为:%d分",credits)
cout<<endl
fprintf(fp,"\n")
j=0
for(f=0f<lf++)
{
m=a[f]
p=co.adjlist[m].firstedge
while(p!=NULL)
{
k=p->adjvex
co.adjlist[k].in--
if(co.adjlist[k].in==0)
{
s.Push(co.adjlist[k].CourseNum,co.adjlist[k].Credit)
superscript[j]=k
j++
}
p=p->next
}
}
}
}
while(addterm<term)
{
addterm++
cout<<"第"<<addterm<<"学期无课程安排"<<endl
fprintf(fp,"第%d学期无课程安排\n",addterm)
}
fclose(fp)
if(count<co.vertexNum)
cout<<"课程安排出错!"<<endl
}
void show()
{
cout<<endl
cout<<"$**************************************************************************$"<<endl
cout<<"$ 科目 学分 科目 学分 科目 学分 $"<<endl
cout<<"$ 01.C语言-------------2 02.高等数学--------203.离散数学-------1 $"<<endl
cout<<"$ 04.数字逻辑----------2 05.计算机组成原理--106.面向对象程序---3 $"<<endl
cout<<"$ 07.数据结构与算法----3 08.数据库原理------409.Java语言-------4 $"<<endl
cout<<"$ 10.图形程序设计------3 11.嵌入式 *** 作系统--212.大型数据库技术-3 $"<<endl
cout<<"$**************************************************************************$"<<endl
}
int main()
{
int i,max,m,k=1,term
string FIRST="1"
string SECOND="2"
system("color 75")
char ch
string g
for(i=0i<6i++)
cout<<endl
cout<<"\t$**************************************************$"<<endl
cout<<"\t$ $"<<endl
cout<<"\t$ 欢迎进入教学计划编制系统!!!$"<<endl
cout<<"\t$ Ver3.14.1.0 $"<<endl
cout<<"\t$郝智博$"<<endl
cout<<"\t$ $"<<endl
cout<<"\t$**************************************************$"<<endl
for(i=0i<5i++)
cout<<endl
cout<<"请按任意键继续......."
ch=getch()
system("cls")
cout<<"请输入学期总数(请小于等于8个学期)、每学期学分上限(至少为4)以及所需学习课程总数(课程数请小于等于12门):"<<endl
cin>>term>>max>>m
cout<<"请输入每一门课程的课程号、学分、和直接先修课程的课程号(若没有先修课则输入'00',先修课输入完毕按'f'结束):"<<endl
show()
Courses cou(m)
system("cls")
cout<<"请选择您所需的安排策略:"<<endl<<"->1.各学期学习负担均匀"<<endl<<"->2.课程集中在前几个学期"<<endl
while(k)
{
cin>>g
if(g==FIRST) {
system("cls")
cout<<"教学安排如下:"<<endl
cou.Plan1(cou,term,max)
k=0
}
else if(g==SECOND)
{
system("cls")
cout<<"教学安排如下:"<<endl
cou.Plan2(cou,term,max)
k=0
}
else
{
cout<<"输入错误请重新输入"<<endl
k=1
}
}
cout<<"请按任意键退出......."
ch=getch()
system("cls")
cout<<"教学计划已存入指定文件,感谢您的使用,再见!!"<<endl
return 0
}
这个代码基本满足要求了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)