當前位置:編程學習大全網 - 源碼下載 - 學生宿舍管理系統,C++源碼

學生宿舍管理系統,C++源碼

#include <iostream>

#include <string>

#include <fstream>

#include <ctime>

using namespace std;

class student

{

private:

long int stu_num; //學號,宿舍號

char stu_name[40]; //姓名

char class_name[40]; //班別

char house_name[20]; //宿舍

public:

student()

{

stu_num=0;

stu_name[0] =0;

class_name[0] =0;

house_name[0] =0;

}

student::student(long a, char * b,char *c,char *d)

{

Setdata(a , b, c, d);

}

char * Getstuname(void) //姓名查找

{

return stu_name ;

}

long Getstunum(void) //學號查找

{

return stu_num;

}

char * Gethousename(void) //宿舍號查找

{

return house_name;

}

char * Getclassname(void) //按班級查找

{

return class_name;

}

void Setdata(long a, char *b,char *c,char *d)

{

stu_num = a;

strcpy(stu_name, b);

strcpy(class_name, c);

strcpy(house_name, d);

}

void Show(void)

{

cout<<"學號:"<<stu_num<<"\t"<<"姓名:"<<stu_name<<"\t";

cout<<"班級:"<<class_name<<"\t\t"<<"宿舍:"<<house_name<<"\n";

}

};

void main(void)

{

student s1;

int flags=0;

long stu_num; //學號

char stu_name[40]; //姓名

char class_name[40]; //班級

char house_name[20]; //宿舍

time_t t;

time(&t);

ifstream file1;

ofstream file3;

char flag = 'y';

cout<< "---------------------------------學生成績管理系統-------------------------------"<<endl;

cout<< "\t\t\t 時間:" << ctime(&t);

while( flag=='y' || flag=='Y')

{ //由flag控制循環

cout<<"--------------------------------------------------------------------------------\n";

cout<<"\t\t 1:註冊學生!\n";

cout<<"\t\t 2:按學號查看學生信息!\n";

cout<<"\t\t 3:按宿舍號查看學生信息!\n";

cout<<"\t\t 4:按姓名查看學生信息!\n";

cout<<"\t\t 5:按班級查看學生信息!\n";

cout<<"\t\t 6:顯示全部學生信息\n";

// cout<<"\t\t 7:按學號修改學生信息\n";

// cout<<"\t\t 8:按學號刪除學生信息!\n";

cout<<"--------------------------------------------------------------------------------\n";

cout<<"請輸入選擇:";

char choice;

cin>>choice;

switch(choice)

{

case '1':

file3.open("c:\\stu.dat",ios::app|ios::binary);

input: flags=0;

cout<<"輸入學號:";

cin>>stu_num;

while (stu_num<100000 || stu_num>999999)

{

cin.clear();

rewind(stdin);

cout << "妳輸入的學號不正確,請輸入壹個六位數的學號" << endl;

cout << "學號:";

cin >> stu_num;

}

file1.open("c:\\stu.dat",ios::in | ios::binary | ios::beg);//按讀方式打開文件

while(!file1.eof())

{

int n;

file1.read((char *)&s1,sizeof(student));

n=file1.gcount();

if(n==sizeof(student))

{

if(s1.Getstunum()==stu_num)

flags=1;

}

}

file1.clear();

file1.close();

if (flags==1)

{

cin.clear();

cout << "學號重復,請重輸入!" << endl;

goto input;

}

cout<<"輸入姓名:"; cin>>stu_name;

cout<<"輸入班級:"; cin>>class_name;

cout<<"輸入宿舍:"; cin>>house_name;

s1.Setdata(stu_num,stu_name,class_name,house_name);

file3.write((char*)&s1,sizeof(s1));

file3.clear();

file3.close();

break;

case '2': //按學號查找

cout<<"請輸入學生的學號:";

cin>>stu_num;

while (stu_num<100000 || stu_num>999999)

{

cin.clear();

rewind(stdin);

cout << "妳輸入的學號不正確,請輸入壹個六位數的學號" << endl;

cout << "學號:";

cin >> stu_num;

}

file1.open("c:\\stu.dat",ios::in | ios::binary | ios::beg);//按讀方式打開文件

while(!file1.eof())

{

int n;

file1.read((char *)&s1,sizeof(student));

n=file1.gcount();

if(n==sizeof(student))

{

if(s1.Getstunum()==stu_num) //顯示學生信息

{

s1.Show();

flags=1;

}

}

}

file1.clear();

file1.close();

if (flags==0)

cout << "沒有找學號為:"<< stu_num <<"的學生記錄!" << endl;

flags=0;

break;

case '3': //按宿舍號查找

cout<<"請輸入宿舍號:";

cin>>house_name;

file1.open("c:\\stu.dat",ios::in | ios::binary | ios::beg);//按讀方式打開文件

while(!file1.eof())

{

int n;

file1.read((char *)&s1,sizeof(student));

n=file1.gcount();

if(n==sizeof(student))

{

if(strcmp(s1.Gethousename(),house_name)==0)

{

s1.Show();

flags=1;

}

}

}

file1.clear();

file1.close();

if (flags==0)

cout << "沒有找到宿舍為:"<< house_name <<"的學生記錄!" << endl;

flags=0;

break;

case '4': //按姓名查找

cout<<"請輸入學生姓名:";

cin>>stu_name;

file1.open("c:\\stu.dat",ios::in | ios::binary | ios::beg);//按讀方式打開文件

while(!file1.eof())

{

int n;

file1.read((char *)&s1,sizeof(student));

n=file1.gcount();

if(n==sizeof(student))

{

if(strcmp(s1. Getstuname(),stu_name)==0)

{

s1.Show();

flags=1;

}

}

}

file1.clear();

file1.close();

if (flags==0)

cout << "沒有找到姓名為:"<< stu_name <<"的學生記錄!" << endl;

flags=0;

break;

case '5': //按班級查找

cout<<"請輸入班級名稱:";

cin>>class_name;

file1.open("c:\\stu.dat",ios::in | ios::binary | ios::beg);//按讀方式打開文件

while(!file1.eof())

{

int n;

file1.read((char *)&s1,sizeof(student));

n=file1.gcount();

if(n==sizeof(student))

{

if(strcmp(s1. Getclassname(),class_name)==0)

{

s1.Show();

flags=1;

}

}

}

file1.clear();

file1.close();

if (flags==0)

cout << "沒有找到該班級為:"<< class_name <<"的學生記錄!" << endl;

flags=0;

break;

case '6': //顯示全部學生信息

file1.open("c:\\stu.dat",ios::in | ios::binary);//按讀方式打開文件

while(!file1.eof())

{

int n;

file1.read((char *)&s1,sizeof(student));

n=file1.gcount();

if(n==sizeof(student))

{

s1.Show();

flags=1;

}

}

file1.clear();

file1.close();

if (flags==0)

cout << "數據庫沒有記錄!" << endl;

flags=0;

break;

// case '7': //修改學生信息按學號

// flags=0;

// cout<<"請輸入要修改學生的學號:";

// cin>>stu_num;

// while (stu_num<100000 || stu_num>999999)

// {

// cin.clear();

// rewind(stdin);

// cout << "妳輸入的學號不正確,請輸入壹個六位數的學號" << endl;

// cout << "學號:";

// cin >> stu_num;

// }

// file1.open("c:\\stu.dat",ios::in | ios::binary | ios::beg);//按讀方式打開文件

// while(!file1.eof())

// {

// int n;

// file1.read((char *)&s1,sizeof(student));

// n=file1.gcount();

// if(n==sizeof(student))

// {

// if(s1.Getstunum()==stu_num)

// {

// file3.open("c:\\stu.dat",ios::out|ios::binary);

// cout<<"輸入姓名:"; cin>>stu_name;

// cout<<"輸入班級:"; cin>>class_name;

// cout<<"輸入宿舍:"; cin>>house_name;

// s1.Setdata(stu_num,stu_name,class_name,house_name);

// file3.write((char*)&s1,sizeof(s1));

// file3.close();

// flags=1;

// }

// }

// }

// file1.clear();

// file1.close();

// if (flags==0)

// {

// cout << "沒有此學生記錄,不能進行修改!" << endl;

// break;

// }

// break;

// case '8': //刪除學生信息按學號

default: flag = 'n';

break;

}

}

cout << "謝謝您的使用!" << endl;

}

  • 上一篇:基於NXP iMX6ULL 擴展音頻解碼器 MAX98357A
  • 下一篇:畫圖的讀音畫圖的讀音是什麽
  • copyright 2024編程學習大全網