<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C++實現宿舍管理查詢系統的具體程式碼,供大家參考,具體內容如下
C++使用IO流關聯.txt檔案
各模組之間的呼叫關係如下:
函數的呼叫關係反映了演示程式的層次結構:
程式碼如下:
#include<iostream> #include<fstream> #include<iomanip> #include<cstdlib> #include<string> using namespace std; #define MAXSIZE 100 //順序表的最大長度 typedef struct { string name; //姓名 string id; //學號 string dormid; //宿舍號 }Student; typedef struct { Student r[MAXSIZE + 1]; //r[0]做單元哨兵 int length;//長度 }SqList; //用直接插入排序存入到student.txt檔案中 void InsertSort(SqList &stu) { int i, j; for (i = 2; i <= stu.length; i++) if (stu.r[i].id < stu.r[i - 1].id) { stu.r[0] = stu.r[i]; stu.r[i] = stu.r[i - 1]; for (j = i - 2; stu.r[0].id < stu.r[j].id; j--) stu.r[j + 1] = stu.r[j]; stu.r[j + 1] = stu.r[0]; } ofstream outfile("student.txt", ios::out); if (!outfile) { //如果檔案開啟失敗 cout << "檔案開啟失敗" << endl; exit(1); } //outfile << "學號" << setw(8) << "姓名" << setw(8) << "宿舍號" << endl; outfile << stu.length << endl; for (i = 1; i <= stu.length; i++) { outfile << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl; } cout << "學生資訊數:" << stu.length << endl; outfile.close(); cout << stu.length; } //建立學生資訊(只能建立一次,不然會被重新整理) void InitList(SqList &stu) { int i; cout << "學號" << setw(8) << "姓名" << setw(8) << "宿舍號" << endl; for (i = 1; i <= stu.length; i++) { cin >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; } InsertSort(stu); } //增加學生資訊 void Addstudent(SqList &stu) { int n; int i = stu.length + 1; cout << "輸入增加學生人數" << endl; cin >> n; cout << "學號" << setw(8) << "姓名" << setw(8) << "宿舍號" << endl; stu.length = stu.length + n; for (i; i <= stu.length; i++) cin >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; InsertSort(stu); } //查詢學生資訊 void Findstudent(SqList &stu) { string a, b, c; string name, id, dormid; cout << "1.學號查詢 2.姓名查詢 3.宿舍號查詢" << endl; cout << "請輸入你的查詢選擇(1~3)" << endl; int i; int n; cin >> n; if (n < 1 && n>3) { cout << "您輸入有誤,請重新輸入:" << endl; Findstudent(stu); } if (1 == n) { cout << "請輸入學生學號:" << endl; cin >> id; ifstream infile("student.txt", ios::in);//定義輸入檔案流物件,以輸入方式開啟磁碟檔案"student.txt" infile >> stu.length; for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; } infile.close(); for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; if (stu.r[i].id == id) cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl; } infile.close();//關閉磁碟檔案 } if (2 == n) { cout << "請輸入學生姓名:" << endl; cin >> name; ifstream infile("student.txt", ios::in);//定義輸入檔案流物件,以輸入方式開啟磁碟檔案"student.txt" infile >> stu.length; for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; } infile.close(); for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; if (stu.r[i].name == name) cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl; } infile.close();//關閉磁碟檔案 } if (3 == n) { cout << "請輸入學生宿舍號:" << endl; cin >> dormid; ifstream infile("student.txt", ios::in);//定義輸入檔案流物件,以輸入方式開啟磁碟檔案"student.txt" infile >> stu.length; for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; } infile.close(); for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; if (stu.r[i].dormid == dormid) cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl; } } } //修改學生資訊 void Renewstudent(SqList &stu) { int n; string id, name, dormid; cout << "1.姓名 2.宿舍號" << endl; cout << "請輸入您的選擇(1~2):" << endl; cin >> n; cout << "請輸入需要修改學生的學號" << endl; cin >> id; if (n != 1 && n != 2) { cout << "輸入有誤,請重新輸入:" << endl; Renewstudent(stu); } if (1 == n) { cout << "請輸入修改姓名" << endl; cin >> name; int i = 0; ifstream infile("student.txt", ios::in); infile >> stu.length; for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; } infile.close(); for (i = 1; i <= stu.length; i++)//先找到再修改 { if (stu.r[i].id == id) { stu.r[i].name = name; InsertSort(stu); return; } } } if (2 == n) { int i; cout << "請輸入修改宿舍號" << endl; cin >> dormid; ifstream infile("student.txt", ios::in); infile >> stu.length; for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; } infile.close(); for (i = 1; i <= stu.length; i++)//先找到再修改 { if (stu.r[i].id == id) { stu.r[i].dormid = dormid; InsertSort(stu); return; } } } } //顯示宿舍資訊 void Showstudent(SqList &stu) { string a, b, c; int i; cout << "學生的資訊如下:" << endl; cout << "**********************************" << endl; ifstream infile("student.txt", ios::in); if (!infile) { //如果檔案開啟失敗 cout << "檔案開啟失敗" << endl; exit(1); } /*infile >> a >> b >> c;//從磁碟檔案讀入 cout << a << setw(8) << b << setw(8) << c << endl;//在顯示器上顯示*/ infile >> stu.length; for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; cout << stu.r[i].id << setw(8) << stu.r[i].name << setw(8) << stu.r[i].dormid << endl; } infile.close(); } //刪除宿舍資訊 void Deletstudent(SqList &stu) { int i, j; string a, b, c, id; cout << "請輸入刪除學生學號" << endl; cin >> id; ifstream infile("student.txt", ios::in);//定義輸入檔案流物件,以輸入方式開啟磁碟檔案"student.txt" infile >> stu.length; for (i = 1; i <= stu.length; i++) { infile >> stu.r[i].id >> stu.r[i].name >> stu.r[i].dormid; } infile.close(); for (i = 1; i <= stu.length; i++)//先找到再刪除 { if (stu.r[i].id == id) { for (j = i; j<stu.length; j++) stu.r[j] = stu.r[j + 1]; stu.length--; InsertSort(stu); return; } } } //主函數 int main() { SqList stu; int n; for (;;) { cout << "**************************宿舍管理查詢軟體**************************" << endl; cout << "1. 建立學生資訊" << endl; //InitList cout << "2. 增加學生資訊" << endl; //Addstudent cout << "3. 查詢學生資訊" << endl; //Findstudent cout << "4. 顯示學生資訊" << endl; //Showstudent cout << "5. 修改學生資訊" << endl; //Renewstudent cout << "6. 刪除學生資訊" << endl; //Deletstudent cout << "0. 退出系統" << endl; cout << "*******************************************************************" << endl; cout << "請輸入你需要的操作(0~6):" << endl; cin >> n; switch (n) { case 1: cout << "輸入學生人數" << endl; cin >> stu.length; InitList(stu); cout << "###########################################" << endl; break; case 2: Addstudent(stu); cout << "###########################################" << endl; break; case 3: Findstudent(stu); cout << "###########################################" << endl; break; case 4: Showstudent(stu); cout << "###########################################" << endl; break; case 5: Renewstudent(stu); cout << "###########################################" << endl; break; case 6: Deletstudent(stu); cout << "###########################################" << endl; break; case 0: cout << "您已退出系統!" << endl; return 0; } } system("pause"); return 0; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45