结构体数组实现的简易学生信息管理系统
生活随笔
收集整理的這篇文章主要介紹了
结构体数组实现的简易学生信息管理系统
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<fstream>
#include<conio.h>
using namespace std;
const int maxx = 4;
struct student {int idnum;char name[40];char sex;int age;
}stu[maxx];//最多添加4個學(xué)生
void choice();
void dell();
void xiugai();
void baocun();
void display()
{cout << "-----------------------學(xué)生管理菜單----------------------\n";cout << "1 添加學(xué)生" << " " << "2 刪除學(xué)生 3 查詢學(xué)生信息 4修改信息 5保存 6退出" << endl;
}
void init()
{//初始化函數(shù)for (int i = 0; i < maxx; i++){stu[i].name[40] = '\0';stu[i].sex = '\0';stu[i].age = 0;}
}
void add()
{int k = 0, j;for (int i = 0; i < maxx; i++){if (stu[i].sex == '\0') k++;}cout << "剩余" << k << "個記錄可以添加\n";cout << "請輸入你要添加的學(xué)生個數(shù);\n";cin >> j;if (j > k) {cout << "error number";cout << endl;display();choice();}elsefor (int i = 0; i < j; i++){for (int h = 0; h < maxx; h++) {if (stu[h].sex == '\0'){cout << "請輸入第" << i + 1 << "個學(xué)生學(xué)號 姓名 性別(用m表示男 w表示女)年齡" << endl;cin >> stu[h].idnum >> stu[h].name >> stu[h].sex >> stu[h].age;for (int g = 0; g < maxx; g++){if (stu[g].idnum == stu[h].idnum && g != h){cout << "該學(xué)號不能添加" << endl;display();}}if (stu[h].sex != 'w' && stu[h].sex != 'm'){stu[h].sex = '\0';cout << "性別輸入錯誤\n";display();}if (stu[h].age < 1 || stu[h].age >100){stu[h].sex = '\0';cout << "年齡輸入錯誤" << endl;}break;}}cout << "\n學(xué)生添加成功\n";}display();choice();
}
void dell()
{//刪除功能int id,count=0;cout << "您想刪除的學(xué)生學(xué)號:\n";cin >> id;for (int i = 0; i < maxx; i++){if (stu[i].idnum == id){count++;stu[i].idnum = -1;stu[i].name[40] = '\0';stu[i].sex = '\0';stu[i].age = 0;cout << "刪除成功" << endl;break;}}if (count == 0){cout << "該學(xué)號不存在\n";}display();choice();
}void inqui() {int id , count = 0;cout << "您想查詢的學(xué)生學(xué)號(輸入0查看所有學(xué)生):\n";cin >> id;if (id == 0){for (int i = 0; i < maxx; i++){if (stu[i].sex != '\0')cout << stu[i].idnum << " " << stu[i].name << " " << stu[i].sex << " " << stu[i].age << " \n";}}else {for (int i = 0; i < maxx; i++){if (stu[i].idnum == id){count++;cout << stu[i].idnum << " " << stu[i].name << " " << stu[i].sex << " " << stu[i].age << " ";}}if (count == 0)cout << "不存在這個學(xué)號的學(xué)生!\n";}display();choice();}void xiugai(){int count = 0;cout << "您想修改的學(xué)生學(xué)號:\n";int id;cin >> id;int i;for (i = 0; i < maxx; i++){if (stu[i].idnum == id){count++;cout << "您要修改的學(xué)生信息:";cout << stu[i].idnum << " " << stu[i].name << " " << stu[i].sex << " " << stu[i].age << " \n";cout << "請重新輸入信息 按學(xué)號 姓名 性別 年齡輸入;\n";cin >> stu[i].idnum >> stu[i].name >> stu[i].sex >> stu[i].age;cout << "已經(jīng)修改";break;}}if (count == 0)cout << "該學(xué)號不存在!\n"; \display();choice();}void baocun(){FILE* mysfile = NULL;mysfile = fopen("ooo.txt", "r");for (int i = 0; i < maxx; i++) {fscanf(mysfile, "%d", &stu[i].idnum);fscanf(mysfile, "%s",stu[i].name);fscanf(mysfile, "%s", stu[i].sex);fscanf(mysfile, "%d", stu[i].age);}cout << "信息已經(jīng)保存\n";fclose(mysfile);display();choice();}void exit(){system("cls");exit(1);}void choice(){int a;cout << "請選擇功能:\n";cin >> a;if (a == 1 || a == 2 || a == 3 || a == 4){switch (a){case 1:add();case 2: dell(); break;case 3:inqui(); break;case 4:xiugai(); break;case 5:baocun(); break;case 6:exit(); break;default:cout << "輸入選擇有錯誤!\n";break;}}}int main(){init();display();choice();}
總結(jié)
以上是生活随笔為你收集整理的结构体数组实现的简易学生信息管理系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法类问题
- 下一篇: 关于宽字符(C++将中文文本文件的内容输