您的位置:首页 > 编程语言 > C语言/C++

简单的课程信息管理(文本文件操作,c++)

2009-07-14 11:48 295 查看
数据追加方面还待解决。马马虎虎写的。以后改进。

#include<iostream>
#include<fstream>
using namespace std;

/*默认文件是student.data"*/
#define N  100

struct Course
{
int num;
char name[100];
char mayor[100];
char kind[100];
int time;
int fen;
};

Course course
;
int n;
Course temp;

//输入到文件
void InputToFile()
{

//如果不存在则创建

int i;
fstream fs;
fs.open("student.data",ios::out);
for(i=0;i<n;i++)
{
temp=course[i];
fs<<temp.num<<" "<<temp.name<<" "<<temp.mayor<<" "<<temp.kind<<" "<<temp.time<<" "<<temp.fen<<" ";

}
fs.close();
}

void OutputFromFile()
{
fstream onfile;
onfile.open("student.data",ios::in);
if(!onfile)
{
cout<<"文件不存在"<<endl;
return ;
}
n=0;
while(onfile>>course
.num)
{
onfile>>course
.name>>course
.mayor>>course
.kind>>course
.time>>course
.fen;
n++;
}
onfile.close();
}
//显示
void Display()
{
int i;
OutputFromFile();
if(n==0) {cout<<"暂无记录"<<endl;return;}
cout<<"课程号	课程名	所属专业	性质	学时	学分"<<endl;
for(i=0;i<n;i++)
{
cout<<course[i].num<<" "<<course[i].name<<" "<<course[i].mayor<<" "<<course[i].kind<<" "<<course[i].time<<" "<<course[i].fen<<endl;
}

}
//增加数据
void AddData()
{
cout<<"请按(课程号	课程名	所属专业	性质	学时	学分)格式输入一条记录"<<endl;
cout<<"当学号为-1时退出"<<endl;
n=0;
do
{
cin>>temp.num;
if(temp.num==-1) break;
cin>>temp.name>>temp.mayor>>temp.kind>>temp.time>>temp.fen;
//	InputToFile(0);
course[n++]=temp;
}while(true);
InputToFile();
}
//修改数据 
void ModifyData()
{
cout<<"请输入你要修改的课程号"<<endl;
cin>>temp.num;
OutputFromFile();
int i,t;
t=-1;
for(i=0;i<n;i++)
{
if(temp.num==course[i].num) {t=1;break;}
}
if(t==-1) {cout<<"不存在该课程号"<<endl;return;}
cout<<"查找成功,请输入你要修成的信息,按(课程号	课程名	所属专业	性质	学时	学分)格式输入"<<endl;
cin>>course[i].num>>course[i].name>>course[i].mayor>>course[i].kind>>course[i].time>>course[i].fen;

for(i=0;i<n;i++)
{
temp=course[i];
InputToFile();
}
}
//查询数据
void  Search()
{
OutputFromFile();
int i,choose;
cout<<"1.按课程名查询"<<endl;
cout<<"other.按专业查询"<<endl;
cin>>choose;
if(choose==1)
{
cout<<"请输入课程名"<<endl;
cin>>temp.name;
for(i=0;i<n;i++)
{
if(strcmp(temp.name,course[i].name)==0)
{
temp=course[i];
break;
}
}
}
else
{
cout<<"请输入专业"<<endl;
cin>>temp.mayor;
for(i=0;i<n;i++)
{
if(strcmp(temp.mayor,course[i].mayor)==0)
{
temp=course[i];
break;
}
}
}
if(i==n) {cout<<"无此信息"<<endl;return;}
else
{
cout<<"查找成功"<<endl;
cout<<temp.num<<" "<<temp.name<<" "<<temp.mayor<<" "<<temp.kind
<<" "<<temp.time<<" "<<temp.fen<<endl;
}
}

int main()
{
int choose;
do
{
cout<<"1.浏览数据"<<endl;
cout<<"2.增加数据"<<endl;
cout<<"3.修改数据"<<endl;
cout<<"4.查询数据"<<endl;
cout<<"other.退出"<<endl;
cin>>choose;
if(choose==1) Display();
else if(choose==2) AddData();
else if(choose==3) ModifyData();
else if(choose==4) Search();
else break;

}while(true);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: