数电课程设计报告模板及示例.docx
- 文档编号:20124038
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:36
- 大小:399.87KB
数电课程设计报告模板及示例.docx
《数电课程设计报告模板及示例.docx》由会员分享,可在线阅读,更多相关《数电课程设计报告模板及示例.docx(36页珍藏版)》请在冰豆网上搜索。
数电课程设计报告模板及示例
《单片机原理及应用》课程设计报告
(2016——2017年度第一学期)
题目
电子时钟
专业
计算机科学与技术(非师范)
班级
14B
小组成员
姜鹏1443205000063
指导老师
罗毅
《单片机原理及应用》课程设计
成绩评定
学号
姓名
成绩
备注
1443205000063
姜鹏
指导教师:
罗毅
摘要:
单片机即单片微型计算机。
(single-chipmicrocomputer),是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
他的体积小,成本低,功能强,广泛应用于工业自动化和智能产品。
时钟,闹钟,自从被发明至今一直是人们的好朋友。
科学技术的不断发展,时钟的应用越来越广泛,人们对时间的计量的精度要求也越来越高。
怎样才能让时钟更好的为人民服务,这就要求我们不断的设计出新的时钟,来满足日常生活的需要。
关键词:
单片机;时钟;ds1302;中断;数码管;
一、课程设计的目的与要求
实现电子钟的程序编写。
使用8位数码管显示时分秒,时间显示:
13-25-46可以通过按键修改日期和时间。
二、设计正文
1.概述
1.1课题题目:
好书在线系统
1.2系统的主要目标:
本系统目标是实现选课系统所需的各种基本功能,能够很好的实现在线购书、评论、查看书籍信息等功能,还可以实现管理员进行对书籍的管理、对评论的管理以及对于订单的管理等功能。
1.3系统的开发环境及运行环境:
操作系统:
WindowsXPProSP2
建模工具:
RationalRose2003
数据库系统:
SQLServer2005
开发工具:
VisualStudio2008
Web服务器:
IIS+ASP.NET2.0平台
2.系统需求分析
随着网络在中国的广泛普及,网络支付手段的逐步完善,越来越多的中国人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。
传统书店的购书观念正在被网上书店这一方便快捷的购书方式所冲击。
网上书店在国际互联网上可以实现的商务功能已经越来越多样化,从最开始的信息发布功能,到现在的在线图书展示功能、在线洽谈业务功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎传统书店所提供的功能都可以在互联网上进行电子化的高效运作,而借助网络的跨地域特点,更是将传统书店的地域限制加以突破,全国各地的读者都可以通过网络在同一个网上书店购书,从而大大增加了客户的数量。
为了使网上书店的投入回报和管理效益最大化,在对网上书店进行系统开发之前,必须对一系列问题进行科学的论证,如网上书店的需求分析、网上书店总体规划、网上书店系统的功能和实施方案、网上书店的传播与推广、运行网上书店系统的软件和硬件配置、网上书店的管理系统和管理方法等等。
综上所述,网上书店已经成为互联网时代购书者的最佳选择,必将获得巨大的成功。
E-R图
图2-1学生选课系统E-R图
E-R说明:
2.1数据流图
图2-2学生选课系数据流图
3.系统总体设计
3.1设计问题域子系统
学生选课系统是实现学生选课退课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统有前台和后台两部分,共分为4个模块:
管理员模块,教师模块,学生模块和公有模块,分别用于完成各自的功能。
以下为学生选课系统总体设计图和各功能模块说明:
(1)总体设计图
(2)各模块功能
表3-1学生选课系统功能模块表
功能模块
包含子功能模块
功能
管理员模块
学生管理子模块
对学生信息的添加、修改,删除操作
教师管理子模块
对教师的添加,修改,删除,查询操作
课程管理子模块
对课程的添加,添加时为其分配任课教师,上课时间和地点,实现对课程的修改,删除,查看某个课程的详细信息等
教师模块
实现查看自己所教授的课程,课程有哪些学生选修,以及利用本系统提交学生的成绩
学生模块
实现学生选课,查看所选课程,修改自己的选课信息
公有模块
实现用户的身份验证,密码修改,退出系统等功能
3.2设计数据管理子系统
(1)数据库表
表3-2数据库表
序号
数据库表
数据表存储的内容
1
Student
存储学生的信息
2
Teacher
存储教师的信息
3
Users
存储管理员的信息
4
Elect
存储选课的信息
5
Cource
存储课程的信息
6
Depart
存储学校系院信息
(2)数据库表结构
①学生表Student的详细数据字段:
表3-3Student学生用户表
序号
字段名
字段类型
说明
备注
1
stuID
nvarchar(20)notnull
学生学号
关键字
2
stuPwd
nvarchar(20)notnul
学生密码
3
stuName
nvarchar(20)notnul
学生姓名
4
stuDepart
Int
学生系院号
5
stuGrade
int
学生年级
6
stuClass
int
学生班级
②教师表Teacher的详细数据字段:
表3-4Teacher教师用户表
序号
字段名
字段类型
说明
备注
1
teaID
nvarchar(20)notnull
教师编号
关键字
2
teaPwd
nvarchar(20)notnull
教师密码
3
teaName
nvarchar(100)notnull
教师姓名
4
teaDepart
Int(4)
教师系院号
③课程表Course的详细数据字段:
表3-5Cource课程信息表
序号
字段名
字段类型
说明
备注
1
courseID
nvarchar(20)notnull
课程编号
关键字
2
teaID
nvarchar(20)notnull
教师编号
关键字
3
courseName
nvarchar(100)notnull
课程名称
4
courseTime
nvarchar(20)
上课时间
5
courseAddress
nvarchar(50)
上课地点
6
courseInfo
Text
课程简介
④选课表Elect的详细数据字段:
表3-6Elect选课信息表
序号
字段名
字段类型
说明
备注
1
stuID
nvarchar(20)notnull
学生学号
关键字
2
courseID
nvarchar(20)notnull
课程编号
关键字
3
teaID
nvarchar(20)notnull
教师编号
关键字
4
Score
int
课程成绩
⑤系统管理员表Users的详细数据字段:
表3-7Users管理员表
序号
字段名
字段类型
说明
备注
1
adminName
nvarchar(20)notnull
系统管理员用户名
关键字
2
adminPwd
nvarchar(20)
系统管理员密码
⑥系院表Depart的详细数据字段:
表3-8Depart系院表
序号
字段名
字段类型
说明
备注
1
departID
Intnotnull
系院号
关键字
2
departName
nvarchar(100)
系院名称
3.3设计人机交互子系统
(1)用户分类
本系统的用户可分为三类:
①管理员用户;
②教师用户;
③学生用户。
(2)用户描述
①管理员用户的描述:
管理员用户在整个选课系统中起到管理和维护的作用,对学生和教师的信息进行管理和维护以及开设课设等职责。
②教师用户的描述:
教师用户在本系统中具有管理选修了自己开设的课程的学生的权限,查看选修了自己开设课程的学生信息有及提交学生成绩。
③学生用户的描述:
选课系统主要是针对管理学生的,学生在本系统中具有修改自己的信息,以及选课和退选的功能。
(3)设计命令层次
①系统的人机交互子系统的内容和准则:
本学生选课系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按照不同的用户只能进行用户权限内的操作,其结构图如下:
②通过采用树形结构,细化命令的组织方式,如下:
4.详细设计
学生选课系统是实现学生网上选课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统共分为4个大模块:
管理员模块,教师模块,学生模块和公有模块,其中复杂的方法和模块的详细设计流程图如下。
4.1系统用户登录流程图
4.2用户密码修改流程图
4.3教师提交成绩流程图
4.4管理员添加课程流程图
4.5学生选修课程流程图
5.系统实现
本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。
5.1Database类主要是与数据库连接,提供数据库操作功能,代码如下:
namespaceMyElectCourse.DAL
{
publicclassDatabase
{
protectedstringconnectionString;
protectedSqlConnectionconnection=null;
publicDatabase()
{
connectionString=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
}
~Database()
{
if(connection!
=null)
{
connection=null;
}
}
protectedvoidOpen()
{
if(connection==null)
{
connection=newSqlConnection(connectionString);
}
if(connection.State.Equals(ConnectionState.Closed))
{
connection.Open();
}
}
protectedvoidClose()
{
if(connection!
=null)
{
connection.Close();
}
}
publicintExecuteSQL(stringsqlstr)
{
intcount=-1;
this.Open();
SqlCommandcmd=newSqlCommand(sqlstr,connection);
count=cmd.ExecuteNonQuery();
this.Close();
returncount;
}
publicDataSetGetDataSet(stringsqlstr)
{
this.Open();
DataSetds=newDataSet();
SqlDataAdapteradapter=newSqlDataAdapter(sqlstr,connection);
adapter.Fill(ds);
this.Close();
returnds;
}
publicDataTableGetDataTable(stringsqlstr)
{
DataSetds=this.GetDataSet(sqlstr);
DataTabledt=newDataTable();
if(ds.Tables.Count>0)
{
dt=ds.Tables[0];
}
returndt;
}
publicSqlDataReaderGetDataReader(stringsqlstr)
{
this.Open();
SqlCommandcmd=newSqlCommand(sqlstr,connection);
SqlDataReadersdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
//this.Close();
returnsdr;
}
}
}
5.2UserBase类是所有系统角色用户的基类,完成用户登录验证与修改密码的功能,代码如下:
namespaceMyElectCourse.BLL
{
publicclassUserBase
{
privatestringuserID;
publicstringUserID
{
get{returnuserID;}
set{userID=value;}
}
privatestringuserPSW;
publicstringUserPSW
{
get{returnuserPSW;}
set{userPSW=value;}
}
publicstringloginCheck(stringuid,stringupwd,stringurole)
{
StringselectStr=String.Empty;
switch(urole)
{
case"0":
//身份为教师时
selectStr="Select*fromTeacherwhereteaID='"+uid+"'";
break;
case"1":
//身份为学生时
selectStr="Select*fromStudentwherestuID='"+uid+"'";
break;
case"2":
//身份为管理员时
selectStr="Select*fromUserswhereadminName='"+uid+"'";
break;
default:
returnnull;
}
Databasedb=newDatabase();
DataTabledt=db.GetDataTable(selectStr);
if(dt.Rows.Count>0)//如果该用户存在
{
if(dt.Rows[0][1].ToString().Equals(upwd))//密码正确
{
switch(urole)
{
case"0":
//身份为教师时
return"0";
case"1":
//身份为学生时
return"1";
case"2":
//身份为管理员时
return"2";
default:
returnnull;
}
}
else//密码错误,给出提示信息!
{
return"-1";
}
}
else//用户不存在或用户名输入错误
{
return"-2";
}
}
publicstringmodifyPWD(Stringurole,Stringuid,StringoldPwd,StringnewPwd)
{
StringupdateStr=String.Empty;
switch(urole)
{
case"0":
//身份为教师时
updateStr="updateTeachersetteaPwd='"+newPwd+"'whereteaID='"+uid+"'";
break;
case"1":
//身份为学生时
updateStr="updateStudentsetstuPwd='"+newPwd+"'wherestuID='"+uid+"'";
break;
case"2":
//身份为管理员时
updateStr="updateUserssetadminPwd='"+newPwd+"'whereadminName='"break;
}
stringucheck=this.loginCheck(uid,oldPwd,urole);
if(ucheck.Equals("0")||ucheck.Equals("1")||ucheck.Equals("2"))
{
intt=newDatabase().ExecuteSQL(updateStr);//根据修改后返回的结果给出提示
if(t>0)
{
return"1";
}
else
{
return"0";
}
}
else
{
return"-1";
}}}}
5.3系统登录页面,代码及运行效果如下:
12px;font-family: Tahoma;border-collapse: collapse" center"> 24pt;font-family: 隶书">学生选课系统
宋体">用户名:
242px"> TextBoxID="txtUserName"runat="server"Width="150px"> TextBox> RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"ErrorMessage="不能为空! "> RequiredFieldValidator>
32px"> 密 码: 32px;width: 242px;"> TextBoxID="txtPwd"runat="server"TextMode="Password" RequiredFieldValidatorID="RequiredFieldValidator2"runat="server"ErrorMessage="不能为空! "> RequiredFieldValidator>
46px"> RadioButtonListID="rblClass"runat="server"RepeatDirection="Horizontal"> ListItemValue="0">教师 ListItem> ListItemSelected="True"Value="1">学生 ListItem> ListItemValue="2">管理员 ListItem> RadioButtonList> LabelID="lblMessage"runat="server"ForeColor="Red"> Label>
ImageButtonID="imgbtnLogin"runat="server"ImageUrl="~/Images/Login.GIF" ImageButtonID="imgbtnClose"runat="server"ImageUrl="~/Images/Close.GIF"