程序设计实践训练课程设计报告姓名:班级:学号:指导老师:日期:2012.6.1~2012.6.3华南农业大学工程学院摘要采用人工管理庞大的数据库是一项繁重枯燥的工作,无论是数据录入,查询还是修改都存在着工作量大,效率低下,周期长的缺点。
而计算机管理系统的引进将给人工管数据库的工作带来一次彻底的变革。
学校由于学生众多,学生数据信息库庞大,使信息的管理成为了一个复杂繁琐的工作。
本系统针对学校,经过实际的需求分析,采用功能强大的VS2008作为开发工具来开发学生信息管理系统。
整个系统从符合操作简便,界面美观、灵活、实用的要求出发,完成学生信息管理的全过程,包括信息浏览,信息添加,信息录入,查找修改和查询导出等功能。
经过使用证明,本文所设计的学生信息管理系统可以满足学校对学生信息管理方面的需要。
目录1.需求分析 (1)2.概要设计 (2)2.1 数据类型定义 (2)2.2 主程序流程 (2)3.程序实现 (3)4.运行结果 (11)5.讨论及进一步研究建议 (16)6.课程设计心得 (16)A BSTRACT (16)参考文献 (17)1.需求分析1.设计任务:设计一个学生信息管理系统,要求如下:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)---输入(3)学生信息浏览功能---输出(4)查询、排序功能---按学号查询、按姓名查询创新要求:在基本要求达到后,可进行创新设计。
学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
2.完成的具体功能:本设计以Visual Studio 2008为开发平台,用C#语言开发的Winform窗体应用程序,数据库采用Microsof Access 2007作为程序中数据的保存和读取对象。
本设计除了完成基本要求,即实现:(1)系统以菜单方式工作(2)学生信息录入功能(3)学生信息浏览功能(4)查询和排序功能此外,还增加了:(5)学生信息删除与修改(6)将信息以excel表格的形式导出(7)增加了对信息进行修改的方式,使系统使用更方便,更易操作2.概要设计2.1 数据类型定义(1)数据库表的字段的定义字段名称含义字段名称含义字段名称含义ID 编号birthday 出生日期qq QQStudentName 姓名Aclass 班级email E-mail StudentID 学号mobil 手机address 地址sex 性别tel 固话ps 备注(2)主界面菜单按钮定义btn_viewinfo 信息浏览按钮btn_search 搜索按钮btn_addinfo 录入信息按钮btn_output 查询输出按铵btn_sysimfo 系统信息按钮btn_exit 退出系统按钮(3)Datagridview 表格控件定义dv_viewimformation Dgv_search Dgv_output信息浏览表格查找表格输出查找表格2.2 主程序流程主系统界查询修改信息浏览查询输出导出Exel修改 系统信息信息录入Access 数据库退出系统3程序实现3.1主程序调用方法private void Main_Load(object sender, EventArgs e)//当窗口被加载时触发,显示内容为浏览信息窗口{ViewImformation viewform = new ViewImformation();viewform.MdiParent = this;viewform.StartPosition = FormStartPosition.CenterParent;viewform.WindowState = FormWindowState.Maximized;viewform.Show();}private void toolstr_btn_add_Click(object sender, EventArgs e)//录入信息按键按下{foreach (Form fm in this.MdiChildren){fm.Close();}AddImformation addimfoform = new AddImformation();addimfoform.MdiParent = this;addimfoform.StartPosition = FormStartPosition.CenterScreen; ;addimfoform.WindowState = FormWindowState.Maximized;addimfoform.Show();}private void toolstr_btn_view_Click(object sender, EventArgs e)//浏览信息按键按下{ViewImformation viewform = new ViewImformation();viewform.MdiParent = this;viewform.StartPosition = FormStartPosition.CenterParent;viewform.WindowState = FormWindowState.Maximized;this.ActiveMdiChild.Close();viewform.Show();}private void toolstr_btn_search_Click(object sender, EventArgs e)//查找修改按钮按下{foreach (Form fm in this.MdiChildren){fm.Close();}SearchImformation searchForm = new SearchImformation();searchForm.MdiParent = this;searchForm.StartPosition = FormStartPosition.CenterParent;searchForm.WindowState = FormWindowState.Maximized;searchForm.Show();}private void toolstr_btn_delete_Click(object sender, EventArgs e)//浏览信息页面的删除按钮按下{foreach (Form fm in this.MdiChildren){fm.Close();}OutputForm output = new OutputForm();output.MdiParent = this;output.StartPosition = FormStartPosition.CenterParent;output.WindowState = FormWindowState.Maximized;output.Show();}private void btn_exit_Click(object sender, EventArgs e)//退出按钮被按下{if (MessageBox.Show("确定退出吗?", "退出提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) == DialogResult.OK){Application.Exit();}}private void toolStripButton4_Click(object sender, EventArgs e){MessageBox.Show("本软件是为了完成课程设计而编写的一个学生信息管理系统\r\n本小组成员有黄志年和冯健聪","软件信息");}3.2信息浏览模块#region//窗口加载时触发,显示所有信息private void ViewImformation_Load(object sender, EventArgs e){try{string selectSQL = string.Format("Select * From studentInfo ");DataSet ds = AccessClass.GetDataSet(selectSQL);this.dgv_viewinfo.DataSource = ds.Tables[0].DefaultView;}catch(Exception ex){MessageBox.Show("加载信息异常,异常信息为:" + ex.Message, "异常信息");}}#endregionprivate void btn_edit_Click(object sender, EventArgs e)//编辑按钮按下时,进入编辑界面进行编辑{Program.AID = Convert.ToInt32(this.dgv_viewinfo.CurrentRow.Cells["ID"].Value);//获取当前行的ID号Program.Editsql = string.Format("Select * From studentInfo Where ID = {0}",Program.AID);EditForm editform = new EditForm();//实例化一个窗口并打开editform.MdiParent = this.MdiParent;editform.StartPosition = FormStartPosition.CenterScreen;editform.WindowState = FormWindowState.Maximized;this.Close();editform.Show();}private void btn_delete_Click(object sender, EventArgs e)//删除按钮按下时,询问是否删除,确认后即删除{Program.AID = Convert.ToInt32(this.dgv_viewinfo.CurrentRow.Cells["ID"].Value);//获取当前行的ID号if (Program.AID ==0) return;try{string deleteSQL = string.Format("Delete From studentInfo Where ID = {0} ", Program.AID);if (MessageBox.Show("确定要删除姓名为[this.dgv_viewimfo.]的学生信息吗?","提示信息",MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)== DialogResult.OK){try{if (AccessClass.ExecuteNonquery(deleteSQL) > 0){string selectSQL = string.Format("Select * From studentInfo");//重新更新显示DataSet ds = AccessClass.GetDataSet(selectSQL);this.dgv_viewinfo.DataSource = ds.Tables[0].DefaultView;MessageBox.Show("姓名为[" + this.dgv_viewinfo.CurrentRow.Cells["StudentName"].Value.ToString() + "]的学生信息已经删除成功", "提示信息");return;}else{MessageBox.Show("姓名为[" + this.dgv_viewinfo.CurrentRow.Cells["StudentName"].Value.ToString() + "]的学生信息已经删除失败", "提示信息");return;}}}}catch (Exception ex){MessageBox.Show("用户信息删除出现异常,异常信息为:" + ex.Message, "异常信息");return;}}3.3信息录入#region录入信息处理函数private void addtodata(){if (string.IsNullOrEmpty(this.txt_studentname.Text.Trim())){MessageBox.Show("同学姓名不能为空", "提示信息");this.txt_studentname.Focus();return;}DateTime birth;string sdate = "";if (!string.IsNullOrEmpty(this.txt_birthday.Text.Trim())){if (!DateTime.TryParse(this.txt_birthday.Text, out birth)){MessageBox.Show("请填写正确的日期格式", "提示信息");this.txt_birthday.Focus();return;}sdate = birth.ToString("yyyy-MM-dd");}if (string.IsNullOrEmpty(this.cmb_sex.Text.Trim())){MessageBox.Show("请选择性别", "提示信息");this.cmb_sex.Focus();return;}string insertSQL = string.Format("Insert Into studentInfo(StudentID,StudentName,sex,birthday," +"Aclass,mobil,tel,email,qq,address,ps)" +"Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')",this.txt_studentID.Text.Trim(),this.txt_studentname.Text.Trim(),this.cmb_sex.Text,sdate,this.txt_classes.Text.Trim(),this.txt_mobil.Text.Trim(), this.txt_tel.Text.Trim(),this.txt_email.Text.Trim(),this.txt_qq.Text.Trim(),this.txt_add.Text.Trim(), this.txt_PS.Text.Trim());try{if (AccessClass.ExecuteNonquery(insertSQL) > 0){ClearInput();MessageBox.Show("添加同学信息成功", "提示信息");return;}}catch (Exception ex){MessageBox.Show("添加同学信息出现异常,请联系软件开发人员\r\n异常信息为:" + ex.Message, "提示信息");return;}}3.4查询与修改private void search() // 查找功能实现函数{StringBuilder sbsql = new StringBuilder();//可变字符串sbsql.Append("Select * From studentInfo Where 1 = 1 ");//在此实例的结尾追加指定对象的字符串表示形式。