学生信息管理课程设计.docx

上传人:b****8 文档编号:9350971 上传时间:2023-02-04 格式:DOCX 页数:14 大小:142.91KB
下载 相关 举报
学生信息管理课程设计.docx_第1页
第1页 / 共14页
学生信息管理课程设计.docx_第2页
第2页 / 共14页
学生信息管理课程设计.docx_第3页
第3页 / 共14页
学生信息管理课程设计.docx_第4页
第4页 / 共14页
学生信息管理课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

学生信息管理课程设计.docx

《学生信息管理课程设计.docx》由会员分享,可在线阅读,更多相关《学生信息管理课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

学生信息管理课程设计.docx

学生信息管理课程设计

一、设计目的

《数据库原理及应用》是一门实践性很强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

本课程设计的主要目的在于:

1、加深对数据库基础理论和基本知识的理解,培养学生运用所学理论知识对数据库进行组织、管理和使用的能力。

2、掌握数据库应用系统的整个设计过程(包括需求分析、概念结构设计、逻辑结构设计与物理设计与实施),提高运用数据库解决实际问题的能力。

二、编程环境

 数据库:

Oracle

语言:

c#

三、需求分析

该系统至少应包含如下功能:

1、身份验证模块

进入系统时首先进行身份验证。

只有用户名和密码正确才能进入系统。

2、用户管理

对使用本系统的用户进行添加、查询、修改密码、删除等操作。

3、学生信息录入

本系统能够录入学生的学号、姓名、性别、班级等信息。

4、学生成绩查询

可以根据学号、姓名、班级、学期等信息项中的一项或多项的组合,进行模糊查询和精确查询,从而高效地找到您想要的信息。

5、学生成绩更新

可以根据学号、姓名等信息项中的一项进行更新

6、学生成绩排序

可以按照学号、姓名、性别、班级、成绩的升序/降序

7、统计 

可以按照课程、班级、专业等进行统计。

四、总体设计

系统总体结构如下:

 

五、数据库设计

1、概念设计

由需求分析的结果可知,本系统设计的实体包括:

(1)学生基本信息:

学号,姓名,性别,班级,学院。

(2)课程基本信息:

课程名,课程号。

E—R图:

 

2.逻辑

 

2.物理结构设计

2.1由系统E—R图转化而得到的关系模式如下:

(1)学生(学号,姓名,性别,班级,学院),其主关键字为学号;

(2)课程(课程名,课程号),其中主关键字为课程号;

(3)成绩(课程号,学号,分数,学期)其中主关键字为学号和课程号,可以与学生关系模式合并为:

学生(学号,姓名,性别,年龄,班级,学院,成绩,学期,课程号)。

2.2确定关系模型的存取方法

在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。

可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。

在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:

在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。

才能充分利用索引的作用避免因索引引起的负面作用。

2.3确定数据库的存储结构

确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

因为该成绩管理系统的数据量小,,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。

2.4建表

以DBA登录数据库

SQL>CONNECTSYSTEM/123456:

1521@demo

创建永久表空间

CREATETABLESPACEts_perm

DATAFILE'C:

\app\Administrator\oradata\demo\ts_perm_data.dbf'SIZE10M

AUTOEXTENDON

EXTENTMANAGEMENTLOCALAUTOALLOCATE;

--默认路径在D:

\app\Administrator\product\11.1.0\db_1\database下

查看结果descdba_tablespaces;

selecttablespace_namefromdba_tablespaces

创建临时表空间ts_temp(也可以使用系统临时表空间temp)

CREATETEMPORARYTABLESPACEts_temp

TEMPFILE'c:

\app\Administrator\oradata\demo\ts_temp_data.dbf'SIZE50MAUTOEXTENDON

EXTENTMANAGEMENTLOCAL;

--默认路径在D:

\app\Administrator\product\11.1.0\db_1\database下

得到.dbf、.ctl和redolog文件.log

selectfile_namefromdba_data_files;

selectnamefromv$ControlFile;

selectmemberfromv$logfile;

创建用户Turing

createuserTuring

identifiedby123456

profiledefault

defaulttablespacets_perm

temporarytablespacets_temp

accountunlock;

查看结果:

descdba_users;

selectusernamefromdba_users;

给用户Turing授权

GRANT

CONNECT,RESOURCE,

CREATESESSION,

CREATETABLE,

CREATEPROCEDURE,

CREATESEQUENCE,

CREATETRIGGER,

CREATEVIEW,

CREATESYNONYM,

ALTERSESSION,

CREATEMATERIALIZEDVIEW,

CREATEDATABASELINK

TOTuring;

建立“学生”表Student,学号是主码,姓名取值唯一。

CREATETABLETuring.student(

SnoVARCHAR2(12),

SnameVARCHAR2(10)notnull,

SSexVARCHAR2(4),

SAgeNUMBER,

SDEPTVARCHAR2(20),

unique("SNAME"),

primarykey("SNO")validate,

check(SSexin('男','女'))

TableSpacets_perm

PCTFree10

PCTUsed40

IniTrans1MAXTrans255

storage(initial64Kfreelists1freelistgroups1buffer_pooldefault)

loggingNoCompress;

建立一个“课程”表Course

CREATETABLETuring.course(

CnoVARCHAR2(8),

CnameVARCHAR2(40)notnullunique,

CPNOVARCHAR2(8),

CCreditNUMBER,

primarykey("CNO")VALIDATE,

foreignkey("CPNO")referencesTuring.course("CNO")

TableSpacets_perm

PCTFree10

PCTUsed40

IniTrans1MAXTrans255

storage(initial64Kfreelists1freelistgroups1buffer_pooldefault)

loggingNoCompress;

建立一个sc表

CREATETABLEturing.sc(

SnoVARCHAR2(12),

CnoVARCHAR2(8),

GradeNUMBER,

primarykey("SNO","CNO")validate,

foreignkey("SNO")referencesturing.student("SNO")validate,

foreignkey("CNO")referencesturing.course("CNO")validate

TableSpacets_perm

PCTFree10

PCTUsed40

IniTrans1MAXTrans255

storage(initial64Kfreelists1freelistgroups1buffer_pooldefault)

loggingNoCompress;

六、功能模块

用户登录

主界面

录入信息

成绩查询

成绩录入

成绩修改

成绩删除

排序

统计

用户修改密码

七、总结

通过本次实验,我掌握了c#和oracal的很多知识,在课设期间遇到很多问题,在同学的帮助下,一一解决,使我更加体会到团结就是力量。

在验收的过程中,我明白了做程序一定要规范,类名、窗体名不能乱起,明白了今后还需要更加努力!

附录

数据库连接及用户登陆的主要代码

privatestringcomputerName=Environment.MachineName.ToString();

publicOracleConnectionmyOrclConnection;

publicvoidconnection()

{

myOrclConnection=newOracleConnection(@"userid=system;password=123456;

datasource=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)

(HOST="+computerName+@")

(PORT=1521)

(CONNECT_DATA=(SID=ZDB))

(HS=OK)

)");

}

publicvoidlogin(TextBoxtextBox_UserName,TextBoxtextBox_UserPwd)

{

connection();

try

{

myOrclConnection.Open();

}

catch(Exceptionex)

{

MessageBox.Show("数据库连接失败:

原因!

"+ex.Message);

}

stringsql="selectusid,pwdfromturing.loginwhereusid='"+textBox_UserName.Text.Trim()+"'andpwd='"+textBox_UserPwd.Text.Trim()+"'";

OracleCommandcom1=newOracleCommand();

com1.CommandText=sql;

com1.Connection=myOrclConnection;

OracleDataReadersdr=com1.ExecuteReader();

if(sdr.Read())

{

Mainlongs=newMain();

longs.Show();

myOrclConnection.Close();

}

else

{

MessageBox.Show("请输入正确用户和密码");

}

信息录入

bc.myOrclConnection.Open();

DataSetsd=newDataSet();

stringsqlsno="selectsnofromturing.studentwheresno='"+textBox1.Text+"'";

OracleDataAdaptersda=newOracleDataAdapter(sqlsno,bc.myOrclConnection);

sd.Clear();

sda.Fill(sd);

if(sd.Tables[0].Rows.Count!

=0)

{

MessageBox.Show("你输入的学号已存在");

}

else

{

stringsqlc;

if(radioButton1.Checked)

{

sqlc="男";

}

elsesqlc="女";

stringsql="insertintoturing.studentvalues('"+textBox1.Text+"','"

+textBox2.Text+"','"+sqlc+"','"+textBox3.Text+"','"+comboBox1.Text+"')";

OracleCommandcom=newOracleCommand(sql,bc.myOrclConnection);

com.ExecuteNonQuery();

bc.myOrclConnection.Close();

MessageBox.Show("恭喜你!

输入成功!

");

排序及统计的类的主要代码

bc.myOrclConnection.Open();

DataSetmyDS=newDataSet();

OracleDataAdaptermyAdapter=newOracleDataAdapter(str,bc.myOrclConnection);

myDS.Clear();

myAdapter.Fill(myDS);

sd.DataSource=myDS;

sd.DataSource=myDS.Tables[0].DefaultView;

myDS=null;

myAdapter=null;

成绩更新、成绩录入及删除的类的代码

DataSetsd=newDataSet();

stringsqlsno="selectsnofromturing.studentwheresno='"+tBox.Text+"'";

OracleDataAdaptersda=newOracleDataAdapter(sqlsno,bc.myOrclConnection);

sd.Clear();

sda.Fill(sd);

if(sd.Tables[0].Rows.Count==0)

{

MessageBox.Show("你输入的学号不存在");

}

下载代码地址为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1