《实验五开发一个学生信息管理系统教学文稿.doc》由会员分享,可在线阅读,更多相关《实验五开发一个学生信息管理系统教学文稿.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。实验五开发一个学生信息管理系统-实验五开发一个小型管理程序进行数据库的管理操作一 -例学生信息管理系统实验目的:考察学生综合运用SQL语言的能力,结合前面所学的SQL语言的相关知识,在C+BUILDER环境下开发一小型的管理系统-学生信息管理系统:二实验内容:1 熟悉使用C+BUILDER的表单设计及嵌入式SQL语言的使用。开发一个学生信息管理系统学生信息管理系统信息录入信息查询信息修改信息删除(1) 设计一个登录窗口,负责验证学生登录的账户名,密码(2) 学生信息录入系统主要完成学生信息的录入(学号、
2、姓名、性别、年龄、籍贯等)加到STUDENT表中。(3) 学生信息查询,主要完成可以通过学号、姓名等查证到学生的相关信息(提高点,也可以查询学生成绩)(4) 学生信息修改:可以修改已录入的学生相关信息。(5) 学生信息删除:可以按学号删除学生相关信息(提高点,同时删除其它表中该学生相关信息。参考:一登录窗口的完成图1登录窗口图2工具设置分别用标签,文本,按纽来设计,文字更改用见图3部分功能提示:1.表单调用部分:提示:调用下一表单命令Form2-Show();隐藏当前表单命令Form1-Hide();注意要先用include#unit2.h包含2提示提示窗口:ShowMessage();3文本
3、框取值:Form1-Edit1-Text变量取值:“+变量名+”4 识别为空的情况If(Edit1-Text=”|Edit2-Text=”)ShowMessage(用户名或密码不得为空);return;图3属性设置5 设置密码属性能图4密码属性6 数据库的连接:(1) 建数据连接:ADOADOQuery1-connctionstring建数据源:Dataaccess-datasource-dataset=ADOquery1见图4图5图6图7图8(2) 从数据库中读密码语句AnsiStringan1=select*frommm;an1+=whereuser1=+Edit1-Text+;/定义SQ
4、L查询语句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)AnsiStrin
5、gan1=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)
6、xb=男;elsexb=女;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=
7、+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-C
8、lear();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-FieldValuessno;Edit2-Text=ADOQuery1-FieldValuessname;AnsiStringxb;xb=ADOQuery1-FieldValuessex;i
9、f(xb=男)RadioButton1-Checked=true;if(xb=女)RadioButton2-Checked=true;ComboBox1-Text=ADOQuery1-FieldValuessdeptComboBox2-Text=ADOQuery1-FieldValuesnn;ComboBox3-Text=ADOQuery1-FieldValuesyy;ComboBox4-Text=ADOQuery1-FieldValuesrr;修改代码:AnsiStringxb,rq;if(RadioButton1-Checked=true)xb=男;elsexb=女;rq=ComboBox
10、2-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(
11、修改成功);六信息删除删除查询代码: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();Ans
12、iStringan1=deletefromstudentwhere;an1+=sno=+Form4-Edit1-Text+;ADOQuery1-SQL-Add(an1);ADOQuery1-ExecSQL();ShowMessage(删除成功);DBGrid1-DataSource=DataSource1;elsereturn;七统计:统计代码:ADOQuery1-SQL-Clear();AnsiStringan1=selectcount(sno)asxsrsfromstudent;ADOQuery1-SQL-Add(an1);ADOQuery1-Open();Label2-Caption=学
13、生人数;Label3-Caption=ADOQuery1-FieldValuesxsrs;/-ADOQuery1-SQL-Clear();AnsiStringan1=selectavg(grade)aspjcjfromsc;ADOQuery1-SQL-Add(an1);ADOQuery1-Open();Label2-Caption=平均成绩;Label3-Caption=ADOQuery1-FieldValuespjcj;/-ADOQuery1-SQL-Clear();AnsiStringan1=selectcount(cno)askczsfromcourse;ADOQuery1-SQL-Ad
14、d(an1);ADOQuery1-Open();Label2-Caption=课程总数;Label3-Caption=ADOQuery1-FieldValueskczs八修改密码:修改密码代码:if(Edit1-Text=|Form6-Edit2-Text=)ShowMessage(对不起,用户名或密码不得为空);return;ifEdit3-Text=|Form6-Edit4-Text=)ShowMessage(对不起,输入新密码也不能为空);return;if(Edit3-Text!=Form6-Edit4-Text)ShowMessage(两次密码不一致);return;ADOQuery
15、1-SQL-Clear();AnsiStringan1=select*frommm;an1+=whereuser1=+Form6-Edit1-Text+;an1+=andpassword1=+Form6-Edit2-Text+;ADOQuery1-SQL-Add(an1);ADOQuery1-Open();if(ADOQuery1-RecordCount=0)ShowMessage(对不起,用户名或密码错误,请重试);return;ADOQuery1-SQL-Clear();an1=updatemmsetpassword1=+Form6-Edit3-Text+;an1+=whereuser1=+Form6-Edit1-Text+;ADOQuery1-SQL-Add(an1);ShowMessage(an1);ADOQuery1-ExecSQL();ShowMessage(密码修改成功);循环参考语句:for(i=1961;iItems-Add(i);刷新:(重置)Edit1-Text=;Form4-Edit2-Text=;RadioButton1-Checked=false;RadioButton2-Checked=false;ComboBox2-Text!=请选择;ComboBox3-Text!=请选择;ComboBox1-Text!=;Form4-Refresh();-