当前位置:首页 » 《关注互联网》 » 正文

C#学生信息管理系统

27 人参与  2024年04月12日 17:43  分类 : 《关注互联网》  评论

点击全文阅读


一、引言

学生信息管理系统是现代学校管理的重要组成部分,它能够有效地管理学生的基本信息、课程信息、成绩信息等,提高学校管理的效率和质量。本文将介绍如何使用SQL Server数据库和C#语言在.NET平台上开发一个学生信息管理系统的课程设计项目。


二、项目概述

学生信息管理系统旨在为学校提供一个完善的学生信息管理平台,包括注册登录、专业管理、班级管理和学生信息管理等功能。该系统将采用C#语言进行开发,利用.NET平台提供的丰富功能和框架,同时使用SQL Server作为数据库支持,以确保系统的稳定性和性能。


三、系统功能

注册登录功能

注册:学生和教师用户可以通过输入用户名、密码和个人信息完成注册。登录:已注册的用户可以使用用户名和密码进行登录,以访问系统的其他功能模块。

专业管理功能

添加专业:管理员用户可以添加新的专业信息,包括专业名称、专业代码等。修改专业:管理员用户可以修改已有专业的信息,如名称、代码等。删除专业:管理员用户可以删除不再需要的专业信息。

班级管理功能

添加班级:管理员用户可以添加新的班级信息,包括班级名称、所属专业、班级编号等。修改班级:管理员用户可以修改已有班级的信息,如名称、所属专业等。删除班级:管理员用户可以删除不再需要的班级信息。

学生信息管理功能

添加学生:管理员用户和教师用户可以添加新的学生信息,包括学号、姓名、性别、年龄、联系方式等。修改学生信息:管理员用户和教师用户可以修改已有学生的信息。删除学生:管理员用户和教师用户可以删除不再需要的学生信息。查询学生信息:管理员用户和教师用户可以根据条件查询学生信息,如学号、姓名、班级等。

四、数据库分析

在学生信息管理系统中,我们设计了以下表来存储学校的相关信息:

college(学院表):

该表存储学校的各个学院信息。包括字段:Id(学院编号,自增主键)、Name(学院名称)。

major(专业表):

该表存储各个学院下的专业信息。包括字段:Id(专业编号,自增主键)、Name(专业名称)、CollegeId(所属学院编号,外键关联到college表的Id字段,级联删除)。

majorClass(班级表):

该表存储各个专业下的班级信息。包括字段:Id(班级编号,自增主键)、Name(班级名称)、MajorId(所属专业编号,外键关联到major表的Id字段,级联删除)。

student(学生表):

该表存储学生的基本信息。包括字段:Id(学号,主键)、Name(姓名)、MajorClassId(所属班级编号,外键关联到majorClass表的Id字段,级联删除)、Age(年龄)、Sex(性别)。

siuser(系统用户表):

该表存储系统用户的信息,包括管理员和教师用户。包括字段:Id(用户编号,自增主键)、Username(用户名)、Pwd(密码)、CollegeId(所属学院编号,外键关联到college表的Id字段,级联删除)。

这些表之间通过外键关联建立了关系,以便于实现数据的一致性和完整性。同时,对于学院、专业和班级信息的层级结构,我们通过相应的外键关联来实现了级联删除,以确保数据的完整性和关联性。

五、关键代码

StudentManagementWindow

using NPOI.Util;using StudentInfoManagmentSystem.Model;using StudentInfoManagmentSystem.ViewModel;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Shapes;namespace StudentInfoManagmentSystem.View {    /// <summary>    /// Interaction logic for StudentManagementWindow.xaml    /// </summary>    public partial class StudentManagementWindow {        StudentManagementViewModel _smvm;        public StudentManagementWindow() {            InitializeComponent();            _smvm = Grid.DataContext as StudentManagementViewModel;            for (int i = 12; i < 51; i++) {                CBAge.Items.Add(i);            }        }        private void Window_MouseDown(object sender, MouseButtonEventArgs e) {            DragMove();        }        private void BtnReSelect_Click(object sender, RoutedEventArgs e) {            CurrentMajorClass.ID = -1;            new MajorClassManagementWindow().Show();            Close();        }        private void BtnExport_Click(object sender, RoutedEventArgs e) {            var sfd = Util.FileDialogFactory.GetSFD("Excel 97-2003|*.xls|Excel 2007|*.xlsx");            if (!(bool) sfd.ShowDialog()) return;            var dt = _smvm.ToDataTable();            Util.ExcelIO.Write(sfd.FileName, dt);        }        private void BtnSave_Click(object sender, RoutedEventArgs e) {            _smvm.Save();        }        private void BtnAdd_Click(object sender, RoutedEventArgs e) {            TBProm.Visibility = Visibility.Hidden;            TBProm.Foreground = Brushes.Red;            var id = TBId.Text.Trim();            var name = TBName.Text.Trim();            if (Util.StringUtil.IsAnyNullOrEmpty(id, name)) {                TBProm.Text = "请填写完整信息";                TBProm.Visibility = Visibility.Visible;                return;            }            if (DBHelper.ExistStudent(id)) {                TBProm.Text = "已存在相同学号学生";                TBProm.Visibility = Visibility.Visible;                return;            }            if (CBAge.SelectedIndex < 0) {                TBProm.Text = "请选择年龄";                TBProm.Visibility = Visibility.Visible;                return;            }            var age = (int) (CBAge.SelectedItem);            var sex = (bool) RBMale.IsChecked ? "男" : "女";            var s = new Student {                Id = id, Age = age, Name = name, Sex = sex, MajorClassId = CurrentMajorClass.ID            };            _smvm.Add(s);            TBProm.Foreground = Brushes.SeaGreen;            TBProm.Text = "添加成功";            TBProm.Visibility = Visibility.Visible;        }        private void BtnDelete_Click(object sender, RoutedEventArgs e) {            _smvm.Remove();        }        private void CBAll_Checked(object sender, RoutedEventArgs e) {            foreach (var item in _smvm.Students) {                item.IsSelected = true;            }        }        private void CBAll_Unchecked(object sender, RoutedEventArgs e) {            foreach (var item in _smvm.Students) {                item.IsSelected = false;            }        }    }}

MajorManagementWindw

using StudentInfoManagmentSystem.Model;using StudentInfoManagmentSystem.ViewModel;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Shapes;namespace StudentInfoManagmentSystem.View {    /// <summary>    /// Interaction logic for MajorManagementWindow.xaml    /// </summary>    public partial class MajorManagementWindow {        MajorManagementViewModel _mmvm;        public MajorManagementWindow() {            InitializeComponent();            _mmvm = Grid.DataContext as MajorManagementViewModel;        }        private void MetroWindow_MouseDown(object sender, MouseButtonEventArgs e) {            DragMove();        }        private void BTNSignOff_Click(object sender, RoutedEventArgs e) {            CurrentUser.SignOff();            new MainWindow().Show();            Close();        }        private void BtnDelete_Click(object sender, RoutedEventArgs e) {            var ret = MessageBox.Show("确定删除?", "提示", MessageBoxButton.YesNo);            if (ret == MessageBoxResult.No) return;            _mmvm.Remove(int.Parse((sender as Button).Tag.ToString()));        }                private void BtnSelect_Click(object sender, RoutedEventArgs e) {            int id = int.Parse((sender as Button).Tag.ToString());            CurrentMajor.ID = id;            new MajorClassManagementWindow().Show();            Close();        }        private void BtnExport_Click(object sender, RoutedEventArgs e) {            var sfd = Util.FileDialogFactory.GetSFD("Excel 97-2003|*.xls|Excel 2007|*.xlsx");            if (!(bool) sfd.ShowDialog()) return;            var dt = _mmvm.ToDataTable();            Util.ExcelIO.Write(sfd.FileName, dt);        }        private void BtnAdd_Click(object sender, RoutedEventArgs e) {            var newMajorName = TBNewMajor.Text.Trim();            if (string.IsNullOrEmpty(newMajorName)) return;            _mmvm.Add(new Major { Name = newMajorName, CollegeId = CurrentUser.GetCollegeId() });        }    }}

MajorClassManagementWindow

using StudentInfoManagmentSystem.Model;using StudentInfoManagmentSystem.ViewModel;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Shapes;namespace StudentInfoManagmentSystem.View {    /// <summary>    /// Interaction logic for MajorClassMagementWindow.xaml    /// </summary>    public partial class MajorClassManagementWindow {        MajorClassManagementViewModel _mcmvm;        public MajorClassManagementWindow() {            InitializeComponent();            _mcmvm = Grid.DataContext as MajorClassManagementViewModel;        }        private void MetroWindow_MouseDown(object sender, MouseButtonEventArgs e) {            DragMove();        }        private void BtnReSelect_Click(object sender, RoutedEventArgs e) {            CurrentMajor.ID = -1;            new MajorManagementWindow().Show();            Close();        }        private void BtnDelete_Click(object sender, RoutedEventArgs e) {            var ret = MessageBox.Show("确定删除?", "提示", MessageBoxButton.YesNo);            if (ret == MessageBoxResult.No) return;            _mcmvm.Remove(int.Parse((sender as Button).Tag.ToString()));        }        private void BtnSelect_Click(object sender, RoutedEventArgs e) {            int id = int.Parse((sender as Button).Tag.ToString());            CurrentMajorClass.ID = id;            new StudentManagementWindow().Show();            Close();        }        private void BtnAdd_Click(object sender, RoutedEventArgs e) {            var newMajorClassName = TBNewMajorClass.Text.Trim();            if (string.IsNullOrEmpty(newMajorClassName)) return;            _mcmvm.Add(new MajorClass { Name = newMajorClassName, MajorId = CurrentMajor.ID });        }        private void BtnExport_Click(object sender, RoutedEventArgs e) {            var sfd = Util.FileDialogFactory.GetSFD("Excel 97-2003|*.xls|Excel 2007|*.xlsx");            if (!(bool) sfd.ShowDialog()) return;            var dt = _mcmvm.ToDataTable();            Util.ExcelIO.Write(sfd.FileName, dt);        }    }}

六、程序截图

在这里插入图片描述
请添加图片描述
请添加图片描述

在这里插入图片描述

七、联系与交流

q:969060742 完整代码、sql

点击全文阅读


本文链接:http://zhangshiyu.com/post/94495.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1