综合应用软件课程设计
计算机学院基础教学部
数据库课程设计要求
一、设计目的
在数据库原理课程基础上,培养学生综合运用数据库知识的能力。学会数据库的设计、规划以及应用程序的开发和调试,使学生掌握客户机/服务器体系结构,学会大型数据库的工作模式。大型数据库管理系统存放于服务器,数据库放在服务器上,学生在客户机上开发应用程序访问服务器上的数据库,并完成应用系统所要求的各项功能,应用程序的开发需要采用当前流行的新软件。
二、设计内容
自行设计并实现一个较为完整的数据库应用系统的设计与开发,锻炼学生综合运用数据库知识的能力,并学会一种当前流行的软件开发工具。
1. 数据库的设计
根据所选的题目,经过调查研究,构建合理的数据库。首先构建基本表以及表和表之间的联系,在此基础上构建视图和索引表。
2. 服务器的组织
根据建立的基本表、视图和索引表搭建服务器。
3. 前端开发工具:Delphi,VB, PB, VC++, Builder C++,Java等都是当前流行的前台开发工具,选择其中一种进行学习并完成编写程序。
服务器端:SQL Server2000
4. 开发应用程序
利用所学的新软件开发工具进行应用程序的开发。
5. 连接、调试。
三、设计要求
题目自定,充分发挥自己的能力和个性。完成以上五个任务,系统运行正常,写出课程设计报告。
(1)周三给出软件计划,内容包括:
题目,选题理由,软件功能,性能描述,开发环境描述,进度安排。
(2)软件需求描述
(3)软件设计
(4)软件设计报告
设计报告的内容格式见“数据库课程设计报告格式
四、可选题目:
(1)图书管理系统
(2)设备管理系统
(3)铁路客运订票系统
(4)通信录管理系统
(5)航空客运订票系统
(6)教材管理系统
(7)工资管理系统
(8)报刊收发管理系统
(9)校园导游咨询系统
(10) 全国交通咨询模拟系统
(11) 电梯模拟系统
(12) 小区物业管理系统
(13) 图书出版发行系统
五、组织实施方式
可以分组,每组最多两人,鼓励单人完成。
六、考核方式
(1) 题目的新颖程度及难度
(2) 所选语言的难度及熟悉程度
(3) 设计文档的内容
(4) 设计结果(在机器上验收)
(5) 设计过程态度
附:设计具体内容
第二篇:应用软件课程设计
《应用软件课程设计》
课程性质:普通
适用专业:计算机科学与技术
总学时数:2周(上机72学时)
总学分:2
要求先修课程:数据结构,编译原理
教材:无
参考软件:CERBASE系统,DBMS课程设计软件范例
一. 本课程的地位、作用和任务
基于C/C++的DBMS系统的课程设计是一个综合性很强的题目。它囊括了数据库技术、编译技术和文字处理技术,需要并且帮助学生巩固关于数据结构、算法、程序设计的基础知识。通过本课程设计,学生可以深刻地理解数据库管理系统的内部机制、学习DBMS的实现技术、大程序编程技术和面向对象编程技术。
二. 教学基本要求及课时分配
本课程设计要求学生完成以下几个功能模块:
1. 数据存储结构的设计与管理
1)要求设计表构造模式及其在数据库文件中的存储结构,最后在自选的软件平台上建立能创建、查看表构造模式的用户界面。
先自定义表构造模式的结构,然后将其存放到自定义存储结构的数据库文件(.dbf文件)中,要求能在一个数据库文件中存放多张不同的表,并能查看各表的字段结构内容。
(提示表构造模式包括字段名、类型、字长、是否为KEY键、是否允许为NULL。考虑到以后对表的操作可以预留一些字段。)
2)要求设计记录在数据文件中的存储结构形式,并在自选的软件平台上建立用户界面来添加新记录到数据文件中,并能查看数据文件中的记录内容。
根据从1)中数据库文件(.dbf文件)中抽取的有关表的构造模式信息,将记录存放到自设计存储格式的数据记录文件(.dat文件)中,要求能存放不同的多张表的记录内容,能查看不同表的记录内容。
2. 数据定义语言与操作语言的实现
3) 数据定义语言(DDL)的实现。
实现定义表模式结构,并能修改表结构的语句。
要求实现:定义表(Create Table); 修改表(Edit Table、Rename Table、Delete Table);
4) 数据操纵语言(DML)实现。
实现记录数据的插入、删除和修改。
要求实现:数据的插入(Insert)、删除(Delete)、修改(Edit)。
3. 数据库复杂查询实现
5)实现数据库单表、多表的选择、投影、连接查询。(要求实现:Select 条件查询)
三、提示
1. 数据存储结构的设计与管理
1.1设计表构造模式及其在数据库文件中的存储结构。
要求能在一个数据库文件中存放多张不同的表,并能查看各表的字段结构内容;最后在自选的软件平台上建立能创建、查看表构造模式的用户界面。
提示:
● 定义表构造模式。表的构造模式为一系列字段结构的集合(可设为结构数组)。字段结构(struct)包括字段名、类型、字长、是否为KEY键、是否允许为NULL,考虑到以后对表的操作可以预留一些字段(如该字段是否有效标志)。
字段结构如下://注:为与标准C兼容,bool类型用char类型代替
typedef struct {
char sFieldName[FIELD_NAME_LENGTH]; //字段名
char sType[8]; //字段类型
int iSize; //字长
char bKey; //该字段是否为KEY键
char bNullFlag; //该字段是否允许为空
char bValidFlag; //该字段是否有效,可用于以后对表中该字段的删除
} TableMode,*PTableMode;
● 然后将上述结构数组构成的表模式存放到自定义存储结构的数据库二进制文件(.dbf文件)中。表模式结构可以采用定长方式存储(一张表占用固定的文件字节数),也可以采用变长方式,例如下面所示:
数据库文件(.dbf)的存储结构如下:
1.2设计记录在数据文件中的存储结构形式。
要求能存放不同的多张表的记录内容,能查看不同表的记录内容,并在自选的软件平台上建立用户界面来添加新记录到数据文件中,并能查看数据文件中的记录内容。
提示:
● 从1)所建的数据库文件(.dbf文件)中抽取有关表的构造模式信息,来指导记录的输入,如表中有什么字段,有多少字段等。然后将记录存放到自设计存储格式的文件中(.dat文件)。
数据文件(.dat)的存储结构如下:
4. 数据定义语言与操作语言的实现
2.1数据定义语言(DDL)的实现。
实现定义表模式结构,并能修改表结构的语句。
要求实现:定义表(Create Table); 修改表(Edit、Rename、Delete);
提示:
● 定义表模式结构语句
因为在1.1节中已经能创建表,这里的主要任务是分析词法,提取1.1节中所要求的输入内容,如表名、数据库文件名、表各字段结构的具体内容。可使用一个函数分析词法,取得具体内容后,再调用1.2节的函数创建具体的表。
模仿SQL语句,定义表模式结构语句为:
CREATE TABLE Table_Name(
Field_Name1 Type1 KEY_Flag1 NULL_Flag1 VALID_Flag1,
Field_Name2 Type2 KEY_Flag2 NULL_Flag2 VALID_Flag2,
Field_Name3 Type3 KEY_Flag3 NULL_Flag3 VALID_Flag3,
….
)INTO DataBase_FileName;
例如,在MyDB数据库文件中创建一个表MyTable,其包含有:字段名Name,类型char[10],为KEY键,非空,有效及字段名Age,类型int,非KEY键,非空,有效。创建语句如下:
CREATE TABLE MyTabel(
Name char[10] KEY NO_NULL VALID,
Age int NOT_KEY NO_NULL VALID
)INTO MyDB;
● 修改表语句
编辑表字段:
EDIT TABLE TableName(
Field_Name Type KEY_Flag NULL_Flag VALID_Flag)IN DataBase_FileName;
更改表名:
RENAME TABLE TableName1 TableName2 IN DataBase_FileName;
删除表:
DROP TABLE TableName IN DataBase_FileName;
2.2数据操纵语言(DML)实现。
实现记录数据的插入、删除和修改。
要求实现:记录数据的插入(Insert)、删除(Delete)、修改(Edit)。
提示:
● 记录数据的插入(Insert)
因为在1.2节中已经能在数据文件中添加记录,这里的主要任务是分析词法,提取1.2节中所要求的输入内容,如表名、数据库文件名、表各字段结构的具体内容。可使用一个函数分析词法,取得具体内容后,再调用1.2节的函数创建具体的表。
在数据库DataBase_FileName的TableName表中插入一个记录(记录内容包含Field1、Field2等)
INSERT INTO TableName VALUES(Field1,Field2,Field3,。。。)IN DataBase_FileName;
● 记录数据的删除(Delete)
DELETE FROM TableName WHERE Field=Content IN DataBase_FileName;
● 记录数据的修改(Edit)
UPDATE TableName(
SET Field1=Content1
WHERE Field2=Content2)IN DataBase_FileName;
5. 数据库复杂查询实现
3.1实现数据库单表、多表的选择、投影、连接查询。
要求实现:Select 条件查询
提示:
● Select 条件查询
SELECT *
FROM TableName1,TableName2
WHERE Condition
四、考核安排及成绩评定
1、 分组
每3~5个人一组(自由组合),每组确定一个组长;组中每个成员负责一个模块的设计和实现。
6月16日前确定分组名单,并由班长整理交给任课教师。
2. 考核
6月25-26日检查完成情况,内容包括:(1)交付程序源代码(用光盘拷贝)和设计报告(说明设计思想、文件具体存储格式、数据定义及操纵语言的语法定义等)。(2)讲述本组的设计思想和完成情况(本组所有成员参与)。(3)回答老师提出的问题(本组所有成员参与)。
3、成绩评定
根据考勤和最终完成情况进行成绩评定:
(1) 若缺勤率达到30%,取消考核资格。
(2) 平时考勤占总分20%,若上机上网或者游戏者,每次扣除2分。
(3) 只完成要求1,根据设计思想和代码质量评定,60~75。
(4) 完成要求1、2,根据设计思想和代码质量评定,75~90。
(5) 完成要求1、2、3,根据设计思想和代码质量评定,85~100。
五、推荐参考书籍:
(1)《数据库管理系统实现技术》,周龙骧,中国地质大学出版社,1990年
(2)《数据库管理系统设计与实现》,唐常杰,电子工业出版社,1993
(3)《数据库管理系统内部结构及其C语言实现》,唐常杰,电子科技大学出版社,1995