栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

b站黑马C++机房预约系统项目代码

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

b站黑马C++机房预约系统项目代码

  • 学习心得 

        最近在b站上看黑马C++学习视频,大学时期也没什么代码经验,前前后后看了大概不到一个月,最近终于看完了。说一下总体感受:老师讲解通俗易懂,容易学习,对初学者非常友好;手写代码教学,虽然代码经常重复,但初学者可以加深印象,如果觉得啰嗦可以跳过;讲完语法后还会做小项目,即加强了语法的训练,也培养了编程思维,做出来运行后还是非常有成就感的!

 

 

        本人也不是专门用C++开发软件项目的,可能会用C++做一些算法、模型等,因为在做ic方面东西,整个项目是在Linux系统下用gvim完成的,部分代码排版不好看,包含了makefile文件,在命令行输入make即可运行。

  • 机房预约系统项目

        最近这三天完成了机房预约系统的项目,做起来还是蛮有意思的。对于项目有很多思考,也觉得可进行一些改进,我只改了第三个。

  1. 添加管理员可以删除账号、允许学生和老师修改密码等功能,当然这是小问题。
  2. 添加教师可以批量审核预约功能。
  3. 我认为最重要的是机房设置过于鸡肋,不能显示容量,所以我花了一些时间对这个问题进行改进。
  •  改进方案

        原项目是设置了三个机房,但我觉得最大问题是不能显示余量。因为从周一到周五的上午和下午一共十个时间段 ,所以我把机房数量改成1个,一共有十个时间的机房容量,如下图所示:

        把机房号用输入的日期(1~5)和时间(1~2)组合表示出来,用于索引存放机房信息的map容器,对map中机房数进行操作。如周一上午机房容量30在map容器中就是<11,30>。

   com_id = data*10+time;//机房编号通过data和time组合起来构成
   for(map::iterator it=m_com.begin();it!=m_com.end();it++)
   {
      if(it->first == com_id)
      {
         cout << "周"<< data << (time==1 ? "上午":"下午");
         cout << "的机房剩余容量为:" << --(it->second) << endl;
         if(it->second<0)
         {  
            cout << "继续预约可能导致审核失败!"<> sure;
               if(sure>=0 && sure<=1)
               {
                  if(sure==0)
                     (it->second)++;//取消预约时容量实际也减了1,这里再加上
                  break;
               }
               cout << "输入有误!请重新输入:";
            }
         }
         break;
      }
   }
   if(sure == 0)//取消预约,直接退出函数,不保存本次数据
   {  
      cout << "取消预约成功!" ;
      return;
   }
  • 更新机房容量规则

 1:有学生审核,对应日期的容量减1,如果容量不足会进行提示,更人性化。确认取消(sure==0)会直接退出函数,这是必要的,因为后面还有保存信息到文件的代码,取消预约,预约数据和机房数据就不会保存到文件中。(当然也可以在老师审核后容量再减1,不过我觉得没必要)

2:学生取消预约、老师审核不通过对应日期的容量都加1。

3:管理员清空预约文件后也要把机房文件重置一下,这里初始容量设为了30

   m_com.clear();
   for(int i=1;i<=5;i++)
   {  
      for(int j=1;j<=2;j++)
         {
            m_com.insert(make_pair(i*10+j,30));         
         }
   }
   ofs.open(COMPUTER_FILE ,ios::out|ios::trunc);
   for(map::iterator it=m_com.begin();it!=m_com.end();it++)
   {  
      ofs << it->first << " " << it->second << endl;
   }
   ofs.close();

 

  • 小难点 

        项目中学生取消自己的预约,以及老师审核时的实现确实有一定难度,当时看视频刚开始还不太懂,琢磨一会懂了,看弹幕很多人不懂。取消预约和审核失败机房容量加1 也是在这里实现的。 这里不在展示(因为排版太乱,丢人),如果大家不懂我可以再讲一下。

  • 总结 

        经过反复的试验,目前没什么问题,欢迎大家交流 ,有需要代码的我可以评论区发网盘链接。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444019.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号