C学生信息管理系统一卡通.docx

上传人:b****7 文档编号:9320064 上传时间:2023-02-04 格式:DOCX 页数:38 大小:21.64KB
下载 相关 举报
C学生信息管理系统一卡通.docx_第1页
第1页 / 共38页
C学生信息管理系统一卡通.docx_第2页
第2页 / 共38页
C学生信息管理系统一卡通.docx_第3页
第3页 / 共38页
C学生信息管理系统一卡通.docx_第4页
第4页 / 共38页
C学生信息管理系统一卡通.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

C学生信息管理系统一卡通.docx

《C学生信息管理系统一卡通.docx》由会员分享,可在线阅读,更多相关《C学生信息管理系统一卡通.docx(38页珍藏版)》请在冰豆网上搜索。

C学生信息管理系统一卡通.docx

C学生信息管理系统一卡通

//由于对fsream的不熟练,不会对指定部分的数据的修改,因而删除了一些功能,同时也导致了只能对消费额进行加减,但不能导入txt文件。

Code:

Uni-cardsystem.h

#include

usingnamespacestd;

classperson

{

public:

voidbuildAdmin();

voidbuildUndergraduate();

voidbuildPostgraduate();

protected:

charname[20];

charsex;

charshape[10];

chartel[12];

};

classconsumer:

publicperson

{

protected:

doublemoney;

};

classstudent:

publicconsumer//定义学生类

{

protected:

charnumber[20];

intage;

charnowClass[20];

charbirthPlace[20];

};

classadmin:

publicperson//定义管理员类

{

public:

voidlogin();

voidadminRegister();

voidadminRegister2();

private:

characcount[12];

charpassword[12];

chartitle;

};

classundergraduate:

publicstudent//定义本科生类

{

public:

voidsearchUndergraduate();

voiddisplayUndergraduate();

voidinputUndergraduate_wrapper();

voidinputUndergraduate();

voidinputUndergraduate1();

voidunderPayout(charstr[]);

voidmonitorPower();

voidoutputClassStudent(chars[]);

voidunderSearchAll();

private:

charmonitor;

};

classpostgraduate:

publicstudent//定义研究生类

{

public:

voidsearchPostgraduate();

voiddisplayPostgraduate();

voidinputPostgraduate_wrapper();

voidinputPostgraduate();

voidinputPostgraduate1();

voidpostPayout(charstr[]);

voidpostSearchAll();

protected:

doublewage;

};

//不清楚教职工是否配备有一卡通,所以暂不考虑教职工类

 

Uni-cardsystem.cpp

#include

#include

#include

#include

#include

#include"uni-cardsystem.h"

usingnamespacestd;

voidonUndergraduate();

voidonPostgraduate();

boolcomp(chars1[],chars2[]);

voidinputStudent();

voidadminOnLogin();

//------------------------------------------------------------------

//---------------------以下为person类中成员函数---------------------

//------------------------------------------------------------------

voidperson:

:

buildAdmin()//建立Admin.txt

{

fstreamfile("Admin.txt",ios:

:

out|ios:

:

app);//打开文件,指针指向文件尾

file.close();//关闭文件

}

voidperson:

:

buildUndergraduate()//建立Undergraduate.txt

{

fstreamfile("Undergraduate.txt",ios:

:

out|ios:

:

app);//打开文件,指针指向文件尾

file.close();//关闭文件

}

voidperson:

:

buildPostgraduate()//建立Postgraduate.txt

{

fstreamfile("Postgraduate.txt",ios:

:

out|ios:

:

app);//打开文件,指针指向文件尾

file.close();//关闭文件

}

//------------------------------------------------------------------

//--------------------以下为admin类中成员函数-----------------------

//------------------------------------------------------------------

voidadmin:

:

login()//管理员登录及验证

{

intensurance=0;

characcount2[12],password2[12];

adminad;

cout<

<<"★★★★★管理员登录界面★★★★★"<

cout<<"请输入您的账号:

";

cin>>account2;

cout<<"请输入您的密码:

";

cin>>password2;

fstreamfile("Admin.txt",ios:

:

in);//打开文件,指针在文件头

file.read((char*)&ad,sizeof(ad));//读取类信息

while(!

file.eof())//判断文件指针是否到文件尾

{

if(comp(ad.account,account2)&&comp(ad.password,password2))//判断输入的字符是否与文件中的一样

{

cout<<"登录成功!

"<

ensurance=1;break;

}

file.read((char*)&ad,sizeof(ad));//如果指针没到文件尾,继续读取

}

file.close();

if(ensurance==0)cout<<"您的账号或密码输入错误!

"<

file.close();//关闭文件

if(ensurance)adminOnLogin();

}

voidadmin:

:

adminRegister()//管理员在文件外录入信息

{

adminadm;

charchoose;

intloop=1,loop1=1;

cout<

<<"★★★★★管理员注册★★★★★"<

while(loop1)

{

loop1=0;

cout<<"输入您的账号(12位以内):

";cin>>account;

fstreamfile("Admin.txt",ios:

:

in);//打开文件,指针在文件头

file.read((char*)&adm,sizeof(adm));//读取类信息

while(!

file.eof())//判断文件指针是否到文件尾

{

if(comp(adm.account,account))//判断输入的字符是否与文件中的一样

{

cout<<"账号已被占用!

"<

loop1=1;

break;

}

file.read((char*)&adm,sizeof(adm));//如果指针没到文件尾,继续读取

}

file.close();

}

cout<<"输入您的密码(12位以内):

";cin>>password;

cout<<"输入您的姓名:

";cin>>name;

while(loop)

{

cout<<"选择您的性别(A.男,B.女):

";

cin>>choose;

if(choose=='a'||choose=='A')

{sex='m';loop=0;}

elseif(choose=='b'||choose=='B')

{sex='f';loop=0;}

else

{cout<<"您的输入有误,请重新选择!

"<

}

strcat(shape,"Admin");

cout<<"输入您的电话:

";cin>>tel;

loop=1;

while(loop)

{

cout<<"输入您的管理员权限级别,是否为高级(y/n):

";

cin>>choose;

if(choose=='y'||choose=='Y')

{title='y';loop=0;}

elseif(choose=='n'||choose=='N')

{title='n';loop=0;}

else

{cout<<"您的输入有误,请重新选择!

"<

}

}

voidadmin:

:

adminRegister2()//将管理员信息录入admin.txt

{

adminad;

ad.adminRegister();

fstreamfile("admin.txt",ios:

:

out|ios:

:

app);//打开文件,指针指向文件尾

file.write((char*)&ad,sizeof(ad));//把类信息写入文件

file.close();//关闭文件

cout<<"......信息已保存"<

}

//------------------------------------------------------------------

//----------------以下为undergraduate类中成员函数-------------------

//------------------------------------------------------------------

voidundergraduate:

:

searchUndergraduate()//通过学号及姓名查找学生信息

{

undergraduateunde1;

intensurance=1;

charnumber2[20],name2[20];

cout<<"请输入您所需查询学生的学号:

";

cin>>number2;

cout<<"请输入该学生的姓名:

";

cin>>name2;

fstreamfile("Undergraduate.txt",ios:

:

in);//打开文件,指针在文件头

file.read((char*)&unde1,sizeof(unde1));//读取类信息

while(!

file.eof())//判断文件指针是否到文件尾

{

if(comp(unde1.number,number2))

{

if(comp(unde1.name,name2))

{

cout<

<<"―――――――――――――――――――――――――"<

<<"★★★本科生基本信息查询结果★★★"<

cout<<"学号:

"<

cout<<"姓名:

"<

cout<<"专业班级:

"<

cout<<"年龄:

"<

cout<<"性别:

";

if(unde1.sex=='m')cout<<"男"<

elseif(unde1.sex=='f')cout<<"女"<

cout<<"班干部:

";

if(unde1.monitor=='y')cout<<"班长"<

elseif(unde1.monitor=='n')cout<<"无"<

cout<<"籍贯:

"<

cout<<"电话:

"<

cout<<"余额:

"<

}

elsecout<<"您所输入姓名与学号不符!

"<

ensurance=0;

break;

}

file.read((char*)&unde1,sizeof(unde1));//如果指针没到文件尾,继续读取

}

if(ensurance)cout<<"该学号不存在!

"<

file.close();

}

voidundergraduate:

:

outputClassStudent(chars[])

{

undergraduateunder4;

cout<

<<"―――――――――――――――――――――――――"<

<<"★★★"<

<<"学号"<<"姓名"<<"专业班级"<<"班长"<<"年龄"<<"性别"

<<"籍贯"<<"电话"<<"余额"<

fstreamfile("Undergraduate.txt",ios:

:

in);//打开文件,指针在文件头

file.read((char*)&under4,sizeof(under4));//读取类信息

while(!

file.eof())//判断文件指针是否到文件尾

{

if(comp(under4.nowClass,s))

{

cout<

<

<

}

file.read((char*)&under4,sizeof(under4));//如果指针没到文件尾,继续读取

}

file.close();

}

voidundergraduate:

:

monitorPower()

{

undergraduateunder3;

intensure=0,ensureExit=1;

charnumber2[20];

charname2[20];

cout<<"请输入您的学号:

";

cin>>number2;

cout<<"请输入您的姓名:

";

cin>>name2;

fstreamfile("Undergraduate.txt",ios:

:

in);//打开文件,指针在文件头

file.read((char*)&under3,sizeof(under3));//读取类信息

while(!

file.eof())//判断文件指针是否到文件尾

{

if(comp(under3.number,number2))

{

if(comp(under3.name,name2))

if(under3.monitor=='y')

ensure=1;

elsecout<<"你不是班长,别冒牌了!

"<

elsecout<<"您输入的学号和姓名不符!

"<

ensureExit=0;

break;

}

file.read((char*)&under3,sizeof(under3));//如果指针没到文件尾,继续读取

}

file.close();

if(ensureExit)cout<<"您所输入的学号不存在!

"<

if(ensure)outputClassStudent(under3.nowClass);

}

voidundergraduate:

:

inputUndergraduate()//管理员录入本科生信息

{

undergraduateundInput;

charchoose;

intloop=1,loop1=1;

strcat(shape,"Undergraduate");

while(loop1)

{

loop1=0;

cout<<"学号:

";cin>>number;

fstreamfile("Undergraduate.txt",ios:

:

in);//打开文件,指针在文件头

file.read((char*)&undInput,sizeof(undInput));//读取类信息

while(!

file.eof())//判断文件指针是否到文件尾

{

if(comp(undInput.number,number))//判断输入的字符是否与文件中的一样

{

cout<<"该学号已经录入"<

loop1=1;

break;

}

file.read((char*)&undInput,sizeof(undInput));//如果指针没到文件尾,继续读取*/

}

file.close();

}

cout<<"姓名:

";cin>>name;

cout<<"班级:

";cin>>nowClass;

cout<<"年龄:

";cin>>age;

while(loop)

{

cout<<"性别(A.男,B.女):

";

cin>>choose;

if(choose=='a'||choose=='A')

{sex='m';loop=0;}

elseif(choose=='b'||choose=='B')

{sex='f';loop=0;}

else

{cout<<"您的输入有误,请重新选择!

"<

}

cout<<"籍贯:

";cin>>birthPlace;

cout<<"电话:

";cin>>tel;

money=0;

loop=1;

while(loop)

{

cout<<"该学生是否为本班级班长(y/n):

";

cin>>choose;

if(choose=='y'||choose=='Y')

{monitor='y';loop=0;}

elseif(choose=='n'||choose=='N')

{monitor='n';loop=0;}

else

{cout<<"您的输入有误,请重新选择!

"<

}

}

voidundergraduate:

:

inputUndergraduate1()//管理员本科生信息进Undergraduate.txt文件

{

undergraduateundInput1;

undInput1.inputUndergraduate();

fstreamfile("Undergraduate.txt",ios:

:

out|ios:

:

app);//打开文件,指针指向文件尾

file.write((char*)&undInput1,sizeof(undInput1));//把类信息写入文件

file.close();//关闭文件

cout<<"......信息已保存"<

}

voidundergraduate:

:

inputUndergraduate_wrapper()//OK!

管理员录入本科生信息时单个录入或多个录入

{

chartotalChar;

inttotal,loop=1,i;

undergraduateunderInputWrapper;

while(loop)

{

loop=0;

cout<<"★★★★本科生信息录入★★★★"<

cout<<"您想录入多少组信息(0-9):

";

cin>>totalChar;

if(totalChar<'0'||totalChar>'9')

{

cout<<"您的输入有误,请重新输入!

"<

loop=1;

continue;

}

total=totalChar-'0';

for(i=0;i

{

cout<<"第"<

"<

underInputWrapper.inputUndergraduate1();

}

}

}

voidundergraduate:

:

underPayout(charstr[])

{

charchoose;

doublepayMoney;

undergraduateundePay1;

fstreamfile("Undergraduate.txt",ios:

:

in);//打开文件,指针在文件头

file.read((char*)&undePay1,sizeof(undePay1));//读取类信息

while(!

file.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1