C#——教务管理系统设计01(20181003)

目录

任务目标

初步设计思路

设计日志


  • 任务目标

  • 基于学生信息管理的数据库项目训练

    1)课时: 4

    2)教学目的

     通过本次课程训练,使学生初步掌握数据库系统设计的基本思路。能够使用C#完成客户端软件的程序编写工作。

    3)教学内容:

      学生管理系统的数据库表的设计,学生管理系统客户端软件的设计与实现工作。

    4)教学重点及难点

          本次课程教学的重点和难点:表设计结果的合理性,客户端开发过程中各种技术使用的正确性。

    5)教学方法

      本次课程教学以任务驱动为主。

    6)教学内容

      1、训练说明任务

    C#端要求:

     1)首先系统分为三类用户角色:管理员角色具有学生、教师信息的添加、删除、修改、浏览功能,;教师角色具有录入学生成绩,修改成绩,成绩统计、成绩排序,学生基本信息查询等功能;学生角色具有本人成绩浏览,本人信息浏览等功能。在使用本系统时要进行登录验证,不同用户提供以上不同的系统功能。

     2)学生信息录入时,对数据项进行验证,要求使用C#正侧表达式或其他验证方式,对数据进行格式或其他方面的验证,如邮编格式,身份证、手机号码的验证等。

     3)所有统计结果通过图形展示。可以集成第三方类库完成,也可以自己设计完成。自己设计以一个类完成图形处理

     4)对于结果输出,如学生花名册、成绩表等,提供打印输出及预览功能。打印输出同样设计一个类完成处理。

     5)将输出结果,如学生基本信息表格,成绩表格输出到EXECL和Word文件中保存,输出的内容要完成排版处理。word和EXECL文件处理接口同样要求设计一个类完成数据的排版和保存。

     6)其他要求与《程序设计专项训练》一致。

    数据库部分要求:

     1)数据库表的设计要有约束或规则,确保数据的有效性。

     2)多表查询要有视图的使用。

     3)多表数据插入要通过事务处理完成,确保数据的完整性

     4)复杂的统计工作使用存储过程,利用存储过程完成统计。

      2、演示要求

     1)写好数据库的创建脚本,保存为.sql文件;或通过数据库的分离和附加操作,快速完成系统环境的搭建。

     2)准备好PPT,包含数据库设计和客户端设计两部分内容。


     

  • 初步设计思路

运用三层架构实现教务管理系统

  • 界面分三部分:
  1. 登陆界面(包括登陆和修改密码,忘记密码界面)
  2. 操作选择界面
    1. 欢迎界面,自动识别身份
    2. 自动识别身份后通过代码修改button属性,及单击事件调用的函数
  3. 展示台界面
    1. 图形展示界面
    2. 数字展示界面
  • 程序三层架构对应:
  1. 登陆界面:

对应在两个表中查询pwd和ID

  1. 操作选择界面
    1. 自动识别身份,在对应的表中查询修改数据
    2. 每个数据库的表建立一个类,将对其的操作封装

展示台界面:

  1. 同登陆界面,根据返回的结果调用第三方类库输出至显示台(图形化输出和数字格式输出)
  2. 使用代码建立控件存放数据(可将图形化数据保存为图片,然后用picturebox将其显示。

    设计日志

     

三层步骤:分析功能

  • 管理员:学生、教师信息的添加,删除,修改,浏览功能;
  • 教师:录入学生成绩,修改成绩,成绩统计,成绩排序,学生基本信息查询
  • 学生:本人成绩浏览,本人信息浏览
  • 学生信息录入时,对数据进行验证,要求正则表达式或其他,格式验证等。
  • 统计结果图形展示。借助第三方类库或自定义类
  • 结果输出(例如学生花名册,成绩表等)提供打印输出、打印预览功能,打印输出设计一个类完成
  • 将输出结果输出到EXECL和Word文件中保存,输出的内容要完成排版处理。文件处理接口设计一个类完成
  • 数据库要求:
  • 表的设计要有约束或规则,确保数据有效性
  • 多表查询要有视图的使用
  • 多表数据插入要通过事务处理完成,确保数据完整性
  • 展示要求:
  • 写好数据库的创建脚本,保存为.sql文件;或通过数据库的分离和附加操作,快速完成环境的搭建
  • 准备好PPT,分为数据库设计和客户端设计两部分
  • 根据功能确定SQL语句
  • 在数据访问层(DAL)编写执行该SQL语句的函数
  • //该函数应该在哪个类中,一般情况下,当前的SQL语句要操作哪张表,那么就在数据访问层中中建一个类,这个类的名字与该表名相同,所有操作这个表的函数都写出该类中。
  • 编写业务逻辑层的方法
  • 编写表现层代码
  • 5.1采集数据
  • 5.2展示数据
  • 5.3调用对应的业务逻辑层来实现具体功能
  • 添加timer 实时监控textbox等控件 可用于校验。
  • 复杂的统计工作使用存储过程,利用存储过程完成统计

日常笔记

  1. Textbox.passwordchar = ‘*’;
    //使textbox.text内容正常显示(默认以 * 显示)
            private void pictureBox4_Click(object sender, EventArgs e)
            {
                textBox2.PasswordChar = new char();
            }

//使输入的文本以 ‘*’显示

WinForm中TextBox控件的PasswordChar属性默认是没有设置的或者说没有开启密码模式,当设置了该属性之后就会开启密码模式,输入的内容以设置的该属性的值来显示。那么该如何取消PasswordChar的设置呢?归纳起来有三种方法,其本质都是把PasswordChar的值赋值为默认值,赋值为默认值后就会按照正常文本进行显示。三种方法代码如下。

this.textBox1.PasswordChar = new char();

this.textBox1.PasswordChar = '\0';

this.textBox1.PasswordChar = default(char);

//使输入的文本正常显示

  1. Shift+Alt+F10 生成对应函数
  2. 连接数据库,使用数据库通用格式 (登录按钮)
    //登录校验用户名是否存在以及密码是否正确
            private void button2_Click(object sender, EventArgs e)
            {
                //1.采集数据
                string loginID = textBox1.Text;
                string loginpwd = textBox2.Text;
                
    
                //2.先根据用户名去数据库中查找,是否有对应的用户
                string constr = "Data Source = localhost ; Initial Catalog = StudyOprationSytem ; Integrated Security = True;User ID=sa;Password=123456;Database=StudyOprationSystem;";
                using (SqlConnection con = new SqlConnection(constr))
                {
                    string sql = string.Format("select * from users where ID = '{0}'",loginID);
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        con.Open();
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            if (reader.HasRows)
                            {
                                //存在该用户
                                if (reader.Read())
                                {
                                    //3.如果有对应的用户,再比较密码是否正确
                                    //获取查询出的密码,和用户输入的密码进行比较
                                    string dbpwd = reader.GetString(2);
                                    if (loginpwd == dbpwd)
                                    {
                                        //登陆成功
                                        MessageBox.Show("登录成功");
    
                                        //启用修改密码
                                        button3.Enabled = true;
                                        button3.Visible = true;
    
                                        //获取当前登陆用户的主键ID,设置到IDshare
                                        IDshare.ID = reader.GetString(1);
                                    }
                                    else
                                    {
                                        MessageBox.Show("密码错误");
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("用户不存在");
                                //4.如果没有对应的用户,直接提示“用户名不存在”
                            }
                        }
                    }
                }    
            }
  3. Form窗口切换

This.hide;

Form2 frm = new Form2();

Frm.show();

 

   

 


  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值