文件操作学生信息管理系统.docx
- 文档编号:6223732
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:11
- 大小:23.19KB
文件操作学生信息管理系统.docx
《文件操作学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《文件操作学生信息管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
文件操作学生信息管理系统
重庆交通大学计算机及信息学院
综合性设计性实验报告
班级:
计算机科学及技术专业10级四班
实验项目名称:
文件操作
实验项目性质:
综合性实验
实验所属课程:
面向对象程序设计
实验室(中心):
软件及通信实验中心
学生姓名:
韩旭辉
指导教师:
王政霞
实验完成时间:
2011年6月23日
一、实验目的
培养学生面向对象程序设计思想及分析方法,提高学生对知识的综合应用能力及程序设计能力。
二、实验内容及要求
编写程序,用文件实现对学生数据的处理。
⑴学生数据输入
⑵学生数据显示
⑶学生数据查询
要求:
①用菜单方式实现;
②类的定义:
先定义person类(存放在“person.h”中),派生出学生类(存放在“student.h”中),在学生类中重载“<<”、“>>”实现学生数据的输入/输出(输出时各列对整齐);
③学生数据查询按学号或姓名查询;
三、实验设备及软件
计算机、VisualC++6.0
四、设计方案
㈠题目:
学生数据处理
㈡设计的主要思路
1.程序头文件包括c++输入输出操作文件,文件操作流,字符串操作等头文件.
2.首先定义一个person类,它的数据成员有姓名,性别,成员函数包括姓名,性别的返回,输入和输出.
3.建立student类,公有继承person类,在student类中数据成员有学生的学号,年龄,出生日期(包括年月日),成员函数包括虚函数姓名,性别的输入输出函数,以及运用运算符重载函数输入输出函数进行学号,年龄,出生日期的输入输出.
4.主函数中,定义一个student的对象,以便对student类和person类中的数据成员,成员函数调用,然后定义输入输出流对象f1,f2,为接下来的文件操作做好铺垫,主函数中有一个菜单.以便操作时简单,容易,设计循环结构以便实现数据的多次操作,菜单主要包括学生数据的输入输出,以及进行学生数据的查找,使用switch,while等循环,对各个菜单的功能加以分化,以便实现根据不同的操作指令,程序执行不同的功能;在d盘中建立一个文件夹,以便实现程序的正常运行;学生数据的查找采用输入姓名的查找方式实现.
㈢主要功能
1.学生数据的输入.
2.学生数据的输出.
3.学生数据的查询..
五、主要代码
#include
#include
#include
classperson
{
public:
charname[11];
charsex[3];
char*get_name(void)
{returnname;}
char*get_sex(void)
{returnsex;}
voidprint(void);
voidinput(void);
};
voidperson:
:
print(void)
{
cout<<"姓名:
"< cout<<"性别: "< } voidperson: : input(void) { cout<<"姓名: "; cin>>name; cout<<"性别: "; cin>>sex; } classstudent: publicperson { public: intnum,age,year,month,day; virtualvoidget_input() {person: : input();} virtualvoidget_output() {person: : print();} friendistream&operator>>(istream&,student&); friendostream&operator<<(ostream&,student&); }; istream&operator>>(istream&input,student&obj) { cout<<"学号: "; input>>obj.num; cout<<"年龄: "; input>>obj.age; cout<<"出生日期: 年: "; input>>obj.year; cout<<"月: "; input>>obj.month; cout<<"日: "; input>>obj.day; returninput; } ostream&operator<<(ostream&output,student&obj) { cout<<"学号: "; output< cout<<"年龄: "; output< "<<""; cout<<"年: "; output< cout<<"月: "; output< cout<<"日: "; output< returnoutput; }; voidmain() { studentobj; ifstreamf1; ofstreamf2; intn=1; charch; while(n) { cout<<"\n***********************"; cout<<"\n*学生信息处理主菜单: *"; cout<<"\n*---------------------*"; cout<<"\n*1.学生基本数据输入*"; cout<<"\n*2.学生基本数据输出*"; cout<<"\n*3.学生基本数据查找*"; cout<<"\n*4.退出系统*"; cout<<"\n***********************"; cout<<"\n请输入你选择(0-4): "; cin>>n; switch(n) {case0: break; case1: { ofstreamf2("d: \\vcprg\\test.txt"); if(! f2) { cout<<"\acan'topentest.txt"; return; } charch='y'; while(ch=='y') { cout<<"请输入此学生信息: \n"; obj.get_input(); cin>>obj; f2.write((char*)&obj,sizeof(student)); cout<<"继续吗? (y/n)"; cin>>ch; } f2.close(); break; } case2: { ifstreamf1("d: \\vcprg\\test.txt"); if(! f1) { cout<<"\acan'topentest.txt"; return; } while(f1.peek()! =EOF) { f1.read((char*)&obj,sizeof(student)); obj.get_output(); cout< cout< } cout< f1.close(); break; } case3: { charna[11]; intflag; ch='y'; f1.open("d: \\vcprg\\test.txt"); while(ch=='y') { cout<<"\n请输入查找学生的姓名: "; cin>>na; ifstreamf1("d: \\vcprg\\test.txt"); if(! f1) { cout<<"\acan'topentest.txt"; return; } while(! f1.eof()) { f1.read((char*)&obj,sizeof(student)); if(strcmp(na,obj.name)==0) { obj.get_output(); cout< break; } } cout< cout<<"无输出的话即没有这名学生,继续查找吗? (y/n)"; cin>>ch; } cout< break; } case4: cout<<"退出系统! "< break; } cout<<"是否继续操作? (y/n): "; cin>>ch; if(ch! ='y') break; } } 六、测试结果及说明 测试结果: *********************** *学生信息处理主菜单: * *---------------------* *1.学生基本数据输入* *2.学生基本数据输出* *3.学生基本数据查找* *4.退出系统* *********************** 请输入你选择(0-4): 1 请输入此学生信息: 姓名: 张三 性别: 男 学号: 1001 年龄: 18 出生日期: 年: 1990 月: 3 日: 6 继续吗? (y/n)y 请输入此学生信息: 姓名: 李四 性别: 男 学号: 1002 年龄: 19 出生日期: 年: 1989 月: 5 日: 8 继续吗? (y/n)y 请输入此学生信息: 姓名: 王萍 性别: 女 学号: 1003 年龄: 17 出生日期: 年: 1991 月: 2 日: 15 继续吗? (y/n)n 是否继续操作? (y/n): y *********************** *学生信息处理主菜单: * *---------------------* *1.学生基本数据输入* *2.学生基本数据输出* *3.学生基本数据查找* *4.退出系统* *********************** 请输入你选择(0-4): 2 姓名: 张三 性别: 男 学号: 1001年龄: 18出生日期: 年: 1990月: 3日: 6 姓名: 李四 性别: 男 学号: 1002年龄: 19出生日期年: 1989月: 5日: 8 姓名: 王萍 性别: 女 学号: 1003年龄: 17出生日期: 年: 1991月: 2日: 15 是否继续操作? (y/n): y *********************** *学生信息处理主菜单: * *---------------------* *1.学生基本数据输入* *2.学生基本数据输出* *3.学生基本数据查找* *4.退出系统* *********************** 请输入你选择(0-4): 3 请输入查找学生的姓名: 张三 姓名: 张三 性别: 男 学号: 1001年龄: 18出生日期: 年: 1990月: 3日: 6 无输出的话即没有这名学生,继续查找吗? (y/n)y 请输入查找学生的姓名: 王萍 姓名: 王萍 性别: 女 学号: 1003年龄: 17出生日期: 年: 1991月: 2日: 15 无输出的话即没有这名学生,继续查找吗? (y/n)y 请输入查找学生的姓名: 小明 无输出的话即没有这名学生,继续查找吗? (y/n)n 是否继续操作? (y/n): y *********************** *学生信息处理主菜单: * *---------------------* *1.学生基本数据输入* *2.学生基本数据输出* *3.学生基本数据查找* *4.退出系统* *********************** 请输入你选择(0-4): 4 退出系统! 是否继续操作? (y/n): n pressanykeytocontinue 说明: 程序正确的完成了所要求的功能. 七、实验体会 通过此次实验,我认识到了自己的不足之处,知道了自己在哪些地方还需要多下功夫,以及学到了以前不知道的知识,在接下来的时间里我会多做一些类似的实验题目,更好的巩固自己学到的知识和学到一些课本里没有的知识,充实自己.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 操作 学生 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)