C++專案案例
阿新 • • 發佈:2018-11-12
#include <iostream>
#include <string>
#include "windows.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <conio.h>
#include <cstring>
#define FILENAME "stuInfo.bat"
using namespace std;
/* 賬號類
class Account
{
private:
string account; // 賬號
string pwd; // 密碼
public:
Account()
{
account = "yc";
pwd = "123";
}
Account(string account, string pwd)
{
this -> account = account;
this -> pwd = pwd;
}
~Account(); // 解構函式
Account(string newAccount, string newPwd);
void show();
int login(string account, string pwd); // 函式的宣告
};
Account::Account(string newAccount, string newPwd){
account = newAccount;
pwd = newPwd;
}
void inline Account::show() // 顯式宣告的行內函數
{
cout << account << "\t" << pwd << endl;
}
int Account::login(string account, string pwd) // 成員函式的實現
{
}
*/
// 學生類
class StuInfo
{
private:
char sno[20]; // 學號
char sname[20]; // 姓名
char cname[20]; // 班級
char sex[4]; // 性別
int age; // 年齡
char tel[15]; // 電話號碼
public:
StuInfo()
{
}
StuInfo(char sno[], char sname[], char cname[], char sex[], int age, char tel[])
{
setSno(sno);
setSname(sname);
setCname(cname);
setSex(sex);
setAge(age);
setTel(tel);
}
void setSno(char sno[])
{
strcpy(this->sno,sno);
}
void setSname(char sname[])
{
strcpy(this->sname,sname);
}
void setCname(char cname[])
{
strcpy(this->cname,cname);
}
void setSex(char sex[])
{
strcpy(this->sex,sex);
}
void setAge(int age)
{
this->age = age;
}
void setTel(char tel[])
{
strcpy(this->tel,tel);
}
void show()
{
cout << "\n\t" << sno << "\t" << sname << "\t" << cname << "\t" << sex << "\t" << age << "\t" << tel << endl;
}
char* getSno()
{
return this->sno;
}
};
class Controller
{
public:
void showCopy(); // 顯示版權
bool login(); // 使用者登入
void menu(); // 主選單
void initData(); // 初始化資料
void addStuInfo(); // 新增學生資訊
void showStuInfo(StuInfo stu); // 顯示單個學生資訊
void searchStuInfo(); // 顯示多個學生資訊
bool save(StuInfo stu); // 儲存到檔案
void viewStuInfo(); // 瀏覽學生資訊
void updateStuInfo(); // 修改學生資訊
void deleteStuInfo(); // 刪除學生資訊
bool rewrite(); // 重寫資料檔案
};
vector<StuInfo> stuInfos;
//顯示版權資訊
void Controller::showCopy()
{
cout << "\n\n\t**************************歡迎使用XXXX系統**************************";
cout << "\n\n\t**************************源辰資訊版權所有**************************";
}
bool Controller::login() // 成員函式的實現
{
system("cls");
int index = 0, count = 0;
string account;
char pwd[20];
char ch;
showCopy();
do{
index = 0;
count ++;
cout << "\n\n\t請輸入您的賬號:";
//獲取使用者輸入的賬號
cin >> account;
cout << "\n\t請輸入您的密碼:";
//獲取使用者輸入的密碼
while( (ch = getch()) != 13 ){ //回車鍵的鍵值 //密碼只能是數字和字母????
if( ch == 8){ //Backspace 回退
if(index<=0){
index=0;
}else{
cout << "\b \b";
index--;
}
}else{
pwd[index++] = ch;
cout << '*';
}
}
pwd[index]='\0'; //陣列中資料結束的標誌
//判斷使用者輸入的賬號和密碼是否正確
if( account == "yc" && strcmp(pwd,"123") == 0){
initData(); // 讀取所有的學生資訊
return true;
}else{
if(count==3){
cout << "\n\n\t對不起,您暫無許可權,系統將自動退出....\n\t";
exit(0);
} else {
cout << "\n\n\t賬號或密碼錯誤,請確認後重新輸入<您還有 " << (3-count) << " 輸入機會,回車後繼續>!!!" << endl;
}
}
}while(count > 0);
return false;
}
void Controller::initData()
{
fstream file(FILENAME, ios::in | ios::binary);
if (file.is_open()) { // 開啟成功
StuInfo stu;
while(true)
{
file.read((char *)&stu, sizeof(StuInfo));
if(!file)
break;
stuInfos.push_back(stu);
}
file.close();
}
}
void Controller::menu()
{
int option=0, count=0;
again1:system("cls"); //清屏
count=0;
showCopy();
cout << "\n\n\t************************** 主選單 **************************\n";
cout << "\n\t************************** 1.瀏覽學生資訊 **************************";
cout << "\n\t************************** 2.查詢學生資訊 **************************";
cout << "\n\t************************** 3.新增學生資訊 **************************";
cout << "\n\t************************** 4.修改學生資訊 **************************";
cout << "\n\t************************** 5.刪除學生資訊 **************************";
cout << "\n\t************************** 6.退出系統 **************************";
do{
if(count!=0){ //說明使用者不是第一次輸入,則提醒使用者
cout << "\n\n\t對不起,沒有該選項,請重新選擇(1-6):";
}else{
cout << "\n\n\t請選擇您的操作(1-6):";
}
//獲取使用者的選擇
cin >> option;
count++;
}while(option<=0 || option>6);
//如果使用者輸入了正確的值
switch(option){
case 1: viewStuInfo(); break;
case 2: searchStuInfo(); break;
case 3: addStuInfo(); break;
case 4: updateStuInfo(); break;
case 5: deleteStuInfo(); break;
case 6: exit(0);break;
}
goto again1;
}
void Controller::addStuInfo()
{
system("cls");
int result;
char sno[20]; // 學號
char sname[20]; // 姓名
char cname[20]; // 班級
char sex[4]; // 性別
int age; // 年齡
char tel[15]; // 電話號碼
cout << "\n\n\t************************** 新增學生資訊 **************************";
cout << "\n\n\t*************************請輸入以下學生資訊**************************\n";
cout << "\n\t請輸入學生學號:";
cin >> sno;
cout << "\n\t請輸入學生姓名:";
cin >> sname;
cout << "\n\t請輸入所在班級:";
cin >> cname;
cout << "\n\t請輸入學生性別:";
cin >> sex;
cout << "\n\t請輸入學生年齡:";
cin >> age;
cout << "\n\t請輸入聯絡方式:";
cin >> tel;
StuInfo stu(sno, sname, cname, sex, age, tel);
cout << "\n\t您要新增的學生資訊如下,請確認:" << endl;
showStuInfo(stu);
result=MessageBox(NULL,"您確定要新增此資料嗎?","確認提示",MB_YESNO|MB_ICONWARNING);
if(result==6)
{
if ( save(stu) ) {
stuInfos.push_back(stu);
cout << "\n\t學生資訊新增成功..." << endl;
} else {
cout << "\n\t學生資訊新增失敗..." << endl;
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
bool Controller::save(StuInfo stu)
{
fstream out(FILENAME,ios::out | ios::app | ios::binary);
if (out.is_open())
{
out.write((char *)&stu, sizeof(StuInfo));
out.close();
return true;
} else {
return false;
}
}
bool Controller::rewrite()
{
int len=stuInfos.size();
if (len <=0) // 說明沒有學生資訊,則清空檔案中的內容
{
ofstream file(FILENAME, ios::out | ios::trunc);
file.close();
}
else
{
fstream out(FILENAME,ios::out | ios::binary);
if (out.is_open())
{
for(int i=0,len=stuInfos.size(); i<len; i++)
{
out.write((char *)&stuInfos[i], sizeof(StuInfo));
}
out.close();
return true;
} else {
return false;
}
}
return false;
}
void Controller::showStuInfo(StuInfo stu)
{
cout << "\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
stu.show();
}
void Controller::viewStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 瀏覽學生資訊 **************************" << endl;
if (stuInfos.size() <= 0)
{
cout << "\n\t暫無學生資訊...";
}
else
{
cout << "\n\n\t************************** 共有 " << stuInfos.size() << " 個學生 **************************" << endl;
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
for(int i=0,len=stuInfos.size(); i<len; i++)
{
stuInfos[i].show();
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
void Controller::searchStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 查詢學生資訊 **************************";
if (stuInfos.size() <= 0)
{
cout << "\n\t暫無學生資訊...";
}
else
{
char sno[20]; //存放使用者要查詢的商品編號
cout << "\n\n\t請輸入您要查詢的學生學號:";
cin >> sno;
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
int count = 0; // 記錄滿足條件的學生個數
int length = strlen(sno); // \0
int temp = 0, j=0;
char arr[20];
for(int i=0,len=stuInfos.size(); i<len; i++) // 迴圈所有學生資訊
{
strcpy(arr,stuInfos[i].getSno());
temp = strlen(arr);
length = length > temp ? temp : length;
/*if (strcmp(sno,stuInfos[i].getSno()) == 0)
{
count++;
stuInfos[i].show();
}*/
for (j=0; j<length; j++)
{
if(arr[j] != sno[j])
{
break;
}
}
if (j >= length) // 說明滿足條件
{
count++;
stuInfos[i].show();
}
}
if (count>0)
{
cout << "\n\n\t************************ 共有 " << count << " 個基本滿足條件 ************************" << endl;
}
else
{
cout << "\n\t沒有您要查詢的學生資訊...";
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
void Controller::updateStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 修改學生資訊 **************************";
if (stuInfos.empty())
{
cout << "\n\t暫無學生資訊...";
}
else
{
char sno[20]; // 學號
cout << "\n\n\t請輸入您要修改的學生學號:";
cin >> sno;
//StuInfo stu;
int i, len = stuInfos.size();
for(i=0; i<len; i++)
{
if (strcmp(sno,stuInfos[i].getSno()) == 0)
{
cout << "\n\t您要輸入的學生資訊如下:";
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
stuInfos[i].show();
break;
}
}
if ( i >= len )
{
cout << "\n\t對不起!沒有您要刪除的學生資訊...";
}
else
{
char sname[20]; // 姓名
char cname[20]; // 班級
char sex[4]; // 性別
int age; // 年齡
char tel[15]; // 電話號碼
cout << "\n\t請輸入學生姓名:";
cin >> sname;
cout << "\n\t請輸入所在班級:";
cin >> cname;
cout << "\n\t請輸入學生性別:";
cin >> sex;
cout << "\n\t請輸入學生年齡:";
cin >> age;
cout << "\n\t請輸入聯絡方式:";
cin >> tel;
int result=MessageBox(NULL,"您確定要修改此學生資訊嗎?","確認提示",MB_YESNO|MB_ICONWARNING);
if(result==6) // 說明確定
{
stuInfos[i].setSname(sname);
stuInfos[i].setCname(cname);
stuInfos[i].setSex(sex);
stuInfos[i].setAge(age);
stuInfos[i].setTel(tel);
//stuInfos[i].set = stu;
// 重寫資料檔案
if(rewrite())
{
cout << "\n\n\t學生資訊修改成功..." << endl;
}
else
{
cout << "\n\n\t學生資訊修改失敗..." << endl;
}
}
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
void Controller::deleteStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 刪除學生資訊 **************************";
if (stuInfos.empty())
{
cout << "\n\t暫無學生資訊...";
}
else
{
char sno[20]; //存放使用者要查詢的商品編號
cout << "\n\n\t請輸入您要刪除的學生學號:";
cin >> sno;
int i, len = stuInfos.size();
for(i=0; i<len; i++)
{
if (strcmp(sno,stuInfos[i].getSno()) == 0)
{
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
stuInfos[i].show();
break;
}
}
if (i>=len)
{
cout << "\n\t對不起!沒有您要刪除的學生資訊...";
}
else
{
int result=MessageBox(NULL,"您確定要刪除此學生資訊嗎?","確認提示",MB_YESNO|MB_ICONWARNING);
if(result==6) // 說明確定
{
stuInfos.erase(stuInfos.begin()+i);
// 重寫資料檔案
if(rewrite())
{
cout << "\n\n\t學生資訊刪除成功..." << endl;
}
else
{
cout << "\n\n\t學生資訊刪除失敗..." << endl;
}
}
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
int main()
{
Controller controll;
if (controll.login() )
{
controll.menu();
}
else{
cout << "\n\n\t對不起,您暫無許可權,系統將自動退出....\n\t";
exit(0);
}
return 0;
}
#include <string>
#include "windows.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <conio.h>
#include <cstring>
#define FILENAME "stuInfo.bat"
using namespace std;
/* 賬號類
class Account
{
private:
string account; // 賬號
string pwd; // 密碼
public:
Account()
{
account = "yc";
pwd = "123";
}
Account(string account, string pwd)
{
this -> account = account;
this -> pwd = pwd;
}
~Account(); // 解構函式
Account(string newAccount, string newPwd);
void show();
int login(string account, string pwd); // 函式的宣告
};
Account::Account(string newAccount, string newPwd){
account = newAccount;
pwd = newPwd;
}
void inline Account::show() // 顯式宣告的行內函數
{
cout << account << "\t" << pwd << endl;
}
int Account::login(string account, string pwd) // 成員函式的實現
{
}
*/
// 學生類
class StuInfo
{
private:
char sno[20]; // 學號
char sname[20]; // 姓名
char cname[20]; // 班級
char sex[4]; // 性別
int age; // 年齡
char tel[15]; // 電話號碼
public:
StuInfo()
{
}
StuInfo(char sno[], char sname[], char cname[], char sex[], int age, char tel[])
{
setSno(sno);
setSname(sname);
setCname(cname);
setSex(sex);
setAge(age);
setTel(tel);
}
void setSno(char sno[])
{
strcpy(this->sno,sno);
}
void setSname(char sname[])
{
strcpy(this->sname,sname);
}
void setCname(char cname[])
{
strcpy(this->cname,cname);
}
void setSex(char sex[])
{
strcpy(this->sex,sex);
}
void setAge(int age)
{
this->age = age;
}
void setTel(char tel[])
{
strcpy(this->tel,tel);
}
void show()
{
cout << "\n\t" << sno << "\t" << sname << "\t" << cname << "\t" << sex << "\t" << age << "\t" << tel << endl;
}
char* getSno()
{
return this->sno;
}
};
class Controller
{
public:
void showCopy(); // 顯示版權
bool login(); // 使用者登入
void menu(); // 主選單
void initData(); // 初始化資料
void addStuInfo(); // 新增學生資訊
void showStuInfo(StuInfo stu); // 顯示單個學生資訊
void searchStuInfo(); // 顯示多個學生資訊
bool save(StuInfo stu); // 儲存到檔案
void viewStuInfo(); // 瀏覽學生資訊
void updateStuInfo(); // 修改學生資訊
void deleteStuInfo(); // 刪除學生資訊
bool rewrite(); // 重寫資料檔案
};
vector<StuInfo> stuInfos;
//顯示版權資訊
void Controller::showCopy()
{
cout << "\n\n\t**************************源辰資訊版權所有**************************";
}
bool Controller::login() // 成員函式的實現
{
system("cls");
int index = 0, count = 0;
string account;
char pwd[20];
char ch;
do{
index = 0;
count ++;
cout << "\n\n\t請輸入您的賬號:";
//獲取使用者輸入的賬號
cin >> account;
cout << "\n\t請輸入您的密碼:";
//獲取使用者輸入的密碼
while( (ch = getch()) != 13 ){ //回車鍵的鍵值 //密碼只能是數字和字母????
if( ch == 8){ //Backspace 回退
if(index<=0){
index=0;
}else{
cout << "\b \b";
index--;
}
}else{
pwd[index++] = ch;
cout << '*';
}
}
pwd[index]='\0'; //陣列中資料結束的標誌
//判斷使用者輸入的賬號和密碼是否正確
if( account == "yc" && strcmp(pwd,"123") == 0){
initData(); // 讀取所有的學生資訊
return true;
}else{
if(count==3){
cout << "\n\n\t對不起,您暫無許可權,系統將自動退出....\n\t";
exit(0);
} else {
cout << "\n\n\t賬號或密碼錯誤,請確認後重新輸入<您還有 " << (3-count) << " 輸入機會,回車後繼續>!!!" << endl;
}
}
return false;
}
void Controller::initData()
{
fstream file(FILENAME, ios::in | ios::binary);
if (file.is_open()) { // 開啟成功
StuInfo stu;
while(true)
{
file.read((char *)&stu, sizeof(StuInfo));
if(!file)
break;
stuInfos.push_back(stu);
}
file.close();
}
}
void Controller::menu()
{
int option=0, count=0;
again1:system("cls"); //清屏
count=0;
showCopy();
cout << "\n\n\t************************** 主選單 **************************\n";
cout << "\n\t************************** 1.瀏覽學生資訊 **************************";
cout << "\n\t************************** 2.查詢學生資訊 **************************";
cout << "\n\t************************** 3.新增學生資訊 **************************";
cout << "\n\t************************** 4.修改學生資訊 **************************";
cout << "\n\t************************** 5.刪除學生資訊 **************************";
cout << "\n\t************************** 6.退出系統 **************************";
do{
if(count!=0){ //說明使用者不是第一次輸入,則提醒使用者
cout << "\n\n\t對不起,沒有該選項,請重新選擇(1-6):";
}else{
cout << "\n\n\t請選擇您的操作(1-6):";
}
//獲取使用者的選擇
cin >> option;
count++;
}while(option<=0 || option>6);
//如果使用者輸入了正確的值
switch(option){
case 1: viewStuInfo(); break;
case 2: searchStuInfo(); break;
case 3: addStuInfo(); break;
case 4: updateStuInfo(); break;
case 5: deleteStuInfo(); break;
case 6: exit(0);break;
}
goto again1;
}
void Controller::addStuInfo()
{
system("cls");
int result;
char sno[20]; // 學號
char sname[20]; // 姓名
char cname[20]; // 班級
char sex[4]; // 性別
int age; // 年齡
char tel[15]; // 電話號碼
cout << "\n\n\t************************** 新增學生資訊 **************************";
cout << "\n\n\t*************************請輸入以下學生資訊**************************\n";
cout << "\n\t請輸入學生學號:";
cin >> sno;
cout << "\n\t請輸入學生姓名:";
cin >> sname;
cout << "\n\t請輸入所在班級:";
cin >> cname;
cout << "\n\t請輸入學生性別:";
cin >> sex;
cout << "\n\t請輸入學生年齡:";
cin >> age;
cout << "\n\t請輸入聯絡方式:";
cin >> tel;
StuInfo stu(sno, sname, cname, sex, age, tel);
cout << "\n\t您要新增的學生資訊如下,請確認:" << endl;
showStuInfo(stu);
result=MessageBox(NULL,"您確定要新增此資料嗎?","確認提示",MB_YESNO|MB_ICONWARNING);
if(result==6)
{
if ( save(stu) ) {
stuInfos.push_back(stu);
cout << "\n\t學生資訊新增成功..." << endl;
} else {
cout << "\n\t學生資訊新增失敗..." << endl;
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
bool Controller::save(StuInfo stu)
{
fstream out(FILENAME,ios::out | ios::app | ios::binary);
if (out.is_open())
{
out.write((char *)&stu, sizeof(StuInfo));
out.close();
return true;
} else {
return false;
}
}
bool Controller::rewrite()
{
int len=stuInfos.size();
if (len <=0) // 說明沒有學生資訊,則清空檔案中的內容
{
ofstream file(FILENAME, ios::out | ios::trunc);
file.close();
}
else
{
fstream out(FILENAME,ios::out | ios::binary);
if (out.is_open())
{
for(int i=0,len=stuInfos.size(); i<len; i++)
{
out.write((char *)&stuInfos[i], sizeof(StuInfo));
}
out.close();
return true;
} else {
return false;
}
}
return false;
}
void Controller::showStuInfo(StuInfo stu)
{
cout << "\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
stu.show();
}
void Controller::viewStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 瀏覽學生資訊 **************************" << endl;
if (stuInfos.size() <= 0)
{
cout << "\n\t暫無學生資訊...";
}
else
{
cout << "\n\n\t************************** 共有 " << stuInfos.size() << " 個學生 **************************" << endl;
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
for(int i=0,len=stuInfos.size(); i<len; i++)
{
stuInfos[i].show();
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
void Controller::searchStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 查詢學生資訊 **************************";
if (stuInfos.size() <= 0)
{
cout << "\n\t暫無學生資訊...";
}
else
{
char sno[20]; //存放使用者要查詢的商品編號
cout << "\n\n\t請輸入您要查詢的學生學號:";
cin >> sno;
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
int count = 0; // 記錄滿足條件的學生個數
int length = strlen(sno); // \0
int temp = 0, j=0;
char arr[20];
for(int i=0,len=stuInfos.size(); i<len; i++) // 迴圈所有學生資訊
{
strcpy(arr,stuInfos[i].getSno());
temp = strlen(arr);
length = length > temp ? temp : length;
/*if (strcmp(sno,stuInfos[i].getSno()) == 0)
{
count++;
stuInfos[i].show();
}*/
for (j=0; j<length; j++)
{
if(arr[j] != sno[j])
{
break;
}
}
if (j >= length) // 說明滿足條件
{
count++;
stuInfos[i].show();
}
}
if (count>0)
{
cout << "\n\n\t************************ 共有 " << count << " 個基本滿足條件 ************************" << endl;
}
else
{
cout << "\n\t沒有您要查詢的學生資訊...";
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
void Controller::updateStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 修改學生資訊 **************************";
if (stuInfos.empty())
{
cout << "\n\t暫無學生資訊...";
}
else
{
char sno[20]; // 學號
cout << "\n\n\t請輸入您要修改的學生學號:";
cin >> sno;
//StuInfo stu;
int i, len = stuInfos.size();
for(i=0; i<len; i++)
{
if (strcmp(sno,stuInfos[i].getSno()) == 0)
{
cout << "\n\t您要輸入的學生資訊如下:";
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
stuInfos[i].show();
break;
}
}
if ( i >= len )
{
cout << "\n\t對不起!沒有您要刪除的學生資訊...";
}
else
{
char sname[20]; // 姓名
char cname[20]; // 班級
char sex[4]; // 性別
int age; // 年齡
char tel[15]; // 電話號碼
cout << "\n\t請輸入學生姓名:";
cin >> sname;
cout << "\n\t請輸入所在班級:";
cin >> cname;
cout << "\n\t請輸入學生性別:";
cin >> sex;
cout << "\n\t請輸入學生年齡:";
cin >> age;
cout << "\n\t請輸入聯絡方式:";
cin >> tel;
int result=MessageBox(NULL,"您確定要修改此學生資訊嗎?","確認提示",MB_YESNO|MB_ICONWARNING);
if(result==6) // 說明確定
{
stuInfos[i].setSname(sname);
stuInfos[i].setCname(cname);
stuInfos[i].setSex(sex);
stuInfos[i].setAge(age);
stuInfos[i].setTel(tel);
//stuInfos[i].set = stu;
// 重寫資料檔案
if(rewrite())
{
cout << "\n\n\t學生資訊修改成功..." << endl;
}
else
{
cout << "\n\n\t學生資訊修改失敗..." << endl;
}
}
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
void Controller::deleteStuInfo()
{
system("cls");
showCopy();
cout << "\n\n\t************************** 刪除學生資訊 **************************";
if (stuInfos.empty())
{
cout << "\n\t暫無學生資訊...";
}
else
{
char sno[20]; //存放使用者要查詢的商品編號
cout << "\n\n\t請輸入您要刪除的學生學號:";
cin >> sno;
int i, len = stuInfos.size();
for(i=0; i<len; i++)
{
if (strcmp(sno,stuInfos[i].getSno()) == 0)
{
cout << "\n\n\t學號" << "\t 姓名" << "\t 班級" << "\t 性別" << "\t年齡" << "\t 電話" << endl;
stuInfos[i].show();
break;
}
}
if (i>=len)
{
cout << "\n\t對不起!沒有您要刪除的學生資訊...";
}
else
{
int result=MessageBox(NULL,"您確定要刪除此學生資訊嗎?","確認提示",MB_YESNO|MB_ICONWARNING);
if(result==6) // 說明確定
{
stuInfos.erase(stuInfos.begin()+i);
// 重寫資料檔案
if(rewrite())
{
cout << "\n\n\t學生資訊刪除成功..." << endl;
}
else
{
cout << "\n\n\t學生資訊刪除失敗..." << endl;
}
}
}
}
cout << "\n\n\t<請按回車返回>" << endl;
getch();
}
int main()
{
Controller controll;
if (controll.login() )
{
controll.menu();
}
else{
cout << "\n\n\t對不起,您暫無許可權,系統將自動退出....\n\t";
exit(0);
}
return 0;
}