C# 驾校学员驾考成绩管理系统
前言
所用软件
这两个软件简称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
未完待续
等我什么时候有空了再写完。。。
上班摸鱼中。。。。。。