我的C++課程設計
學生資訊管理系統
程式碼:
#include <iostream> using namespace std; #include<stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000 typedef struct student { int number; char name[20]; int grade; int gaoshu; int yingyu; int jisuanji; int sum; }STUDENT; STUDENT student[N]; int shuliang=0; //用於記錄有多少學生 class Student { public: void fhzjm(); void DengJi(); void ShanChu(); void LiuLan(); void ChaZhao(); void PaiXu(); void Save(); void menu(); void DaoRu(); }; void Student::fhzjm() //每次操作結束 來提醒是否繼續進行操作 { char biaozhi[20]; cout<<endl; cout<<"還需要操作麼?如果需要操作請輸入:yes,否則請輸入:no"<<endl; cin>>biaozhi; if(strcmp(biaozhi,"yes")==0) { menu(); } else if(strcmp(biaozhi,"no")==0) exit(0); //退出系統 這是一個庫函式 用於結束程式 else { cout<<"請輸入正確的字元,謝謝!"<<endl; fhzjm(); } } void Student::DengJi() //登記學生資訊函式 { int rs; //用於記錄要輸入多少條學生資訊 int i,k=1; system("CLS"); cout<<"請輸入需要輸入幾個學生資訊:"<<endl; cin>>rs; for(i=shuliang;i<shuliang+rs;i++,k++) { cout<<"請輸入第"<<k<<"個學生的學號:"; cin>>student[i].number; cout<<"請輸入學生的姓名:"; cin>>student[i].name; //cout<<"請輸入學生3門課的成績:"; cout<<"請輸入第高數課的成績:"; cin>>student[i].gaoshu; cout<<"請輸入英語課的成績:"; cin>>student[i].yingyu; cout<<"請輸入第計算機課的成績:"; cin>>student[i].jisuanji; } shuliang=shuliang+rs; fhzjm(); } void Student::ShanChu() //刪除學生資訊 { char shanchuinfo[10]; system("CLS"); //清屏函式 這是一個庫函式 用於清除控制檯中的所有資訊 cout<<"刪除全部學生資訊請輸入\"all\",刪除指定學號的學生資訊請輸入\"one\"\n"; cin>>shanchuinfo; if(strcmp(shanchuinfo,"all")==0) { int j; cout<<"你刪除的學生資訊如下:"<<endl; cout<<"-----------學號-------------姓名-------------高數--------------英語--------------計算機\t"<<endl; for(j=0;j<shuliang;j++) cout<<"----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji; shuliang=0; cout<<"刪除成功"<<endl; } else if(strcmp(shanchuinfo,"one")==0) { struct student *p=NULL; int choice; int i,j,k=0; cout<<"請輸入你要刪除的人的學號:"; cin>>choice; for(i=0;i<shuliang;i++) { if(choice==student[i].number) { k=1;j=i;break; } } if(k) { if(shuliang==1) { p=&student[0]; free(p); shuliang=0; } else { for(i=j;i<shuliang;i++) { student[i]=student[i+1]; } shuliang=shuliang-1; } cout<<"刪除成功"<<endl; } else { cout<<"輸入資料錯誤!"<<endl; } } fhzjm(); } void Student::LiuLan() //瀏覽操作函式 { int i; system("CLS"); if(shuliang==0) { cout<<"系統裡面沒有任何學生的資訊!"<<endl; } else { for(i=0;i<shuliang;i++) { cout<<"第"<<i+1<<"個學生的學號為:"<<student[i].number<<endl; cout<<"第"<<i+1<<"個學生的姓名為:"<<student[i].name<<endl; cout<<"第"<<i+1<<"個學生的高數課的成績為:"<<student[i].gaoshu<<endl; cout<<"第"<<i+1<<"個學生的英語課的成績為:"<<student[i].yingyu<<endl; cout<<"第"<<i+1<<"個學生的計算機課的成績為:"<<student[i].jisuanji<<endl; student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji; cout<<"第"<<i+1<<"個學生的總成績為:"<<student[i].sum<<endl; } } fhzjm(); } void Student::ChaZhao() //查詢函式 實現查詢功能 分為三種查詢 按學號查詢 按姓名 按成績 { int xx; char choice,yy[20]; int i,j,k=0; system("CLS"); if(shuliang==0) { cout<<"系統裡面沒有任何學生的資訊!"<<endl; fhzjm(); } cout<<"三種查詢方式:學號,姓名,成績"<<endl; cout<<"如果按學號查詢請輸1,如果按姓名查詢請輸2,如果按成績查詢請輸3"<<endl; cout<<"請輸入您查詢的方式:"; cin>>choice; if(choice=='1') { cout<<"請輸入需要查詢學生的學號:"; cin>>xx; cout<<"您所查詢的學生的資訊為:"<<endl; cout<<"----學號----姓名----高數成績----英語成績----計算機成績----\t"<<endl; for(i=0;i<shuliang;i++) { if(xx==student[i].number) { j=i;k=1; cout<<"----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji; } } if(k==0) cout<<"輸入資訊有誤:"<<endl; } else if(choice=='2') { cout<<"請輸入需要查詢學生的姓名:"; cin>>yy; cout<<"您所查詢的學生的資訊為:"<<endl; cout<<"----學號----姓名----高數成績----英語成績----計算機成績----\t"<<endl; for(i=0;i<shuliang;i++) { if(strcmp(yy,student[i].name)==0) { j=i;k=1; cout<<"----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jisuanji; } } if(k==0) cout<<"輸入資訊有誤:"<<endl; } else if(choice=='3') { cout<<"請輸入需要查詢學生的成績:"<<endl; cin>>xx; cout<<"您所查詢的學生的資訊為:"<<endl; cout<<"----學號----姓名----高數----英語----計算機----\t"<<endl; for(i=0;i<shuliang;i++) { if(xx==student[i].grade) { j=i;k=1; cout<<"----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji; } } if(k==0) cout<<"輸入資訊有誤:"<<endl; } fhzjm(); } void Student::PaiXu() //排序函式 執行排序操作 { struct student *p1[N],**p2,*temp; int i,j; system("CLS"); p2=p1; for( i=0;i<shuliang;i++) { p1[i]=student+i; } for( i=0;i<shuliang;i++) { for( j=i+1;j<shuliang;j++) { if((*(p2+i))->sum<(*(p2+j))->sum) { temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp; } } } cout<<"按照總成績排序之後的資訊為:"<<endl; cout<<"----學號----姓名----總成績----\t"<<endl; for( i=0;i<shuliang;i++) { student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji; cout<<"----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum; } fhzjm(); } void Student::Save() //儲存資料 把資料寫到檔案操作 { int i; FILE *rs; if((rs=fopen("student.txt","w"))==NULL) { cout<<"not open"; exit(0); } for(i=0;i<shuliang;i++) { fwrite(&student[i], sizeof(student[i]), 1, rs); } if(ferror(rs)) { fclose(rs); perror("寫檔案失敗!\n"); return; } cout<<"儲存檔案成功!"<<endl; fclose(rs); fhzjm(); } void Student::DaoRu() { struct student t; int i=0; FILE* fp = fopen("student.txt", "r"); shuliang=0; if(NULL==fp) { perror("讀取檔案開啟失敗!\n"); return; } memset(student,0x0,sizeof(student)); while(1) { fread(&t,sizeof(t),1,fp); if(ferror(fp)) { fclose(fp); perror("讀檔案過程失敗!\n"); return; } if(feof(fp)) { break; } student[i]=t; i++; } fclose(fp); shuliang=i; cout<<"匯入檔案成功!"<<endl; fhzjm(); } void Student::menu() { int n=0; system("CLS"); cout<<" ==================學生資訊管理系統==============="<<endl; cout<<" = 1.登記學生資訊 ="<<endl; cout<<" = 2.刪除學生資訊 ="<<endl; cout<<" = 3.瀏覽學生資訊 ="<<endl; cout<<" = 4.查詢學生資訊 ="<<endl; cout<<" = 5.根據總成績排序 ="<<endl; cout<<" = 6.儲存到檔案 ="<<endl; cout<<" = 7.從檔案匯入 ="<<endl; cout<<" = 8.退出系統 ="<<endl; cout<<" ================================================="<<endl; cout<<" 請選擇:"; cin>>n; switch (n) { case 1: DengJi();break; //等記資訊 case 2: ShanChu();break; //刪除資訊 case 3: LiuLan();break; //瀏覽資訊 case 4: ChaZhao();break; //查詢資訊 case 5: PaiXu();break; //對成績記性排序 case 6: Save();break; //儲存資料到檔案中 case 7: DaoRu();break; //把檔案中的資料匯入到程式中 case 8: exit(0);break; //退出系統 } } int main() { Student student; student.menu(); return 0; }
相關推薦
我的C++課程設計
學生資訊管理系統 程式碼: #include <iostream> using namespace std; #include<stdio.h> #include <string.h> #include <stdlib.h&g
代寫System Simulator作業、代寫OS/CS編程語言作業、C/C++課程設計作業代做、代做OS/CS作業
The fault dom cut cas shm deadline memory testing Semaphores and Operating System SimulatorOperating System SimulatorThis will be your ma
代寫COMP 3023作業、代做c++課程設計作業、代寫Software Development作業、代做C++程式設計作業
代寫COMP 3023作業、代做c++課程設計作業、代寫Software Development作業、代做C++程式設計作業School of Information Technology and Mathematical SciencesCOMP 3023 Software Development with
代寫COMP/2013作業、代做python/c++作業、代做UML DESIGN作業、代寫Python, C/C++課程設計作業
代寫COMP/2013作業、代做python/c++作業、代做UML DESIGN作業、代寫Python, C/C++課程設計作業COMP/2013 (Lab 03 - 2018)1LAB 3: UML DESIGN GROUP PROJECTAims: Practice your object orient
代做EEEN20010作業、代寫C/C++課程設計作業、代做Computer Engineering作業、代寫C/C++程式語言作業
代做EEEN20010作業、代寫C/C++課程設計作業、代做Computer Engineering作業、代寫C/C++程式語言作業EEEN20010 Computer Engineering I“Find root of a cubic function”(root)You are expected to
代寫HCI Project作業、代做C/C++課程設計作業、linux程式作業代寫代做、C/C++程式設計作業代做
代寫HCI Project作業、代做C/C++課程設計作業、linux程式作業代寫代做、C/C++程式設計作業代做HCI Project DescriptionWe will be designing a notepad application for linux, as we found t
代寫CS4115留學生作業、代做C/C++程式設計作業、代寫matrix compression program作業、代做C/C++課程設計作業
CS4115 Week06 Lab ExerciseLab Objective: The objective of this week’s lab is to consider a matrix compression program.Matrices are used in a huge variety o
代做CSE 232作業、代寫C/C++程式設計作業、代做Steganography作業、代寫C/C++課程設計作業
CSE 232 Fall 2018Programming Project 06Assignment OverviewThis assignment is worth 50 points (5.0% of the course grade) and must be completed and turnedin
代寫ENGO 333作業、代做C++程式設計作業、代寫geometric留學生作業、代做C++課程設計作業
代寫ENGO 333作業、代做C++程式設計作業、代寫geometric留學生作業、代做C++課程設計作業Lab Assignment 8 ENGO 3331Lab Assignment #8 (Bonus)Where would we be after a couple of geometric trans
代寫CS320留學生作業、代做C/C++課程設計作業、代寫tokenizers and parsers作業、代做C/C++實驗作業
Assignment #2CS320 Assignment #2PurposeThis assignment is designed to familiarize you with C++ programming, tokenizersand parsers.RequirementsThis assignme
代做C++程式設計作業、代寫geometric留學生作業、代做C++課程設計作業 代寫R語言程式|幫做C/C++程式設計
Introduction In this assignment, you are going to develop the Ludo Game, a board game that runs in the command line environment. Lu
C++課程設計:學生管理系統
(一)新生基本資訊統計軟體 有新生來報到,要逐個錄入其資訊,如:學生姓名,性別,專業,出生日期,家庭地址,英語入學成績。要求設計連結串列類來實現,並統計學生人數。文字介面為: 1. 新增學生資訊 2. 刪除學生資訊 3. 匯入學生資訊(已經保存於的檔案資訊) 4. 學生資訊搜尋
C#課程設計
C#開發收穫與心得 光陰似箭,一個學期已經到了末尾。這個學期是我在大學以來收穫最大的一個學期,讓我學會了很多作為一個大學生應該擁有的一些基礎的技能。大學以來都是濛濛混混過,但是這學期第一節c#課讓我產生了應該在大學學點有用的東西的想法。一上課老師就給我們看了學習視訊,告訴我
C++課程設計之模擬一個微型生態系統
題目: 模擬一個微型生態系統。有青草、兔子、狐狸三種生物。可以用網格表示整個環境,每個格子內用不同字母表示不同事物:空地E青草G兔子R狐狸F。系統規則如下: 1)初始狀態隨機出現GRF; 2)若格子為G,下一輪其周邊八個格子中為E的格子中會至少有一個變為G; 3)若格子為R
C++/C課程設計(2)工資管理系統功能說明
工資管理系統 一, 基本功能要求: 1)以密碼登入系統 密碼登入時讀取檔案info.txt(儲存員工資訊)和Admin.txt(儲存管理員息) 如果密碼錯誤或者使用者賬號不存在,會給出相應提示 二, 主功能介面 選單佈
C++課程設計指導書
一、題目: (1)成績管理系統 (2)圖書資料資訊管理系統 (3)職工工資資訊管理系統 (4)通訊錄 .............. 二、需要處理的基礎資料 (1)學生成績管理系統 l學生基本資訊:如學號、姓名、性別、年齡、宿舍號碼、電話號碼等。 l學生各科課程的
c++課程設計之貪食蛇
這個程式是windows環境下完成的,為了更好的做出動畫效果,定義了gotoxy函式,主要用了三個 類Game_Map,Snake,和Snake_Game類,在第一次遊戲時需要在選單中初始化玩家資料,用了vector來儲存蛇身。 //Windows環境下c++貪食蛇
C++課程設計:學生資訊管理系統
課程設計內容 1.)學生資訊的錄入:錄入新的學生的資訊; 2.)學生資訊的新增:新增新的學生的資訊; 3.) 學生資訊的刪除:刪除不需要的學生的資訊。 4.)學生資訊的查詢:查詢你需要的學生的資訊。 5.)學生資訊的修改:修改錯誤的學生的資訊。 6.)學生資訊的顯示:顯示所
哈理工-14級-大一到大四 (課程設計 + 實驗報告 + 自學視頻教程書籍 + 課件 + 作業 + 考試 復習資料) 應有盡有,雖然有過時的東西,但相信我,絕對有幹貨!!!
課程設計 nbsp 分享圖片 一課 class clas pos 報告 設計 歡迎學弟學妹們騷擾我哦,有需要的請留言私我哦!!! 聽說你不信, 來個栗子??,先:::上圖 大一課程: 大二課程: 大三課程: 哈理工-14級-大一到大四 (課程設計 +
<自考學習記錄> 課程代碼04737《C++程序設計》<1>
自考1.1 初識C++的函數和對象1.C++和C語言的關系C++是一種優秀的高級程序設計語言,它是以C語言為基礎而逐漸發展起來的。C++語言既保留了傳統結構化程序設計方法,又對流行的面向對象程序設計方法提供了完整的支持。此外,C++語言還具有許多C語言不支持的新功能和新特性。具體區別我覺得這裏講的更詳細,各位