地12C#实习指导书0630(任务1)_第1页
地12C#实习指导书0630(任务1)_第2页
地12C#实习指导书0630(任务1)_第3页
地12C#实习指导书0630(任务1)_第4页
地12C#实习指导书0630(任务1)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

地12级《C#程序设计与开发》实习指导书一、实习目的与任务本实习是地理信息系统专业的一门基础教育限选课。是“c#程序设计与开发”课程的配套教学。主要实践面向对象编程语言进行Windows可视化开发的思想,基本掌握应用C#进行应用程序开发的编程方法和技术,为地理信息系统专业的学生从事GIS的开发与应用打下一个良好的语言基础。本实习利用C#设计并实现一个简单的管理信息系统。具体任务如下:掌握C#面向对象的编程基础;学习C#简单的数据库操作方法;学习C#图形基本操作;(4)掌握ADO.net访问数据库;学习利用C#进行C/S模式下的管理数据库系统设计;学习使用Windows的对话框和常用控件制作用户界面及实现其功能。二、内容、要求、进度安排与组织方式实习内容1)基本知识掌握使用VisualC#开发Windows应用程序的一般方法和特点,理解Windows应用程序的基本概念、主要功能和Windows应用程序开发的基本思想,能够根据实际需要自行开发简单的Windows应用程序。基本技能系统总体设计。建立数据库:设计数据库的实体关系图,创建物理数据表等。设计管理系统界面包括:用户登录界面设计、管理员操作界面、用户操作界面。管理员模块的实现。用户模块的实现。基本图形操作。主要内容学生信息管理系统的设计与实现(2)五子棋游戏设计与实现实习要求(1)通过实习使掌握使用VisualC#开发Windows应用程序的一般方法和特点。(2)理解Windows应用程序的基本概念、主要功能和Windows应用程序开发的基本思想。(3)能够根据要求开发简单的信息管理系统。进度安排实习进度如下表所示:表1实习进度安排表19周周1-8节周二1-8节周三1-8节周四1-8节周五1-6节地点大兴B-305机房大兴B-305机房大兴B-305机房大兴B-305机房大兴B-305机房内容实习动员、实验1-数据库表设计与数据录入。实验1-主界面设计、用户登录界面设计实现。实验1-学生入学模块、学生成绩管理模块设计实现。实验1-学生入学管理模块、系统管理模块设计实现。实验1-学生入学信息査询模块、学生成绩査询模块设计实现。20周周1-8节周二1-8节周三1-8节周四1-8节周五1-6节地点大兴B-305机房大兴B-305机房大兴B-305机房大兴B-305机房大兴B-305机房内容实验1-学生考勤査询模块设计实现;整理实验1相关资料并总结。实验2-主界面设计,作者信息简介功能实现,五子棋的棋盘绘制。实验2-五子棋2人对战式游戏逻辑设计及程序实现,用户帮助功能。实验2-游戏步骤保存及读取;整理实验2相关资料并总结。成果提交。组织方式以个人为单位,完成以上各项实习内容,并提交实习成果,包括:实验1、实验2的源代码(交电子版)、实习日志(学校发放)、实习报告(包括:系统功能、界面设计及实现后效果截图,实习总结)。注:实习日志的封面填写完整,右上角注明大学号;实习报告包括;纸质版和电子版,格式见《实习报告格式_c#程序设计与开发》。三、实习步骤:3.1实验1——学生信息管理系统的设计与实现3.1.1数据库表设计1)学生成绩表结构

表2学生成绩表字段名称类型大小自动编号自动编号长整型班级名称文本50学期名称文本50学籍编号文本50学生姓名文本50课程名称文本50考试成绩数字双精度型设计过程:新建空白Access数据库,使用表设计器设计,如下图所示:罔表1ID *班级名称+学期名焦★懿新字段米(新建y图1空白ACCESS表并将具体信息补充完整詞学生我统自动編号+班级名称学期名稔*学籍编号・学生姓名”课程名称T考试成绩〒1超000级独本爲滤0年萩期LDAD2Q00d'8-dn~rp■卜大学英语(乜B6'2渝d级独本却药。0年秋期LDAD'SOOOQSfi王武斌大学英语(二)8732000级独本窕迤0年秋期LDAD'2:000a30彭云大学英语㈡6S1——2000^^3^00年秘期八a八上T1Xr4t—I-1"rH廿FTLDAP2.000030》毬一4-r.-rVL大学英语£二:1亠咎HJIHf―、82图2填写信息后的ACCESS表2)操作用户表结构表3操作用户表字段名称类型大小用户名称文本50用户密码备注用户姓名文本50所在部门文本50联系电话文本50职责说明备注长整型学生管理之学生成绩管理数字长整型学生管理之学生入学管理数字长整型学生管理之学生考勤管理数字长整型杳询管理之杳询成绩信息数字长整型杳询管理之杳询课程信息数字长整型杳询管理之杳询考勤信息数字长整型系统管理之分配用户权限数字长整型

3)学生档案表结构表4学生档案表字段名称类型大小学生姓名文本50学生性别文本50身份证号码文本50准考证号码文本50通信地址备注50邮政编码文本50联系电话文本50移动电话文本50佰舍编号文本50班级名称文本50基本情况备注学生照片备注补充说明备注4)课程设置表结构表5课程设置表字段名称类型大小自动编号自动编号长整型班级名称文本50学期名称文本50课程名称文本50预计课时数字长整型教材名称备注出版社名称备注教师编号文本50教室名称文本50补充说明备注5)学生考勤表结构表6学生考勤表字段名称类型大小自动编号自动编号长整型班级名称文本50学期名称文本50学籍编号文本50学生姓名文本50考勤日期日期/时间考勤类型文本50补充说明备注

3.1.2主界面与用户登录界面设计与实现学生信息管理系统主界面(参考)如下图所示图3学生信息管理系统主界面(参考)在加载主界面时调用弹出用户登陆界面(参考),具体如下图所示:图4用户登陆界面主界面加载函数MainFormLoad代码(参考)如下:privatevoidMainForm_Load(objectsender,EventArgse){//添加ThreadException事件关联程序try{//显示登录对话框LoginFormMyDlg=newLoginForm();MyDlg.Text="欢迎使用"+MySlogan;MyDlg.ShowDialog(this);this.MyOperator=MyDlg.用户名称TextBox.Text;//根据用户的操作权限配置系统菜单SetUserOperateMenu();//最大化显示系统主窗体if(MyOperator.Length>0){this.WindowState=FormWindowState.Maximized;}//设置系统背景图像信息this.Backgroundlmage=newBitmap(this.MyBgPhotoShow,true);this.Icon=newIcon(this.Mylcon);//设置系统标题栏显示文字this.Text=MySlogan;}catch{this.Close();}}publicvoidSetUserOperateMenu(){//根据用户的操作权限配置系统菜单StringMyConnectionString=global::MySchool.Properties.Settings.Default.DBSchoolConnectionString;stringMySQL="Select*From操作用户Where用户名称='"+this.MyOperator+OleDbConnectionMyConnection=newOleDbConnection(MyConnectionString);MyConnection.Open();DataTableMyTable=newDataTable();OleDbDataAdapterMyAdapter=newOleDbDataAdapter(MySQL,MyConnection);MyAdapter.Fill(MyTable);if((int)MyTable.Rows[0]["学生管理之学生入学管理"]==0){this.学生入学管理ToolStripMenuItem.Visible=false;this.学生入学管理ToolStripSeparator.Visible=false;this.学生入学管理ToolStripButton.Visible=false;}if((int)MyTable.Rows[O]["学生管理之学生考勤管理"]==0){this.学生考勤管理ToolStripMenuItem.Visible=false;this.学生考勤管理ToolStripSeparator.Visible=false;this.学生考勤管理ToolStripButton.Visible=false;}if((int)MyTable.Rows[0]["学生管理之学生成绩管理"]==0){this.学生成绩管理ToolStripMenuItem.Visible=false;this.学生成绩管理ToolStripSeparator.Visible=false;this.学生成绩管理ToolStripButton.Visible=false;}if((int)MyTable.Rows[O]["查询管理之查询学生信息"]==0){this.查询学生信息ToolStripMenuItem.Visible=false;this.查询学生信息ToolStripSeparator.Visible=false;this.查询学生信息ToolStripButton.Visible=false;}if((int)MyTable.Rows[O]["查询管理之查询成绩信息"]==0){this.查询成绩信息ToolStripMenuItem.Visible=false;this.查询成绩信息ToolStripSeparator.Visible=false;this.查询成绩信息ToolStripButton.Visible=false;}if((int)MyTable.Rows[O]["查询管理之查询考勤信息"]==0){this.查询考勤信息ToolStripMenuItem.Visible=false;this.查询考勤信息ToolStripSeparator.Visible=false;this.查询考勤信息ToolStripButton.Visible=false;}if((int)MyTable.Rows[0]["系统管理之分配用户权限"]==0){this.分配用户权限ToolStripMenuItem.Visible=false;this.分配用户权限ToolStripSeparator.Visible=false;this.分配用户权限ToolStripSeparator.Visible=false;}if(MyConnection.State==ConnectionState.Open){MyConnection.Close();}}设计用户登录界面代码(参考)如下://文件名:LoginForm.csusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows・Forms;usingSystem.Security.Cryptography;usingSystem.10;usingSystem.Security.Principal;usingSystem.Data.0leDb;namespaceMySchool{publicpartialclassLoginForm:Form{publicLoginForm(){InitializeComponent();}//记录用户登录次数privateintMyTryCount=0;privatevoid退出系统Button_Click(objectsender,EventArgse){MainFormMyDlg=(MainForm)this.Owner;MyDlg.Close();}privatevoid登录系统Button_Click(objectsender,EventArgse){//从app.config文件中读取数据库连接字符串信息StringMyConnectionString=global::MySchool.Properties.Settings.Default.DBSchoolConnectionString;stringMySQL="SelectC0UNT(*)From操作用户Where用户名称=@用户名称AND用户密码=@用户密码";OleDbConnectionMyConnection=newOleDbConnection(MyConnectionString);MyConnection.0pen();OleDbCommandMyCommand=newOleDbCommand(MySQL,MyConnection);MyCommand.Parameters.Clear();OleDbParameterMySqlNameParameter=newOleDbParameter();MySqlNameParameter.ParameterName="@用户名称";MySqlNameParameter.Value=this.用户名称TextBox.Text;MyCommand.Parameters.Add(MySqlNameParameter);OleDbParameterMyOleDbPWParameter=newOleDbParameter();MyOleDbPWParameter.ParameterName="@用户密码";stringMyHashName="SHA1";stringMyPassword=this.用户密码TextBox.Text;//创建一个哈希算法HashAlgorithmMyHashAlgorithm=HashAlgorithm.Create(MyHashName);//转换密码字符串为一个字节数组byte[]MyPasswordData=Encoding.Default.GetBytes(MyPassword);//生成密码字符串的哈希码byte[]MyHash=MyHashAlgorithm.ComputeHash(MyPasswordData);//显示密码对应的哈希码stringMyPW=BitConverter.ToString(MyHash);MyOleDbPWParameter.Value=MyPW;MyCommand.Parameters.Add(MyOleDbPWParameter);intMyCount=(int)MyCommand.ExecuteScalar();if(MyCount==1){this.Close();}else{this.MyTryCount+=1;if(this.MyTryCount!=3){intMyDoCount=3-this.MyTryCount;MessageBox.Show(”用户密码或用户名称有错,还有"+MyDoCount+"次机会!信息提示"MessageBoxButtons.OK,MessageBoxIcon.Information);信息提示"this.用户密码TextBox.Text="";this.用户名称TextBox.Text="";}else{退出系统Button_Click(null,null);}}if(MyConnection.State==ConnectionState.Open){MyConnection.Close();}}}

3.1.3管理相关模块设计与实现学生入学管理模块创建Windows窗体,并设置其界面学生入学模块基本界面(参考)具体如下图所示:0{0}学生性别3基本情呪学生照片充说日!由IHL学藉鋼号button拄件dataGridView控件-bindingNavigator控件,pictureBox控件textBox通讯地址:textBox联系电话:宿舍编号:comboBoztextBox两览照片...textBox学生姓名学生性别身份证号码淮考证号码通信地址幻回冈labels堆考证号0{0}学生性别3基本情呪学生照片充说日!由IHL学藉鋼号button拄件dataGridView控件-bindingNavigator控件,pictureBox控件textBox通讯地址:textBox联系电话:宿舍编号:comboBoztextBox两览照片...textBox学生姓名学生性别身份证号码淮考证号码通信地址幻回冈labels堆考证号:|textBox邮政編码:|textBox藉輪*: textBox学生姓名:textBox份证号I图5学生入学模块基本界面(参考)textBox移动电话,comboBozV班飯名称:textBox为DataGridView控件添加数据在其属性中查找DataSource,点击下拉箭头一添加项目数据源,具体如下图:属性dataGridViewlSystemWirLdowe.Farme.D:mtaGriTsi![HI團书-J CuliuTiriHeadersHeightEAutoSizeCuliuTiriHeaderzVisibleTrueColuiTirLE篠合)C皿textMeniiStripf无)CureorDefaultaDataNember|DataSource氏) |VHefaultCellStyleD:mtaGridViewCellStyleDuckBottoaEditModeEditOrdCeyEttpkmlhFEEnabledTruev||图6从DataGridView数据添加

在数据源配置向导中选择数据库并点击下一步,具体如下图:图7数据配置向导在“选择您的数据连接”对话框中选择“新建连接”,在“数据源选项”中选择Access数据库文件,在“数据库文件名”中点击浏览并选择相应的.mdb文件,最后确定,具体如下图所示。图8数据连接步骤按照配置要求完成以下步骤,在“选择数据库对象”对话窗口中勾选“表、视图”选项,并完成整个数据源配置过程。控件与数据库的绑定将界面中一个控件选中,如下图所示:驹阳网:图9界面中一个控件右键——>属性图10控件的Text字段绑定数据库中相应字段

依次绑定各个控件。实现查询、新添、删除、保存和浏览图片功能。查询控件代码(参考)如下:this.学生档案BindingSource.Filter=""学籍编号LIKE'" +this.toolStripTextBoxl.Text+""'"";保存控件代码(参考)如下:this.Validate();this.学生档案BindingSource.EndEdit();this.学生档案TableAdapter.Update(this.dBSchoolDataSet.学生档案);浏览图片控件代码(参考)如下:OpenFileDialogMyDlg=newOpenFileDialogO;MyDlg.Title=""选择照片"";MyDlg.Filter="JPEG图像文件(*.jpg)|*.jpg|所有图像文件(JPeg,Gif,Bmp,etc.)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif;*.tiff;*.png|所有文件(*.*)|*.*〃;辻(MyDlg.ShowDialogO==DialogResult.OK){stringMySrcPath=MyDlg.FileName;stringMyGUID=System.Guid.NewGuid().ToString().ToUpper();stringMyExtName=System.IO.Path.GetExtension(MyDlg.FileName);stringMyPhotoFile=MyGUID+MyExtName;stringMyDestPath=Application.StartupPath+""\\""+MyPhotoFile;System.IO.File.Copy(MySrcPath,MyDestPath);//this.pictureBoxl.Text二MyPhotoFile;this.pictureBoxl.Image=newBitmap(MyDestPath);this.学生照片TextBox.Text=MyPhotoFile;学生成绩管理模块模块界面(参考)如下:图11学生成绩管理模块界面(参考)依次设置各个ComboBox属性:设置控件的事件:Combox选项变化时响应SelectedlndexChanged事件。图12设置ToolStripCombox选项变化时响应的SelectedIndexChanged事件图13设置Combox选项变化时响应的SelectedIndexChanged事件核心部分代码(参考)如下:privatevoid学生成绩BindingNavigatorSaveItem_Click(objectsender,EventArgse){this.Validate();this.学生成绩BindingSource.EndEdit();this.学生成绩TableAdapter.Update(this.dBSchoolDataSet.学生成绩);}privatevoidScoreForm_Load(objectsender,EventArgse){//TODO:这行代码将数据加载到表“dBSchoolDataSet.课程设置”中this.课程设置TableAdapter.Fill(this.dBSchoolDataSet.课程设置);//TODO:这行代码将数据加载到表“dBSchoolDataSet.学生成绩”中this.学生成绩TableAdapter.Fill(this.dBSchoolDataSet.学生成绩);StringMyConnectionString=global::MySchool.Properties.Settings.Default.DBSchoolConnectionString;stringMySQL="SELECTDISTINCT*FROM[班级设置]";OleDbConnectionMyConnection二newOleDbConnection(MyConnectionString);MyConnection.Open();System.Data.DataTableMyTable=newSystem.Data.DataTable();OleDbDataAdapterMyAdapter=newOleDbDataAdapter(MySQL,MyConnection);MyAdapter.Fill(MyTable);foreach(DataRowMyRowinMyTable.Rows){this.班级名称ToolStripComboBox.Items.Add(MyRow["班级名称"].ToString());this.班级名称ComboBox.Items.Add(MyRow["班级名称"].ToString());}if(MyConnection.State==ConnectionState.Open){MyConnection.Close();}}privatevoid查询ToolStripButton_Click(objectsender,EventArgse){this.学生成绩BindingSource.Filter二"班级名称二'"+this.班级名称ToolStripComboBox.Text+"'AND学期名称二'"+this.学期名称ToolStripComboBox.Text+"'";}privatevoid班级名称ToolStripComboBox_SelectedIndexChanged(objectsender,EventArgse){this.学期名称ToolStripComboBox.Items.Clear();StringMyConnectionString=global::MySchool.Properties.Settings.Default.DBSchoolConnectionString;stringMySQL="SELECTDISTINCT[学期名称]FROM[课程设置]WHERE([班级名称]='"+this.班级名称ToolStripComboBox.Text+",)〃;OleDbConnectionMyConnection二newOleDbConnection(MyConnectionString);MyConnection.Open();System.Data.DataTableMyTable=newSystem.Data.DataTable();OleDbDataAdapterMyAdapter=newOleDbDataAdapter(MySQL,MyConnection);MyAdapter.Fill(MyTable);foreach(DataRowMyRowinMyTable.Rows){this.学期名称ToolStripComboBox.Items.Add(MyRow["学期名称"].ToString());}if(MyConnection.State==ConnectionState.Open){MyConnection.Close();}}privatevoid班级名称ComboBox_SelectedIndexChanged(objectsender,EventArgse){this.学期名称ComboBox.Items.Clear();StringMyConnectionString=global::MySchool.Properties.Settings.Default.DBSchoolConnectionString;stringMySQL="SELECTDISTINCT[学期名称]FROM[课程设置]WHERE([班级名称]二'"+this.班级名称ComboBox.Text+"')";OleDbConnectionMyConnection二newOleDbConnection(MyConnectionString);MyConnection.Open();System.Data.DataTableMyTable=newSystem.Data.DataTable();OleDbDataAdapterMyAdapter=newOleDbDataAdapter(MySQL,MyConnection);MyAdapter.Fill(MyTable);foreach(DataRowMyRowinMyTable.Rows){this.学期名称ComboBox.Items.Add(MyRow["学期名称"].ToString());}if(MyConnection.State==ConnectionState.Open){MyConnection.Close();}}privatevoid班级名称ComboBox_SelectedValueChanged(objectsender,EventArgse){StringMyConnectionString=global::MySchool.Properties.Settings.Default.DBSchoolConnectionString;stringMySQL="SELECT*FROM[学生档案]WHERE(学籍编号NOTIN(SELECT学籍编号FROM学生离校))AND([班级名称]='"+this.班级名称ComboBox.Text+"')";OleDbConnectionMyConnection二newOleDbConnection(MyConnectionString);MyConnection.Open();System.Data.DataTableMyTable=newSystem.Data.DataTable();OleDbDataAdapterMyAdapter=newOleDbDataAdapter(MySQL,MyConnection);MyAdapter.Fill(MyTable);this.学生姓名ComboBox.DataSource=MyTable;this.学生姓名ComboBox.DisplayMember="学生姓名";this.学生姓名ComboBox.ValueMember="学籍编号";if(MyConnection.State==ConnectionState.Open){MyConnection.Close();}}privatevoid学生姓名ComboBox_SelectedIndexChanged(objectsender,EventArgse){f(this.学生姓名ComboBox.SelectedValue.ToString()!=""System.Data.DataRowView""){this.学籍编号TextBox.Text=this.学生姓名ComboBox.SelectedValue.ToString();}}privatevoid学期名称ComboBox_SelectedIndexChanged(objectsender,EventArgse){this.课程设置BindingSource.Filter二"班级名称二'""+this.班级名称ComboBox.Text+""'AND学期名称二'""+this.学期名称ComboBox.Text+""'"";}}学生考勤管理模块学生考勤管理模块界面(参考)如下图所示图14学生考勤模块(参考)系统管理模块模块界面(参考)如下图所示

图15系统管理模块(即用户创建与权限分配)界面(参考)修改用户密码功能界面(参考)如下图所示。图16修改用户密码模块(参考)修改用户密码模块代码(参考)如下:privatevoid返回系统Button_Click(objectsender,EventArgse){this.Close();}privatevoid修改密码Button_Click(objectsender,EventArgse){f(!(this.新密码TextBox.Text==this.再输一次新密码TextBox.Text)||(this.新密码TextBox.Text.Length==0)){MessageBox.Show("两次密码的输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论