Skip to content

niming175/C-_WORD-read-online

Repository files navigation

C# 项目: 基于Asp.Net网页项目

项目说明

这个是我本科时的毕业项目, 做的是一个以word在线阅读的核心技术的作业管理系统。功能比较简单,就是老师布置作业(教师端),学生完成作业提交(用户端)的这么一件事。其核心功能就是word在线阅读, 将word(后缀为.doc和docx)文档上传到服务器, 然后转换成html格式 这样就可以实现在线啊阅读。当然大学刚毕业那会儿, 对整体项目掌握的很不好, 技术也不是很成熟,这个项目的很多功能也没完成,现在再去看以前的代码,倒是一种蛮好笑的事。

功能说明

功能比较简单(但全部功能至今都没完成), 主要分为这几块:

  • 文档阅读: 用户可以上传word文档,这样就可以在这个项目直阅读(主要即使将doc转换成html格式), 同时支持搜索和评论, 下载等;
  • 作业布置: 科目的老师对负责的班级布置作业(该功能做完成基础的,没有全部完成), 支持上传材料文件;
  • 学生个人中心: 通过登陆(原本设想是, 学生不可注册, 只能通过学号登录, 这块做的不好),可以看到自己上传的文档, 老师布置的作业,以及自己提交作业情况;
  • 作业评分: 也是教师端的功能, 教师在学阅读学生上传的doc文档, 之后可以评分,或者评语(这个在学生端是看得到的)。
  • 辅导员管理: 就是管理班级以及学生;
  • 科目管理: 就是给每个班级每个学期安排科目和科任教师。
  • 管理员部分: 就是分配辅导员的, 并为其安排辅导员的。
    关于科目, 学期课程, 科任教师,这个功能压根就没想做 后来指导老师这么要救了, 我就做了,记得逻辑较为复杂,而且还大改了数据库结构, 我可是薅了很多头发, 吐了半斤血才设计出来。(真想把那指导老师抓起来打 哈哈 不能那么暴力)

技术说明

做这个项目的时候,本来的做法是将课本的案例拿来做一遍,然后再扩展(用的还是三层架构,总之是很老的技术, 在web届都不知道被淘汰多久了), 后来做到一半听好友讲有个ajax技术, 后来就去了解了,之后就逐渐去了解了JQery, 异步更新等(没错,大学学的东西,都是渣渣, 很多技术都是从大神那听说的,之后才去了解从此走上了码农这条不归路)。 项目的雏形就是典型的asp.net三层架构,从这个项目还是可以看出来的,后来引入了ajax, 就将前后端进行分离, 之后又有点借鉴mvc的思想, 所以项目就变得很不伦不类(太多值得吐槽的地方)。 关于wordhtml这项技术是完全抄网上的案例, 但实现的效果不好, 很多word文件出现乱码或者转换后与原来偏差太大的问题。我不知道asp.net有没有像laravel那样有composer那种包管理工具,以至于自己想要什么功能,只能百度案例,然后将源码复制过来修改修改就能用了。(关于类似laravel那种需要什么功能,直接下载插件的做法,那时候真不知道,连我的指导老师也不知道,其实我对asp.net了解的太少了,后来就转PHP阵营了,PHP大法好!!!)。
关于前端(全班做web项目的同学 估计就我是将前后端分离的, 这里自豪一下), 那时候还是用极为传统的静态网页+JQ实现动态的做法, 根本就不知道组件化这么个东西(这个vue做得很好,我也是毕业很久指导才指导这么个东西), 也更不知道npmwebpack这些流行的前端技术(好吧,大学感觉活在解放前, 这么些名词都是在毕业后很久才听说的,惭愧)。

其他说明

关于代码,那时候跟友人讨论利用中文编程(就是类似利用易语言那种), 就想,我的项目也用中文编码吧(因为我英语很渣,所以将左右方法和类名都用中文命名), 我贴出一段代码给大家看看:

       #region 打开数据库连接
       private void 打开()
       {
           if (连接 == null)
           {
               连接 = new SqlConnection(ConfigurationManager.AppSettings["连接字段"]);
           }
           try
           {
               if (连接.State == System.Data.ConnectionState.Closed)
                   连接.Open();
           }
           catch (SqlException E)
           {

               this.关闭();
               throw new Exception(E.Message);
           }
       }
       ...
       #endregion
       #region 执行参数命令文本
       public DataSet 执行参数命令文本(string 参数名, SqlParameter[] 参数, string 表名)
       {
           SqlDataAdapter 适配器 = 创建适配器(参数名, 参数);
           DataSet 资料组 = new DataSet();
           适配器.Fill(资料组, 表名);
           this.关闭();
           return 资料组;
       }
       #endregion
       
       ...
       
       #region  注册会员信息
       public int 注册会员(会员管理 管理)
       {
           SqlParameter[] 参数 ={
                              数据.输入参数("@昵称",SqlDbType.VarChar,20,管理.昵称),
                              数据.输入参数("@密码",SqlDbType.VarChar,50,管理.密码),
                              数据.输入参数("@姓名",SqlDbType.VarChar,20,管理.姓名),
                              数据.输入参数("@手机号",SqlDbType.VarChar,11,管理.手机号),
                              数据.输入参数("@班级编号",SqlDbType.Int,0,管理.班级编号)
                              };
           return (数据.执行参数修改("insert into 用户(昵称,密码,头像位置,手机号,班级编号,姓名) values (@昵称,@密码,'../images/userhead/default.jpg',@手机号,@班级编号,@姓名)", 参数));
       }
       #endregion
       

后来就后悔了,因为中英文切换太累了!现在看起来蛮搞笑的。

未来规划

1)继续完善项目未完成的功能(太多功能没完成,我都怀疑我的毕业设计是怎么过的);
2)前端引入vue技术进行组件化管理;
3)当然不出意外的话,我这辈子可能都不会改这个项目了,因为我已经抛弃了C#, 投向PHP阵营(PHP大法好 PHP大法棒!!!)。

最后说两句

关于这个项目,起初是大四的时候(我读的是3+2本科),帮同届的小姐姐指导毕业设计(这里吐槽下那位小姐姐,真不知道她大学四年学了些什么,这么简单的代码都不会!后来干脆就帮她完成了大大大大部分的功能, 哎...现在我开始后悔了,活该自己单身...)!后来在我大四的下学期的时候, 就把这个项目适当改改,拿去参加学校的软件大赛(真不要脸, 拿别人的毕业设计去参赛!!!啦啦啦 打我呀,哈哈,就这么不要脸;再后来,就是大五的时候,轮到自己做毕业设计,就继续把这个项目拿出来改改, 花了四个月时候,加了很多功能,薅很无数头发,吐了N吨血,熬了无数个通宵(其实最后答辩的时候,老师只看论文 对我的项目不感兴趣!)
关于做毕业设计,可能才是我大学时间过得最充实的时刻,学了很对知识,蛮有成就感(一朝入码农, 从此节操视路人) 当然谁感兴趣的话,可以把这个项目继续拿去改改!但是禁止用于商业用途(当然不会有人那么无聊拿那么烂的代码拿去商业用途)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published