整体代码展示:借鉴作业的同学可以直接复制粘贴ctrlACV一气呵成,代码可以直接运行。如果怕和同学的重复了再改下参数名就可以,不过记得先备份一份哦。 如果觉得对你们有用还请不要忘记一键三连哟。ヾ(≧▽≦*)o

#include <iostream>
#include <fstream>  //写文件
#include <string>   //字符串操作length()
#include <windows.h>//画颜色
#include <conio.h>  //调用getch(),从控制台读取,但不会显示
using namespace std;
int n=0;//初始化,后面采用 class Student
{public:/*--------------------------初始化参数-----------------------------*/string name;string num;string sex; char cclass[20];string age;string lisan; /*--------------------------输入函数-----------------------------*/void input(){cout<<"\t请输入姓名:";       cin>>name;cout<<"\t请输入学号:";       cin>>num;cout<<"\t请输入性别:";       cin>>sex;cout<<"\t请输入班级:";       cin>>cclass;cout<<"\t请输入年龄:";       cin>>age;cout<<"\t请输入备注:";       cin>>lisan;}/*------------------------------show函数------------------------*/void show(){cout<<name<<"\t"<<num<<"\t"<<sex<<"\t"<<cclass<<"\t"<<age<<"\t"<<lisan<<endl;  }
};
/*------------------------------创建类------------------------------*/
class Message
{public:Message(){};~Message(){};//析构函数 Student stu[20];void menu();//展示菜单 void add();// 增加 void display();/****************初始化查找函数里面的各类查找方法********************/ int sname(string x);int snum(string y);//因为性别和年龄的不唯一性,我们采用字符串方式逐个记录相同属性同学的学号string ssex(string w);string sage(string z); /****************菜单具体操作********************/ void find();// 查找 void change();// 修改 void dele();// 删除 void save();// 保存
};
/*------------------------------菜单------------------------------*/
void Message::menu()
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//设置绿色和蓝色相加cout<<"欢迎来到我们的班级管理系统!!!\n诚邀各校有志之士加入我们的代码学习群交流:871352155\n"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);//设置红色和绿色相加cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n";cout<<"☆********************************************************************★\n";cout<<"★                         班级信息管理系统                           ☆\n";cout<<"☆                                                                    ★\n";cout<<"★          1.增加信息                           4.查找信息           ☆\n";cout<<"☆                                                                    ★\n";cout<<"★          2.显示信息                           5.删除信息           ☆\n";cout<<"☆                                                                    ★\n";cout<<"★          3.更改信息                           6.保存信息           ☆\n";cout<<"☆********************************************************************★\n";cout<<"★                            7.退出系统                              ☆\n";cout<<"☆          -------------------------------------------               ★\n";cout<<"☆********************************************************************★\n";cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n"<<endl;}
/*------------------------------添加数据------------------------------*/
void Message::add()
{stu[n++].input();cout<<"添加成功!输入任意字符继续:";getch();
}
/*------------------------------显示数据------------------------------*/
void Message::display()
{cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;for(int x=0;x<n;x++)stu[x].show();cout<<"输入任意字符继续:";getch();
}
/*------------------------------查找函数------------------------------*/
/*------------------------根据四种条件分类查询------------------------*/
int Message::sname(string na) // 名字查
{int i;for(i=0;i<n;i++){if(stu[i].name==na)return i;}return -1;
}
int Message::snum(string nu) // 学号查
{int i;for(i=0;i<n;i++){if(stu[i].num==nu)return i;}return -1;
}
string Message::ssex(string nu) // 性别查(有个小问题)
{int i;string number;for(i=0;i<n;i++){if(stu[i].sex==nu){number+=("%d",i);//占位符储存相同性别人的信息 "0235689" "136"}}return number;
}
string Message::sage(string nu) //年龄差 (同上的问题)
{int i;string number;for(i=0;i<n;i++){if(stu[i].age==nu){number+=("%d",i);}}return number;
}void Message::find()
{//初始化在查找中的数据 int a;int z;string b;string ap,bp,cp,dp;cout<<"请选择查找方式:1.按学号查找"<<endl;cout<<"                2.按姓名查找"<<endl;cout<<"                3.按性别查找"<<endl;cout<<"                4.按年龄查找"<<endl;cout<<"请输入1、2、3、4:";//根据输入值判断使用何种查找方式 cin>>a;switch(a){case 1:{cout<<"请输入需查找学生的学号:";cin>>bp;z=snum(bp);if(z!=-1){cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;stu[z].show();   }elsecout<<"没有找到该学生"<<endl;cout<<"输入任意字符继续"<<endl;getch();break;}case 2:{cout<<"请输入需查找学生的姓名:";cin>>ap;z=sname(ap);if(z!=-1){cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;stu[z].show();  } elsecout<<"没有找到该学生"<<endl;cout<<"输入任意字符继续"<<endl;getch();break;}case 3:{cout<<"请输入需查找学生的性别:";cin>>cp;b=ssex(cp);if(b.length()>0){    cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;for(int i=0;i<b.length();i++){stu[b[i]].show();  }} elsecout<<"没有找到该学生"<<endl;cout<<"输入任意字符继续"<<endl;getch();break;}case 4:{cout<<"请输入需查找学生的年龄:";cin>>dp;b=sage(dp);if(b.length()>0){   cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;for(int i=0;i<b.length();i++){stu[b[i]].show();  }}elsecout<<"没有找到该学生"<<endl;cout<<"输入任意字符继续"<<endl;getch();break;}}
}
/*------------------------------更改数据------------------------------*/
void Message::change()
{int password;cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆请 输 入 密 码 登 录 系 统!★☆★☆★☆★☆★☆★☆★☆★☆"<<endl;cin>>password; if(password==123456){int k;string cp;cout<<"请输入需修改学生学号:";cin>>cp;k=snum(cp);if(k!=-1){//设置蓝色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);cout<<"该生原信息"<<endl ;cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;cout<<stu[k].name<<"\t"<<stu[k].num<<"\t"<<stu[k].sex<<"\t"<<stu[k].cclass<<"\t"<<stu[k].age<<"\t"<<stu[k].lisan<<endl;  //设置红色和绿色相加SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);cout<<"已找到,请输入新的信息。"<<endl;stu[k].input();}elsecout<<"没有该生信息"<<endl;cout<<"输入任意字符继续:";getch();}else{cout<<"密码错误无法修改"<<endl;getch();}}/*------------------------------删除数据------------------------------*/
void Message::dele()
{int y;string dp;cout<<"请输入要删除学生的学号:";cin>>dp;y=snum(dp);if(y!=-1){for(;y<n;y++){stu[y].name=stu[y+1].name;stu[y].num=stu[y+1].num;strcpy(stu[y].cclass,stu[y+1].cclass);stu[y].lisan=stu[y+1].lisan;stu[y].age=stu[y+1].age;}n--;}elsecout<<"输入错误,找不到该生信息"<<endl;cout<<"输入任意字符继续";getch();}
/*------------------------------保存数据------------------------------*/
void Message::save()
{ofstream ofs;// 指定路径和打开方式 ofs.open("text.txt", ios::out);// 写内容ofs<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;for(int x=0;x<n;x++){    ofs<<stu[x].name<<"\t"<<stu[x].num<<"\t"<<stu[x].sex<<"\t"<<stu[x].cclass<<"\t"<<stu[x].age<<"\t"<<stu[x].lisan<<endl;}// 5 关闭文件ofs.close();cout<<"输入任意字符继续:";getch();}
/*------------------------------主函数------------------------------*/
int main()
{int password;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//设置绿色和蓝色相加cout<<"★☆★☆★☆★☆★☆★☆★☆★☆请 输 入 密 码 登 录 系 统!★☆★☆★☆★☆★☆★☆★☆★☆"<<endl;cin>>password; if(password==123456){char menu[] = {"欢迎来到我们的班级管理系统!!!\n诚邀各地有志之士加入我们的代码学习群交流:871352155\n"};int i;for(i = 0; menu[i] != '\0'; i++) {Sleep(30);cout<<menu[i];}int y;string ss="y";Message h;do{system("cls");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//设置绿色和蓝色相加cout<<"★☆★☆★☆★☆★☆★☆★☆★☆欢 迎 进 入 班 级 信 息 管 理 系 统!★☆★☆★☆★☆★☆★☆★☆★☆"<<endl;h.menu();cout<<"请输入相应的阿拉伯数字:";cin>>y;switch(y){case 1:h.add();    break;case 2:h.display();break;case 3:h.change(); break;case 4:h.find();   break;case 5:h.dele();   break;case 6:h.save();   break;case 7:ss="n";     break;}}while(ss=="y");return 0;}else{cout<<"密码错误!!!"<<endl; }}

前言

我们诚邀各校有志之士加入我们的代码学习群交流:**871352155**(无论你会C/C++还是Java,Python还是PHP......有兴趣我们都欢迎你的加入,不过还请各位认真填写加群信息。群内目前多为大学生,打广告的先生女士就请不要步足了。我们希望有远见卓识的前辈能为即将步入社会的初犊提出建议指引方向。)

下载链接https://download.csdn.net/download/weixin_43341045/12522379

还有一个C++课程设计关于通讯录的https://blog.csdn.net/weixin_43341045/article/details/106746016

课设要求

对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。功能要求:

(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。

(2)本系统显示这样的菜单:请选择系统功能项:

a学生基本信息录入

b学生基本信息显示

c学生基本信息保存

d学生基本信息删除

e学生基本信息修改(要求先输入密码)

f学生基本信息查询

l按学号查询

l按姓名查询

l按性别查询

l按年龄查询

g 退出系统

(3)执行一个具体的功能之后,程序将重新显示菜单。

(4)将学生基本信息保存到文件中。

(5)进入系统之前要先输入密码。

效果图

说几个特别重点的地方

登录界面

登录的话其实和JavaScript差不多就是说简单的一个密码判断,想要增加一个MD5加密也不是不行。

menu数组和延时函数Sleep0.03s的设置是为了来点花里胡哨的逐字打印的效果,看起来还是比较好看的。

int password;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//设置绿色和蓝色相加cout<<"★☆★☆★☆★☆★☆★☆★☆★☆请 输 入 密 码 登 录 系 统!★☆★☆★☆★☆★☆★☆★☆★☆"<<endl;cin>>password; if(password==123456){char menu[] = {"欢迎来到我们的班级管理系统!!!\n诚邀各地有志之士加入我们的代码学习群交流:871352155\n"};int i;for(i = 0; menu[i] != '\0'; i++) {Sleep(30);cout<<menu[i];}

主菜单

/*------------------------------菜单------------------------------*/
void Message::menu()
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//设置绿色和蓝色相加cout<<"欢迎来到我们的班级管理系统!!!\n诚邀各校有志之士加入我们的代码学习群交流:871352155\n"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);//设置红色和绿色相加cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n";cout<<"☆********************************************************************★\n";cout<<"★                         班级信息管理系统                           ☆\n";cout<<"☆                                                                    ★\n";cout<<"★          1.增加信息                           4.查找信息           ☆\n";cout<<"☆                                                                    ★\n";cout<<"★          2.显示信息                           5.删除信息           ☆\n";cout<<"☆                                                                    ★\n";cout<<"★          3.更改信息                           6.保存信息           ☆\n";cout<<"☆********************************************************************★\n";cout<<"★                            7.退出系统                              ☆\n";cout<<"☆          -------------------------------------------               ★\n";cout<<"☆********************************************************************★\n";cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n"<<endl;}

初始化关于学生的结构体,就相当于数据库的操作了吧,把每个信息存入到你写好的结构中,show函数是为了后面方便显示提前设置好。

int n=0;//初始化,后面采用 class Student
{public:/*--------------------------初始化参数-----------------------------*/string name;string num;string sex; char cclass[20];string age;string mesage; /*--------------------------输入函数-----------------------------*/void input(){cout<<"\t请输入姓名:";       cin>>name;cout<<"\t请输入学号:";       cin>>num;cout<<"\t请输入性别:";       cin>>sex;cout<<"\t请输入班级:";       cin>>cclass;cout<<"\t请输入年龄:";       cin>>age;cout<<"\t请输入备注:";       cin>>mesage;}/*------------------------------show函数------------------------*/void show(){cout<<name<<"\t"<<num<<"\t"<<sex<<"\t"<<cclass<<"\t"<<age<<"\t"<<mesage<<endl;  }
};

查询界面

void Message::display()
{cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;for(int x=0;x<n;x++)stu[x].show();cout<<"输入任意字符继续:";getch();
}

修改界面

题目中有个要求,要先输入密码才可以进行修改信息,无所谓就是加一个pwd嘛。

在修改界面这里其实还可以再多优化一下,但是因为时间原因(毕竟是期末周了)就做了一个可以在修改的时候查看原信息的效果,方便用户看着原信息修改,这样的话其实对于用户来说并不人性化,所有数据无论想改还是不改都要重新输入一次。其实合理点的话,应该是一个三目判断,看用户想改那一部分才修改。

/*------------------------------更改数据------------------------------*/
void Message::change()
{int password;cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆请 输 入 密 码 登 录 系 统!★☆★☆★☆★☆★☆★☆★☆★☆"<<endl;cin>>password; if(password==123456){int k;string cp;cout<<"请输入需修改学生学号:";cin>>cp;k=snum(cp);if(k!=-1){//设置蓝色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);cout<<"该生原信息"<<endl ;cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;cout<<stu[k].name<<"\t"<<stu[k].num<<"\t"<<stu[k].sex<<"\t"<<stu[k].cclass<<"\t"<<stu[k].age<<"\t"<<stu[k].lisan<<endl;  //设置红色和绿色相加SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);cout<<"已找到,请输入新的信息。"<<endl;stu[k].input();}elsecout<<"没有该生信息"<<endl;cout<<"输入任意字符继续:";getch();}else{cout<<"密码错误无法修改"<<endl;getch();}}

修改界面

查询界面有四种查询方法,我们抛开姓名相同的情况和学号。年龄和性别往往是有相同的,我们这里挑性别来说,用户输入性别之后开始调用之前写好的ssex()函数,用来梳理数据。我们采用字符串不断增长的方法,类似于数组操作。因为这里字符串操作更方便,也不需要更多栈队列操作。

string Message::ssex(string nu) // 性别查(有个小问题)
{int i;string number;for(i=0;i<n;i++){if(stu[i].sex==nu){number+=("%d",i);//占位符储存相同性别人的信息 "0235689" "136"}}return number;
}
case 3:{cout<<"请输入需查找学生的性别:";cin>>cp;b=ssex(cp);if(b.length()>0){   cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;for(int i=0;i<b.length();i++){stu[b[i]].show();  }} elsecout<<"没有找到该学生"<<endl;cout<<"输入任意字符继续"<<endl;getch();break;}

保存数据

事先在c++文件同目录根下把text.txt创建出来,当然你也可以用c++写出来。

在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作。

/*------------------------------保存数据------------------------------*/
void Message::save()
{ofstream ofs;// 指定路径和打开方式 ofs.open("text.txt", ios::out);// 写内容ofs<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<<endl;for(int x=0;x<n;x++){    ofs<<stu[x].name<<"\t"<<stu[x].num<<"\t"<<stu[x].sex<<"\t"<<stu[x].cclass<<"\t"<<stu[x].age<<"\t"<<stu[x].mesage<<endl;}// 5 关闭文件ofs.close();cout<<"输入任意字符继续:";getch();

C++课程设计班级管理系统相关推荐

  1. 数据结构课程设计-班级考勤管理系统

    数据结构课程设计-班级考勤管理系统 写这个博客,主要是为了总结一下,之前写过的东西,方便以后回来看看,写得不好,勿喷!!! 题目描述: 设计一个对本班所有人员进行考勤的管理系统,要求系统管理员(班长. ...

  2. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统

    <C语言课程设计-书店管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计-书店管理系统(25页珍藏版)>请在人人文库网上搜索. 1.计算机程序设计计算机程序设计(C(C ...

  3. oracle课程设计图书销售系统,oracle课程设计图书管理系统

    oracle课程设计图书管理系统 数据库课程设计 设计名称:图书管理系统 组员:尚靖伟(122068) 张红凯(122072) 班级:计 G121 班信息工程学院计算机系 2013 年 6 月 27 ...

  4. c语言编程票务系统,C语言课程设计票务管理系统

    C语言课程设计票务管理系统 C语言课程设计1西安交通大学城市学院C语言程序设计课程设计报告题目图书信息管理系统专业自动化班级自动化101姓名陈蕾完成日期2012年5月31日C语言课程设计2目录第一章项 ...

  5. java设计火车的类,JAVA课程设计--火车票管理系统

    JAVA课程设计--火车票管理系统 ******************* 实践教学实践教学 ******************* 兰州理工大学兰州理工大学 计算机与通信学院 2013 年秋季学期 ...

  6. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  7. 软件工程课程设计“作业管理系统”的总结和期望

    目录 一.软件工程课程设计"作业管理系统"的总结和期望 该系统研究的意义 功能概述 web网上作业管理系统的实现 注册与登录功能的实现 作业提交功能实现 教师批改作业的功能实现 总 ...

  8. java课设 火车订票_JAVA课程设计火车票管理系统

    JAVA课程设计火车票管理系统 *******************实践教学*******************兰州理工大学计算机与通信学院2013 年秋季学期Java 课程设计题 目: 火车票管 ...

  9. 销售管理c语言程序设计,C语言课程设计销售管理系统

    C语言课程设计销售管理系统 C语言课程设计 题 目 商品销售系统 指导教师 曹东燕 学生姓名 刘伟 张新星 马国文 学 号 200900804072 200901802005 200900804051 ...

  10. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

最新文章

  1. java map缓存6_Java内存缓存-通过Map定制简单缓存
  2. java 制作类似DOS功能
  3. C# 虚方法与抽象方法区别
  4. 《Python Cookbook 3rd》笔记(5.7):读写压缩文件
  5. Linux系统编程19:基础IO之了解Linux中的标准输入和输出以及相关的系统调用接口(如write,read等)
  6. 创编游戏计算机课反思,游戏课创编设计(王秀英)
  7. ajax爬取微博,自动滚屏抓取新浪微博
  8. S5p4418平台AP6212 WIFI稳定性的解决过程
  9. Android Netd ndc
  10. 什么是外汇EA呢?工作的原理又是什么呢?送给不懂外汇EA
  11. Python报错 TypeError: super(type, obj): obj must be an instance or subtype of type
  12. 软件测试——基础理论知识你都不一定看得懂
  13. Ubuntu20.04 安装 Ipopt + cppAD流程,一键到底没有废话(复制流攻略)
  14. 深入了解戴维斯双击和戴维斯双杀
  15. 一款vista边栏Gadgets汉英翻译(翻译14种语言的边栏工具下载)
  16. 微信小程序基础学习(4):自定义组件
  17. webpack entry入口
  18. 清华2020计算机系张晨,本科三篇顶会一作、超算竞赛冠军,2020清华本科特奖结果出炉...
  19. vipkid少儿英语怎么样?孩子学完三个月课程后,结果。。。。。。
  20. 蚂蚁分类信息系统伪静态规则设置教程

热门文章

  1. 【离散数学】第五版前四章知识网图
  2. VC++2010安装教程
  3. 基于Android P,自定义Android开机动画的方法
  4. html swf格式转换器,蒲公英SWF格式转换器
  5. Shell脚本学习指南 下载
  6. 《Shell脚本学习指南》
  7. vs2019番茄助手 附安装教程
  8. python测网速_tespeed-测试网速的Python工具
  9. VC2008学习笔记
  10. 操作系统实验二、进程通信实验——f(x,y) = f(x) + f(y)