C# 驾校学员驾考成绩管理系统(手把手教你写)

发布于:2023-07-04 ⋅ 阅读:(177) ⋅ 点赞:(0)

前言

所用软件

这两个软件简称VS2012、sqlserver,在官网可以下载,我只教怎么写代码,安装开发软件最好是找视频而不是看CSDN。
Visual Studio 2012
Microsoft SQL Server Management Studio
在这里插入图片描述在这里插入图片描述

萌新教程

我们直接从VS安装完开始讲起。
在这里插入图片描述
可以直接点击“新建项目”。或者:
文件(F)–>新建(N)–>项目(P)。
在这里插入图片描述
如图所示,一定要选择ASP.NET 空Web应用程序
其他的就用默认的也不是什么大问题,比如说.NET Framwork 4选择3.5也行;名称随便选个你喜欢的就行,后面还可以重命名,位置自己记住就好,自行截图别忘了在哪。
在这里插入图片描述
鼠标放在左侧,点击解决方案资源管理器。不要瞎动,把窗口拖出去可能导致VS崩了,需要在窗口(W)—》重置窗口布局®。此外,可能会自动生成default文件(文档),是正常现象。
在这里插入图片描述
现在我们来写一个HelloWorld。
鼠标放在你的项目上面,鼠标右击:
所选项目(鼠标右击)–》添加(D)–》新建项(W)
在这里插入图片描述在这里插入图片描述
此时生成子项目HelloWorld。需要用到是的两个文件:HelloWorld.aspx、HelloWorld.aspx.cs。
在这里插入图片描述
此时你的电脑里面是这样子的:
在这里插入图片描述
我们来看一下前端,来写一个

,当然也可以偷懒直接在左侧工具箱拖一个出来。
左下角点一下拆分:
在这里插入图片描述 在这里插入图片描述
从左侧工具箱中拖两个插件:Button、TextBox。
然后来看一眼后端,图中的代码不要删。
在这里插入图片描述
在前端中双击Button,就能在后端中自动生成一段代码:

在这里插入图片描述在这里插入图片描述
写:TextBox1.Text = “Hello World!”;
在这里插入图片描述
点击运行
在这里插入图片描述
点击Button
在这里插入图片描述
新建一个default子项目,忘了怎么新建就小拇指按住左Ctrl键不要松,按F,查找“现在我们来写一个HelloWorld。”
好了新手教程到此结束,我们来进入正题。

一些废话,自行跳过(水论文可以抄)

大一新生浏览一下本文即可,sql数据库方面至少等大二暑假再亲自动手实践。因为这不是那种抄一下代码就直接能运行的代码。打个比方,霍金他老人家有句名言“书中每多一个公式就少一半读者”,所谓软件项目也是一样的,同时使用多个软件,萌新学习难度暴增。
至于大三大四的童鞋,我的建议是不要学C#,推荐的学习顺序是C、C++、java,最后跳过C#的学习,直接上手。当然,实际上手之前不妨先百度一下HTML,有些傻逼学校不讲“前端”给萌新带来误解。提到前后端的时候,有些傻子以为是口误加错别字,想当然地当作是前台和后台,就离谱。这里科普一下,前后端的区别就是浏览器,后端代码通常和浏览器没关系。面向用户的浏览器部分属于前台,如果说这款软件比较复杂,功能齐全,那么维护人员就比较多,可是代码是不能轻易修改的,为了在不修改代码的情况下进行维护工作,前端需要设计后台代码。简单地说,前端可以拆分出前台和后台,后端代码可以直接控制它们。
当然,本文仅作为学习使用,非常简单,没有必要额外写后台的前后端。

课题描述

设计一个驾校学员的驾考成绩管理系统,成绩管理信息包括:考试人员编号(001,002…),姓名,科一到科四成绩,并能够自动生成考试结果(是否取得驾照)。
基本要求
1、实现三种不同权限的用户登录和管理功能——(1)管理员登陆:具有查看、编辑修改和添加删除任意一条学员考试记录的功能,并能够查看本次考试的所有学员的考试结果统计信息(包括:总体通过率和各项通过率);(2)教练员登陆:具有查看和编辑修改功能但是没有添加和删除的功能;(3)学员登陆:只有查看功能,且只能查看本人的考试结果。
2、在管理员模式下,实现对学员信息的录入,生成考试结果(显示出每项成绩和是否获得驾照),并可将此次考试结果保存为文件。
3、在管理员模式下,实现对已保存文件的读取,以便获得过往考试结果的历史信息。
4、三类用户在查看学员考试结果时,均可按照学员姓名或编号,对某个学员的考试记录进行单独查询
5、管理员和教练员在查看本次考试的全体学员的考试结果时,均可按照学员姓名首字母(学员姓名录入时,只需录入其拼音字母即可)或考试编号进行正序或逆序排序。
6、管理员和教练员均可进行统计查询,即仅查询获取驾照或未能获取驾照的人员名单、仅查询某单项考试的通过和未通过学员的名单、仅查询某单项考试的通过率。
提高要求
1、设计友好的用户界面
2、实现数据库查询、插入、删除等功能
3、管理员具备新建教练员或学员账号的功能,三类用户均具备更改登录密码的功能

未完待续

下面进入正题

代码

登录界面

前端default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="demo02._default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table align="center" border="0">
            <caption>驾校学员驾考成绩管理系统</caption>
            <tr>
                <td><asp:Label ID="Label2" runat="server" Text="请输入用户名"></asp:Label></td>
                <td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
                <td><asp:Label ID="Label1" runat="server" Text="Label(可以改)"></asp:Label></td>
            </tr>
            <tr>
                <td>请输入密码</td>
                <td><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></td>
                <td></td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="Button1" runat="server" Text="登录" />
                    <asp:Button ID="Button2" runat="server" Text="清除" />
                </td>
                <td></td>
                <td></td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

数据库SQL server

所以说来看本文的起码是大三,关于数据库的安装教程跟我没关系。
当然你也可以选择使用教程更容易获得的MySQL数据库。只不过你都选择C# 还不用SQL server就很傻可爱。
这两张图作为参考。
在这里插入图片描述在这里插入图片描述

--drop table users;
create table users(--user是关键字
id int not null primary key identity,
names nvarchar(15) not null unique,--(n)sqlserver中n表示字符的长度,mysql中表示字节
pwd nvarchar(20) not null,
part int not null,
sex nvarchar(1) not null,
--isdelete int not null default 0--0表示正常,1表示假装被删除
);
select * from users;
insert into users (names,pwd,part,sex)values('1号管理员','123',1,'男');
insert into users (names,pwd,part,sex)values('1号教练员','123',2,'男');
--在SQL server和Oracle数据库中,“--”表示注释。

--update users set isdelete = 0 where names='2号管理员';

后端default.aspx.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace demo02
{
    public partial class _default : System.Web.UI.Page
    {
        //配置连接字符串的两种方式
        string ConnectionString = ConfigurationManager.ConnectionStrings["MSSQL"].ConnectionString;
        string connString = "server=数据库服务器地址;database=yuze_study;user id=登录名;password=你的密码";//连接字符串
        protected void Page_Load(object sender, EventArgs e)//这个方法也可以不使用
        {
            if (!Page.IsPostBack) { }
        }

        protected void Button1_Click(object sender, EventArgs e)//登录按钮
        {
            String s1 = TextBox1.Text.Trim();
            String s2 = TextBox2.Text.Trim().Replace("'","");//预防sql注入
            String sql1 = "select * from users where names = '" + s1 + "'and pwd = '" + s2 + "';";

            SqlConnection conn = new SqlConnection(ConnectionString);//创建连接实例

            SqlDataAdapter da1 = new SqlDataAdapter(sql1, conn);
            DataSet ds1 = new DataSet();
            da1.Fill(ds1);
            if (ds2.Tables[0].Rows.Count > 0)
            {
                Label1.Text = "确有此人!";
                //TextBox1.Text = "hh";
                Response.Redirect("main.aspx");
            }
            else
            {
                Label1.Text = "查无此人或密码错误";
            }
        }

        protected void Button2_Click(object sender, EventArgs e)//清除按钮
        {
            TextBox1.Text = "";
            TextBox2.Text = "";
        }
    }
}

Web.config

<?xml version="1.0" encoding="utf-8"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <connectionStrings>
    <add name="MSSQL" connectionString="server=数据库服务器地址;database=my_study;uid=登录名;pwd=你的密码" providerName="SqlClient" />
  </connectionStrings>
    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>

</configuration>

用户主界面main.aspx

新建一个子项目main。
主界面采用两个frame框架拼起来。即把标签替换成标签。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="main.aspx.cs" Inherits="demo02.main" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<frameset cols="200,*">
    <frame name="left" src="Left.aspx"></frame>
    <frame name="right" src="right.aspx"></frame>
</frameset>
</html>

用户主界面菜单left

新建一个子项目left,顺便新建一个子项目right,当然右边的框架可以不写,放那就不要动了。
左边框架中的超链接*(即< a href=“你的页面” target=“你期望它打开的地方在哪里呢”>标签)*指向的其他页面可以直接在右边的框架中显示出来。

菜单前端left.aspx

菜单后端left.aspx.cs

未完待续

等我什么时候有空了再写完。。。
上班摸鱼中。。。。。。

我放弃了,公司准备将Webform项目转移到mvc项目,毕竟旧项目比较耗费服务器资源。虽然webform对于开发人员相对省事一点

本文含有隐藏内容,请 开通VIP 后查看