C#打造:学生成绩管理系统

学生成绩管理系统设计
本文介绍了作者在期末考试期间设计并实现的一个学生成绩管理系统。系统使用C#和Access数据库,实现了成绩录入、用户管理等功能,并应用了MD5加密提高安全性。

         很久没有更新博客了,临近考试,计算机专业的这个大三真的很多事情要做,大型的作业N多个,考试又都集中在一周两周里考完,真是痛苦死了,昨天晚上做到三点多做好了一个星期一要检查的作业,作业题目要求如下:

实验2学生成绩管理系统
录入学生信息
有用户:教师,管理员
教师录入学生成绩
管理员建立教师用户,建立学科于教师关系
系统自动根据成绩分析出绩点,出排名报表

        一开始的时候就觉得用Win Form很难下手,参数传递会是一个大难题,数据库设计按照我自己的做法我当然是想做到最完美的,如果没有上到一定范式的程度这个程序还是很好做的,但是这样不就是蒙混老师吗?而我自己那关也过不去,做了挺久的网页了,都是用Access随便型一个数据库就算了,关系最复杂也不过是日志和评论,整个网站就那里有一个关系的,没什么难度。这里这个作业只是老师随堂打上的,还没有学生那部分,学生选课啊,查询成绩啊,所以没有学生登录环节了,要上再加上那个,也不是不能做,但是在这么短时间内是不可能做好的,又不但只这一科逼到脖子上,好了,在这里发一下:

      随着学期末的到来,JSP课的结束,JSP大综合设计实验的到来,我在Java与C#的夹缝之间挣扎求全。学Java的时间一点都不长,平时做其它科的程序用的也是C#,所以对Java没有什么说话权。不过就前一两天才做完的JSP学生选课系统来说,也有一大部分对数据库的操作,这两者做下来比较多多少少都是知道一点点的。Javabean真是吸引人啊~不会用Struts之类高级的东东,不知道用上了会有怎么样的感觉呢?把数据库操作用Javabean来实验着实是一件令人觉得愉快的事情,而在C#方面,对数据库的操作用ADO.NET组件也是一件很愉快的事情啊~

       好像题外话多了点啊……-_-!!   这个系统的数据库用的是Access,接触Access已经有很长一段时间了,从以前的ASP开始就一直在用它,小巧玲珑,挺是不错,特别是这次,数据库设计到了一定范式的程度下数据查询更新多表连接时真让人头痛,想当年做个网的时候最多就那几条SQL指令,这个作业的语句真有一定难度,但是好在Access有一个查询设计器,可视化地选择表和列,它就自动生成语句了,虽然不知道这些语句的效率如何数据引挚执行得轻不轻松,但是对于我来说真的是轻松了!

       这次也把安全与保密课上的MD5用上了,不过从以前做网页的经验来说就有一次用过MD5的。密码用MD5加过密。在此考虑到密码的隐藏价值。对于当前的系统此密码有当前系统的价值,但是一般人都懒得记太多的密码,于是银行卡、学生证、其它密码都用同一密码,如果此密码被别人知道损失就会接二连三,这里用了MD5不可逆转地记录密码,意味着就算别人知道了数据库里的密码项的值也不能得知密码的原文,把损失降低。本来自认为这样也解决了一个安全漏洞,数据库的注入问题,密码我是考虑到了,但是没有考虑到名字也可以注入啊,晕死……所以程序的不足之处就在登录的时候就用户名那里填: 1’ or ‘1’=’1 然后密码别人知道的话,就这样也可以登录上去了。不过我就没有想过会有谁能知道我的论坛密码邮箱密码QQ密码~哈~所以在这样一个大前提下这样做安全性还是有一定程度保障的。改进当然是要的啦,ASP里的字符分隔单引号我会,但是怎么说这个C#都是个接触不太久的新事物,还没知道这个函数怎么写怎么用,上百度搜搜先,等放长假了再改进改进





        
         PS:生成的HTML文件不知道为什么用浏览器浏览会什么都没有,但是用记事本打开,不用修改什么,保存一次再用浏览器打开就可以看到数据了,真是奇怪啊。。。本来是想生成XML再转换成HTML的,但是XSL寒假到开学一段时间都忘了,而且当时实验还不成功,说什么XslTransform过时的,那本书也还图书馆了,没时间了,就算了,直接生成HTML往文件里写

程序源码:http://files.cnblogs.com/lanse777/MarkManager.rar
粗糙之作,如有错误请指证,谢谢!

转载于:https://www.cnblogs.com/lanse777/archive/2007/06/14/783765.html

C#.net实现学生成绩管理系统 namespace 学生成绩管理系统 { partial class Formlogin { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { this.labeluser = new System.Windows.Forms.Label(); this.textBoxuser = new System.Windows.Forms.TextBox(); this.labelcode = new System.Windows.Forms.Label(); this.textBoxcode = new System.Windows.Forms.TextBox(); this.buttonin = new System.Windows.Forms.Button(); this.buttonout = new System.Windows.Forms.Button(); this.SuspendLayout(); // // labeluser // this.labeluser.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labeluser.Location = new System.Drawing.Point(31, 50); this.labeluser.Name = "labeluser"; this.labeluser.Size = new System.Drawing.Size(55, 26); this.labeluser.TabIndex = 0; this.labeluser.Text = "用户名"; this.labeluser.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // textBoxuser // this.textBoxuser.Location = new System.Drawing.Point(126, 55); this.textBoxuser.Name = "textBoxuser"; this.textBoxuser.Size = new System.Drawing.Size(112, 21); this.textBoxuser.TabIndex = 1; // // labelcode // this.labelcode.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.labelcode.Location = new System.Drawing.Point(31, 124); this.labelcode.Name = "labelcode"; this.labelcode.Size = new System.Drawing.Size(55, 23); this.labelcode.TabIndex = 2; this.labelcode.Text = "密码"; this.labelcode.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // textBoxcode // this.textBoxcode.Location = new System.Drawing.Point(126, 124); this.textBoxcode.Name = "textBoxcode"; this.textBoxcode.PasswordChar = '*'; this.textBoxcode.Size = new System.Drawing.Size(112, 21); this.textBoxcode.TabIndex = 3; // // buttonin // this.buttonin.Location = new System.Drawing.Point(34, 200); this.buttonin.Name = "buttonin"; this.buttonin.Size = new System.Drawing.Size(75, 23); this.buttonin.TabIndex = 4; this.buttonin.Text = "登陆"; this.buttonin.UseVisualStyleBackColor = true; this.buttonin.Click += new System.EventHandler(this.buttonin_Click); // // buttonout // this.buttonout.Location = new System.Drawing.Point(163, 200); this.buttonout.Name = "buttonout"; this.buttonout.Size = new
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值