1、安工大学生选课系统学生选课系统姓名:学号:班级:指导老师:周兵1 课程设计目的1、实验目的能按照软件工程的思想,采用面向对象的方法开发出一个小型软件系统。在此过程中,能综合利用以前所学习的专业知识。加深对软件工程这门学科知识的理解,并掌握其基本的技能及方法,培养良好的软件开发素养。 2、课程选择背景 随着近几年高校的持续招生,各个高校的学生人数逐年增加。而每到新学期来临之际,“选课”是现在高校行政管理工作中一项很重要的任务而且是每个学期都必须要面对的问题。选课工作做不好,学生不知道自己将要学习的课程,老师也不知道自己将要讲授的课程,教务处的排课计划、教室安排等其他调度工作也无从做起。因此,如何
2、解决高校教务管理中的选课工作便成为了如今各大高校面临的很实际的问题。 为了满足学校与学生的共同需求,低成本高回报的小型选课系统成了重点,它可以提升高校的教育质量和教学管理质量,提高工作效率,降低行政成本。2 课程设计要求1. 基本了解和掌握面向对象的开发的过程与方法。2. 基本能够完成所要求的系统。3. 报告文档符合具体要求。1) 数据要求所存储和查询的数据要符合本学校的具体情况,所涉及的字段至少应包括(名称可以不同):学生姓名、学号、登陆密码、性别、出生年月、籍贯、地址、学生电话、家庭地址、教师号、教师姓名、教研室、职称、性别、教师电话、课名、课号、学分、先行课号、课时、开课教室、人数限制、
3、选课人数、考试成绩、平时成绩、总评成绩。2) 功能要求功能至少应有:等录、查询开课情况、查询选课情况、查询成绩、选课、退课等。3) 设计要求整个系统的开发过程及方法应符合软件工程的要求,软件能够正常运行。3 课程设计内容1) 需求分析1、运行环境需求:操作系统:Windows7数据库:access开发工具:Microsoft Visual Studio2、功能分析:添加教师、学生、课程等信息。查询授课情况,选择授课、查询开课情况、查询选课情况、查询成绩、选课2) 软件设计1、软件描述 程序开始有一个登陆界面,在登陆界面的要有输入用户名,输入密码,根据登录信息,权限分为三种:管理员、教师、学生。
4、当用户权限为管理员的时候,进入的是管理员操作界面,当进入管理员界面的时候,里面有三种选项,三种选项分别是:学生管理、教师管理、课程管理。当分别选择不同的选项的时候分别进入3种界面:学生信息维护界面、教师信息维护界面、教师信息维护界面。当用户权限为教师的时候,进入的是教师操作界面,在该界面教师可以选择并查询授课信息当用户权限为学生的时候,进入的是学生操作界面,该界面学生申请选课,查询所选课程,查询成绩等。2、 功能模块(1)登录模块登录模块提供用户登录界面,用户输入正确的用户名和密码后,则可进入系统主窗口(即导航页面),从而可以选择进入相应权限的子系统。(2) 学生模块 该模块学生可以进行申请选
5、课、查询已选课程、修改密码、成绩查询等操作(3)教师模块 该模块是教师模块,提供选择授课,查询已授课程,修改密码等功能-(4)管理员模块管理学生信息:学号、姓名、性别、身份证号、学院班级、生日、入学时间、政治面貌、学制、电话、家庭住址等信息管理教师信息:教师标号、姓名、性别、身份证号、所在部门、生日、入职时间、政治面貌、电话、家庭住址等信息管理课程信息:课程编号、课程名、课程类型、课程学分等信息并提供对以上各信息的增、删、改的操作3、 表的设计:2、用例图时序图:4、部分源代码:1、登录界面public partial class LoginForm : Form public LoginFo
6、rm() InitializeComponent(); skinEngine1.SkinFile = MSN.ssk; private void button1_Click(object sender, EventArgs e) CUserInfo User = GetEnityUSer(); CLoginPRO log = new CLoginPRO(); string Res=log.LogSelectUser(User); if (Res = NO) MessageBox.Show(NO); else if (Res = String.Empty) MessageBox.Show(NON
7、E); else string temp = Res.Split(|); User.usertype = temp3; User.usertime = DateTime.Parse(temp4); GlobaInfo.UserInfo = User; / MessageBox.Show(temp0 + temp1 + temp2 + temp3 + temp4); / MessageBox.Show(GlobaInfo.UserInfo.userno + GlobaInfo.UserInfo.userpsd + GlobaInfo.UserInfo.usertime.ToString() +
8、temp3 + GlobaInfo.UserInfo.usertype); MessageBox.Show(登录成功!您的权限是: + GlobaInfo.UserInfo.usertype); if (GlobaInfo.UserInfo.usertype = 管理员) AdminMainForm AdminForm = new AdminMainForm(); AdminForm.Show(); this.Hide(); if (GlobaInfo.UserInfo.usertype = 教师) TeaMainForm TeaMain = new TeaMainForm(); TeaMai
9、n.Show(); this.Hide(); if (GlobaInfo.UserInfo.usertype = 学生) StuMainForm StuForm = new StuMainForm(); StuForm.Show(); this.Hide(); private CUserInfo GetEnityUSer() CUserInfo User = new CUserInfo(); User.userno = txtname.Text; User.userpsd = txtpsd.Text; User.usertime = DateTime.Now; User.usertype =
10、null; return User; private void LoginForm_FormClosing(object sender, FormClosingEventArgs e) Application.Exit(); 2、学生主界面public partial class StuMainForm : Form public StuMainForm() InitializeComponent(); private void 选课ToolStripMenuItem_Click(object sender, EventArgs e) StuSelCou StuCou = new StuSel
11、Cou(); StuCou.MdiParent = this; StuCou.Show(); private void 我的课程列表ToolStripMenuItem_Click(object sender, EventArgs e) MyCourse myCourse = new MyCourse(); myCourse.MdiParent = this; myCourse.Show(); private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) AlterMyPsdForm AlterMyPsd = new A
12、lterMyPsdForm(); AlterMyPsd.MdiParent = this; AlterMyPsd.Show(); private void 注销登录ToolStripMenuItem_Click(object sender, EventArgs e) MyLogOut.myLogOut(this); private void 层叠ToolStripMenuItem_Click(object sender, EventArgs e) MyLayOut.myLayOutCasc(this); private void 水平排列ToolStripMenuItem_Click(obje
13、ct sender, EventArgs e) MyLayOut.myLayOutHor(this); private void 垂直排列ToolStripMenuItem_Click(object sender, EventArgs e) MyLayOut.myLayOutVer(this); private void StuMainForm_FormClosing(object sender, FormClosingEventArgs e) Application.Exit(); private void StuMainForm_Load(object sender, EventArgs
14、e) 3、 教师主界面public partial class TeaMainForm : Form public TeaMainForm() InitializeComponent(); private void 选择ToolStripMenuItem_Click(object sender, EventArgs e) TeaAdminCou teaCou = new TeaAdminCou(); teaCou.MdiParent = this; teaCou.Show(); private void 查看一教授课程ToolStripMenuItem_Click(object sender,
15、 EventArgs e) TeaSelectedCon TeaSelCou = new TeaSelectedCon(); TeaSelCou.MdiParent = this; TeaSelCou.Show(); private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) AlterMyPsdForm MyPsd = new AlterMyPsdForm(); MyPsd.MdiParent = this; MyPsd.Show(); private void 注销登录ToolStripMenuItem_Clic
16、k(object sender, EventArgs e) MyLogOut.myLogOut(this); private void 层叠ToolStripMenuItem_Click(object sender, EventArgs e) MyLayOut.myLayOutCasc(this); private void 水平排列ToolStripMenuItem_Click(object sender, EventArgs e) MyLayOut.myLayOutHor(this); private void 垂直排列ToolStripMenuItem_Click(object send
17、er, EventArgs e) MyLayOut.myLayOutVer(this); private void TeaMainForm_FormClosing(object sender, FormClosingEventArgs e) Application.Exit(); private void TeaMainForm_Load(object sender, EventArgs e) 4、 管理员主界面 public partial class AdminMainForm : Form public AdminMainForm() InitializeComponent(); pri
18、vate void xToolStripMenuItem_Click(object sender, EventArgs e) AdStudentForm AddForm = new AdStudentForm(); AddForm.MdiParent = this; AddForm.Show(); private void 教师管理ToolStripMenuItem_Click(object sender, EventArgs e) AdminTeaForm TeaForm = new AdminTeaForm(); TeaForm.MdiParent = this; TeaForm.Show
19、(); private void 课程管理ToolStripMenuItem_Click(object sender, EventArgs e) AdminCourse CouForm = new AdminCourse(); CouForm.MdiParent = this; CouForm.Show(); private void 添加管理员ToolStripMenuItem_Click(object sender, EventArgs e) AddAdmin AddAdminForm = new AddAdmin(); AddAdminForm.MdiParent = this; Add
20、AdminForm.Show(); private void 修改我的密码ToolStripMenuItem_Click(object sender, EventArgs e) AlterMyPsdForm AlterMyPsd = new AlterMyPsdForm(); AlterMyPsd.MdiParent = this; AlterMyPsd.Show(); private void 注销登录ToolStripMenuItem_Click(object sender, EventArgs e) MyLogOut.myLogOut(this); private void 层叠Tool
21、StripMenuItem_Click(object sender, EventArgs e) MyLayOut.myLayOutCasc(this); private void 水平排列ToolStripMenuItem_Click(object sender, EventArgs e) MyLayOut.myLayOutHor(this); private void 垂直排列ToolStripMenuItem_Click(object sender, EventArgs e) MyLayOut.myLayOutVer(this); private void AdminMainForm_Fo
22、rmClosing(object sender, FormClosingEventArgs e) Application.Exit(); private void AdminMainForm_Load(object sender, EventArgs e) 5、 增加学生功能 public partial class AdStudentForm : Form public AdStudentForm() InitializeComponent(); string StuNOForDel; bool IsAddStuInfo = false; private CStuInfo GetStuInf
23、o() CStuInfo StudentInfo = new CStuInfo(); StudentInfo.stuadmitdate = DateTime.Parse(dtpAdmitime.Text); StudentInfo.stuAdress = txtAdress.Text; StudentInfo.stuBirth = DateTime.Parse(dtpBirth.Text); StudentInfo.stuclass = txtclass.Text; StudentInfo.stucollege = txtcollege.Text; StudentInfo.stugraduat
24、edate = DateTime.Parse(dtpGraduatetime.Text); StudentInfo.stuID = txtID.Text; StudentInfo.stuname = txtname.Text; StudentInfo.stuno = txtno.Text; StudentInfo.stuparty = cmbParty.Text; StudentInfo.stusex = cmbsex.Text; StudentInfo.stutel = txtTel.Text; StudentInfo.stutype = cmbType.Text; return Stude
25、ntInfo; private CUserInfo GetStuInfoForUser() CUserInfo user = new CUserInfo(); user.userno = txtno.Text; ; user.userpsd = txtpsd.Text; / user.usertime = DateTime.Parse(dtpAdmitime.Text); user.usertime = DateTime.Today; user.usertype = 学生; return user; private void toolStripButton1_Click(object send
26、er, EventArgs e) if (IsAddStuInfo) if (!IsTextNULL() MessageBox.Show(发生错误,信息填写不完整!); return; IsAddStuInfo = false; CStuInfo student = GetStuInfo(); if (CAdminPRO.AdminAddtStudent(student) /添加成功 else MessageBox.Show(发生错误,请稍候重试!); CUserInfo user = GetStuInfoForUser(); if (CAdminPRO.AddToUser(user) /添加
27、成功 else MessageBox.Show(发生错误,发生错误,请稍候重试!); ShowAllStuPerInfo(); else CStuInfo student = GetStuInfo(); CUserInfo user = GetStuInfoForUser(); if (CAdminPRO.UpdateAllInfoForStu(student, user) /修改成功 else MessageBox.Show(发生错误,请稍候重试!); ShowAllStuPerInfo(); /MessageBox.Show(发生错误,请稍候重试!); private void bindi
28、ngNavigatorAddNewItem_Click(object sender, EventArgs e) private void ShowAllStuPerInfo() / stuno as 学号,stuname as 姓名,stusex as 性别,stuID as 身份证号,stuAdress as 家庭住址, /stuclass as 班级,stuBirth as 出生年月,stuadmitdate as 入学时间,stugraduatedate as 毕业时间 /,stuparty as 政治面貌,stutype as 学制,stutel as 电话,stucollege as
29、 学院,userpsd as 密码,usertime as 创建时间 from stuInfo,userInfo where stuno=stuno and stuInfo.stuno=userInfo.userno; DataTable dt = CAdminPRO.GetDataTableForStu(); dgvStuPerInfo.DataSource = dt; ControlRelateData(); /StudentInfo.stuadmitdate = DateTime.Parse(dtpAdmitime.Text); /txtAdress.DataBindings.Add(new Binding(text, dt, stuAdress); /StudentInfo.stuBirth = DateTime.Parse(dtpBirth.Text); /txtclass.DataBindings.Add(new Binding(Text, dt, stuclass); /txtcollege.D
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1