C学生信息管理系统一卡通文档格式.docx
《C学生信息管理系统一卡通文档格式.docx》由会员分享,可在线阅读,更多相关《C学生信息管理系统一卡通文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
private:
characcount[12];
charpassword[12];
chartitle;
classundergraduate:
publicstudent//定义本科生类
voidsearchUndergraduate();
voiddisplayUndergraduate();
voidinputUndergraduate_wrapper();
voidinputUndergraduate();
voidinputUndergraduate1();
voidunderPayout(charstr[]);
voidmonitorPower();
voidoutputClassStudent(chars[]);
voidunderSearchAll();
charmonitor;
classpostgraduate:
publicstudent//定义研究生类
voidsearchPostgraduate();
voiddisplayPostgraduate();
voidinputPostgraduate_wrapper();
voidinputPostgraduate();
voidinputPostgraduate1();
voidpostPayout(charstr[]);
voidpostSearchAll();
doublewage;
//不清楚教职工是否配备有一卡通,所以暂不考虑教职工类
Uni-cardsystem.cpp
iostream>
cstring>
fstream>
iomanip>
#include"
uni-cardsystem.h"
voidonUndergraduate();
voidonPostgraduate();
boolcomp(chars1[],chars2[]);
voidinputStudent();
voidadminOnLogin();
//------------------------------------------------------------------
//---------------------以下为person类中成员函数---------------------
voidperson:
:
buildAdmin()//建立Admin.txt
fstreamfile("
Admin.txt"
ios:
out|ios:
app);
//打开文件,指针指向文件尾
file.close();
//关闭文件
}
buildUndergraduate()//建立Undergraduate.txt
Undergraduate.txt"
buildPostgraduate()//建立Postgraduate.txt
Postgraduate.txt"
//--------------------以下为admin类中成员函数-----------------------
voidadmin:
login()//管理员登录及验证
intensurance=0;
characcount2[12],password2[12];
adminad;
cout<
<
endl
<
"
★★★★★管理员登录界面★★★★★"
endl;
请输入您的账号:
;
cin>
>
account2;
请输入您的密码:
"
password2;
in);
//打开文件,指针在文件头
file.read((char*)&
ad,sizeof(ad));
//读取类信息
while(!
file.eof())//判断文件指针是否到文件尾
{
if(comp(ad.account,account2)&
&
comp(ad.password,password2))//判断输入的字符是否与文件中的一样
登录成功!
ensurance=1;
break;
}
file.read((char*)&
//如果指针没到文件尾,继续读取
if(ensurance==0)cout<
您的账号或密码输入错误!
if(ensurance)adminOnLogin();
adminRegister()//管理员在文件外录入信息
adminadm;
charchoose;
intloop=1,loop1=1;
★★★★★管理员注册★★★★★"
while(loop1)
loop1=0;
输入您的账号(12位以内):
;
account;
adm,sizeof(adm));
if(comp(adm.account,account))//判断输入的字符是否与文件中的一样
账号已被占用!
loop1=1;
break;
输入您的密码(12位以内):
password;
输入您的姓名:
name;
while(loop)
选择您的性别(A.男,B.女):
choose;
if(choose=='
a'
||choose=='
A'
)
{sex='
m'
loop=0;
elseif(choose=='
b'
B'
f'
else
{cout<
您的输入有误,请重新选择!
strcat(shape,"
Admin"
);
输入您的电话:
tel;
loop=1;
输入您的管理员权限级别,是否为高级(y/n):
y'
Y'
{title='
n'
N'
adminRegister2()//将管理员信息录入admin.txt
ad.adminRegister();
admin.txt"
file.write((char*)&
//把类信息写入文件
......信息已保存"
//----------------以下为undergraduate类中成员函数-------------------
voidundergraduate:
searchUndergraduate()//通过学号及姓名查找学生信息
undergraduateunde1;
intensurance=1;
charnumber2[20],name2[20];
请输入您所需查询学生的学号:
number2;
请输入该学生的姓名:
name2;
//打开文件,指针在文件头
unde1,sizeof(unde1));
if(comp(unde1.number,number2))
if(comp(unde1.name,name2))
―――――――――――――――――――――――――"
★★★本科生基本信息查询结果★★★"
学号:
unde1.number<
endl;
姓名:
unde1.name<
专业班级:
unde1.nowClass<
年龄:
unde1.age<
性别:
if(unde1.sex=='
)cout<
男"
elseif(unde1.sex=='
女"
班干部:
if(unde1.monitor=='
班长"
elseif(unde1.monitor=='
无"
籍贯:
unde1.birthPlace<
电话:
unde1.tel<
余额:
unde1.money<
elsecout<
您所输入姓名与学号不符!
ensurance=0;
if(ensurance)cout<
该学号不存在!
outputClassStudent(chars[])
undergraduateunder4;
★★★"
s<
学生基本信息★★★"
学号"
姓名"
专业班级"
班长"
年龄"
性别"
籍贯"
电话"
余额"
under4,sizeof(under4));
if(comp(under4.nowClass,s))
setw(12)<
under4.number<
setw(8)<
under4.name<
setw(16)<
under4.nowClass
setw(3)<
under4.monitor<
setw(4)<
under4.age<
under4.sex<
setw(12)
under4.birthPlace<
setw(14)<
under4.tel<
setw(6)<
under4.money<
monitorPower()
undergraduateunder3;
intensure=0,ensureExit=1;
charnumber2[20];
charname2[20];
请输入您的学号:
请输入您的姓名:
under3,sizeof(under3));
if(comp(under3.number,number2))
if(comp(under3.name,name2))
if(under3.monitor=='
ensure=1;
你不是班长,别冒牌了!
您输入的学号和姓名不符!
ensureExit=0;
if(ensureExit)cout<
您所输入的学号不存在!
if(ensure)outputClassStudent(under3.nowClass);
inputUndergraduate()//管理员录入本科生信息
undergraduateundInput;
Undergraduate"
number;
undInput,sizeof(undInput));
if(comp(undInput.number,number))//判断输入的字符是否与文件中的一样
该学号已经录入"
//如果指针没到文件尾,继续读取*/
班级:
nowClass;
age;
性别(A.男,B.女):
birthPlace;
money=0;
该学生是否为本班级班长(y/n):
{monitor='
inputUndergraduate1()//管理员本科生信息进Undergraduate.txt文件
undergraduateundInput1;
undInput1.inputUndergraduate();
undInput1,sizeof(undInput1));
inputUndergraduate_wrapper()//OK!
管理员录入本科生信息时单个录入或多个录入
chartotalChar;
inttotal,loop=1,i;
undergraduateunderInputWrapper;
loop=0;
★★★★本科生信息录入★★★★"
您想录入多少组信息(0-9):
totalChar;
if(totalChar<
'
0'
||totalChar>
9'
您的输入有误,请重新输入!
loop=1;
continue;
total=totalChar-'
for(i=0;
i<
total;
i++)
第"
i+1<
位同学:
underInputWrapper.inputUndergraduate1();
underPayout(charstr[])
doublepayMoney;
undergraduateundePay1;
undePay1,sizeof(undePay1));
file.