简单的学生信息系统包括登陆管理新信息登记查询
根据提供的文件标题、描述、标签以及部分内容,我们可以总结出该学生信息系统的几个核心知识点: ### 一、系统功能概述 该学生信息系统是一个简单的基于C++语言实现的信息管理系统,主要用于存储和管理学生的基本信息(如姓名、学号和成绩)。系统功能主要包括登录管理、新信息的录入、以及对已存信息的查询。 ### 二、登录管理功能 #### 1. 登录验证 - **代码实现**: 使用循环结构进行用户身份验证。 - **功能**: 验证用户的ID和密码是否正确。 - **逻辑**: 若输入的`userid`和`userpasswd`不等于预设值`123`和`321`,则提示重新输入直至正确为止。 - **代码示例**: ```cpp void login() { int userid, userpasswd; cout << "请输入用户名: "; cin >> userid; cout << "请输入密码: "; cin >> userpasswd; while (userid != 123 || userpasswd != 321) { cout << "用户名或密码错误,请重新输入: "; cin >> userid; cin >> userpasswd; } cout << "登录成功" << endl; } ``` ### 三、信息录入功能 #### 1. 数据结构定义 - **结构体定义**: `struct studentinfo`用于存储学生信息,包括姓名、学号和成绩。 - **成员变量**: - `charsname[12]`: 学生姓名 - `intsid`: 学生学号 - `floatsscores`: 学生成绩 #### 2. 信息录入流程 - **代码实现**: 使用循环结构录入多条学生信息,并检查学号是否重复。 - **逻辑**: 如果当前录入的学号与已存在的学号相同,则提示重复并跳过;否则继续录入下一条记录。 - **代码示例**: ```cpp void set() { cout << "请输入要录入的学生数量: "; cin >> i; for (j = 0; j < i; j++) { cout << "请输入第" << j + 1 << "个学生的姓名: "; cin >> s[j].sname; cout << "请输入第" << j + 1 << "个学生的学号: "; cin >> s[j].sid; cout << "请输入第" << j + 1 << "个学生的成绩: "; cin >> s[j].sscores; // 检查学号是否重复 bool isDuplicate = false; for (int k = 0; k < j; k++) { if (s[k].sid == s[j].sid) { isDuplicate = true; break; } } if (isDuplicate) { cout << "学号已存在!" << endl; } else { // 继续录入下一条记录 } } } ``` ### 四、信息查询功能 #### 1. 查询方式选择 - **代码实现**: 提供菜单选项让用户选择查询方式。 - **功能**: 用户可以选择按学号查询、按姓名查询或按成绩查询。 - **代码示例**: ```cpp void search() { cout << "请选择查询方式:" << endl; cout << "1. 按学号查询" << endl; cout << "2. 按姓名查询" << endl; cout << "3. 按成绩查询" << endl; int choice; cin >> choice; switch (choice) { case 1: findi(); break; case 2: findn(); break; case 3: finds(); break; default: cout << "无效的选择" << endl; } } ``` #### 2. 按学号查询 - **代码实现**: 输入一个学号,遍历所有记录找到匹配的学号。 - **逻辑**: 若找到匹配的学号,则输出相关信息;否则提示未找到。 - **代码示例**: ```cpp void findi() { cout << "请输入要查询的学号: "; cin >> findid; bool found = false; for (j = 0; j <= i; j++) { if (findid == s[j].sid) { cout << "找到了对应的学号!" << endl; cout << "信息: " << setw(5) << s[j].sid << setw(5) << s[j].sname << setw(5) << s[j].sscores << endl; found = true; break; } } if (!found) { cout << "未找到对应的学号!" << endl; } } ``` #### 3. 按姓名查询 - **代码实现**: 输入一个姓名,遍历所有记录找到匹配的姓名。 - **逻辑**: 若找到匹配的姓名,则输出相关信息;否则提示未找到。 - **代码示例**: ```cpp void findn() { cout << "请输入要查询的姓名: "; cin >> findname; bool found = false; for (j = 0; j < i; j++) { if (strcmp(findname, s[j].sname) == 0) { cout << "找到了对应的学生: " << endl; cout << "信息: " << setw(5) << s[j].sid << setw(5) << s[j].sname << setw(5) << s[j].sscores << endl; found = true; } } if (!found) { cout << "未找到对应的学生!" << endl; } } ``` #### 4. 按成绩查询 - **代码实现**: 输入一个成绩,遍历所有记录找到匹配的成绩。 - **逻辑**: 若找到匹配的成绩,则输出相关信息;否则提示未找到。 - **代码示例**: ```cpp void finds() { cout << "请输入要查询的成绩: "; cin >> findscore; bool found = false; for (j = 0; j <= i; j++) { if (findscore == s[j].sscores) { cout << "找到了对应的成绩: " << endl; cout << "信息: " << setw(5) << s[j].sid << setw(5) << s[j].sname << setw(5) << s[j].sscores << endl; found = true; } } if (!found) { cout << "未找到对应的成绩!" << endl; } } ``` ### 五、其他功能 除了以上主要功能外,该系统还提供了一个展示所有学生信息的功能,即`disp()`函数: ```cpp void disp() { cout << "显示所有学生信息: " << endl; for (j = 0; j <= i; j++) { cout << setw(5) << s[j].sid << setw(5) << s[j].sname << setw(5) << s[j].sscores << endl; } } ``` 通过以上分析,我们可以看出这是一个非常基础且简单的学生信息管理系统,适用于初学者学习C++语言的基础语法和结构。
//登记查询系统
#include <iostream>
#include <string>
#include<iomanip>
using namespace std;
int j, i,findid,k,count=0;
char findname[12];
float findscore;
struct studentinfo
{
char sname[12];
int sid;
float sscores;
};studentinfo s[20];
void login()
{
int userid,userpasswd;
cout<<"**********"<<endl;
cout<<"管理员登陆"<<endl;
cout<<"**********"<<endl;
while((userid!=123)&&(userpasswd!=321))
{
cout<<"请输入用户账号:"<<endl;
cin>>userid;
cout<<"请输入用户密码:"<<endl;
cin>>userpasswd;
int n=0;
{n++;
cout<<"输入错误,请重新输入:"<<endl;
}
}
cout<<"登陆成功"<<endl;
}
void set()
{
cout<<"请输入你想作信息登记的学生人数:"<<endl;
cin>>i;
cout<<"依次输入学生的姓名,学号和分数:"<<endl;
setw(5);
for(j=0;j<i;j++)
{
char name[12];
int id;
float scores;
cin>>name;
cin>>id;
cin>>scores;
if(s[j].sid==id)
{
count+=0;
cout<<"该学号的学生已经存在!"<<endl;
}
剩余7页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于springboot的私人健身与教练预约管理系统源码(java毕业设计完整源码+LW).zip
- 基于springboot的校园在线拍卖系统源码(java毕业设计完整源码).zip
- 基于PCA主成分分析的BP神经网络回归预测MATLAB代码 代码注释清楚 先对数据集进行主成分分析,自主根据贡献率选择主成分;同时计算KMO验证值;用PCA以后数据进行BP神经网络回归预测
- meilisearch linux x64
- 基于springboot的学生成绩管理系统源码(java毕业设计完整源码+LW).zip
- 粒子群算法PSO优化随机森林RFR的回归预测MATLAB代码 代码注释清楚,可以读取EXCEL数据,使用自己数据集 很方便,初学者容易上手
- 基于springboot的医院信管系统源码(java毕业设计完整源码+LW).zip
- Python入门基础知识与学习方法指南
- 数据库课设项目(基于若依的实体店销售系统项目)
- 信息系统应用安全第5部分-代码安全检测
- 玩转V90扭矩控制功能 102105报文怎样降低扭矩限制.mp4
- 双馈风机风电场经串补并网次同步振荡 谐振仿真模型,附参考文献 DFIG-SSO SSR simulink仿真 包含模型中红体字提到的参考文献 可运行,振荡程度可自调,运行结果很理想 可选择ma
- 最短工期问题及其解决方法
- Microsoft Teams 应用场景概览.pdf
- osg3.6.5,osgEarth3.2 ,MSVC2017,纯qt实现加载osg模型至qt软件界面
- Phase-Shift-T:基于MATLAB Simulink的移相变压器仿真模型,可实现-25°、-15°……25°的移相 变压器副边实现36脉波不控整流,变压器网侧电压、阈侧电压以及移相角度可直