c实训报告及其程序代码docWord下载.docx
《c实训报告及其程序代码docWord下载.docx》由会员分享,可在线阅读,更多相关《c实训报告及其程序代码docWord下载.docx(44页珍藏版)》请在冰点文库上搜索。
![c实训报告及其程序代码docWord下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/84cbab42-ef08-47be-8c90-63f8451bef13/84cbab42-ef08-47be-8c90-63f8451bef131.gif)
a都有哪些读者借阅此书;
b借阅过此书的读者还借阅过其它什么书;
c其它读者对此书的评论。
6模块中,借阅过某书的读者可以评论此书,系统需要检查此读者是否已经借阅此书。
7模块中,读者查看自己的个人信息,还有借阅历史、逾期未还的书籍、预约历史等
12模块中,管理员向逾期未还书籍的读者自动发邮件。
除了以上12个模块,系统必须实现一些规范检查。
例如,借阅书籍表中还书时间必须小于应还时间。
应还时间根据读者类型自动生成。
五、设计要求、技术参数及设计规格
1.设计的系统能够安全稳定运行。
2.提交实训报告,实训报告中给出需求分析、系统设计、功能设计、总结等(写出几个代表即可)。
3.所有的工作需要同学们自己真实、独立地完成。
六、时间安排
天/日期
任务描述
通过标准
2011.6.27
理解项目要求,按照要求整理数据库
给出需求分析
2011.6.29
完成系统登录
三种身份登录
2011.6.30
模块8、9的实现
2011.7.1
模块1的实现
2011.7.2
模块2、3、4、10的实现
2011.7.4
模块5的实现
2011.7.5
模块6、11的实现
2011.7.6
模块7的实现
2011.7.7
模块12的实现
2011.7.8
完成实训报告
六、考核形式、考核时间、考核指标及成绩评定
实训成绩由下面几项构成:
1)整个实训27次点名(每天上午下午各一次,时间点随机),共27分。
2)实训结果占43%
3)实训报告占30%
考核形式:
1)老师每日对学生的考察、评估和考核;
2)最后对实训项目和报告完成的质量进行考核和验收。
完成期限:
2012年7月8日
指导教师签章:
___
专业负责人签章:
教学院长签章:
2012年6月3日
一、需求分析
1、数据库中的数据要能够支持以下功能需求:
a)图书管理系统包括图书馆内书籍信息、读者信息、借阅信息、预约信息等。
b)此系统功能分为面向学生、教师、管理员三部分,其中学生与教师可以查看、借阅、续借、归还等操作,管理员可以对书籍和读者进行添加,删除和修改以及对学生借阅、续借、归还的确认。
2图书馆管理信息系统需要完成功能主要有:
1)读者基本信息的添加、修改、删除,包括读者编号、读者姓名、读者性别等。
2)图书信息的添加、修改、删除,包括图书编号、图书名称、图书类别、作者姓名、出版社名称等。
3)用户信息的添加、修改、删除,包括账号、密码、类型、权限等。
4)借书信息的输入,包括读者编号、图书编号、借书日期等。
5)图书信息的查询,包括图书编号、图书名称、图书类别、作者姓名、出版社名称等。
6)借书信息的查询,包括读者编号、读者姓名、图书编号、图书名称、借书日期等。
7)还书信息的输入,包括读者编号、图书编号、还书日期等。
8)续借图书信息的输入,包括读者编号、图书编号、续借时间等。
9)预约图书信息的输入,包括读者编号、图书编号、预约数量等。
·
二、系统设计(功能模块结构)
1、读者查找图书功能模块
2、读者借阅图书功能模块
3、读者续借图书功能模块
4、读者归还图书功能模块
5、读者预约图书功能模块
6、读者查看个人信息功能模块
7、管理员管理图书信息功能模块
8、管理员管理读者信息功能模块
9、管理员管理用户信息功能模块
10、读者评论图书功能模块
11、提示读者还书功能模块
12、读者修改密码功能模块
三、功能设计(含代码)
1系统登录:
此系统功能分为面向学生、教师、管理员三部分,每部分的功能权限不相同(代码中包含提示读者还书)
privateint权限;
publicstaticstringx;
string状态;
privatevoidbutton1_Click(objectsender,EventArgse)
{
DateTimeeDate=DateTime.Now;
eDate=eDate.AddYears(10);
if(textBox1.Text=="
"
||textBox2.Text=="
)
MessageBox.Show("
请先输入用户名和密码然后再登录"
);
return;
}
stringSQL="
select权限from用户信息where帐户="
;
SQL+="
+textBox1.Text.Trim()+"
and密码='
+textBox2.Text.Trim()+"
'
and类型='
+comboBox1.Text.Trim()+"
stringSQL1="
select状态,到期时间from借阅信息where读者编号="
+textBox1.Text+"
stringmyConStr="
PersistSecurityInfo=True;
InitialCatalog=图书借阅管理系统;
myConStr+="
DataSource=localhost\\sqlexpress;
IntegratedSecurity=SSPI;
SqlCommandmyCom=null;
SqlConnectionmyCon=null;
try
myCon=newSqlConnection(myConStr);
myCon.Open();
myCom=newSqlCommand(SQL,myCon);
SqlDataReaderrd=myCom.ExecuteReader();
if(rd.HasRows)
rd.Read();
权限=Convert.ToInt32(rd[0]);
label1.Visible=false;
label2.Visible=false;
label3.Visible=false;
label4.Visible=false;
comboBox1.Visible=false;
textBox1.Visible=false;
textBox2.Visible=false;
button1.Visible=false;
else
没有这个用户名或密码不正确,请重新登录!
textBox1.Clear();
textBox2.Clear();
myCon.Close();
SqlCommandmyCom1=newSqlCommand(SQL1,myCon);
SqlDataReaderrd1=myCom1.ExecuteReader();
if(rd1.HasRows)
rd1.Read();
状态=Convert.ToString(rd1[0]);
eDate=Convert.ToDateTime(rd1[1]);
catch(SqlExceptionoe)
MessageBox.Show(oe.Message,"
Error"
finally
if(myCon.State==ConnectionState.Open)
switch(权限)
case1:
图书信息ToolStripMenuItem.Enabled=true;
读者信息ToolStripMenuItem.Enabled=true;
借阅信息ToolStripMenuItem.Enabled=true;
用户信息ToolStripMenuItem.Enabled=true;
break;
case2:
个人信息ToolStripMenuItem.Enabled=true;
default:
//MessageBox.Show("
你没有使用本系统的权限"
Form1.x=Convert.ToString(textBox1.Text);
if(状态=="
借阅"
||状态=="
续借"
if(eDate<
DateTime.Now)
您有图书到期未还,请尽快归还!
2管理员管理读者信息:
privatevoidForm3_Load(objectsender,EventArgse)
//TODO:
这行代码将数据加载到表“图书借阅管理系统DataSet2.读者信息”中。
您可以根据需要移动或移除它。
this.读者信息TableAdapter.Fill(this.图书借阅管理系统DataSet2.读者信息);
this.textBox7.Text=(Navigator.Position+1).ToString();
this.label7.Text=Navigator.Count.ToString();
myCon=newSqlConnection();
myCom=newSqlCommand();
privateSystem.Data.DataSetmyDS=null;
privateSystem.Data.SqlClient.SqlDataAdaptermyAD=null;
privateSystem.Data.SqlClient.SqlCommandmyCom=null;
privateSystem.Data.SqlClient.SqlConnectionmyCon=null;
privatevoidExecuteSQL(StringSQL)
PersistSecurityInfo=False;
InitialCatalog=图书借阅管理系统;
DataSource=localhost\\Sqlexpress;
IntegratedSecurity=SSPI;
"
myCon.ConnectionString=myConStr;
myCom=newSqlCommand(myConStr,myCon);
myCom.CommandText=SQL;
myCom.CommandType=CommandType.Text;
myCom.Connection=myCon;
myCom.ExecuteNonQuery();
myCom.CommandText="
Select*From读者信息"
myDS=newDataSet();
myDS.Clear();
myAD=newSqlDataAdapter();
myAD.SelectCommand=myCom;
myAD.Fill(myDS,"
读者信息"
//添加信息//
privatevoidbutton5_Click(objectsender,EventArgse)
stringinsStr="
INSERTINTO读者信息(读者编号,姓名,读者类型,性别,年龄,院系,最大借阅数量,实际借阅数量,最大借阅时间,最大续借时间"
insStr+="
)values("
'
+textBox2.Text+"
+textBox3.Text;
+textBox4.Text+"
"
+textBox5.Text+"
+textBox6.Text+"
+textBox8.Text+"
+textBox9.Text+"
+textBox10.Text+"
+textBox11.Text+"
)"
ExecuteSQL(insStr);
//删除信息//
privatevoidbutton6_Click(objectsender,EventArgse)
select状态from借阅信息where读者编号="
SqlConnectionmyCon=newSqlConnection(myConStr);
SqlCommandmyCom=newSqlCommand(SQL,myCon);
状态=Convert.ToString(rd[0]);
没有查询到该信息,请确认输入无误!
if(this.textBox1.Text=="
必须输入'
读者编号'
,才能进行删除"
if(状态=="
归还"
if(MessageBox.Show("
必须要删除吗?
"
确认"
MessageBoxButtons.OKCancel)==DialogResult.Cancel)
stringdelStr="
deletefrom读者信息where读者编号="
delStr+=this.textBox1.Text;
ExecuteSQL(delStr);
elseMessageBox.Show("
次读者有图书未归还,请先归还图书!
//修改信息//
privatevoidbutton7_Click(objectsender,EventArgse)
必须输入读者编号,才能进行更新"
必须要更新吗?
stringupStr="
UPDATE读者信息Set姓名='
+textBox2.Text;
upStr+="
'
读者类型='
+textBox3.Text+"
性别='
+textBox4.Text+"
最大借阅数量="
+textBox8.Text+"
实际借阅数量="
+textBox9.Text;
年龄="
院系='
+textBox6.Text+"
最大借阅时间="
+textBox10.Text+"
最大续借时间="
+textBox11.Text;
where读者编号="
+textBox1.Text;
ExecuteSQL(upStr);
//清除信息//
privatevoidbutton8_Click(objectsender,EventArgse)
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox8.Clear();
textBox9.Clear();
textBox10.Clear();
textBox11.Clear();
//返回//
privatevoidbutton9_Click(objectsender,EventArgse)
确定要离开?
MessageBoxButtons.OKCancel)==DialogResult.OK)
this.Close();
//到第一个//
Navigator.Position=0;
//到最后一个//
privatevoidbutton2_Click(objectsender,EventArgse)
Navigator.Position=Navigator.Count-1;
//到上一个//
privatevoidbutton3_Click(objectsender,EventArgse)
if(Navigator.Position==0)
Navigator.Position-=1;
//到下一个//
privatevoidbutton4_Click(objectsender,EventArgse)
if(Navigator.Position==Navigator.Count-1)
Navigator.Position+=1;
//跳转事件//
privatevoidtextBox7_KeyDown(objectsender,KeyEventArgse)
if(e.KeyValue==13)
Navigator.Position=Int32.Parse(textBox7.Text)-1;
3管理员管理图书信息:
4管理员管理用户信息
(代码略)(代码略)
5读者查看个人借阅信息:
//图书续借//
int续借时间,最大续借时间;
select最大续借时间from读者信息where读者编号="
select状态from借阅信息where图书编号="
and读者编号="
SqlConnectio