鄙人仅为一名普普通通大二学生,才学浅出,来此各地高人聚集处书写浅见,还望各位前辈高人多多指点海涵。我们诚邀各校有志之士加入我们的代码学习群交流:**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<<"★☆★☆★☆★☆★☆★☆★☆★☆请 输 入 密 码 登 录 系 统!★☆★☆★☆★☆★☆★☆★☆★☆"<>password;
if(password==123456)
{
char menu[] = {
"欢迎来到我们的班级管理系统!!!\n诚邀各地有志之士加入我们的代码学习群交流:871352155\n"
};
int i;
for(i = 0; menu[i] != '\0'; i++)
{
Sleep(30);
cout<
/*------------------------------菜单------------------------------*/
void Message::menu()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE);//设置绿色和蓝色相加
cout<<"欢迎来到我们的班级管理系统!!!\n诚邀各校有志之士加入我们的代码学习群交流:871352155\n"<
初始化关于学生的结构体,就相当于数据库的操作了吧,把每个信息存入到你写好的结构中,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<
void Message::display()
{
cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<
题目中有个要求,要先输入密码才可以进行修改信息,无所谓就是加一个pwd嘛。
在修改界面这里其实还可以再多优化一下,但是因为时间原因(毕竟是期末周了)就做了一个可以在修改的时候查看原信息的效果,方便用户看着原信息修改,这样的话其实对于用户来说并不人性化,所有数据无论想改还是不改都要重新输入一次。其实合理点的话,应该是一个三目判断,看用户想改那一部分才修改。
/*------------------------------更改数据------------------------------*/
void Message::change()
{
int password;
cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆请 输 入 密 码 登 录 系 统!★☆★☆★☆★☆★☆★☆★☆★☆"<>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<<"该生原信息"<
查询界面有四种查询方法,我们抛开姓名相同的情况和学号。年龄和性别往往是有相同的,我们这里挑性别来说,用户输入性别之后开始调用之前写好的ssex()函数,用来梳理数据。我们采用字符串不断增长的方法,类似于数组操作。因为这里字符串操作更方便,也不需要更多栈队列操作。
string Message::ssex(string nu) // 性别查(有个小问题)
{
int i;
string number;
for(i=0;i
case 3:{
cout<<"请输入需查找学生的性别:";
cin>>cp;
b=ssex(cp);
if(b.length()>0)
{
cout<<"姓名\t学号\t性别\t班级\t\t年龄\t备注"<
事先在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备注"<