2.2.练习二:线性表实现节假日管理
```c++
#include <iostream>
#include <string>
using namespace std;
// 定义节假日结构体
struct Holiday{ // 节假日结构体定义
string name; // 节假日名称
int month; // 月份
int day; // 日期
};
void InitList(Holiday *L, int n) { // 初始化节假日表,n为表长度
for (int i = 0; i < n; ++i) { // 逐个输入节假日信息,存入数组中
cout << "请输入第" << i + 1 << "个节假日的名字:";
cin >> L[i].name;
cout << "请输入月份:";
cin >> L[i].month;
cout << "请输入天数:";
cin >> L[i].day;
} } void PrintList(Holiday *L, int n) { // 打印录入的所有的节假日信息,n为表长度 for (int i = 0 ; i < n ; ++i ) { cout<<"第"<<i+1<<"个节假日:"<<L[i].name<<endl;; cout<<"月份:"<<L[i].month<<endl;; cout<<"天数:"<<L[i].day<<endl;; } } void InsertList(Holiday *L, int &n , string name ,int month ,int day ){ if (n<10){ L[n].name=name ; L[n].month=month ; L[n++].day=day ; } else { cout << "已到顺序表上界,不能再插入!" << endl;; }} void DeleteList(Holiday *L, int &n ,string name){ for (int j = 0 ; j< n-1 ;) { if (L[j++ ].name == name ){ for (int k=j-1 ; k< n-1 ;) L [k] = L [k+1] ;; --n ;; break;} }} void SearchList(Holiday *L, int &n ,string name){ bool flag = false ;; for (int j = 0 ; j< n-1 ;) { if (L [j++ ].name == name ){ flag=true ;; break;} } if (!flag) cout << "not found!" << endl;; else printf("%s %d %d\r\t",&(*((*((*(&(*(&(*(&(*(&(*(&(*&*&*&*&*&*((*((*(&(*(&**&&**&&**&&**&&**&&**&&***))))))))))))))).name)), (*((*((*(&(*(&(*(&(*(&(*&*&*&*)->month)))))->day))));} main (){ Holiday hlist [10] ;; int num_hlist = 0 ;; InitList(hlist, num_hlist); PrintList(hlist, num_hlist); InsertList(hlist,num_hlist,"新年", 1 , 1 ); DeleteList(hlist,num_hlist,"星期五"); SearchList( hlist , num_hlist ,"新年");}```
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!