实验五开发一个学生信息管理系统.docx
《实验五开发一个学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《实验五开发一个学生信息管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
实验五开发一个学生信息管理系统
实验五开发一个小型管理程序进行数据库的管理操作
--例学生信息管理系统
一.实验目的:
考察学生综合运用SQL语言的能力,结合前面所学的SQL语言的相关知识,在C++BUILDER环境下开发一小型的管理系统---学生信息管理系统:
二.实验内容:
1.熟悉使用C++BUILDER的表单设计及嵌入式SQL语言的使用。
2.开发一个学生信息管理系统
(1)设计一个登录窗口,负责验证学生登录的账户名,密码
(2)学生信息录入系统主要完成学生信息的录入(学号、姓名、性别、年龄、籍贯等)加到STUDENT表中。
(3)学生信息查询,主要完成可以通过学号、姓名等查证到学生的相关信息(提高点,也可以查询学生成绩)
(4)学生信息修改:
可以修改已录入的学生相关信息。
(5)学生信息删除:
可以按学号删除学生相关信息(提高点,同时删除其它表中该学生相关信息。
参考:
一.登录窗口的完成
图1登录窗口
图2工具设置
分别用标签,文本,按纽来设计,文字更改用见图3
部分功能提示:
1.表单调用部分:
提示:
调用下一表单命令Form2->Show();
隐藏当前表单命令Form1->Hide();
注意要先用include#unit2.h包含
2.提示
提示窗口:
ShowMessage();
3.文本框取值:
Form1->Edit1->Text
变量取值:
’“+变量名+”’
4.识别为空的情况
If(Edit1->Text==””||Edit2->Text==””)
{ShowMessage("用户名或密码不得为空");
return;
}
图3属性设置
5.设置密码属性
能
图4密码属性
6.数据库的连接:
(1)建数据连接:
ADO–>ADOQuery1->connctionstring
(2)建数据源:
Dataaccess->datasource->dataset=ADOquery1见图4
图5
图6
图7
图8
(3)从数据库中读密码语句
AnsiStringan1="select*frommm";
an1+="whereuser1='"+Edit1->Text+"'";//定义SQL查询语句
an1+="andpassword1='"+Edit2->Text+"'";
ADOQuery1->SQL->Add(an1);//将SQL语句加入到缓冲区
ADOQuery1->Open();//执行SQL语句
if(ADOQuery1->RecordCount==0)//识别是用户名及密码是否正确
{ShowMessage("非法用户名或密码");
Return;
}
7.文件存盘
如图9点文件菜单saveprojectas
图9
文件按默认文件名,选一个新目录保存,如图10
图10
二.综合窗口
菜单的设计
三.信息录入
判断学号是否存在:
void__fastcallTForm3:
:
Edit1Exit(TObject*Sender)
{AnsiStringan1="select*fromstudentwhere";
an1+="sno='"+Edit1->Text+"'";
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(an1);
ADOQuery1->Open();
if(ADOQuery1->RecordCount==1)
{ShowMessage("对不起,已经存在该学号,请重新输入");
Edit1->SetFocus();
return;
}
}
增加代码:
AnsiStringrq,xb;
rq=ComboBox2->Text+"-"+ComboBox3->Text+"-"+ComboBox4->Text;
if(Form3->RadioButton1->Checked==1)
{xb="男";}
else
{xb="女";}
AnsiStringan1="insertintostudentvalues(";
an1+="'"+Form3->Edit1->Text+"',";
an1+="'"+Form3->Edit2->Text+"',";
an1+="'"+xb+"',";
an1+="'"+ComboBox1->Text+"',";
an1+="'"+rq+"')";
ADOQuery1->SQL->Add(an1);
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ShowMessage("增加成功");
四.信息查询:
查询代码
AnsiStringan1="select*fromstudentwhere";
if(Edit1->Text!
="")
an1+="sno='"+Edit1->Text+"'and";
if(Edit2->Text!
="")
an1+="sname='"+Edit2->Text+"'and";
。
。
。
。
。
。
其它代码自己补齐
an1+="year(csrq)>1900";
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(an1);
ADOQuery1->Open();
if(ADOQuery1->RecordCount==0)
{ShowMessage("对不起,没有你要查的同学");
return;
}
五.学生信息修改
修改中查询代码:
if(Form3->Edit1->Text=="请查询输入学号")
{ShowMessage("请查询输入要查询的学号");
return;
}
ADOQuery1->SQL->Clear();
AnsiStringan1="selectsno,sname,sex,sdept,year(csrq)asnn,month(csrq)as";
an1+="yy,day(csrq)asrrfromstudentwhere";
an1+="sno='"+Edit1->Text+"'";
ADOQuery1->SQL->Add(an1);
ADOQuery1->Open();
//为各个变量赋值
Edit1->Text=ADOQuery1->FieldValues["sno"];
Edit2->Text=ADOQuery1->FieldValues["sname"];
AnsiStringxb;
xb=ADOQuery1->FieldValues["sex"];
if(xb=="男")
{RadioButton1->Checked=true;}
if(xb=="女")
{RadioButton2->Checked=true;}
ComboBox1->Text=ADOQuery1->FieldValues["sdept"]
ComboBox2->Text=ADOQuery1->FieldValues["nn"];
ComboBox3->Text=ADOQuery1->FieldValues["yy"];
ComboBox4->Text=ADOQuery1->FieldValues["rr"];
修改代码:
AnsiStringxb,rq;
if(RadioButton1->Checked==true)
{xb="男";}
else
{xb="女";}
rq=ComboBox2->Text+'-'+ComboBox3->Text+'-'+ComboBox4->Text;
ADOQuery1->SQL->Clear();
AnsiStringan1="updatestudentset";
an1+="sno='"+Edit1->Text+"',";
an1+="sname='"+Edit2->Text+"',";
an1+="sex='"+xb+"',";
an1+="sdept='"+ComboBox4->Text+"',";
an1+="csrq='"+rq+"'";
an1+="wheresno='"+Edit1->Text+"'";
ADOQuery1->SQL->Add(an1);
ShowMessage(an1);
ADOQuery1->ExecSQL();
ShowMessage("修改成功");
六.信息删除
删除查询代码:
if(Text=="")
{ShowMessage("请查询输入要查询的学号");
return;
}
ADOQuery1->SQL->Clear();
AnsiStringan1="select*fromstudentwhere";
an1+="sno='"+Form4->Edit1->Text+"'";
ADOQuery1->SQL->Add(an1);
ADOQuery1->Open();
DBGrid1->DataSource=DataSource1;
删除代码
intaa;
aa=MessageBox(NULL,"真的要删除该生记录吗?
","询问窗口",4);
if(aa==6)
{ADOQuery1->SQL->Clear();
AnsiStringan1="deletefromstudentwhere";
an1+="sno='"+Form4->Edit1->Text+"'";
ADOQuery1->SQL->Add(an1);
ADOQuery1->ExecSQL();
ShowMessage("删除成功");
DBGrid1->DataSource=DataSource1;}
else
{return;}
七.统计:
统计代码:
ADOQuery1->SQL->Clear();
AnsiStringan1="selectcount(sno)asxsrsfromstudent";
ADOQuery1->SQL->Add(an1);
ADOQuery1->Open();
Label2->Caption="学生人数";
Label3->Caption=ADOQuery1->FieldValues["xsrs"];
//---------------------------------------------------------------------------
ADOQuery1->SQL->Clear();
AnsiStringan1="selectavg(grade)aspjcjfromsc";
ADOQuery1->SQL->Add(an1);
ADOQuery1->Open();
Label2->Caption="平均成绩";
Label3->Caption=ADOQuery1->FieldValues["pjcj"];
}
//----------------------------------------