版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、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个学生
2、的数据,可根据需要进行更改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 Del
3、ete();/删除某学生信息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&l
4、t;<" 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
5、") 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&l
6、t;<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;
7、exit(1); count+;/添加一个学生信息,当然 count 要 +1cout<<"请依次输入要添加的学生学号,姓名,性别,专业,班级:"<<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
8、_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("stu
9、dent.txt",ios:in);if(!infile)cerr<<" open error"<<endl;exit(1);for(int i=0; i<count; i+)/只读取存放在数组中 但不对其进行相关操作infile>>noi>>namei>>sexi>>speciali>>clasi;infile.close();/判断某学号的学生是否在数据库中int Student:Judge(string num)string noMAX, nameMAX, sexMAX
10、, specialMAX, clasMAX;Read(no, name, sex, special, clas);/调用Read()函数,获取数据,以便等下进行相关数据的判断for(int i=0; i<count; i+)if(num = noi)return i;/如果存在,返回其下标break;return -1;/否则,返回-1/删除某学生信息void Student:Delete()string num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);/读取学生所有数
11、据,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(即
12、除了要删的学生外)其余的数据重新写入磁盘保存outfile<<noi<<"t"outfile<<namei<<"t"outfile<<sexi<<"t"outfile<<speciali<<"t"outfile<<clasi<<endl;outfile.close();count-;/删除一个学生,人数 -1cout<<"删除成功!"<<endl;els
13、ecout<<"该数据库没有此学生!"<<endl;void Student:Change()string num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;cout<<"请输入你要修改的学生学号:"cin>>num;int k = Judge(num);if(k != -1)Read(no, name, sex, special, clas);/读取学生所有数据,cout<<"请依次输入修改后的学生学号,姓名,性别,专业,班级:&quo
14、t;<<endl;cin>>nok>>namek>>sexk>>specialk>>clask;/把下标是k的学生进行修改ofstream outfile("student.txt",ios:out);if(!outfile) cerr<<" open error"<<endl; exit(1); for(int i=0; i<count; i+)/改完后,回写进磁盘保存outfile<<noi<<"t"out
15、file<<namei<<"t"outfile<<sexi<<"t"outfile<<speciali<<"t"outfile<<clasi<<endl;outfile.close();cout<<"修改成功!"<<endl;elsecout<<"该数据库没有此学生!"<<endl;void Student:Search()string num, noM
16、AX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);cout<<"请输入你要查找的学生学号"cin>>num;int k = Judge(num);if(k != -1)/找到该学生就打印出其信息cout<<"学号t姓名t性别t专业t班级"<<endl;cout<<nok<<"t"cout<<namek<<"t"cout&
17、lt;<sexk<<"t"cout<<specialk<<"t"cout<<clask<<endl;elsecout<<"该数据库没有此学生!"<<endl;/显示学生的所有信息void Student:Display()string noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);/先读取cout<<"学号t姓名t
18、性别t专业t班级"<<endl;for(int i=0; i<count; i+)/后打印cout<<noi<<"t"cout<<namei<<"t"cout<<sexi<<"t"cout<<speciali<<"t"cout<<clasi<<endl;int main()int choice = -1;Student s;while(choice != 0)/除非你选择退出,否则一直循环cout<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量知识竞赛题目及答案
- 医院人事准入制度
- 22 羿射九日 课件(共23张)
- 电力电子技术 教案 上 大连工业版 0.1 电力电子技术-2.3 集成移相触发电路
- 子宫输卵管造影共识操作规范与分人群诊疗方案总结2026
- 年产20000吨高端装备及高品质轨道交通环境影响报告表
- 2026福建农科所面试题及答案
- 2026年6G网络干扰感知路由优化
- 2026安防运维管理面试题及答案
- 住房城乡建设系统城市内涝风险普查技术导则试 行
- 项目三南美白对虾的人工育苗技术
- 全国中小学生安全知识竞赛试卷及答案
- (完整)管理学决策树习题及答案
- GB/T 6451-2015油浸式电力变压器技术参数和要求
- GB/T 5751-2009中国煤炭分类
- CB/T 3226-1995驾驶室固定矩形窗
- 第一性原理方法介绍-讲座1
- QBY3气动隔膜泵说明书
- 《思想政治教育学原理》第一章-思想政治教育发展-第二章思想政治教育本质特征-第三章-思想政治教育地位功能课件
- 校外实习考勤表(模板)
- 西门子SPPA-T3000操作手册
评论
0/150
提交评论