C#语言学生成绩管理系统

C#语言学生成绩管理系统

摘 要

  此次的数据库程序设计主要的目的是对数据库系统原理的理论学习,通过上机的实践方式将理论知识与实践有效的结合在一起,从而进行巩固了所学的相关知识。在实验的过程中,我们主要是利用相关的数据库知识进行,创建数据库和创建相关表,并对相关表进行增删改查等相关操作的设定,还对有些用户进行权限的设定。通过这次实践有效的巩固了课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定的实际问题,为了建立一个关系数据库信息管理系统,必须的经过系统调研、需求分析等相关操作。

关键词:数据库,程序设计,操作

1引言

  数据库原理及应用是计算机及其相关学科的一门重要的学科基础课程,也是计算机软件科学与技术的重要分支。本课程设计的目的在于通过对一个小型数据库管理系统的综合设计过程,强化学生对于计算机系统软件的设计能力,提高学生的综合素质,并进行通过课程设计进一步加强学生对于所学的知识进行理解,以及对数据库的全面、深刻认识。通过我们所学的知识来完成相关的课程设计。

2学生成绩管理系统

2.1学生成绩管理系统的需求分析

在这里插入图片描述

2.2学生成绩管理系统的基本E-R图

在这里插入图片描述

2.3 简单介绍本系统实现内容

  该学生成绩管理系统,实现简单的用户信息修改、数据管理,数据查询,并能实现简单的数据统计。

(1) 用户密码登录界面

  在界面上会出现两个选择项,管理员登录和老师学生登录。如果用户是管理员则进入下一个管理员登陆界面,进行输入账户密码,然后就进入查询界面;如果选择的老师学生登陆系统则就会跳入下一个界面进行填写账号,密码,选择你的登录身份是老师还是学生,如果选择的身份是老师,就进入老师查询界面;如果选择学生就进入学生的查询界面。

在这里插入图片描述

(2) 查询界面

  这个界面主要是进行调用数据库里面事先建立学生成绩表,所以在由管理员或老师进行查询时直接进行调用。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.4 数据库逻辑结构

数据关系模型:

  在本课程设计中,存在六个实体(学生,教师,管理员,成绩,密码表一,密码表二),一个联系(查询),在学生实体中,学号作为其关键字;在教师的实体中,教师的工号作为其主码;在管理员的实体中,管理员的工号作为主码;在成绩的实体中,学生的学号作为它的主码;

其中两个密码表的实体中,账号作为他们的关键字。

  学生(学号,姓名,性别,年龄)

  管理员(工号,姓名,性别,联系方式)

  老师(工号,姓名,性别,课程名,联系方式)

学生(学号,姓名,性别,系名,班级号码,联系方式)

  密码表一(账号,密码)

   密码表二(账号,密码)

  我们采用卡片的形式书写数据字典,每一张卡片上保存描述一个数据元素的信息,这种做法较好的实现了上述要求,特别是更新修改起来很方便,能够单独处理每个数据元素的信息,描述,定义,位置。

教师基本信息表:

在这里插入图片描述

学生成绩基本信息表:

在这里插入图片描述

学生基本信息表:

在这里插入图片描述

管理员的基本信息表:

在这里插入图片描述

密码表一的基本信息表:

在这里插入图片描述

密码表二的基本信息表:

在这里插入图片描述

  建立信息系学生的试图,并要求进行修改和插入操作时,仍需要保证有信息系的学生。从六个表中进行选择学生证所需信息,以便对试图以外的数据进行保密,简化了查询操作,并保证了数据的逻辑独立性。

源代码如下:

 create view IS_student
 AS
 select sno,sname,ssex
 from student
 where sdept = IS
 with check option
 --建立教师表中的课程为高等数学的试图
 create view teacher_S1(tnumber,tname,tcourse)
 as
 select teacher.tnumber,tname,tcourse
 from teacher,grade
 where teacher.tcourse = grade.scourse and 
 tcourse = 高等数学

  在进行查询的过程中进行设定权限,使得每个角色进行的操作都是不一样的,就像管理员能够拥有所有的权限,能够进行访问所有的表,老师的权限比管理员的权限少可以仅可以查询老师表,学生表和成绩表;而学生的权限只能进行查询成绩表。

源代码如下:



/创建教师并且分配权限/
 create role 老师一
 create role 老师二
 create role 老师三
 create role 老师四

 grant select,update,insert,delete
 on grade
 to 老师一,老师二,老师三,老师四

 grant update
 on enter1
 to 老师一,老师二,老师三,老师四

 /创建学生并且分配权限/
 create role 学生一
 create role 学生二
 create role 学生三
 create role 学生四

 grant select
 on grade
 to 学生一,学生二,学生三,学生四

 grant update
 on enter2
 to 学生一,学生二,学生三,学生四

 /创建管理并且分配权限/
 create role 管理一

 grant select,update,insert,delete
 on grade
 to 管理一

 grant select,update,insert,delete
 on teacher
 to 管理一

 grant select,update,insert,delete
 on student
 to 管理一

 grant select,update,insert,delete
 on enter1
 to 管理一

 grant select,update,insert,delete
 on enter2
 to 管理一 

 --删除触发器
 drop trigger tri_update_Grade
 --建立触发器,在修改表grade时进行响应
 create trigger tri_update_Grade
 on grade for update
 as
 print the table was updated
 --建立触发器,在修改表password1时进行响应
 create trigger tri_update_password1
 on enter1 for update
 as
 print the table was updated
 --建立触发器,在修改表password2时进行响应
 create trigger tri_update_password2
 on enter2 for update
 as
 print the table was updated
 --建立触发器,在修改表eacher时进行响应
 create trigger tri_update_teacher
 on teacher for update
 as
 print the table was updated
 --建立触发器,在修改表student时进行响应
 create trigger tri_update_student
 on student for update
 as
 print the table was updated
 --建立触发器,在修改表leader时进行响应
 create trigger tri_update_leader
 on leader for update
 as
 print the table was updated
 --建立触发器,禁止删除分数低于60分的学生
 create trigger tri_del_grade
 on grade for delete
 as 
 if exists(select * 
 from SC
 where grade < 60)
 rollback

3 结论

  通过设计本次的数据库程序,帮助我们充分的理解我们所学的数据库操作系统的相关知识,也进行了巩固这些知识。这次的实践课题围绕着我们学生的学习日常,可以让我们所学的数据库知识更加贴近我们的生活,从而体现了数据库知识对现实生活的作用,进而使我们更加深入的了解数据库操作系统和提高我们对数据库的学习兴趣。在这次实习的过程中我们也对学生的成绩查询系统进行了更加充分的了解,能够更加全面的知道成绩查询系统与数据库之间的联系,提高我们的相关知识和促进我们对数据库的学习。

  在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输进去之后,并编译让其运行,发现通过不了,再来检查出问题,是很费力的事情,因此分析和规划代码是很重要的,最重要的要把逻辑结构写好,这样就不会出现大问题,写代码就要先找到核心的内容,用多种方法来实现核心部分,这样可以尽可能的避免发现逻辑或编译不支持的错误。

  通过这次程序设计,让我初步的学会了如何去整理和处理相关的知识,进一步的提升自己的学习能力,由于知识不足,这个程序编写的不是很尽如人意,但融入了自己的心血,就觉得是最好的,所以在以后还是需要较多的努力的,还是会在以后的学习过程中不断提高和改进。

参考文献

【1】 萨师煊 王珊.数据库系统概论[M].北京:高等教育出版社,2000.2

【2】 求是科技 Delpji7数据库开发技术与工程实践 [S].北京:人民邮电出版社,2004.4

【3】 施伯乐.数据库系统教程[M].北京 高等教育出版社 2008.

【4】 程志云.数据库原理与SQL Serever2005应用教程[M].北京 机械工业出版社 2006.

【5】 苗雪兰.数据库技术及应用[M].北京 机械工业出版社 2006.

【6】 李春葆,曾平.数据库原理与应用[M]. 北京 清华大学出版社 2006.

【7】 王小玲.数据库应用基础教程[M].北京 中国铁道出版社 2008.

附 录

数据库


--创建密码表
CREATE TABLE enter1  
(
    id CHAR(20)PRIMARY KEY,
    password CHAR(40) NOT NULL
);
--创建密码表
CREATE TABLE enter2  
(
    id CHAR(20)PRIMARY KEY,
    password CHAR(40) NOT NULL
);
--创建学生表 
CREATE TABLE student  
(
    sno CHAR(20) PRIMARY KEY,
    sname CHAR(10),
    ssex CHAR(4) NOT NULL,
    sdpt CHAR(20) NOT NULL,
    sclass CHAR(50),
    sphone CHAR(30),
);
--创建教师表
CREATE TABLE teacher
(
    tnumber CHAR(20) PRIMARY KEY ,
    tname CHAR(10),
tsex CHAR(10)
tcourse CHAR(10
tphone CHAR(10),
);
--创建成绩表
CREATE TABLE grade
(
    sno CHAR(20) PRIMARY KEY ,
    sname CHAR(10),
	sdept CHAR(10),
    scour CHAR(10),
	sgrade CHAR(10), 
);
--创建管理员表
CREATE TABLE leader
(
    lnumber CHAR(20) PRIMARY KEY ,
    lname CHAR(10),
	lsex CHAR(10),
    lphone CHAR(10),
);
--权限设置
create role 老师一;
create role 老师二;
create role 老师三;
create role 老师四;

grant select,update,insert,delete
on grade to 老师一,老师二,老师三,老师四;

grant update
on enter1 to 老师一,老师二,老师三,老师四;

create role 学生一;
create role 学生二;
create role 学生三;
create role 学生四;
    
grant select
on grade to 学生一,学生二,学生三,学生四;

grant update
on enter2 to 学生一,学生二,学生三,学生四;

create role 管理一;

grant select,update,insert,delete
on grade to 管理一;

grant select,update,insert,delete
on teacher to 管理一;

grant select,update,insert,delete
on student to 管理一;

grant select,update,insert,delete
on enter1 to 管理一;

grant select,update,insert,delete
on enter2 to 管理一 ;

--触发器
drop trigger tri_update_Grade
create trigger tri_update_Grade
on grade for update
as
print 'the table was updated';

create trigger tri_update_password1
on enter1 for update
as
print 'the table was updated' ;
    
create trigger tri_update_password2
on enter2 for update
as
print 'the table was updated';

create trigger tri_update_teacher
on teacher for update
as
print 'the table was updated';

create trigger tri_update_student
on student for update
as
print 'the table was updated';

create trigger tri_update_leader
on leader for update
as
print 'the table was updated';

create trigger tri_del_grade
on grade for delete
as 
    if exists(select * 
    from SC
    where grade < 60)
    rollback
;

后台

private void Form2_Load(object sender, EventArgs e)
    {
      string _sql = "select tnumber as'tnumber',tname as'tname',tsex as'tsex',tcourse as'tourse',tphone as'tphone'from teacher";
      SqlConnection conn = new SqlConnection(connStr);
      SqlDataAdapter sda = new SqlDataAdapter(_sql, conn);
      DataSet ds = new DataSet();
      sda.Fill(ds);
      dataGridView1.DataSource = ds.Tables[0].DefaultView;
    }
    private void MakeSqlStr()
    {
      //清空上次查询的字符串
      sql= "";
      if (textBox1.Text.Trim() != string.Empty)
      {
        sql = "and tnumber like '%" + textBox1.Text.Trim() + "%'";
      }
    }
    private void button1_Click(object sender, EventArgs e)
    {
      Form5 f5 = new Form5();
      f5.Show();
      this.Close();
    }
 private void button2_Click(object sender, EventArgs e)
    {
      string sql = "select count (*) from enter1 where id=@id and password=@password";
      SqlCommand Mycomm = new SqlCommand(sql,connStr);
      SqlParameter para1 = new SqlParameter("@id", SqlDbType.NVarChar, 20);
      para1.Value = textBox1.Text.Trim();
      SqlParameter para2 = new SqlParameter("@password", SqlDbType.NVarChar, 10);
      para2.Value = textBox2.Text.Trim();
       Mycomm.Parameters.Add(para1);
      Mycomm.Parameters.Add(para2);
      connStr.Open();
      int i = Convert.ToInt32(Mycomm.ExecuteScalar());
      connStr.Close();
      if (i > 0)
      {
        // Choose chooseForm = new Choose();
        //chooseForm.Show();
        Form3 f3= new Form3();
        f3.Show();
        this.Close();
      }
      else
      {
        MessageBox.Show("id或密码错误,请重新输入");
      }
    }

资源目录

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C# Web学生成绩管理系统是一种基于C#语言开发的学生成绩管理系统,它具有综合的功能和实用性。该系统包括学生用户信息管理、教师管理、成绩管理等多个模块。系统中分为三种用户类型:学生、教师和管理员。用户可以通过学号和身份证登录(学生)或工号和密码登录(教师和管理员)。 系统的功能包括用户登录模块、用户管理模块、成绩查询模块、成绩管理模块和科目管理模块。用户登录模块允许管理员和教师通过工号和密码登录,学生通过学号和身份证登录。用户管理模块允许管理员添加教师和学生用户类型,并可以编辑修改密码和个人信息,还可以查看用户信息。学生信息包括学号、姓名、性别、年龄、班级、地址和电话,而教师信息包括工号、姓名和授课科目。 成绩查询模块允许用户按照学号、姓名查询某个学生的成绩,教师可以查询某个班级学生在自己教授科目上的所有成绩,并可以统计某个班级某个科目的学生平均成绩。成绩管理模块允许用户录入和编辑成绩。科目管理模块允许用户添加科目和删除已添加的科目。 这种学生成绩管理系统基于Web平台,可以提供足够的信息和查询手段,有效地管理学生信息和成绩数据。它提供了一种自动化的方式来收集、管理和查询学生成绩,减少了人工操作的繁琐和重复,节省了时间和精力。此外,该系统的源码和数据库内容已经提供,对于学习C#和初学者来说具有一定的帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [asp.net814-基于web的学生成绩管理系统#毕业设计](https://blog.csdn.net/z459382737/article/details/121685972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [学生成绩管理系统C#).rar](https://download.csdn.net/download/sinat_34477277/12535211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DATA数据猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值