學生信息管理系統(tǒng)源代碼_第1頁
學生信息管理系統(tǒng)源代碼_第2頁
學生信息管理系統(tǒng)源代碼_第3頁
學生信息管理系統(tǒng)源代碼_第4頁
學生信息管理系統(tǒng)源代碼_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、C+課程設(shè)計參考程序源碼1main.cpp/* 課程設(shè)計題目:學生信息管理系統(tǒng) 班級:0901 學號:200905112 姓名:xxx */使用數(shù)組存儲學生信息順序存儲#include "studentinfo.h"int main() Student sMAXNUM; /定義保存學生數(shù)據(jù)的數(shù)組 Load(s); /載入學生數(shù)據(jù) char ch='9' ShowMenu(); /顯示菜單 cout<<"選擇對應(yīng)數(shù)字進行操作:" while(1) cin>>ch; system("cls"); /

2、清除屏幕 ShowMenu(); /顯示菜單 DoMenu(s,ch); /執(zhí)行菜單 ShowTip(); /顯示提示 studentinfo.h#ifndef STUDENTINFO_H_INCLUDED#define STUDENTINFO_H_INCLUDED#include<iostream>#include<cstdlib>#include<string>#include<fstream>#include<sstream>#include<iomanip>using namespace std;struct St

3、udent int id; /學號 string name; /姓名;extern const int MAXNUM; /聲明MAXNUM變量void Insert(Student *S); /插入學生數(shù)據(jù)void Delete(Student *S,int n); /刪除學號為n的學生數(shù)據(jù)void Clear(Student *S);/清除所有學生數(shù)據(jù)int Search(Student *S,int n);/查找學號為n的學生,返回其索引號(數(shù)組下標)void Find(Student *S,int n);/查找并顯示學號為n的學生的信息void View(Student *S);/查看所

4、有學生的信息void Load(Student *S);/從文件中載入學生信息void Save(Student *S);/將學生信息保存到文件void Exit(Student *s); /安全退出void ShowMenu();/顯示菜單void ShowTip();/顯示操作提示void DoMenu(Student *S,char n);/執(zhí)行相應(yīng)菜單項功能#endif / STUDENTINFO_H_INCLUDEDstudentinfo.cpp#include "studentinfo.h"/數(shù)組S的0號單元不用int num; /學生人數(shù)bool flag=t

5、rue; /數(shù)據(jù)是否修改過的標志const int MAXNUM=100; /學生人數(shù)允許的最大值void Insert(Student *S) /插入學生數(shù)據(jù) Student t; cout<<"學號為整數(shù),輸入0終止錄入"<<endl; while(1) if(num=(MAXNUM-1) cout<<"學生人數(shù)已達最大值!"<<endl; return; cout<<"請輸入學號:" if(!(cin>>t.id) /輸入的不是數(shù)字,重新提示輸入 cout&

6、lt;<"學號應(yīng)為整數(shù)!"<<endl; cin.clear(); /清除狀態(tài)標志,參考教材P430 cin.sync(); /清空輸入緩沖區(qū) continue; if(Search(S,t.id)>0) /查找此學號是否已存在 cout<<"此學號已存在!"<<endl; continue; if(t.id=0) /輸入0結(jié)束錄入 cout<<"錄入結(jié)束。"<<endl; return; cin.sync(); /清空輸入緩沖區(qū) cout<<&quo

7、t;請輸入姓名:" getline(cin,); /讀取一行 if(="") /如讀取的為空串,則設(shè)name為null ="null" +num; /學生人數(shù)增1 Snum=t; /將新錄入的學生加入數(shù)組中 flag=true; /數(shù)據(jù)已改動 void Delete(Student *S) /刪除學生 if(num=0) cout<<"無學生!"<<endl; else int n,m=0; cout<<"請輸入要刪除的學生的學號:"

8、 cin>>n; m=Search(S,n); /查找學號為n的學生的索引號(在數(shù)組中的下標) if(m=0) /Search()返回0表示沒找到 cout<<"找不到要刪除的學生!" return; /結(jié)束刪除操作 for(int i=m; i<num; i+) /刪除Sm處的學生 Si=Si+1; -num; /人數(shù)減1 flag=true; /數(shù)據(jù)已改動 cout<<"成功刪除學號為"<<n<<"的學生"<<endl; void Clear(Stude

9、nt *S)/清除所有學生數(shù)據(jù) num=0; /設(shè)置學生人數(shù)為0int Search(Student *S,int n)/查找學號為n的學生,返回其索引號(數(shù)組下標) for(int i=1; i<=num; i+) if(Si.id=n) return i; /返回找到的學生的索引號(數(shù)組下標) return 0; /沒找到,返回0,void Find(Student *S)/查找并顯示學生的信息 int n; cout<<"請輸入要查找的學生的學號:" cin>>n; int i=Search(S,n); /查找學號為n的學生,返回其索引號

10、(數(shù)組下標) if(i=0) cout<<"查無此人!"<<endl; else cout<<setw(6)<<"學號"<<" "<<setw(10)<<"姓名"<<endl; cout<<setw(6)<<Si.id<<" "<<setw(10)<<S<<endl; void View(Student *S)/查看所

11、有學生的信息 if(num=0) cout<<"無學生記錄!" else cout<<"共有"<<num<<"條學生記錄"<<endl; for(int i=1; i<=num; i+) cout<<setw(6)<<"學號"<<" "<<setw(10)<<"姓名"<<endl; cout<<setw(6)<<Si

12、.id<<" "<<setw(10)<<S<<endl; void Load(Student *S)/從文件中載入學生信息 Student t; ifstream infile("data.txt"); /創(chuàng)建文件輸入流,文件位于項目文件夾中 if(!infile) cerr<<"錯誤:數(shù)據(jù)文件不能打開!n" else for(int i=1; infile>>Si.id; i+) /從文件中讀取保存的學生數(shù)據(jù) infile>>Si.nam

13、e; num+; flag=false; /設(shè)置數(shù)據(jù)沒改動 infile.close(); /關(guān)閉文件void Save(Student *S)/將學生信息保存到文件 ofstream outfile("data.txt"); /創(chuàng)建文件輸出流 if(!outfile) cerr<<"錯誤:數(shù)據(jù)文件不能打開!n" else for(int i=1; i<=num; i+) /將學生數(shù)據(jù)寫入文件 outfile<<Si.id<<' '<<S<<endl; flag

14、=false; /設(shè)置數(shù)據(jù)沒改動 cout<<"保存成功!"<<endl; void Exit(Student *S) /安全退出 char s='y' if(flag) /判斷數(shù)據(jù)是否修改 cout<<"數(shù)據(jù)已經(jīng)改變,是否保存?(y/n):" cin>>s; if(s='y'|s='Y') Save(S); /保存數(shù)據(jù) cout<<"已安全退出," system("pause"); /程序暫停,按任意鍵繼續(xù)

15、 exit(0); /結(jié)束程序void ShowMenu() /顯示菜單 cout<<"|-|"<<endl; cout<<"| 學生信息管理系統(tǒng) |"<<endl; cout<<"|-|"<<endl; cout<<"| 1.清空:清除所有學生數(shù)據(jù) |"<<endl; cout<<"| 2.添加:插入一條學生數(shù)據(jù) |"<<endl; cout<<"| 3

16、.刪除:刪除指定學生數(shù)據(jù) |"<<endl; cout<<"| 4.查找:查找指定學生數(shù)據(jù) |"<<endl; cout<<"| 5.顯示:顯示所有學生數(shù)據(jù) |"<<endl; cout<<"| 6.保存:保存所有學生數(shù)據(jù) |"<<endl; cout<<"| 0.退出:安全的退出本系統(tǒng) |"<<endl; cout<<"|-|"<<endl<<endl;void ShowTip() /顯示操作提示 cout<<endl; cout<<"-操作完成-"<<endl; cout<<"-選擇05繼續(xù)-"<<endl; cout<<"請選擇:"void DoMenu(Student *S,char n) /執(zhí)行相應(yīng)菜單項功能 switch(n) case '1':

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論