




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c#课程实习报告 实习题目名称:学生公寓管理系统 班级序号: 111102-18 学生姓名: 代彦宾 指导教师: 杨之江 中国地质大学信息工程学院软件工程系2012年 7月C#课程实习报告1、 实习目的及要求 实习目的:开发学生公寓管理系统,主要包括基于数据库开发和前期的C#应用程序开发两个方面,选择这个题目,主要是为了更好的运用数据库开发的知识和提高所学编程语言开发能力。 要求:在数据库开发方面,要求后台数据库的建立和维护数据一致性和完整性强。对于前端应用程序的开发,要求程序能提供强大的数据操作功能,界面友好,使用简单等。二、实习选题的背景及目标背景:在本校的学生公寓管理中,由于扩招,本校的学生人数剧增,传统的管理 方式已经不能适合高校宿舍管理的需要,因此需要一个功能完善,操作方便的宿舍管理信息系统。而该系统应该包含学生公寓管理的基本功能:学生管理、公寓相关工作管理等。学生公寓管理系统是应对学生宿舍管理的网络化,逐步摆脱寝室管理的人工管理方式,提高学生宿舍管理效率而开发的。 目前,我们学校的宿舍管理还是人工管理方式。数据信息仍以文本方式保存。针对这一情况,我们设计了学生公寓管理系统。 目标:该学生公寓管理系统设计完毕后,经运行,可完善的展现学生宿舍信息。提高学生宿舍管理员的工作效率。方便同学及其他老师。届时,该系统有以下信息:楼房管理:楼房信息、房间信息、住户信息等。住宿管理:实现用户登陆;实现匿名用户院系,专业,姓名、宿舍号等查询和组合查询功能;实现管理员对院系、专业、学生的添加、修改、删除;实现按院系,专业,姓名等统计功能。来访人员管理:实现登记信息。自行车管理:内容略。维修管理:内容略。 该系统运行成功后能准确无误的反应学生公寓信息,能进行学生公寓各方面的管理。用户界面美观,对用户来讲,操作简单。 三、实习设计方案 根据题目的要求,该系统主要包括住宿管理,来访人员管理,自行车管理,维修管理等。整个程序的设计,就按照这几个管理系统来展开。分别设计这些管理系统,建立相应的数据库。整体设计方案如下:查询学生信息添加学生信息修改学生信息住宿学生管理来访人员管理学生公寓管理系统自行车管理维修管理添加报修信息四、实习开发及实验描述本程序的开发是在win7环境下进行,本系统后台数据库采用access,前台采用vc#作为主要开发工具。采用ADO技术连接数据库,完成对数据库的一系列操作。总体上,按照如下步骤进行程序设计。 用户(管理员)首先输入自己的帐号密码。当帐号和密码对应正确后,方可进入系统进行操作。 用户可在弹出的界面内选择操作。可以进行组合查询。 程序开发主要开发学生信息和管理员添加信息,维修信息。 在数据库中添加各类信息。登陆账号和密码:学生部分信息:部分宿舍信息:部分宿舍楼:维修信息:本题所建数据库的E-R图:学生宿舍管理员宿舍楼入住n1组成m1管理1n性别分类宿舍编号学号姓名性别管理员编号3.4数据字典数据项名数据项含义数据说明数据类型别名StuNo学生编号char(8)学号StuName学生姓名char(8)姓名Sex学生性别char(2)性别Address学生家乡char(10)祖籍StuProfess学生所在专业char(20)专业StuClass学生所在班级编号Char(8)班级RNo宿舍编号char(6)宿舍号ROne宿舍学生信息等于StuNamechar(8)舍员1RTwo宿舍学生信息等于StuNamechar(8)舍员2RThree宿舍学生信息等于StuNamechar(8)舍员3RProfess宿舍学生所学专业等于StuProfesschar(20)专业RClass学生所在班级编号等于StuClasschar(8)班级DorNo宿舍楼编号int宿舍楼号DorAdminist宿舍楼楼管员信息等于WorNochar(10)楼管员WorNo楼管编号char(8)编号WorName楼管姓名char(8)姓名五、实习的结果与讨论给出本次实习的结果和发现,若有必要还需进行讨论:说明所得到的结果是否达到预期目标,对结果提出说明、解释或猜测,给出实验的局限性以及这些限制对结果的影响等。给出开发中遇到的问题及解决办法,程序中待解决的问题及改进方向登陆信息实现结果:在数据库中,规定了几个相对应的帐号和密码。登录成功后的主界面:可以选择报修信息,会弹出如下界面:也可以修改学生信息:可以增加学生信息:六、实习总结 经过将近半个月的时间,本设计终于完成了。本设计对学生宿舍管理工作进行了提炼和概括,大大减少了宿舍管理员的劳动,是学校管理的得力助手。本系统实现了在全校范围内查找一名学生所在公寓的功能,只需要通过查询方法,输入该学生的学号或者姓名,就可以很容易地找到他的所在公寓,同时也可以了解他的一些基本信息,看所查找的对象是否是自己要找的人。也可以增添学生信息,修改学生信息。也可以报修。但,这个系统不是很大、简单、功能不完善。回头看该系统,有很多地方都不完善。比如来访人员管理,自行车管理这两个主要功能没有实现。细节之处,像修改密码等功能也未实现。在本次实习中,我发现自己的编程开发能力有待提高,数据库方面的知识也有待复习巩固。参考文献:参考如下格式列出本次实习所参考的论文、资料的目录1萨师煊,王珊.数据库系统概论M.北京:高等教育出版社,1983.7.2-5.2李志敏,黄静.C# 高级编程 第4版M.北京:清华大学出版社,2007.9:45-2253 王云鹏.C#新手开发实战演练M.北京:中国铁道出版社,2009:300-4504 李佳,付强,丁宁等C#开发技术大全M.北京:清华大学出版社, 2009.6.1-35陈弟.C#程序开发范例宝典M. .北京:人民邮电, 2007-09.8.6-9 6 王小科,梁冰,吕双. C#开发典型模块大全M. 北京:人民邮电出版社, 2009:2367 王院峰, 陈静. C# 3.0实例精通M.北京:机械工业出版社, 2009:112-2258 李雁翎. 数据库技术及其应用Access M.北京:高等教育出版社, 2006.99 黄明. Access信息管理系统开发实例导航M. 北京:人民邮电出版社, 2005:18-10010 庄士钦. 高等学校学生宿舍管理 M. 北京:北京邮电大学出版社, 1989.3.5-511张耀军,吴海燕,胡洋,. 基于delphi的C/S结构高校学生宿舍管理系统J. 中国西部科技,2009,(15).12李向阳,. 基于C#的塔里木大学宿舍管理系统的构建J. 农业网络信息,2009,(2)附件:程序主要源代码和/或图表连接数据库: public class DBHelper private static string connStr = Data Source=.C:UsersDELLDesktop宿舍.mdb; public static SqlConnection connection = new SqlConnection(connStr); / OleDbConnection conn = new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:UsersDELLDesktop宿舍.mdbb);/连接数据库 public DBHelper() String strConnection = Provider=Microsoft.Jet.OleDb.4.0;/strConnection存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源. strConnection += Data Source=C:UsersDELLDesktop宿舍.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); objConnection.Close();登陆界面代码: public partial class Form1 : Form public Form1() InitializeComponent(); 学生公寓管理 a=new 学生公寓管理(); private void Form1_Load(object sender, EventArgs e) cboType.Items.Add(管理员); cboType.SelectedIndex = 0; private void button2_Click(object sender, EventArgs e)/取消按钮 Application.Exit(); private void button1_Click(object sender, EventArgs e)/登陆按钮 String strConnection = Provider=Microsoft.Jet.OleDb.4.0; strConnection += Data Source=C:UsersDELLDesktop宿舍.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); objConnection.Close(); if (ValidateInput() string message = ; /调用ValidateUser()方法判断用户是否存在 bool isUser = ValidateUser(txtLoginId.Text, txtLoginPwd.Text, cboType.Text, ref message); if (isUser) UserHelper.loginId = txtLoginId.Text.Trim(); UserHelper.loginPassword = txtLoginPwd.Text.Trim(); / UserHelper.loginType=; this.Visible = false; /隐藏登陆窗口 else MessageBox.Show(message); private bool ValidateInput() if (txtLoginId.Text = ) MessageBox.Show(请输入登录号码!); txtLoginId.Focus(); return false; else if (txtLoginPwd.Text = ) MessageBox.Show(请输入密码!); txtLoginPwd.Focus(); return false; else return true; private bool ValidateUser(string loginId, string loginpwd, string type, ref string message) bool isUser = false; string sql = ; / 根据用户类型定义sql语句 if (cboType.Text = 管理员) sql = string.Format(select * from DormAdmin where LoginId=0 and LoginPwd=1, txtLoginId.Text.Trim(), txtLoginPwd.Text.Trim(); / if (UserHelper.loginId = sa & UserHelper.loginPassword = sa) String strConnection = Provider=Microsoft.Jet.OleDb.4.0; strConnection += Data Source=C:UsersDELLDesktop宿舍.mdb; OleDbConnection con=new OleDbConnection(strConnection); OleDbDataAdapter sda = new OleDbDataAdapter(sql, con); DataSet ds = new DataSet(); sda.Fill(ds, DormAdmin); if (ds.Tables0.Rows.Count = 0) MessageBox.Show(登陆失败!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(登录成功!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); /this.Show() a.Show(); con.Open(); /OleDbConnection f = new OleDbConnection(sql,strConnection); return isUser; private void FormsOpen() if (cboType.Text.Trim() = 管理员) 学生公寓管理 adminForm = new 学生公寓管理(); adminForm.Show(); private void cboType_KeyUp(object sender, KeyEventArgs e) if (e.KeyCode = Keys.Enter) if (ValidateInput() string message = ; /调用ValidateUser()方法判断用户是否存在 bool isUser = ValidateUser(txtLoginId.Text, txtLoginPwd.Text, cboType.Text, ref message); if (isUser) UserHelper.loginId = txtLoginId.Text.Trim(); UserHelper.loginType = txtLoginPwd.Text.Trim(); FormsOpen(); this.Visible = false; /隐藏登陆窗口 else MessageBox.Show(message); 添加住宿生信息: public partial class AddStudentForm : Form public AddStudentForm() InitializeComponent(); private void button2_Click(object sender, EventArgs e) this.Close(); private void AddStudentForm_Load(object sender, EventArgs e) GetMajorId(); /向专业编号组合框中输入数据 GetClassId(); /向班级编号组合框中输入数据 GetDormId(); /向宿舍编号组合框中输入数据 GetDormitoryId(); /向房间编号组合框中输入数据 GetDormAdminId(); /向宿管员编号组合框中输入数据 private bool isInput(string stuName, string stuNo, string age, string address, ref string message) if (stuName = ) message = 请输入学生姓名!; return false; else if (stuNo = ) message = 请输入学号!; return false; else if (age = ) message = 请输入年龄!; return false; else if (address = ) message = 请输入地址!; return false; else return true; 修改住宿生信息: private void AmendStuForm_Load(object sender, EventArgs e) /调用组合框得到数据的方法 GetClassId(); GetMajorId(); GetDormId(); GetTeacherId(); GetDormitoryId(); GetDormAdminId(); InitialAmendForm(); /调用初始化修改窗口的方法 private void InitialAmendForm() string stuName = ; string sex = ; int age = 0; string address = ; int majorId = 0; int classId = 0; string teacherId = ; string dormAdminId = ; int dormId = 0; int dormitoryId = 0; string phonNum = ; string Email = ; string sql = string.Format(select * from Student where StuNo=0, this.stuNo); SqlCommand command = new SqlCommand(sql, DBHelper.connection); try if (DBHelper.connection.State = ConnectionState.Closed) DBHelper.connection.Open(); SqlDataReader dataReader = command.ExecuteReader(); if (dataReader.Read() /stuNo = (string)dataReaderStuNo; stuName = (string)dataReaderStuName; sex = (string)dataReaderSex; age = (int)dataReaderAge; address = (string)dataReaderAddress; majorId = (int)dataReaderMajorId; classId = (int)dataReaderClassId; teacherId = (string)dataReaderTeacherId; dormAdminId = (string)dataReaderDormAdminId; dormId = (int)dataReaderDormId; dormitoryId = (int)dataReaderDormitoryId; phonNum = (string)dataReaderPhonNum; Email = (string)dataReaderEmail; txtStuNo.Text = this.stuNo; txtStuName.Text = stuName; /选择性别 if (sex = 男) rdoMale.Checked = true; else rdoFemale.Checked = true; txtAge.Text = age.ToString(); /txtAddress.Text = address; /txtPhon.Text = phonNum; cboMajorId.Text = majorId.ToString(); cboClassId.Text = classId.ToString(); /cboTeacherId.Text = teacherId.ToString(); /cboDormAdminId.Text = dormAdminId; cboDormitoryId.Text = dormitoryId.ToString(); cboDormId.Text = dormId.ToString(); /txtEmail.Text = Email; catch (Exception ex) MessageBox.Show(ex.Message); finally DBHelper.connection.Close(); /保存修改按钮 private void btnSave_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(您确定要修改吗?, 修改提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (result = DialogResult.OK) /得到修改后的数据 string stuNo = txtStuNo.Text.Trim(); string stuName = txtStuName.Text; string sex = rdoMale.Checked ? rdoMale.Text.Trim() : rdoFemale.Text.Trim(); string age = txtAge.Text.Trim(); string majorId = cboMajorId.Text.Trim(); string classId = cboClassId.Text.Trim(); string dormId = cboDormId.Text.Trim(); string dormitoryId = cboDormitoryId.Text.Trim(); int count = 0; string sql = string.Format(update Student set StuName=0,Sex=1,Age=2,Address=3,MajorId=4,ClassId=5,TeacherId=6,DormAdminId=7,DormId=8,DormitoryId=9,PhonNum=10,Email=11 where StuNo=12, stuName, sex, age, majorId, classId, dormId, dormitoryId, this.stuNo); SqlCommand command = new SqlCommand(sql, DBHelper.connection); try if (DBHelper.connection.State = ConnectionState.Closed) DBHelper.connection.Open(); count = command.ExecuteNonQuery(); /返回受影响的行数 catch (Exception ex) MessageBox.Show(ex.Message); finally DBHelper.connection.Close(); if (count != 1) MessageBox.Show(修改失败!, 修改提示, MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(修改成功! , 修改提示, MessageBoxButtons.OK, MessageBoxIcon.Information); / / 得到专业组合框的专业编号数据列 / private void GetMajorId() string sql = select MajorId from Major; SqlCommand command = new SqlCommand(sql, DBHelper.connection); try if (DBHelper.connection.State = ConnectionState.Closed) DBHelper.connection.Open(); SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read() cboMajorId.Items.Add(dataReaderMajorId); dataReader.Close(); catch (Exception ex) MessageBox.Show(ex.Message); finally DBHelper.connection.Close(); private void GetClassId() string sql = select ClassId from Class; SqlCommand command = new SqlCommand(sql, DBHelper.connection); try if (DBHelper.connection.State = ConnectionState.Closed) DBHelper.connection.Open(); SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read() cboClassId.Items.Add(dataReaderClassId); dataReader.Close(); catch (Exception ex) MessageBox.Show(ex.Message); finally DBHelper.connection.Close(); private void GetTeacherId() string sql = select TeacherId from Teacher; SqlCommand command = new SqlCommand(sql, DBHelper.connection); try if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国土空间规划背景下的交通与道路设计研究
- 策划方案活动类型怎么写
- 2026年新能源汽车出口中东地区品牌影响力提升与市场拓展报告
- 方案咨询技术服务
- 皮革加工考试试题及答案
- 美术实操考试题目及答案
- 物流专业笔试题库及答案
- 农业生物技术在种业中的应用与市场潜力深度研究报告
- Unit6 Keep our city cleanStory time(教学设计)-2024-2025学年译林版(三起)英语六年级上册
- DB65T 4491-2022 棉花化肥施用限量技术规程
- 2025年浙江警务辅助人员招聘考试(写作)历年参考题库含答案详解
- 上饶市属国有企业2025年度第一批次公开招聘【105人】考试参考题库及答案解析
- (新版)《普速铁路工务安全规则》考试题库及答案(含各题型)
- 小儿腺病毒感染护理查房
- 毒品成瘾原因课件
- 2025年疾病预防控制中心招聘考试笔试试题含答案
- 金太阳福建省2025-2026学年高三上学期9月开学联考数学试卷
- 执法办案培训课件
- 2025年国航机务系统AMECO工程师岗位校园招聘笔试参考题库附带答案详解
- 护理不良事件业务学习大纲
- 2024-2025学年七年级生物上册 第一单元第一、二章 单元测试卷(人教版)
评论
0/150
提交评论