资源描述
实验五开发一个小型管理程序进行数据库的管理操作
-—例学生信息管理系统
一. 实验目的:
考察学生综合运用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) 从数据库中读密码语句
AnsiString an1=”select * from mm";
an1+=" where user1='”+ Edit1—〉Text+”'”; //定义SQL查询语句
an1+=” and password1='”+Edit2-〉Text+"’”;
ADOQuery1—〉SQL-〉Add(an1); //将SQL语句加入到缓冲区
ADOQuery1—>Open(); //执行SQL语句
if (ADOQuery1—>RecordCount==0) //识别是用户名及密码是否正确
{ ShowMessage("非法用户名或密码”);
Return;
}
7. 文件存盘
如图9点文件菜单save project as
图9
文件按默认文件名,选一个新目录保存,如图10
图10
二. 综合窗口
菜单的设计
三.信息录入
判断学号是否存在:
void __fastcall TForm3::Edit1Exit(TObject *Sender)
{ AnsiString an1="select * from student where ";
an1+=" sno=’”+Edit1—>Text+”’";
ADOQuery1—〉SQL—〉Clear();
ADOQuery1—〉SQL->Add(an1);
ADOQuery1-〉Open() ;
if(ADOQuery1-〉RecordCount==1)
{ShowMessage("对不起,已经存在该学号,请重新输入”);
Edit1—〉SetFocus() ;
return;
}
}
增加代码:
AnsiString rq,xb;
if(Edit1->Text==""||Edit2—〉Text==”")
{ShowMessage(”对不起,学号或密码不得为空");
return;
}
if(ComboBox1->Text==”请选择系”)
{ShowMessage(”对不起,请选择系部”);
return;
}
if(ComboBox2->Text==”请选择" ||ComboBox3—>Text==”请选择”||ComboBox4—〉Text=="请选择")
{ShowMessage(”对不起,请选择出生日期");
return;
}
rq=ComboBox2—〉Text+"—”+ComboBox3->Text+”—”+ComboBox4-〉Text;
if(Form3->RadioButton1->Checked==1)
{xb=”男”;}
else
{xb="女” ; }
AnsiString an1="insert into student values( ”;
an1+=" '”+Form3->Edit1->Text+"’ ,”;
an1+=" '”+Form3-〉Edit2—>Text+”’ ,”;
an1+=" ’"+xb+"’ ,”;
an1+=” '"+ComboBox1->Text+"' ,";
an1+=” ’"+rq+”’)" ;
ADOQuery1->SQL-〉Add(an1);
ADOQuery1->ExecSQL();
ADOQuery1—>Close();
ShowMessage("增加成功");
四.信息查询:
查询代码
AnsiString xb,an1;
an1=" select * from student ”;
if(Edit1->Text!="”)
an1+=" where sno='”+Edit1-〉Text+”' " ;
ADOQuery1-〉SQL-〉Clear() ;
ADOQuery1->SQL—〉Add(an1);
ADOQuery1—>Open() ;
if (ADOQuery1—>RecordCount==0 )
{ ShowMessage(”对不起,查无此人请重试!");
return;
}
第一条
ADOQuery1—〉First() ;
上一条
ADOQuery1—〉Prior() ;
下一条
ADOQuery1—>Next() ;
最后一条
ADOQuery1-〉Last() ;
五.学生信息修改
修改中查询代码:
AnsiString an1;
if(Edit1—>Text==””)
{ ShowMessage("对不起,学号不得为空”);
return;
}
an1=" select * from student where sno=’”+Edit1->Text+”’”;
ADOQuery1—>SQL-〉Clear() ;
ADOQuery1-〉SQL—>Add(an1);
ADOQuery1—>Open() ;
if (ADOQuery1—>RecordCount==0 )
{ ShowMessage("对不起,学号不正确,请重输入");
return;
}
Edit2—〉Text=ADOQuery1—>FieldValues["sname”];
ComboBox1->Text=ADOQuery1—〉FieldValues["sdept”];
修改代码:
if(Edit2—>Text=="")
{ ShowMessage("对不起,姓名不得为空");
return;
}
if(ComboBox1—>Text==”请选择”)
{ ShowMessage("对不起,选择系部”);
return;
}
AnsiString an1=” update student set sname=’”+Edit2->Text+”' ,sdept='”+ComboBox1—〉Text+”'”;
an1+= " where sno=’”+Edit1—〉Text+"’ ";
ADOQuery1-〉SQL-〉Clear() ;
ADOQuery1->SQL-〉Add(an1);
ADOQuery1->ExecSQL() ;
ShowMessage(”修改成功!");
六.信息删除
删除查询代码:
AnsiString an1;
if(Edit1-〉Text=="”)
{ ShowMessage("对不起,学号不得为空");
return;
}
an1=” select * from student where sno=’"+Edit1->Text+"'”;
ADOQuery1—>SQL—>Clear() ;
ADOQuery1-〉SQL->Add(an1);
ADOQuery1—〉Open() ;
if (ADOQuery1—>RecordCount==0 )
{ ShowMessage(”对不起,学号不正确,请重输入");
return;
}
删除代码
int aa;
aa=MessageBox(NULL,"真的要删除吗”,"删除窗口",4);
if(aa==6)
{
AnsiString an1=" delete from student where sno=’”+Edit1-〉Text+"’ ”;
ADOQuery1—〉SQL—〉Clear() ;
ADOQuery1—>SQL—>Add(an1);
ADOQuery1->ExecSQL() ;
ShowMessage("删除成功!");
}
else
return;
七.统计:
统计代码:
AnsiString an1;
an1=” select count(*) as 学生人数, avg(2014-year(csrq)) as 平均年龄 from student ";
ADOQuery1—>SQL—>Clear() ;
ADOQuery1—>SQL—>Add(an1);
ADOQuery1->Open() ;
if (ADOQuery1-〉RecordCount==0 )
{ ShowMessage(”对不起,目前没有学生");
return;
}
八.修改密码:
修改密码代码:if(Edit1->Text==”” ||Form6—〉Edit2—〉Text==”")
{ ShowMessage("对不起,用户名或密码不得为空”);
return;
}
ifEdit3->Text=="" ||Form6—>Edit4—〉Text==”")
{ ShowMessage("对不起,输入新密码也不能为空");
return;
}
if(Edit3—>Text!=Form6->Edit4—〉Text)
{ ShowMessage(”两次密码不一致");
return;
}
ADOQuery1->SQL-〉Clear() ;
AnsiString an1="select * from mm" ;
an1+=” where user1='"+Form6-〉Edit1—>Text+"'” ;
an1+=” and password1='”+Form6->Edit2—〉Text+”’";
ADOQuery1—〉SQL->Add(an1);
ADOQuery1—>Open() ;
if(ADOQuery1->RecordCount==0)
{ ShowMessage(”对不起,用户名或密码错误,请重试”);
return;
}
ADOQuery1—〉SQL-〉Clear() ;
an1=”update mm set password1='"+Form6-〉Edit3-〉Text+”' ”;
an1+=” where user1=’”+Form6—〉Edit1—>Text+”'”;
ADOQuery1->SQL—>Add(an1);
ShowMessage(an1);
ADOQuery1—〉ExecSQL();
ShowMessage(”密码修改成功”);
循环参考语句:
for(i=1961;i〈=1990;i++)
{ComboBox2-〉Items-〉Add(i);}
刷新:(重置)
Edit1—〉Text=”";
Form4-〉Edit2—〉Text=””;
RadioButton1->Checked=false;
RadioButton2—〉Checked=false;
ComboBox2-〉Text!=”请选择”;
ComboBox3—>Text!=”请选择" ;
ComboBox1->Text!="" ;
Form4-〉Refresh() ;
展开阅读全文