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

学生信息管理系统(c++)

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

学生信息管理系统(c++)

目录 

设计说明

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++

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

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

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