受空气阻尼的抛体运动课程设计模板.docx
《受空气阻尼的抛体运动课程设计模板.docx》由会员分享,可在线阅读,更多相关《受空气阻尼的抛体运动课程设计模板.docx(17页珍藏版)》请在冰豆网上搜索。
受空气阻尼的抛体运动课程设计模板
湖南工业大学
课程设计
资料袋
理学院(系、部)2008~2009学年第一学期
课程名称软件工程指导教师肖满生职称讲师
学生姓名孙燕飞专业班级信息051班学号0541110101
题目学生管理系统
成绩起止日期08年12月27日~08年12月31日
目录清单
序号
材料名称
资料数量
备注
1
课程设计任务书
2
课程设计说明书
3
课程设计图
张
4
5
6
湖南工业大学
课程设计任务书
2010—2011学年第1学期
理学院学院(系、部)应用物理学专业071班级
课程名称:
计算物理
一、设计题目:
利用Matlab研究受空气阻尼的抛体运动
二、完成期限:
自2010年12月27日至2010年12月31日共1周
内
容
及
任
务
1、分析抛体运动所受空气阻力的三种情况,写出质点运动的微分方程;
2、用龙格-库塔方法求解质点运动的微分方程;
3、画出粒子的空间轨迹和速度随时间变化的彗星图,找出轨迹的最高点,到达最高点的时间和速度。
进
度
安
排
起止日期
工作内容
10-12-27
分析抛体运动所受空气阻力的三种情况,写出质点运动的微分方程
10-12-28
设计计算流程图
10-12-29
根据计算流程图设计计算程序
10-12-30
对设计的程序进行调试和优化
10-12-31
写出课程设计的总结实验报告
主
要
参
考
资
料
[1]陈锺贤.计算物理学[M].哈尔滨:
哈尔滨工业大学出版社,2001:
37-49
[2]王沫然.Matlab与科学计算[M].北京:
电子工业出版社,2003:
219-229.
[3]石辛民,郝整清.基于MATLAB的实用数值计算〔M〕.北京:
清华大学出版社,北京交通大学出版社,2006.141-142.
指导教师(签字):
年月日
系(教研室)主任(签字):
年月日
(软件工程)
设计说明书
(学生管理系统)
起止日期:
2008年12月27日至2008年12月31日
学生姓名
孙燕飞
班级
051
学号
0541110101
成绩
指导教师(签字)
理学院(部)
2008年12月31日
1.课题研究的背景和意义
随着计算机技术的飞速发展,计算机在教学管理中应用的普及,利用计算机实现学生信息管理势在必行。
利用计算机完成学生基本信息管理,是适应现代教育教学制度要求,能更快捷地对学生信息进行管理;学生信息管理是一项琐碎、复杂而又十分细致的工作,学生基本信息、专业信息、课程信息以及学生成绩,一般不允许出错,利用计算机对信息进行收集和统计。
计算机具有着手工管理无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生管理的效率。
计算机进行学生管理工作,不仅能够保证学生信息正确无误、快速输出,而且还可以利用学生数据库对有关学生的各种信息进行统计,大大提高了管理水平和管理效率计,大大提高了管理水平和管理效率。
2.课题研究的内容
首先,进行系统的需求分析。
系统功能分析是在系统开发的总体任务的基础上完成的。
学生管理系统是对学生的基本信息和成绩进行管理,在高校中各专业的学生所学的课程,甚至课程数量都不一样,所以系统中的成绩管理相对来说比较难于处理。
该系统应该有操作员管理,必须是经过授权的人员才能进行相应的权限操作,无管理权限的操作员可以修改自己的密码,系统管理员可以修改所有操作员的密码。
系统可以对学校的所有专业信息和课程信息进行管理,可以对学生的基本信息和成绩信息进行管理,最后该系统能对专业信息、课程信息、学生基本信息和成绩信息进行查询。
其次,经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在决定“怎么做”的时候了。
系统的基本目的就是回答“概括地说,系统应该如何实现?
”这个问题。
因此,系统设计又称为概要设计或初步设计。
系统设计阶段的另一个重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块之间的关系。
最后,针对学生管理的计算机化,进行细分的设计,这是课题最主要需要研究设计实现的部分,是文章重点讨论的对象。
包括操作员管理、学生信息管理和学生信息查询。
3.功能的拟实现
通过对系统需求的分析和方便系统的管理和实时更新,拟实现以下功能:
(1) 主程序主要设计主菜单,通过模块调用,实现对各功能的调用。
(2) 系统管理模块主要实现登录用户的合法性检查和读取操作权限,它包括操作员管理、修改密码和初始化。
(3) 信息资料模块包括对各种信息的操作,如专业信息、课程信息和成绩信息的相应操作。
(4) 查询模块主要是对存储的数据进行查询,相应的有课程查询、学生资料查询和成绩查询。
设计(研究)方案和进度安排:
第一阶段:
(12月8日—12月14日)课程设计的相关资料的搜集。
第二阶段:
(12月15日―12月21日)更多的接触相关的知识,如Delphi7.0的接触,以及学生管理系统的部分设计。
第三阶段:
(12月22日―12月26日)根据已掌握的方法及的相关知识完成代码编写,同时系统进行测试,改进需要改进的地方。
第四阶段:
(12月27日―12月29日)根据导师的意见,进一步完善系统。
第五阶段:
(12月30日―12月31日)系统验收并撰写课程设计论文,论文初稿、定稿的完成。
所用软件:
MicrosoftSQLServer2000
BorlandDelphi7.0
所用语言:
BorlandDelphi7.0
所需设备:
PC电脑一台
组员:
周丹汪彬雯郭霞谭燕青吕海娟孙燕飞
附件:
学生管理系统数据库设计和分析
一、基本功能:
二、数据库设计
操作员operator
列名
数据类型
长度
是否为空
PK键
说明
备注
username
varchar
8
Y
用户名
password
varchar
8
密码
units
varchar
20
Y
right_1
bir
1
right_2
bit
1
right_3
bit
1
opera
varchar
8
操作员
stamp
datatime
8
最后修改时间
学生基本信息表student
列名
数据类型
长度
是否为空
PK键
说明
备注
number
varchar
10
Y
学号
name
varchar
8
姓名
address
varchar
30
通信地址
postcode
varchar
6
Y
邮编
phone
varchar
20
Y
联系电话
parents
varchar
20
Y
联系人
sex
varchar
2
Y
性别
birthday
datatime
8
Y
出生年月
id
varchar
18
Y
身份证号
score
smallint
2
Y
入学成绩
speciality
varchar
20
Y
专业
class
varchar
20
Y
班级
registerdata
datatime
8
Y
入学时间
dorm
varchar
50
Y
备注
opera
varchar
8
Y
操作员
stamp
datatime
8
Y
最后修改时间
专业信息表speciality
列名
数据类型
长度
是否为空
PK键
说明
备注
name
varchar
30
专业名称
units
varchar
30
length
int
4
课时
score
int
4
学分
type
varchar
20
Y
专业类型
operator
varchar
8
操作员
stamp
datatime
8
最后修改时间
课程信息表course
列名
数据类型
长度
是否为空
PK键
说明
备注
number
varchar
8
课程编号
name
vachar
20
课程名称
speciality
vachar
20
专业
college
vachar
20
院系
time
vachar
10
课时
score
int
4
学分
semester
vachar
2
开课学期
book
vachar
30
教材
operator
vachar
8
操作员
stamp
datatime
8
最后修改时间
成绩表result
列名
数据类型
长度
是否为空
PK键
说明
备注
number
varchar
10
Y
学号
name
varchar
8
姓名
speciality
varchar
20
专业
coursename
varchar
20
课程名
courstype
vachar
20
课程类型
grade
vachar
4
年级
value
float
8
成绩
note
varchar
20
说明
opera
varchar
8
操作员
stamp
datatime
8
最后修改时间
软件开发思想:
采用BDE方式将Delphi与SQLServer连接起来,通过数据访问组件:
TQuery组件、TDataSourse组件、TDatabase组件来访问数据库。
项目分配:
系统管理模块
(1)用户检测模块程序设计
该模块主要实现登录用户的合法性检查和读取操作权限。
用户在启动应用程序是,首先弹出该模块窗口,要求用户输入登录名和密码,程序对输入的用户名和密码进行验证(数据表Operator中保存了全部操作用户信息)。
如果验证没有通过,则允许重试3次,若3次均出错,则退出,如果正确,则读取该用户的操作权限,传递给主程序,这时主程序便设置该用户允许操作的菜单条,针对该用户无操作权限的菜单条和按钮,则设置其灰色,用户无法点击。
用户登录界面:
代码:
unitcheckuser;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,Buttons,DB,DBTables;
type
TCheckUserForm=class(TForm)
Label1:
TLabel;
Edit1:
TEdit;
Label2:
TLabel;
Edit2:
TEdit;
BitBtn1:
TBitBtn;
BitBtn2:
TBitBtn;
Database1:
TDatabase;
procedureBitBtn2Click(Sender:
TObject);
procedureFormActivate(Sender:
TObject);
procedureBitBtn1Click(Sender:
TObject);
procedureDatabase1Login(Database:
TDatabase;LoginParams:
TStrings);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
CheckUserForm:
TCheckUserForm;
i:
integer;
implementation
usesmain;
{$R*.dfm}
procedureTCheckUserForm.BitBtn2Click(Sender:
TObject);
begin
close;
end;
procedureTCheckUserForm.FormActivate(Sender:
TObject);
begin
Edit1.text:
='';
Edit2.Text:
='';
Edit1.SetFocus;
i:
=3;
end;
procedureTCheckUserForm.BitBtn1Click(Sender:
TObject);
var
query1:
TQuery;
begin
query1:
=TQuery.Create(self);
query1.DatabaseName:
='student';
database1.Connected:
=true;
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select*fromoperatorwhereusername=:
s0andpassword=:
s1');
query1.Params.Clear;
query1.Params.CreateParam(ftstring,'s0',ptinput);
query1.Params[0].Value:
=edit1.text;
query1.Params.CreateParam(ftstring,'s1',ptinput);
query1.Params[1].Value:
=edit2.text;
query1.Prepare;
query1.Open;
ifnotquery1.IsEmptythen
begin
username:
=edit1.text;
right[1]:
=query1.FieldByName('right_1').AsBoolean;
right[2]:
=query1.FieldByName('right_2').AsBoolean;
right[3]:
=query1.FieldByName('right_3').AsBoolean;
i:
=0;
end
else
begin
i:
=i-1;
username:
='';
Application.MessageBox('您输入的用户名或密码错误,请检查!
','提示信息',mb_ok);
end;
ifi=0then
begin
close;
end;
query1.Close;
database1.Connected:
=false;
end;
procedureTCheckUserForm.Database1Login(Database:
TDatabase;
LoginParams:
TStrings);
begin
loginparams.Clear;
loginparams.add('user_name=administator');
loginparams.add('password=650124');
end;
end.
(2)密码修改模块程序设计
该模块主要对操作员密码进行修改,具有管理权的操作员可以修改其他操作员的密码,除此之外的操作员只能修改自己的密码。
密码修改界面:
代码:
unitpassword;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,Buttons,DB,DBTables;
type
TPasswordForm=class(TForm)
Label1:
TLabel;
Edit1:
TEdit;
Label2:
TLabel;
Edit2:
TEdit;
Label3:
TLabel;
Edit3:
TEdit;
BitBtn1:
TBitBtn;
BitBtn2:
TBitBtn;
Database1:
TDatabase;
procedureBitBtn2Click(Sender:
TObject);
procedureFormActivate(Sender:
TObject);
procedureDatabase1Login(Database:
TDatabase;LoginParams:
TStrings);
procedureEdit1Exit(Sender:
TObject);
procedureBitBtn1Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
PasswordForm:
TPasswordForm;
implementation
usesmain;
{$R*.dfm}
procedureTPasswordForm.BitBtn2Click(Sender:
TObject);
begin
database1.Connected:
=false;
Close;
end;
procedureTPasswordForm.FormActivate(Sender:
TObject);
begin
Edit2.Text:
='';
Edit3.Text:
='';
ifnotright[1]then
begin
edit1.Text:
=username;
edit1.Enabled:
=false;
edit2.setfocus;
end
else
begin
edit1.text:
='';
edit1.SetFocus;
end;
database1.Connected:
=true;
end;
procedureTPasswordForm.Database1Login(Database:
TDatabase;
LoginParams:
TStrings);
begin
loginparams.Clear;
loginparams.add('user_name=administator');
loginparams.add('password=650124');
end;
procedureTPasswordForm.Edit1Exit(Sender:
TObject);
var
query1:
TQuery;
begin
ifedit1.text<>''then
begin
query1:
=TQuery.Create(self);
query1.DatabaseName:
='student';
query1.Close;
query1.SQL.clear;
query1.sql.Add('select*fromoperatorwhereusername=:
s0');
query1.Params.Clear;
query1.Params.CreateParam(ftstring,'s0',ptinput);
query1.Params[0].Value:
=edit1.text;
query1.Active:
=true;
ifquery1.IsEmptythen
begin
Application.MessageBox('您输入的用户名错误,请检查!
','提示信息',mb_ok);
edit1.setfocus;
end;
query1.Close;
end;
end;
procedureTPasswordForm.BitBtn1Click(Sender:
TObject);
var
query1:
TQuery;
begin
ifEdit1.text<>''then
begin
ifEdit2.text=Edit3.Textthen
begin
query1:
=TQuery.Create(self);
query1.DatabaseName:
='student';
query1.Close;
query1.sql.clear;
query1.sql.add('updateoperatorsetpassword=:
s0whereusername=:
s1');
query1.Params.Clear;
query1.Params.CreateParam(ftstring,'s0',ptinput);
query1.Params[0].Value:
=edit2.text;
query1.Params.CreateParam(ftstring,'s1',ptinput);
query1.Params[1].Value:
=edit1.text;
query1.ExecSQL;
query1.close;
end
else
begin
Application.MessageBox('您两次输入的密码不一致,请检查!
','提示信息',mb_ok);
Edit2.Text:
='';
edit3.Text:
='';
edit2.SetFocus;
end;
end;
end;
end.