目录

设计说明

INTRODUCTION

1 系统介绍

2 系统设计

3 调试分析

4 系统运行结果

参考文献


设计说明

设计内容:采用Dev-C++的桌面开发技术完成一个学生信息管理系统的设计与实现,使用特点编程语言完成编码和调试,可实现对于学生信息的插入,修改和删除,以及学生信息浏览和特定条件的学生查询。

开发技术

语言 C++

软件 Dev-C++

INTRODUCTION

Design content: the desktop development technology of dev-c++ is used to complete the design and implementation of a student information management system, and the characteristic programming language is used to complete the coding and debugging, which can realize the insertion, modification and deletion of student information, as well as the browsing of student information and the query of students under specific conditions.

Development technology

Language c++

Software DEV-C++

1 系统介绍

能够完成一个学生信息管理系统的设计与实现,使用特点编程语言完成编码和调试,可实现对于学生信息的插入,修改和删除,以及学生信息浏览和特定条件的学生查询。

2 系统设计

(1)主函数main(),创建一个管理系统对象Manager_system m; 用do-while语句输出功能菜单,并用switch语句接收用户的选择,并且每个选项都有实现相应功能的函数代码。

  1. 插 入 学 生 记 录

用函数insert_student()进行插入学生信息操作。利用length()函数来计算学号的长度,确保学号长度的为12位。用if语句(条件为stu[num].id[i] < '0' || stu[num].id[i] > '9')判断学号是否为数字。用函数substr()取学号前四位,用while语句判断学号前四位是否为合理数字年份,(1990, 2022),atoi()将string转换为int类型,id.c_str()将string转换为char*类型。对于性别和年龄也用while语句进行特定范围限定。

流程图如下:

  1. 浏 览 学 生 信 息

通过show_student()函数实现浏览学生信息功能,通过for循环将学生的所有信息一一列举出来。

流程图如下:

  1. 查 询 学 生 记 录

通过search_student()函数实现查询学生记录的功能。使用switch语句接收用户的选择,通过学号查询时,通过判断stu[i].id == id进行检索,当相同时输出该学生的所有信息。按姓名查询类似。多重查询方式通过判断stu[i].age == a && stu[i].province == p && stu[i].sex == s来检索所有的学生,当年龄、籍贯以及性别三样属性都符合条件时输出学生的信息。关键字查询用到find函数,find函数返回字符串中第一次出现指定字符的位置,如果没有找到则返回string::npos,通过if语句判断,如果没有返回string::npos便输出该学生的所有信息。

流程图如下:

  1. 删 除 学 生 记 录

通过delete_student()函数实现删除学生记录的功能。使用switch语句接收用户的选择。初始化flag=0,flag用于判断是否找到学生信息。删除操作的实现使用类似于冒泡排序的方法将想要删除的学生覆盖掉。

流程图如下:

  1. 修 改 学 生 信 息

通过modify_student()函数进行修改学生信息的功能。使用switch语句接收用户的选择(1-按照学号查找修改2-按姓名查找修改)。在修改之前先用for循环语句将该学生的原始信息展示出来,通过冒泡排序的方式将需要修改的学生信息覆盖掉,再通过调用插入学生信息的函数insert_student()进行插入,一覆盖一插入,人数不变。

流程图如下:

  1. 保 存 信 息 文 件

通过save_student()函数实现保存信息文件的功能。利用ofstream进行保存文件操作。构建ofstream对象fout,进行打开文件student.txt,并且将学生的人数写进文件里面,最后再利用for循环将所有学生的信息全部写进文件里面

流程图如下:

  1. 读 取 信 息 文 件

通过load_student()实现读取信息文件的功能。构建ifstream对象find进行打开文件student.txt,并且将里面所储存的学生人数读取到内存当中去,也是利用for循环将文件里面所有的学生的信息读取到内存里面。

流程图如下:

  1. 退 出 信 息 系 统

通过switch语句,当用户选择8时break,即退出循环,从而实现退出信息系统。

3 调试分析

一、学号输入时提示不合法:

(1)位数不是12位

设计时length()函数计算要求学号输入12位

  1. 学号前四位年份不在范围内

While语句中的atoi(id.c_str()) > 2022 || atoi(id.c_str()) < 1990语句限定了学号前四位必须要在1990年到2022年范围之内。

  1. 学号不是纯数字

For循环语句中的If语句中的判断条件stu[num].id[i] < '0' || stu[num].id[i] > '9'要求学号必须为纯数字。

  • 性别提示不合法

While语句中的stu[num].sex != "男" && stu[num].sex != "女"语句限定了在性别这一栏里面只能输入男或女。

  • 输入年龄时提示不合法

While语句中的stu[num].age < 10 || stu[num].age > 60语句要求我们输入的年龄区间在10到60岁之间。

4 系统运行结果

系统界面菜单:

Main()函数执行do-while语句

1、插入学生记录:

执行insert_student()函数

  1. 浏览学生信息

  1. 查询学生信息
  1. 按学号查询

  1. 按姓名查询

  1. 按年龄、籍贯、性别查询

(4)按姓名关键字查询

(5)(统计某个专业的学生人数)

  1. 删除学生记录

删除前(假如删除张天)

删除后再次浏览:

5、修改学生信息

  1. 按学号查找修改

修改后:

6、保存学生信息文件

7、读取学生信息文件

8、退出信息系统

参考文献

[1]初耀军C++程序设计基础及实践[M]北京:清华大学出版社2016

[2]任志鸿、徐广宇C++语言程序设计实践教程[M]北京:清华大学出版社2016

[3]刘前、张宁C++程序设计实践与案例教程[M]北京:清华大学出版社2016

[4]哔哩哔哩 黑马程序员 从0到1入门C++

学生信息管理系统(c++)相关推荐

  1. 【VB】学生信息管理系统5——数据库代码

    这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...

  2. 【VB】学生信息管理系统4——数据库的发展

    由于连接数据的时候出现了很多不懂得问题,为什么要连接,它是怎么连接的,查着查着,就越看越多.又不舍得就这么放过这些问题,所以就耐心看看究竟是怎么回事! 1.自从出现数据库,人们渴望用数据和应用程序做交 ...

  3. 【VB】学生信息管理系统3——连接数据库的前提

    在窗体设计和编写程序代码后,需要进行数据库的连接. 大概要做的:下载安装数据库--配置数据源ODBC--测试连接数据库--进行数据库中内容的添加. 关键是这些我都不会,这才是重点! 在学习数据库的过程 ...

  4. 【VB】学生信息管理系统2——窗体设计

    这次学生系统是照着书敲的,先敲完然后开始调试!中途遇到了很多问题,查了很多,这里不容易系统的总结!所以就针对各个问题,各个击破! 问题一:VB 6.0中,状态栏控件(sbstatusbar):右击选项 ...

  5. 【VB】学生信息管理系统1——系统设计怎样开始?

    历时两周完成用VB完成的学生信息管理系统.从刚开始只会敲好玩的小程序到现在完整的做出一个像样的系统.自己的编程思维进行了很大的跨越. 这次的学生信息管理系统让我从整体的角度看到了一个系统设计的过程. ...

  6. [置顶]完美简版学生信息管理系统(附有源码)管理系统

    简版学生信息管理系统 目前为止找到的简版系统中最新.最全的java类管理系统 点击进入简版系统 如果无法直接连接,请进入: https://blog.csdn.net/weixin_43419816/ ...

  7. c语言饭卡管理系统链表文件,C语言《学生信息管理系统》链表+文件操作

    今天带来的是一个链表版本的<学生信息管理系统>,功能包括:添加.显示.查询.删除.保存.读取,等功能模块,链表是C语言的进阶内容,希望大家好好学习,这里的代码可能会有一些瑕疵,希望大家提供 ...

  8. Python系列教程之学生信息管理系统

    1.上传图片/文件等资源 有时候需要添加一些附件,例如,新生刚入学,大家相互之间还不熟悉,希望能通过照片来加深印象,并且方便教学管理. 首先,对demo/urls.py文件进行改造,给urlpatte ...

  9. 教你如何运用python实现学生信息管理系统

    这篇文章主要为大家详细介绍了使用python实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python实现学生信息管理系统的具 ...

  10. php编写一个学生类_PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

最新文章

  1. python怎么安装requests库-Python3.6安装及引入Requests库的实现方法
  2. 023_JavaScript数字方法
  3. 2012年A题葡萄酒的评价论文与代码
  4. linux mysql5.6 安装
  5. BZOJ2948 : [Poi2001]绿色游戏
  6. 职业高中计算机网络试讲稿,2021教师资格证考试面试高中信息技术试讲稿——《建立数据库的基本过程》...
  7. HDU-5877-Weak Pair(树状数组+离散化+dfs)
  8. csv文件python是怎么输入的,python怎么读取和写入csv文件
  9. php++l+函数,关于PHP中usort()函数的解读
  10. MVPArms MVP快速集成框架
  11. html写自动关机的代码,让电脑自动关机代码是什么
  12. 大学英语 unit 2 第五题
  13. 控制寄存器 cr0,cr2,cr3
  14. 班主任工作总结中职计算机网络,中职班主任工作总结(优秀篇).doc
  15. mysql安装步骤及报错处理(windows)
  16. 拿姐姐身份证登记结婚竟然成了!婚姻户籍信息共享难在哪儿
  17. 阿里云centos6.9搭建ngrok服务器
  18. Acme CAD Converter 的线宽要怎么设置啊
  19. python绘制分形图形_Python绘制L-System的分形图
  20. 计算机 总线带宽计算,电脑各种硬件带宽的计算

热门文章

  1. Qcom Leds 配置
  2. 到底适不适合学习3D建模?这5点少1个都不行
  3. 更丰富、更可靠、更快捷,详解天翼物联三大数采服务
  4. 干掉activity、flowable,阿里开源工作流引擎compileflow使用指南
  5. 窗口函数cluster_sample
  6. 程序员谨记语录 - java篇
  7. GPS 定位管理车辆系统
  8. android 4.0主线程访问网络问题
  9. VB6工程在Win10系统打开提示MSCOMCTL.OCX无法加载
  10. c++课程设计——美发店管理系统