收藏 分销(赏)

学生信息管理系统C++代码.doc

上传人:精*** 文档编号:4054095 上传时间:2024-07-26 格式:DOC 页数:7 大小:28.04KB 下载积分:6 金币
下载 相关 举报
学生信息管理系统C++代码.doc_第1页
第1页 / 共7页
学生信息管理系统C++代码.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
1. 程序执行后的部分效果 1。1项目主菜单效果图 1。2初始化信息,第一次对信息的录入 1.3添加学生信息 1。4删除某学生信息 1.5修改某学生信息 1。6查询某学生信息 1.7显示全部学生信息 源代码: /*把StudentData.cpp(源代码) 和 student。txt(数据存放处)放在同一个文件夹下*/ #include 〈iostream〉 #include <string〉 #include <fstream〉 #include <string〉 #include 〈iomanip〉 using namespace std; //最多提供50个学生的数据,可根据需要进行更改 const int MAX = 50; int count = 0; //用来统计学生人数 class Student { public: void Set(); //初始化信息,第一次对信息的录入 void Add(); //添加学生信息 //从磁盘读取数据以便 进行 数据的操作,方便再重写进磁盘 friend void Read(string no[],string name[],string sex[],string special[],string clas[]); int Judge(string num); //判断 num 是否在学生信息数据库中(注意它有一个参数,并且有一个int型的返回值) void Delete(); //删除某学生信息 void Change(); //修改某学生信息 void Search(); //查询某学生信息 void Display(); //显示全部学生信息 private: string m_no; string m_name; string m_sex; //m_ 指的是成员变量(member) string m_special; string m_clas; }; void Student::Set() { string no, name, sex, special, clas; ofstream outfile("student。txt”); //打开文件 if(!outfile) { cerr〈<" open error”<〈endl; exit(1); //退出程序 } cout〈<"当学号输入为 0 时,停止输入!”<<endl; cout〈〈”请依次输入学生的学号,姓名,性别,专业,班级:”〈〈endl; for(int i=0; i<MAX; i++) { cout<<"第”〈〈count+1<〈”个学生:”〈<endl; cin>>no; if(no == "0”) break; //当输入的学号是 0 时,停止录入 cin〉〉name〉〉sex〉〉special>〉clas; count++; m_no = no; outfile〈〈m_no〈〈”\t”; //每录入一个学号,写进磁盘保存,以下同理 m_name = name; outfile〈〈m_name〈〈"\t”; m_sex = sex; outfile〈〈m_sex〈〈”\t”; m_special = special; outfile<〈m_special〈<"\t”; m_clas = clas; outfile〈〈m_clas〈〈endl; } outfile。close(); } //添加学生信息 void Student::Add() { string no, name, sex, special, clas; //以追加的方式录入信息,直接将信息追加到以前文件的末尾 ofstream outfile(”student。txt”,ios::app); if(!outfile) { cerr〈〈” open error"<〈endl; exit(1); } count++; //添加一个学生信息,当然 count 要 +1 cout<〈"请依次输入要添加的学生学号,姓名,性别,专业,班级:”〈<endl; cin>〉no>〉name〉〉sex〉〉special>>clas; m_no = no; outfile〈<m_no〈〈”\t”; m_name = name; outfile〈<m_name〈〈”\t”; m_sex = sex; outfile〈<m_sex〈〈”\t”; m_special = special; outfile<〈m_special<<”\t”; m_clas = clas; outfile〈〈m_clas〈<endl; outfile。close(); cout<<"已添加成功!"〈<endl; } //从磁盘读取数据 void Read(string no[],string name[],string sex[],string special[],string clas[]) { ifstream infile(”student。txt”,ios::in); if(!infile) { cerr<〈” open error”〈〈endl; exit(1); } for(int i=0; i<count; i++) //只读取存放在数组中 但不对其进行相关操作 { infile>〉no[i]〉〉name[i]〉〉sex[i]〉〉special[i]〉〉clas[i]; } infile.close(); } //判断某学号的学生是否在数据库中 int Student::Judge(string num) { string no[MAX], name[MAX], sex[MAX], special[MAX], clas[MAX]; Read(no, name, sex, special, clas); //调用Read()函数,获取数据,以便等下进行相关数据的判断 for(int i=0; i<count; i++) { if(num == no[i]) { return i; //如果存在,返回其下标 break; } } return -1; //否则,返回—1 } //删除某学生信息 void Student::Delete() { string num, no[MAX], name[MAX], sex[MAX], special[MAX], clas[MAX]; Read(no, name, sex, special, clas); //读取学生所有数据, cout〈<”请输入你要删除的学生学号:”; cin〉〉num; int k = Judge(num); //定义一个k来接收Judge()的返回值,等下用来判断该num是否存在 if(k != -1) //如果k不等于—1, 表示要删除的学生存在 { ofstream outfile(”student.txt"); if(!outfile) { cerr〈<” open error”<〈endl; exit(1); } for(int i=0; i<count; i++) { if(i != k) //把下标不等于K(即除了要删的学生外)其余的数据重新写入磁盘保存 { outfile〈〈no[i]〈〈"\t"; outfile<〈name[i]<〈”\t"; outfile<〈sex[i]〈<”\t”; outfile<<special[i]〈<”\t”; outfile<〈clas[i]<〈endl; } } outfile.close(); count——; //删除一个学生,人数 -1 cout〈〈”删除成功!”〈〈endl; } else cout〈<”该数据库没有此学生!”〈<endl; } void Student::Change() { string num, no[MAX], name[MAX], sex[MAX], special[MAX], clas[MAX]; cout〈〈"请输入你要修改的学生学号:”; cin>〉num; int k = Judge(num); if(k != —1) { Read(no, name, sex, special, clas); //读取学生所有数据, cout<〈”请依次输入修改后的学生学号,姓名,性别,专业,班级:”〈〈endl; cin>〉no[k]>>name[k]>>sex[k]>〉special[k]〉>clas[k]; //把下标是k的学生进行修改 ofstream outfile(”student。txt”,ios::out); if(!outfile) { cerr〈〈" open error"〈<endl; exit(1); } for(int i=0; i<count; i++) //改完后,回写进磁盘保存 { outfile〈〈no[i]<〈”\t"; outfile〈〈name[i]<<”\t"; outfile〈<sex[i]〈〈”\t"; outfile〈〈special[i]〈<”\t”; outfile〈<clas[i]〈<endl; } outfile.close(); cout<〈"修改成功!”〈<endl; } else cout〈〈"该数据库没有此学生!”<〈endl; } void Student::Search() { string num, no[MAX], name[MAX], sex[MAX], special[MAX], clas[MAX]; Read(no, name, sex, special, clas); cout〈〈"请输入你要查找的学生学号”; cin〉〉num; int k = Judge(num); if(k != —1) //找到该学生就打印出其信息 { cout<〈”学号\t姓名\t性别\t专业\t班级”〈〈endl; cout〈<no[k]〈<”\t”; cout<〈name[k]〈〈”\t"; cout<〈sex[k]〈〈”\t”; cout<<special[k]〈<"\t"; cout<〈clas[k]〈〈endl; } else cout〈〈”该数据库没有此学生!”<<endl; } //显示学生的所有信息 void Student::Display() { string no[MAX], name[MAX], sex[MAX], special[MAX], clas[MAX]; Read(no, name, sex, special, clas); //先读取 cout〈〈"学号\t姓名\t性别\t专业\t班级"<〈endl; for(int i=0; i<count; i++) //后打印 { cout〈〈no[i]<〈”\t”; cout〈<name[i]<<”\t"; cout〈<sex[i]<〈"\t"; cout<〈special[i]〈〈”\t”; cout<<clas[i]〈〈endl; } } int main() { int choice = —1; Student s; while(choice != 0) //除非你选择退出,否则一直循环 { cout<<"\n\t\t\t--学生信息管理系统——\n\n”; cout〈〈”\t\t\t| 1。录入学生信息 |\n”; cout〈<"\t\t\t| 2.添加一个信息 |\n”; cout<〈"\t\t\t| 3.删除一个信息 |\n”; cout<〈”\t\t\t| 4。修改学生信息 |\n”; cout〈〈”\t\t\t| 5.查询学生信息 |\n”; cout〈<”\t\t\t| 6。显示学生信息 |\n”; cout<〈”\t\t\t| 0。退出 系统 |\n”; cout〈〈”请选择所需要的操作:”; cin>>choice; switch(choice) { case 1: s。Set(); break; case 2: s。Add(); break; case 3: s。Delete(); break; case 4: s。Change(); break; case 5: s。Search(); break; case 6: s。Display(); break; case 0: break; default: cout<<”你的选择有误!请重新选择!”〈〈endl; break; } } return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服