怎样用C++编写一个学校人员管理系统?
要求:用到类,继承与多态,链表,可以进行异常处理;用户输入的信息可以保存也可不保存,用户可以根据需要删除,增加,修改
要求:用到类,继承与多态,链表,可以进行异常处理;用户输入的信息可以保存也可不保存,用户可以根据需要删除,增加,修改
答案:某一个类对像对应一个记录。对应一个类创建一个结构体,把类中的这个对象的所有成员姓名之类的赋给该结构体。然后用write写进文件。具体我说一下对记录的查找,修改和删除。
增加就不讲了直接在文件后追加记录就可以了。
查找,和删除的原里都是一样的,懂得了修改就懂得了查找删除。
修改:
1找到记录(以输入的姓名为例找到记录)
以read读取文件中的记录,打开文件的时候让问件指针从文件开头指到末尾。while(!infile.eof())一直
到strcmp(stru.name,name)==0,就break跳出while;infile.eof()当问件指到末尾就返回1.
stru.name 是文件中的记录name,name为你要找到的名字
2如果找到了就修改你想要的操作,从原来的位置write进文件,把新的记录覆盖旧的记录就可以了啊。但这里就要注意了啊文件此时的指针已经指到了该记录的下一个记录了啊,若此时write就会覆盖下一条记录了
我们想要的是指针指到我刚找到的记录的前面,所以刚开始的时候就要获取指针的位置iofile.tellg()为取得文件的指针位置。如果想删除就把原来的东西置空就可以了。
while(!iofile.eof())//直到文件指向末尾
{
p=iofile.tellg();//得到文件当前的位置
iofile.read((char *)&Istruct,sizeof(Istruct));
i=strcmp(Istruct.name,name);
if(0==i)//输入的姓名与文件记录中的一样就执行删除命令
{
strcpy(Istruct.name,"");//把该记录置为空
strcpy(Istruct.phonenumber,"");
iofile.seekp(p);//把指针放到该记录的开头
iofile.write((char *)&Istruct,sizeof(Istruct));//开始执行删除命令
cout<<"\t\tdelet record success!"<<endl;
break;
}
}
iofile.close();
if(i!=0)
{
cout<<"\t\tcannot find the record!"<<endl;这个有点复杂,没有源代码给你的,你上CSDN看看。