《C#面向对象程序设计——学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《C#面向对象程序设计——学生信息管理系统.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#面向对象程序设计学生信息管理系统 实习报告 课程:面向对象程序设计专业: 班级: 学生姓名: 学号: 指导教师: 指导教师职称: 完成时间: 一、实习目的及任务 (一)实习的目的 根据面向对象程序设计理论授课内容,是使学生掌握课程中讲 述的有关面向对象程序设计的理论,同时熟悉C#变成进行Windows 应用程序的开发。加强理论实践联系实际,提高学生综合面向对象 的编程能力。 (二)实习的任务 通过建立简单的学生信息管理系统,熟悉数据库的基本功能、掌握 C#应用的基本方法。 二、组织领导 实习组织工作由课程主讲教室全面负责,每个班级配备1名教室担任实习指导工作。为保证每个学生在实习中得到训练
2、,每个学生应独立完成实习任务。各班实习班长与课代表负责制,负责全班的考勤和仪器设备管 理。 三、实习纪律要求及安全注意事项。 1、实习中,学生应遵守机房的有关规定。 2、实习期间,各班班长和课代表负责,加强全班的考勤和一起设备的管理 和监督。 3、实习中,应加强团结。同学之间、各班级之间都应团结、故乡帮助,以 保证实习任务的顺利完成。 4、实习期间,要特别注意仪器的安全,各班班长和课代表都要及时清点仪 器和工具数量,检查仪器石佛完好无损。 5、爱护实习物品、实习中不慎损坏或丢失实习物品,应主动告诉老师,按 照找有关规定处理。若发生仪器事物,要及时向指导老师报告,不得私 自拆卸仪器。 6、实习过
3、程中注意及时存盘,以避免造成不必要的麻烦。严禁抄袭他人成 果。 7、严格遵守实习纪律。上机时不得嬉戏打闹,不得进行网上聊天等与实习 无关的事情,不看与实习无关的书籍或报纸。未经指导老师同意,不得 缺勤。 四、实习内容及要求 开发以恶搞Windows窗体界面的学生成绩管理系统,功能包括:学生信 息的查询;学生信息的修改(包括插入、更新和删除);学生成绩的录 入和修改。要求:每一项功能都是一个相对独立的模块,用单独的窗体 0.5天建立系统所需数据库(含4机 时) 1天完成数据库设计、界面,功能设 计(含8个机时) 2天完成Windows程序的编写、实施 (含16及时) 1天完成实习报告、资料整理、
4、汇总 (含4机时) 五、实习报告要求 实习报告主要内容包括: 1.实习目的及任务 2.实习地点及时间 3.实习组织和安排 4.实习计划、自己在实习中遵守纪律情况、出勤情况 5.实习内容及要求了解的情况。 6.实习体会、收获、问题及建议。 7.在实习报告中每个人还应包括如下资料: a)系统数据库的设计与实现; b)界面功能的设计与实现; c)系统代码的编写、分段诠释; 六、成绩评定 成绩评定依据: 1、实习期间的表现(实习态度,出勤情况,遵守纪律情况); 2、实习报告的质量 七、实验说明: 一、环境准备 1.准备Visual Studio 2022、SQL Server2022两款软件。. 2.
5、 连接到数据库。 3.设置连接属性,允许远程连接到此服务器。 二、数据准备。 1.新建数据库XSKCDB。 2. 在数据库中新建三张表,分别为XSB,KCB,CJB,即学生表,课程表,成绩表。 3.表结构如下: 2.在表中添加数据。 三、设计窗体界面。 1.创建所需窗体,分别进行设计。 2.设计窗体样式。 (1)Welcome界面。添加label,labe2标签和labellink1,在属性中修改大小颜色,调整位置,添加背景图片。 (2)Login界面,添加label、button、TextBox等空间,添加背景图片,将用户名和密码设置为sdjz。 private void myDefault
6、Btn_Click(object sender, EventArgs e) if (tbxUsr.Text = string.Empty | tbxPwd.Text = string.Empty) MessageBox.Show(信息不完整!, 提示); return; if (!tbxUsr.Text.Equals(sdjz) | !tbxPwd.Text.Equals(sdjz) MessageBox.Show(用户名或密码不正确!, 提示); else Welcome.ScoreManagement.Show(); this.Close(); (3)ScoreManagement界面。添
7、加Menu Strip、ToolStrip组件,创建菜单栏、工具栏。添加背景图片,设置label大标题,并且添加三个button替代 小图标的功能。 搜索.ico编辑表.ico编辑笔.ico (4)SearchForm界面。添加学号文本框,姓名文本框,专业组合框,查询按钮,DatagridView空间,将Name属性分别更改为stuXH/stuXm/stuZY/search_button/stuDGV. (5)ModifyForm界面。添加学号、姓名、出生日期、专业、总学分、备注、文本框,更改Name属性值分别为stuXH/stuXM/stuCS/stuZY/stuZXF/stuBZ。添加控件
8、男、女单选按钮,Name属性值分别为male、female。添加更新、删除、取消按钮,属性值分别设置为stuUpdate/stuDelete/stuCancel。添加DataGridView控件,stuDGV。 (6)ScoreForm界面。添加专业、学号、课程名组合框,设置Name属性为stuZY/stuXH/stuKCM。添加姓名、成绩、学分文本框,设置Name属性分别为stuXM/stuCJ/stuXF。添加更新、删除、取消按钮,设置Name属性分别为update_btn/delete_btn/cancel_btn。加载DatagridView控件。 (7) CourseForm界面。添
9、加DataGridView控件。 四、程序代码编写。 1.学生信息查询: using System; using System.Collections.Generic; using ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace ScoreManagement public partial class SearchForm :
10、Form /保存查询字符串 private string sql = ; private string connStr = Data Source=DELL-WHH;Initial Catalog=XSKCDB;Integrated Security=True;Pooling=False; public SearchForm() InitializeComponent(); private void SearchForm_Load(object sender, EventArgs e) string _sql = select XH as 学号,XM as 姓名,ZY as 专业,XB as
11、性别, + CSRQ as 出生日期,ZXF as 总学分,BZ as 备注 from XSB; SqlConnection conn = new SqlConnection(connStr); SqlDataAdapter sda = new SqlDataAdapter(_sql, conn); DataSet ds = new DataSet(); sda.Fill(ds); StuDGV.DataSource = ds.Tables0.DefaultView; stuZY.SelectedIndex = 1; private void MakeSqlStr() /清空上次的查询字符串
12、sql = ; if (stuXH.Text.Trim() != string.Empty) sql = and XH like %+ stuXH.Text.Trim() + %; if (stuXM.Text.Trim() != string.Empty) sql += and XM like %+ stuXM.Text.Trim() + %; if (stuZY.Text != 所有专业) sql += and ZY= + stuZY.Text + ; private void search_btn_Click(object sender, EventArgs e) /获取查询字符串 Ma
13、keSqlStr(); string _sql = select XH as 学号,XM as 姓名,ZY as 专业,XB as 性别, + CSRQ as 出生日期,ZXF as 总学分,BZ as 备注 from XSB where 1=1 + sql; SqlConnection conn = new SqlConnection(connStr); SqlDataAdapter sda = new SqlDataAdapter(_sql, conn); DataSet ds = new DataSet(); sda.Fill(ds); StuDGV.DataSource = ds.Ta
14、bles0.DefaultView; private void StuDGV_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) string_sql = select XSB.XM as 姓名,KCB.KCM as 课程,CJB.CJ as 成绩, KCB.XF as 学分 from XSB,KCB,CJB+ where XSB.XH=CJB.XH and KCB.KCH=CJB.KCH+ and XSB.XH =+ StuDGV.Rowse.RowIndex.Cells0.Value + ;
15、SqlConnection conn = new SqlConnection(connStr); SqlDataAdapter sda = new SqlDataAdapter(_sql, conn); DataSet ds = new DataSet(); sda.Fill(ds); CourseForm courseFrm = new CourseForm(); courseFrm.stuKCDGV.DataSource = ds.Tables0.DefaultView; courseFrm.ShowDialog(); private void stuZY_SelectedIndexCha
16、nged(object sender, EventArgs e) private void StuDGV_CellContentClick(object sender, DataGridViewCellEventArgs e) 2.学生信息修改: using System; using System.Collections.Generic; using ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; us
17、ing System.Data.SqlClient; namespace ScoreManagement public partial class ModifyForm : Form private string connStr = Data Source=DELL-WHH;Initial Catalog=XSKCDB;Integrated Security=True;Pooling=False; public ModifyForm() InitializeComponent(); private void ModifyForm_Load(object sender, EventArgs e)
18、 string _sql = select XH as 学号,XM as 姓名,ZY as 专业,XB as 性别,+ CSRQ as 出生日期,ZXF as 总学分,BZ as 备注 from XSB; SqlConnection conn = new SqlConnection(connStr); SqlDataAdapter sda = new SqlDataAdapter(_sql, conn); DataSet ds = new DataSet(); sda.Fill(ds); StuDGV.DataSource = ds.Tables0.DefaultView; private v
19、oid StuDGV_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) /获得选中的记录行 DataGridViewRow dgvRow = StuDGV.Rowse.RowIndex; /获得行单元格集合 DataGridViewCellCollection dgvCC = dgvRow.Cells; /获得单元格数据 stuXH.Text = dgvCC0.Value.ToString(); stuXM.Text = dgvCC1.Value.ToString(); stuZY.Text = dgvCC
20、2.Value.ToString(); if (dgvCC3.Value.ToString() = 男) male.Checked = true; else female.Checked = true; stuCS.Text = Convert.ToDateTime(dgvCC4.Value).ToShortDateStr ing(); stuZXF.Text = dgvCC5.Value.ToString(); stuBZ.Text = dgvCC6.Value.ToString(); private void stuUpdate_Click(object sender, EventArgs
21、 e) string _sql = select count(*) from XSB where XH= + stuXH.Text + ; SqlConnection conn = new SqlConnection(connStr); SqlCommand cmd = new SqlCommand(_sql, conn); / 检查是否有此学生记录,有就修改,无则添加 try conn.Open(); int cnt = (int)cmd.ExecuteScalar(); string sex = male.Checked ? 男 : 女; / 修改记录 if (cnt = 1) _sql
22、= update XSB set XM = + stuXM.Text + ,XB= + sex + ,CSRQ= + stuCS.Text + ,ZY= + stuZY.Text + ,ZXF= + int.Parse(stuZXF.Text) + ,BZ= + stuBZ.Text + where XH= + stuXH.Text + ; / 添加新记录 else _sql = insert into XSB values( + stuXH.Text + , + stuXM.Text + , + sex + , + stuCS.Text + , + stuZY.Text + , + int.
23、Parse(stuZXF.Text) + , + stuBZ.Text + ); cmd = new SqlCommand(_sql, conn); cmd.ExecuteNonQuery(); ModifyForm_Load(null, null); finally conn.Close(); private void stuDelete_Click(object sender, EventArgs e) DialogResult ret = MessageBox.Show(确定要删除记录吗?, 删除 , MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (ret = DialogResult.Cancel) return;