一個簡單c++程序,大一學生的期末作業。
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <stdlib.h>
using namespace std;
class Course
{
public:
int courseNumber;
string courseName,major,quality,courseHour,credit;
Course *next;
Course *pre;
void setcourseName()
{
cin>>courseName;
}
void setcourseNumber()
{
cin>>courseNumber;
}
void setmajor()
{
cin>>major;
}
void setquality()
{
cin>>quality;
}
void setcourseHour()
{
cin>>courseHour;
}
void setcredit()
{
cin>>credit;
}
};
class linklist
{
public:
Course *present,*t,*head;
void insert_one(); //插入
void delete_data(); //刪除
void setdata(); //修改
bool check(); //檢查
void creat(); //jianli
void output(); //輸出
void setmore(); //批量
void menu();
void save();
};
void linklist::save()
{
ofstream write;
write.open("sort.text",ios::out);
t = head;
while(t->next != NULL)
{
write<<t->courseNumber<<"\t"<<t->courseName<<"\t"<<t->major<<"\t"<<t->quality<<"\t"<<t->courseHour<<"\t"<<t->credit<<"\n";
t = t -> next;
}
}
void linklist::menu()
{
cout<<"歡迎訪問課程信息管理系統"<<endl;
cout<<"**************輸入0退出操作*********"<<endl;
cout<<"1.************建立課程信息**********"<<endl;
cout<<"2.************查詢課程信息**********"<<endl;
cout<<"3.************將課程信息列出********"<<endl;
cout<<"4.************刪除課程信息**********"<<endl;
cout<<"5.************修改課程信息**********"<<endl;
cout<<"6.************批量插入課程信息******"<<endl;
cout<<"7.************保存信息**************"<<endl;
}
void linklist::creat()
{
present = new Course;
head = present;
present->next = NULL;
present->pre = NULL;
}
void linklist::output()
{
cout<<" 課程號 課程名 所屬專業 性質 學時 學分"<<endl;
present = head;
while(present->next != NULL)
{
cout<<setw(8)<<present->courseNumber<<setw(8)<<present->courseName<<setw(11)<<present->major<<setw(15)<<present->quality<<setw(10)<<present->courseHour<<setw(8)<<present->credit<<endl;
present = present->next;
}
getchar();
getchar();
}
void linklist::insert_one() //插入的實現
{
present = new Course;
head->pre = present;
present->next = head;
present->pre = NULL;
head = present;
cout<<"輸入課程號"<<endl;
cin>>present->courseNumber;
cout<<"輸入課程名"<<endl;
cin>>present->courseName;
cout<<"輸入所屬專業"<<endl;
cin>>present->major;
cout<<"輸入性質"<<endl;
cin>>present->quality;
cout<<"輸入學時"<<endl;
cin>>present->courseHour;
cout<<"輸入學分"<<endl;
cin>>present->credit;
}
void linklist::delete_data() //刪除數據的實現
{
string courseNumber;
cout<<"請輸入要刪除的課程名"<<endl;
check();
t = head;
while(t->next != present)
{
t = t -> next;
}
if(t==NULL)
{
cout<<"沒有找到該課程"<<endl;
}
else
{
t->next = present->next;
present->pre = t;
delete present;
cout<<"刪除成功"<<endl;
}
}
bool linklist::check() //檢索
{
present = head;
string thename;
cin>>thename;
while(present->next != NULL)
{
if(thename == present->courseName)
{
cout<<setw(8)<<present->courseNumber<<setw(8)<<present->courseName<<setw(8)<<present->major<<setw(8)<<present->quality<<setw(8)<<present->courseHour<<setw(8)<<present->credit<<endl;
getchar();
getchar();
return true;
}
else
{
present = present->next;
continue;
}
}
cout <<"查無此人"<<endl;
getchar();
getchar();
return false;
}
void linklist::setdata() //修改數據
{
string the_name;
int subject;
cout<<"輸入課程名"<<endl;
if(check())
{
while(1)
{
cout<<"1課程號 2課程名"<<endl;
cout<<"3專業 4性質"<<endl;
cout<<"5學時 6學分"<<endl;
cout<<" 0修改完畢,返回上一級菜單 "<<endl;
cout<<"輸入需要操作的編號"<<endl;
cin>>subject;
switch(subject)
{
case 1:
present->setcourseNumber();
break;
case 2:
present->setcourseName();
break;
case 3:
present->setmajor();
break;
case 4:
present->setquality();
break;
case 5:
present->setcourseHour();
break;
case 6:
present->setcredit();
break;
default:
{
cout<<"回到上級菜單"<<endl;
return;
}
}
cout<<"修改成功"<<endl;
}
}
}
void linklist::setmore() //建立數據個數
{
cout<<"請輸入添加學生人數"<<endl;
int number;
cin>>number;
while(number--)
{
insert_one();
}
}
int main()
{
linklist X;
X.menu();
X.creat();
while(true)
{
system("cls");
X.menu();
int choice;
cout<<"請輸入操作序號"<<endl;
cin>>choice;
switch(choice)
{
case 0:
exit(0);
case 1:
X.insert_one();
break;
case 2:
cout<<"請輸入查詢的課程名"<<endl;
X.check();
break;
case 3:
X.output();
break;
case 4:
X.delete_data();
break;
case 5:
X.setdata();
break;
case 6:
X.setmore();
break;
case 7:
X.save();
break;
default:
cout<<"對不起 無此功能"<<endl;
break;
}
if (!choice)
break;
}
return 0;
}