C++課程設計:學生資訊管理系統
課程設計內容
1.)學生資訊的錄入:錄入新的學生的資訊;
2.)學生資訊的新增:新增新的學生的資訊;
3.) 學生資訊的刪除:刪除不需要的學生的資訊。
4.)學生資訊的查詢:查詢你需要的學生的資訊。
5.)學生資訊的修改:修改錯誤的學生的資訊。
6.)學生資訊的顯示:顯示所有學生的資訊。
7.)學生資訊的儲存:把學生的資訊儲存到檔案並退出。
8.)學生資訊的讀取:從檔案中讀取所有學生的資訊。
功能描述
1.新增、刪除
系統將提示使用者輸入新新增學生的資訊;由使用者輸入要刪除的學生的學號,然後呼叫刪除函式,刪除該名學生的資料。
2.查詢
3.首先由使用者輸入要查詢的學生的學號,系統用查詢函式查詢,然後系統就呼叫輸出函式。
4.修改
首先由使用者輸入要修改的學生的學號,然後系統用修改函式查詢,顯示該名學生的資料,然後系統提示使用者輸入需要修改的專案和新的資料。
程式碼:
#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstring>
using namespace std;
int n=0;
class Student
{
public:
int num;
char name[12];
char study[12];
char classe[12];
int score[3];
int s;
Student *next;
};
class Studentmanage
{
private:
Student *head,*p1,*p2,*p3;
public:
Studentmanage (){};
Student *creat();
Student *add(Student *head);
Student *delet(Student *head);
void *search(Student *head);
Student *modify(Student *head);
void display(Student *head);
void write_file(Student *head);
Student * read_file();
~Studentmanage (){};
};
Student *Studentmanage::creat()
{
p1=p2=new Student;
head=NULL;
cout<<"請輸入學生的基本資訊:以學號為0結束。\n";
while(1)
{
cout<<"學號:";
cin>>p1->num;
if(p1->num==0)
{
break;
}
cout<<"姓名:";
cin>>p1->name;
cout<<"院系:";
cin>>p1->study;
cout<<"班級:";
cin>>p1->classe;
cout<<"C++成績:";
cin>>p1->score[0];
cout<<"高數成績:";
cin>> p1->score[1];
cout<<"英語成績:";
cin>>p1->score[2];
p1->s=p1->score[0]+p1->score[1]+p1->score[2];
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=new Student;
}
p2->next=NULL;
return head;
}
Student *Studentmanage::add(Student *head)
{
long int Num;
p1=p2=new Student;
p3=new Student;
p1=head;
int j=0;
cout<<"請輸入你要新增學生的位置:\n";
cout<<"如果想放在頭,請輸入0, 否則請輸入要新增前一個學生的學號:\n";
cin>>Num;
if(Num==0)
{
cout<<"請輸入要新增學生的資訊!\n學號:";
cin>>p3->num;
cout<<"姓名:";
cin>>p3->name;
cout<<"院系:";
cin>>p3->study;
cout<<"班級:";
cin>>p3->classe;
cout<<"C++成績:";
cin>>p3->score[0];
cout<<"高數成績:";
cin>>p3->score[1];
cout<<"英語成績:";
cin>>p3->score[2];
p3->s=p3->score[0]+p3->score[1]+p3->score[2];
p1=head;
head=p3;
p3->next=p1;
n++;
j=1;
}
else
{
p1=head;
p2=p1->next;
while(p1!=NULL)
{
if(p1->num==Num)
{
cout<<"請輸入要新增學生的資訊!\n學號:";
cin>>p3->num;
cout<<"姓名:";
cin>>p3->name;
cout<<"院系:";
cin>>p3->study;
cout<<"班級:";
cin>>p3->classe;
cout<<"C++成績:";
cin>>p3->score[0];
cout<<"高數成績:";
cin>>p3->score[1];
cout<<"英語成績:";
cin>>p3->score[2];
p3->s=p3->score[0]+p3->score[1]+p3->score[2];
p1->next=p3;
p3->next=p2;
n++;
j=1;
break;
}
else
{
p1=p2;
p2=p1->next;
}
}
}
if(j==0)
cout<<"你要新增的位置不存在,新增失敗!\n";
else
cout<<"新增成功!\n";
return head;
}
Student *Studentmanage::delet(Student *head)
{
long int Num;
p2=p1=new Student;
cout<<"請輸入要刪除學生的學號:\n";
cin>>Num;
p2=p1=head;
int j=0;
if(head->num==Num&&head!=NULL)
{
head=head->next;
delete(p1);
j=1;
n--;
}
else
{
p1=head->next;
while(p1!=NULL)
{
if(p1->num==Num)
{
p2->next=p1->next;
free(p1);
j=1;
n--;
break;
}
else
{
p2=p1;
p1=p2->next;
}
}
}
if(j==0)
cout<<"此學生不存在,刪除的失敗!\n";
else
cout<<"刪除成功!\n";
return head;
}
void *Studentmanage::search(Student *head)
{
long int Num;
p1=new Student;
cout<<"請輸入要查詢學生的學號:\n";
cin>>Num;
p1=head;
int j=0;
while(p1!=NULL)
{
if(p1->num==Num)
{
cout<<"學號:"<<p1->num;
cout<<" 姓名:"<<p1->name;
cout<<" 院系:"<<p1->study;
cout<<" 班級:"<<p1->classe;
cout<<" C++成績:"<<p1->score[0];
cout<<" 高數成績:"<<p1->score[1];
cout<<" 英語成績:"<<p1->score[2];
cout<<" 總成績:"<<p1->s<<endl;
j=1;
break;
}
p1=p1->next;
}
if(j==0)
cout<<"沒有找到你要查詢學生的資訊。\n";
else
cout<<"這是你要查詢學生的資訊:\n";
}
Student *Studentmanage::modify(Student *head)
{
long int Num;
long int num1;
char name1[12];
char study1[12];
char classe1[12];
int score1[3];
p1=new Student;
int j=0;
cout<<"請輸入你要更改學生的學號:\n";
cin>>Num;
p1=head;
if(head->num==Num)
{
cout<<"顯示要修改學生的資訊:\n";
cout<<"學號:"<<head->num<<" 姓名:"<<head->name<<" 院系:"<<head->study;
cout<<" 班級:"<<head->classe<<"C++成績:"<<head->score[0];
cout<<" 高數成績:"<<head->score[1]<<" 英語成績:"<<head->score[2];
cout<<"總成績:"<<head->s<<endl;
cout<<"請輸入要更改學生的資訊:\n";
cout<<"學號:";
cin>>num1;
cout<<"姓名:";
cin>>name1;
cout<<"院系:";
cin>>study1;
cout<<"班級:";
cin>>classe1;
cout<<"C++成績:";
cin>>score1[0];
cout<<"高數成績:";
cin>>score1[1];
cout<<"英語成績:";
cin>>score1[2];
head->num=num1;
strcpy(head->name,name1);
strcpy(head->study,study1);
strcpy(head->classe,classe1);
head->score[0]=score1[0];
head->score[1]=score1[1];
head->score[2]=score1[2];
head->s=head->score[0]+head->score[1]+head->score[2];
j=1;
}
else
{
p1=head->next;
while(p1!=NULL)
{
if(p1->num!=Num)
{
p1=p1->next;
}
else
{
cout<<"顯示要修改學生的資訊:\n";
cout<<"學號:"<<p1->num<<" 姓名:"<<p1->name<<" 院系:"<<p1->study;
cout<<" 班級:"<<p1->classe<<"C++成績:"<<p1->score[0];
cout<<" 高數成績:"<<p1->score[1]<<" 英語成績:"<<p1->score[2]<<endl;
cout<<"請輸入要更改學生的資訊:\n";
cout<<"學號:";
cin>>num1;
cout<<"姓名:";
cin>>name1;
cout<<"院系:";
cin>>study1;
cout<<"班級:";
cin>>classe1;
cout<<"C++成績:";
cin>>score1[0];
cout<<"高數成績:";
cin>>score1[1];
cout<<"英語成績:";
cin>>score1[2];
p1->num=num1;
strcpy(p1->name,name1);
strcpy(p1->study,study1);
strcpy(p1->classe,classe1);
p1->score[0]=score1[0];
p1->score[1]=score1[1];
p1->score[2]=score1[2];
p1->s=p1->score[0]+p1->score[1]+p1->score[2];
j=1;
break;
}
}
}
if(j==0)
cout<<"沒有找到你要更改的學生,更改失敗!\n";
else
cout<<"更改成功!\n";
return head;
}
void Studentmanage::display(Student *head)
{
int i;
i=n;
cout<<"這裡有"<<n<<"個學生的資訊:"<<endl;
p1=head;
if(p1==NULL)
cout<<"這是一個空表!請先輸入學生資訊。"<<endl;
else
{
while(i>0)
{
cout<<"學號:"<<p1->num<<" 姓名:"<<p1->name<<" 院系:"<<p1->study;
cout<<" 班級:"<<p1->classe<<" C++成績:"<<p1->score[0];
cout<<" 高數成績:"<<p1->score[1]<<" 英語成績:"<<p1->score[2];
cout<<" 總成績:"<<p1->s<<endl;
p1=p1->next;
i--;
}
}
}
Student *Studentmanage::read_file()
{
int num;
int i=0;
char name[12];
char study[12];
char classe[12];
int score[3];
int s;
p1=p2=new Student;
head=NULL;
ifstream in;
in.open("yyy.txt");
if(!in)
{
cout<<"開啟檔案失敗!"<<endl;
}
while(in)
{
in>>num>>name>>study>>classe>>score[0]>>score[1]>>score[2]>>s;
p1->num=num;
strcpy(p1->name,name);
strcpy(p1->study,study);
strcpy(p1->classe,classe);
p1->score[0]=score[0];
p1->score[1]=score[1];
p1->score[2]=score[2];
p1->s=s;
i++;
if(i==1)
{
head=p2=p1;
}
else
{
p2->next=p1;
}
p2=p1;
p1=new Student;
n=i-1;
}
return head;
}
void Studentmanage::write_file(Student *head)
{
ofstream out;
out.open("yyy.txt");
if(!out)
{
cout<<"開啟檔案失敗!"<<endl;
}
p1=NULL;
p1=head;
while(p1)
{
out<<p1->num<<setw(5)<<p1->name<<setw(5)<<p1->study<<setw(5)<<p1->classe<<setw(5)<<p1->score[0]<<setw(5)<<p1->score[1]<<setw(5)<<p1->score[2]<<setw(5)<<p1->s<<endl;
p1=p1->next;
}
out.close();
}
char menu()
{
system("cls");
char ch;
cout<<"\t\t\t---------請選擇:-----------\n";
cout<<"\t\t\t---------1.錄入功能-------\n";
cout<<"\t\t\t---------2.新增功能:-------\n";
cout<<"\t\t\t---------3.刪除功能:-------\n";
cout<<"\t\t\t---------4.查詢功能:-------\n";
cout<<"\t\t\t---------5.修改功能:-------\n";
cout<<"\t\t\t---------6.顯示功能:----\n";
cout<<"\t\t\t---------7.儲存並退出:----------\n";
cout<<"\t\t\t---------8讀出檔案-----------\n";
cin>>ch;
return ch;
}
int main ()
{
Studentmanage s;
Student *head;
char c;
cout<<"歡迎使用學生資訊管理系統!\n";
cout<<"**********************************作者:於洋洋\n";
cout<<"----------------------- 祝你使用愉快!\n";
system("pause");
while(1)
switch (menu())
{
case'1':head=s.creat();system("pause");break;
case'2':head=s.add(head);system("pause");break;
case'3':head=s.delet(head);system("pause");break;
case'4':s.search(head);system("pause");break;
case'5':head=s.modify(head);system("pause");break;
case'6':s.display(head);system("pause");break;
case'7':s.write_file(head);cout<<"謝謝使用!再見!\n";system("pause");return 0;
case'8':head=s.read_file();system("pause");break;
default:cout<<"選擇有錯,請重新選擇\n";
}
return 0;
}
相關文章
- 學生資訊管理系統課程設計
- 【C語言課程設計】學生學籍管理系統C語言
- 資料結構課程設計——學生資訊管理系統資料結構
- 【C++課程設計】通訊錄管理系統C++
- 學生成績管理系統——課程設計報告
- 【C++】學生管理系統C++
- 資料庫課程設計-宿舍管理系統資料庫
- 學生選題資訊管理系統
- javaweb課程設計之XXX管理系統JavaWeb
- 資料結構課程設計-宿舍管理系統資料結構
- 課程管理系統
- 大一課程設計:基於資料庫的學生資訊系統資料庫
- 資料庫課程設計—超市零售資訊管理系統(Python實現)資料庫Python
- 【管理系統課程設計】美少女手把手教你後臺管理
- 作業系統課程設計感受作業系統
- 資料庫課設(校友錄資訊管理系統)資料庫
- Java圖書管理系統,課程設計必用(原始碼+文件)Java原始碼
- C++實現控制檯學生學籍管理系統C++
- 順通高校學生網上選課管理系統
- 學生管理系統
- 航班資訊查詢和檢索系統-資料結構課程設計資料結構
- 資料結構 課程設計 員工管理系統(C語言)資料結構C語言
- 關於學生選課管理系統的用例圖
- 職工資訊管理系統的設計
- 業務管理資訊系統通用設計
- 20145216《資訊保安系統設計基礎》課程總結
- Java Swing+Mysql+beautyEye(介面優美)學校成績管理系統(管理員/學生/教師,資訊管理/選課管理/成績管理)JavaMySql
- 學習系統設計11個課題
- 查詢各課程成績第一的學生的資訊
- 學生管理系統(springMVC)SpringMVC
- JAVA學生宿舍管理系統Java
- 學生管理系統程式碼
- 基於java的大學生健康資訊管理系統的設計與實現Java
- 5分鐘課程:物聯網的系統設計
- 基於檔案管理的學生資訊管理系統(C語言/C++)C語言C++
- 就業資訊管理系統設計與實現就業
- mysql重點題目--查詢“01“課程比“02“課程成績高的學生的資訊及課程分數MySql
- 新課程C++實用程式設計以上線!!!C++程式設計