• 819代码


      1 #include <iostream>
      2 using namespace std;
      3 class Student
      4 {public:
      5   void get_value()
      6    {cin>>num>>name>>sex;}
      7   void display( )
      8     {cout<<"num: "<<num<<endl;
      9      cout<<"name: "<<name<<endl;
     10      cout<<"sex: "<<sex<<endl;}
     11  private :
     12    int num;
     13    char name[10];
     14    char sex;
     15 };   
     16 
     17 class Student1: public Student
     18  {public:
     19    void get_value_1()
     20     {get_value();
     21      cin>>age>>addr;}
     22    void display_1()
     23    {   cout<<"age: "<<age<<endl;          //引用派生类的私有成员,正确。
     24        cout<<"address: "<<addr<<endl;}    //引用派生类的私有成员,正确。
     25   private:
     26        int age;
     27        char addr[30];
     28  };
     29  
     30 int  main()
     31  {Student1 stud1;
     32   stud1.get_value_1();
     33   stud1.display();
     34   stud1.display_1();
     35   system("pause");
     36   return 0;
     37 } 
     38 
     39 
     40 
     41 #include <stdio.h>
     42 #include <stdlib.h>
     43 #include <string.h>
     44 #define N 3
     45 #define LEN (Student*) malloc(sizeof(Student))
     46 /* 学生数据结构 */
     47 typedef struct node
     48 {
     49     char num[20];//
     50     char name[15];
     51     int score[N];
     52     int sum;
     53     double ave;
     54     struct node *next;
     55 } Student;
     56  
     57 /* 头指针 */
     58 Student *head = NULL;
     59 /* 临时指针 */
     60 Student *tmp = NULL;
     61 /* 课程名称 */
     62 char CLASSNAME[N][30] = {"大物", "高数", "c语言"};
     63 /* 命令开关 */
     64 int SWITCH[16] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
     65 /* 函数声明 */
     66 int Menu();
     67 Student* Init();
     68 int CheckNUM(char*);
     69 int CheckName(char*);
     70 int CheakScore(int score);
     71 int Same_NUM(char*);
     72 void InputNodeInfo(Student*);
     73 void OutputNodeInfo(Student*);
     74 Student* SearchFrontNode(Student*);
     75 void DeleteNode(Student*);
     76 void InsertBefore();
     77 void InputList();
     78 Student* SearchID(char*);
     79 Student* SearchName(char*);
     80 void SearchDeleteNode();
     81 void OutList();
     82 void SearchPrintNode();
     83 void Compute();
     84 int CmpID(Student*, Student*, int);
     85 int CmpSum(Student*, Student*, int);
     86 int CmpScore(Student*, Student*, int);
     87 Student* SearchMaxNode(int (*cmp)(Student*, Student*, int), int);
     88 Student* Sort(int (*cmp)(Student*, Student*, int), int);
     89 void OutputToFile(FILE*, Student*, int);
     90 void InsertAfter(Student*);
     91 void SaveToFile();
     92 void LoadFile();
     93 void CopyFile();
     94 void InsertToFile();
     95 void FreeList(Student* p);
     96 void Stat();
     97 void Quit();
     98  
     99 /* 主函数 */
    100 int main()
    101 {
    102     int n;
    103  
    104     while (1)
    105     {
    106         n = Menu();
    107         {
    108             if (n == 1 || n == 15 || SWITCH[1])
    109             {
    110                 switch (n)
    111                 {
    112                         /* 执行初始化 */
    113                     case 1:
    114                         head = Init();
    115                         printf("LOOK...初始化成功
    ");
    116                         break;
    117                         /* 创建链表 ,输入学生信息*/
    118                     case 2:
    119                         InputList();
    120                         break;
    121                         /* 查找学号或姓名删除信息 */
    122                     case 3:
    123                         SearchDeleteNode();
    124                         break;
    125                         /* 输出全部学生信息 */
    126                     case 4:
    127                         system("cls");
    128                         OutList();
    129                         break;
    130                         /* 按姓名查找学生信息*/
    131                     case 5:
    132                         SearchPrintNode();
    133                         break;
    134                         /* 保存到文件 */
    135                     case 6:
    136                         SaveToFile();
    137                         break;
    138                         /* 从文件中读取学生信息*/
    139                     case 7:
    140                         if (SWITCH[6])
    141                         {
    142                             head = Init();
    143                             LoadFile();
    144                         }
    145                         else
    146                         {
    147                             printf("当前文件未保存
    ");
    148                         }
    149                         break;
    150                         /* 计算所有学生的总分和平均分 */
    151                     case 8:
    152                         Compute();
    153                         SWITCH[8] = 1;
    154                         printf("计算完毕
    ");
    155                         break;
    156                         /* 插入一个学生信息到链表 */
    157                     case 9:
    158                         InsertBefore();
    159                         SWITCH[6] = 0;
    160                         SWITCH[8] = 0;
    161                         break;
    162                         /* 复制文件 */
    163                     case 10:
    164                         CopyFile();
    165                         break;
    166                         /* 排序,按总分排序并打印学生信息 */
    167                     case 11:
    168                         if (SWITCH[8])
    169                         {
    170                             head = Sort(CmpSum, 0);
    171                             system("cls");
    172                             OutList();
    173                         }
    174                         else
    175                         {
    176                             printf("请先计算总分!
    ");
    177                         }
    178                         break;
    179                         /* 尾部添加一个学生信息到文件中 */
    180                     case 12:
    181                         InsertToFile();
    182                         SWITCH[6] = 0;
    183                         printf("尾部添加完毕!
    ");
    184                         break;
    185                         /* 按学号搜索..学生信息*/
    186                     case 13:
    187                         if (SWITCH[8])
    188                         {
    189                             head = Sort(CmpID, 0);
    190                             system("cls");
    191                             OutList();
    192                         }
    193                         else
    194                         {
    195                             printf("请先计算总分!
    ");
    196                         }
    197                         break;
    198                         /* 分类汇总 */
    199                     case 14:
    200                         system("cls");
    201                         Stat();
    202                         break;
    203                         /* 结束 */
    204                     case 15:
    205                         Quit();
    206                         break;
    207                     default:
    208                         printf("无效命令!
    ");
    209                         fflush(stdin);
    210                 }
    211                 system("pause");
    212             }
    213             else
    214             {
    215                 printf("你必须首先初始化!
    ");
    216                 system("pause");
    217             }
    218         }
    219     }
    220  
    221     system("pause");
    222     return 0;
    223 }
    224  
    225 /* 菜单 */
    226 int Menu()
    227 {
    228     int n;
    229     system("cls");
    230     fflush(stdin);
    231     printf("*********************************************************************
    ");
    232     printf("*********************************************************************
    ");
    233     printf("【01】 初始化........
    ");
    234     printf("【02】 输入学生信息
    ");
    235     printf("【03】 查找学号或姓名删除信息
    ");
    236     printf("【04】 输出全部学生信息
    ");
    237     printf("【05】 按姓名查找学生信息
    ");
    238     printf("【06】 保存到文件
    ");
    239     printf("【07】 从文件中读取学生信息
    ");
    240     printf("【08】 计算所有学生的总分和平均分
    ");
    241     printf("【09】 插入一个学生信息到链表中
    ");
    242     printf("【10】 复制文件
    ");
    243     printf("【11】 按总分排序并打印学生信息
    ");
    244     printf("【12】 尾部添加一个学生信息到文件中
    ");
    245     printf("【13】 按学号搜索..学生信息
    ");
    246     printf("【14】 分类汇总
    ");
    247     printf("【15】 退出
    ");
    248     printf("********************************************************************
    ");
    249     printf("请输入命令编号: ");
    250     scanf("%d", &n);
    251     return n;
    252 }
    253  
    254 /* 初始化 */
    255 Student* Init()
    256 {
    257     int i;
    258     Student *head;
    259     head = LEN;
    260     head->next = NULL;
    261  
    262     /* 命令开关初始化 */
    263     for (i = 1; i < 16; i++)
    264     {
    265         SWITCH[i] = 0;
    266     }
    267  
    268     SWITCH[1] = 1;
    269     SWITCH[6] = 1;
    270     return head;
    271 }
    272  
    273 /* 检查学号 */
    274 int CheckNUM(char* s)
    275 {
    276     int i;
    277  
    278     if (strlen(s) == 0 || strlen(s) > 10) return 0;
    279  
    280     for (i = 0; i < strlen(s); i++)
    281     {
    282         if (s[i] < '0' || s[i] > '9') return 0;
    283     }
    284  
    285     return 1;
    286 }
    287  
    288 /* 检查姓名 */
    289 int CheckName(char* s)
    290 {
    291     int i;
    292  
    293     if (strlen(s) == 0 || strlen(s) > 15) return 0;
    294  
    295     for (i = 0; i < strlen(s); i++)
    296     {
    297         if (!(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')) return 0;
    298     }
    299  
    300     return 1;
    301 }
    302  
    303 /* 检查分数 */
    304 int CheakScore(int score)
    305 {
    306     if (score > 100 || score <= 0) return 0;
    307     return 1;
    308 }
    309  
    310 /* 检查相同学号 */
    311 int Same_NUM(char* s)
    312 {
    313     Student *p = head->next;
    314     while(p != NULL)
    315     {
    316         if (strcmp(s, p->num) == 0) return 1;
    317         p = p->next;
    318     }
    319     return 0;
    320 }
    321  
    322 /* 给p指向的节点输入信息 */
    323 void InputNodeInfo(Student* p)
    324 {
    325     fflush(stdin);
    326  
    327     /* 学号 */
    328     printf("
    请输入学号: ");
    329     do
    330     {
    331         gets(p->num);
    332  
    333         if (!CheckNUM(p->num))
    334         {
    335             printf("数据不标准,请重新输入学号: ");
    336         }
    337         else if (Same_NUM(p->num))
    338         {
    339             printf("检测到此学号存在,请重新输入: ");
    340         }
    341     }while (!(CheckNUM(p->num) && !Same_NUM(p->num)));
    342  
    343     /* 姓名 */
    344     printf("请输入姓名: ");
    345     do
    346     {
    347         gets(p->name);
    348          if (!CheckName(p->name))
    349         {
    350             printf("数据不标准,请重新输入姓名: ");
    351         }
    352     }
    353     while (!CheckName(p->name));
    354  
    355     /* 成绩 */
    356     int i;
    357     for (i = 0; i < N; i++)
    358     {
    359         printf("请输入 %s 成绩: ", CLASSNAME[i]);
    360         do
    361         {
    362             fflush(stdin);
    363             scanf("%d", &p->score[i]);
    364  
    365             if (!CheakScore(p->score[i]))
    366             {
    367                 printf("数据不标准,请重新输入 %s 成绩: ", CLASSNAME[i]);
    368             }
    369         }
    370         while (!CheakScore(p->score[i]));
    371     }
    372  
    373     /* 总分及平均分 */
    374     p->sum = -1;
    375     p->ave = -1;
    376 }
    377  
    378 /* 输出p指向节点的信息 */
    379 void OutputNodeInfo(Student* p)
    380 {
    381     int i;
    382     printf("
    ");
    383     printf("姓名: %s
    ", p->name);
    384     printf("学号: %s
    ", p->num);
    385  
    386     for (i = 0; i < N; i++)
    387     {
    388         printf("%s 成绩: %d
    ", CLASSNAME[i], p->score[i]);
    389     }
    390  
    391     /* 计算过才输出 */
    392     if (SWITCH[8]) printf("总分: %d
    ", p->sum);
    393     if (SWITCH[8]) printf("平均分: %.2lf
    ", p->ave);
    394 }
    395  
    396 /* 返回r的前一个节点 */
    397 Student* SearchFrontNode(Student* r)
    398 {
    399     Student *p = head;
    400     while (p->next != r) p = p->next;
    401     return p;
    402 }
    403  
    404 /* 删除r指向的节点 */
    405 void DeleteNode(Student* r)
    406 {
    407     Student *p = SearchFrontNode(r);
    408     p->next = r->next;
    409 }
    410  
    411 /* 头插法插入节点 */
    412 void InsertBefore()
    413 {
    414     Student *s = LEN;
    415     InputNodeInfo(s);
    416     s->next = head->next;
    417     head->next = s;
    418 }
    419  
    420 /* 输入链表 */
    421 void InputList()
    422 {
    423     int n;
    424     printf("有多少个学生信息要输入? ");
    425     scanf("%d", &n);
    426  
    427     while (n--)
    428     {
    429         InsertBefore();
    430     }
    431 }
    432  
    433 /* 按学号查找 */
    434 Student* SearchID(char* num)
    435 {
    436     Student *p = head->next;
    437  
    438     while (p != NULL)
    439     {
    440         if (strcmp(p->num, num) == 0) break;
    441         p = p->next;
    442     }
    443  
    444     return p;
    445 }
    446  
    447 /* 按姓名查找 */
    448 Student* SearchName(char* name)
    449 {
    450     Student *p = head->next;
    451  
    452     while (p != NULL)
    453     {
    454         if (strcmp(p->name, name) == 0) break;
    455         p = p->next;
    456     }
    457  
    458     return p;
    459 }
    460  
    461 /* 按学号或姓名查找删除节点 */
    462 void SearchDeleteNode()
    463 {
    464     Student *p;
    465     fflush(stdin);
    466     char str[20];
    467     char sure[20];
    468  
    469     /* 输入合法性判断 */
    470     printf("请输入你要删除的学生的 姓名 或 学号: ");
    471     do
    472     {
    473         gets(str);
    474  
    475         if (!(CheckNUM(str) || CheckName(str)))
    476         {
    477             printf("数据不标准,请重新输入姓名或学号: ");
    478         }
    479     }
    480     while (!(CheckNUM(str) || CheckName(str)));
    481  
    482     /* 判断是姓名还是学号 */
    483     if (str[0] >= '0' && str[0] <= '9')
    484     {
    485         p = SearchID(str);
    486  
    487         if (p == NULL)
    488         {
    489             printf("对不起,找不到这个学号
    ");
    490         }
    491         else
    492         {
    493             OutputNodeInfo(p);
    494             printf("确认删除? (输入"y"确认,任意键取消): ");
    495             if (strcmp(gets(sure), "y") == 0)
    496             {
    497                 DeleteNode(p);
    498                 printf("删除成功
    ");
    499                 SWITCH[6] = 0;
    500             }
    501             fflush(stdin);
    502         }
    503     }
    504     else
    505     {
    506         p = SearchName(str);
    507  
    508         if (p == NULL)
    509         {
    510             printf("对不起,找不到这个姓名
    ");
    511         }
    512         else
    513         {
    514             OutputNodeInfo(p);
    515             printf("确认删除? (输入"y"确认,任意键取消): ");
    516             if (strcmp(gets(sure), "y") == 0)
    517             {
    518                 DeleteNode(p);
    519                 printf("删除成功!
    ");
    520                 SWITCH[6] = 0;
    521              }
    522             fflush(stdin);
    523         }
    524     }
    525 }
    526  
    527 /* 输出链表 */
    528 void OutList()
    529 {
    530     Student *p = head->next;
    531  
    532     /* 空表处理 */
    533     if (p == NULL)
    534     {
    535         printf("暂无学生信息!
    ");
    536     }
    537  
    538     while (p != NULL)
    539     {
    540         OutputNodeInfo(p);
    541         p = p->next;
    542     }
    543 }
    544  
    545 /* 按姓名查找记录并打印 */
    546 void SearchPrintNode()
    547 {
    548     Student *p = head->next;
    549     int ok = 1; 
    550     char name[20];
    551     fflush(stdin);
    552  
    553     /* 姓名合法性判断 */
    554     printf("请输入你要查找的学生姓名: ");
    555     do
    556     {
    557         gets(name);
    558  
    559         if (!CheckName(name))
    560         {
    561             printf("数据不标准,请重新输入姓名: ");
    562         }
    563     }
    564     while (!CheckName(name));
    565  
    566     /* 按姓名查找节点 */
    567     while (p != NULL)
    568     {
    569         if (strcmp(p->name, name) == 0)
    570         {
    571             ok = 0;
    572             OutputNodeInfo(p);
    573         }
    574         p = p->next;
    575     }
    576  
    577     if (ok)
    578     {
    579         printf("对不起,找不到这个姓名
    ");
    580     }
    581 }
    582  
    583 /* 计算总分和均分 */
    584 void Compute()
    585 {
    586     int i;
    587     Student *p = head->next;
    588  
    589     while (p != NULL)
    590     {
    591         int sum = 0;
    592  
    593         for (i = 0; i < N; i++)
    594         {
    595             sum += p->score[i];
    596         }
    597  
    598         p->sum = sum;
    599         p->ave = sum * 1.0 /N;
    600         p = p->next;
    601     }
    602 }
    603  
    604 /* 比较学号 */
    605 int CmpID(Student* a, Student* b, int k)
    606 {
    607     return strcmp(a->num, b->num);
    608 }
    609  
    610 /* 比较总分 */
    611 int CmpSum(Student* a, Student* b, int k)
    612 {
    613     return b->sum - a->sum;
    614 }
    615  
    616 /* 比较各科分数 */
    617 int CmpScore(Student* a, Student* b, int k)
    618 {
    619     return b->score[k] - a->score[k];
    620 }
    621  
    622 /* 选择最大元素 */
    623 Student* SearchMaxNode(int (*cmp)(Student* a, Student* b, int k), int k)
    624 {
    625     Student *p = head->next;
    626     Student *max = p;
    627  
    628     while (p != NULL)
    629     {
    630         if (cmp(p, max, k) < 0)
    631         {
    632             max = p;
    633         }
    634         p = p->next;
    635     }
    636  
    637     return max;
    638 }
    639  
    640 /* 排序 */
    641 Student* Sort(int (*cmp)(Student* a, Student* b, int k), int k)
    642 {
    643     Student *newhead = LEN;
    644     Student *p = newhead;
    645     Student *max;
    646  
    647     while (head->next != NULL)
    648     {
    649         max = SearchMaxNode(cmp, k);
    650         p->next = max;
    651         DeleteNode(max);
    652         p = p->next;
    653     }
    654  
    655     /* 表尾处理 */
    656     p->next = NULL;
    657     return newhead;
    658 }
    659  
    660 
    661 /* 将s插入链表尾部 */
    662 void InsertAfter(Student* s)
    663 
    664 {
    665     Student *p = head;
    666  
    667     while (p->next != NULL) p = p->next;
    668  
    669     s->next = NULL;
    670     p->next = s;
    671 }
    672  
    673 /* 保存到文件 */
    674 void SaveToFile()
    675 {    
    676     /* 处理尾部添加表尾情况 */
    677     if (SWITCH[12])
    678     {
    679         InsertAfter(tmp);
    680     }
    681  
    682     FILE *fp;
    683     int i;
    684     Student *p; 
    685     char file[20];
    686     fflush(stdin);
    687     printf("请输入要保存的文件名: ");
    688     gets(file);
    689  
    690     if ((fp = fopen(file, "wt")) == NULL)
    691     {
    692         printf("写文件错误.......!
    ");
    693         return;
    694     }
    695    for(p = head->next;p!=NULL;p=p->next)
    696      fprintf(fp,"%s %s 
    ",p->name,p->num);
    697        for(i=0;i<2;i++)
    698         {
    699          fprintf(fp,"%d
    ",p->score[i]);
    700          }  
    701     printf("文件保存成功!
    ");
    702     fclose(fp);
    703     SWITCH[6] = 1;
    704  
    705     /* 处理尾部添加情况 */
    706     if (SWITCH[12])
    707     {
    708         DeleteNode(tmp);
    709          SWITCH[12] = 0;
    710     }
    711 }
    712  
    713 /* 从文件中读入记录 */
    714 void LoadFile()
    715 {
    716     int i;
    717     FILE *fp;
    718     char file[20];
    719     fflush(stdin);
    720     printf("请输入文件名: ");
    721     gets(file);
    722  
    723     if ((fp = fopen(file, "rt")) == NULL)
    724     {
    725         printf("对不起,无法打开文件!
    ");
    726         return;
    727     }
    728  
    729     /* 文件未结束时读入数据 */
    730     while (!feof(fp))
    731     {
    732         Student *s = LEN;
    733         fscanf(fp, "%s", s->name);
    734         fscanf(fp, "%s", s->num);
    735  
    736         for (i = 0; i < N; i++)
    737         {
    738             fscanf(fp, "%d", &s->score[i]);
    739         }
    740  
    741         s->next = head->next;
    742         head->next = s;
    743     }
    744  
    745     printf("文件读取成功!
    ");
    746     fclose(fp);
    747 }
    748  
    749 /* 复制文件 */
    750 void CopyFile()
    751 {
    752     FILE *fp1, *fp2;
    753     char ch, file1[20], file2[20];
    754     fflush(stdin);
    755     /* 读入源文件 */
    756     printf("请输入源文件名: ");
    757     gets(file1);
    758  
    759     if ((fp1 = fopen(file1, "rb")) == NULL)
    760     {
    761         printf("对不起,无法打开文件!
    ");
    762         return;
    763     }
    764  
    765     /* 读入目标文件 */
    766     printf("请输入目标文件名: ");
    767     gets(file2);
    768  
    769     if ((strcmp(file1, file2) == 0) || ((fp2 = fopen(file2, "wb")) == NULL))
    770     {
    771         printf("对不起,无法创建文件!
    ");
    772         return;
    773     }
    774  
    775     /* 逐个字符拷贝 */
    776     while (!feof(fp1))
    777     {
    778         ch = fgetc(fp1);
    779  
    780         if (ch != EOF)
    781             fputc(ch, fp2);
    782     }
    783  
    784     fclose(fp1);
    785     fclose(fp2);
    786     printf("文件拷贝成功!
    ");
    787 }
    788  
    789 /* 尾部添加记录到文件中 */
    790 void InsertToFile()
    791 {
    792     tmp = LEN;
    793     InputNodeInfo(tmp);
    794     SWITCH[12] = 1;
    795 }
    796  
    797 /* 分类统计 */
    798 void Stat()
    799 {
    800     int i, j, n = 0;
    801     int sum[N] = {0};
    802     Student *p = head->next;
    803  
    804     if (p == NULL)
    805     {
    806         printf("暂无学生信息,无法统计
    ");
    807         return;
    808     }
    809  
    810     /* 统计各科总分 */
    811     while (p != NULL)
    812     {
    813         /* 记录学生总数 */
    814         n++;
    815  
    816         for (i = 0; i < N; i++)
    817         {
    818             sum[i] += p->score[i];
    819         }
    820  
    821         p = p->next;
    822     }
    823  
    824     /* 各科分别输出 */
    825     for (i = 0; i < N; i++)
    826     {
    827         printf("%s 总均分: %.2lf
    ", CLASSNAME[i], sum[i] * 1.0 / n);
    828         head = Sort(CmpScore, i);
    829         j = 0;
    830         p = head->next;
    831  
    832         while (p != NULL)
    833         {
    834             j++;
    835             printf("第%d名 %s %d
    ", j, p->name, p->score[i]);
    836             p = p->next;
    837         }
    838  
    839         printf("
    ");
    840     }
    841 }
    842  
    843 /* 释放链表 */
    844 void FreeList(Student* p)
    845 {
    846     if (p->next != NULL)
    847     {
    848         FreeList(p->next);
    849     }
    850     free(p);
    851 }
    852  
    853 /* 退出 */
    854 void Quit()
    855 {
    856     if (!SWITCH[6])
    857     {
    858         printf("请先保存文件!
    ");
    859         return;
    860     }
    861     if (head != NULL)
    862     {
    863         FreeList(head);
    864     }    
    865     exit(0);
    866 }
    867 
    868 
    869 #include <iostream>        //用VC++时改为∶ #include <iostream.h>
    870 using namespace std;      //用VC++时为取消此行
    871 class Complex
    872  {public:
    873    Complex(){real=0;imag=0;}
    874    Complex(double r,double i){real=r;imag=i;}
    875    Complex operator+(Complex &c2);
    876    Complex operator+(int &i);
    877    friend Complex operator+(int&,Complex &);
    878    void display();
    879   private:
    880    double real;
    881    double imag;
    882  };
    883  
    884 Complex Complex::operator+(Complex &c)
    885 {return Complex(real+c.real,imag+c.imag);}
    886  
    887 Complex Complex::operator+(int &i)
    888 {return Complex(real+i,imag);}
    889 
    890 void Complex::display()
    891 {cout<<"("<<real<<","<<imag<<"i)"<<endl;}
    892 
    893 Complex operator+(int &i,Complex &c)
    894 {return Complex(i+c.real,c.imag);}
    895 
    896 int main()
    897 {Complex c1(3,4),c2(5,-10),c3;
    898  int i=5;
    899  c3=c1+c2;
    900  cout<<"c1+c2=";
    901  c3.display();
    902  c3=i+c1;
    903  cout<<"i+c1=";
    904  c3.display();
    905  c3=c1+i;
    906  cout<<"c1+i=";
    907  c3.display();
    908  system("pause");
    909  return 0;
    910 }
    911 
    912 
    913 #include <iostream>
    914 using namespace std;
    915 class Complex
    916  {public:
    917    Complex(){real=0;imag=0;}
    918    Complex(double r,double i){real=r;imag=i;}
    919    double get_real();
    920    double get_imag();
    921    void display();
    922   private:
    923    double real;
    924    double imag;
    925  };
    926  
    927 double Complex::get_real()
    928 {return real;}
    929 
    930 double Complex::get_imag()
    931 {return imag;}
    932 
    933 void Complex::display()
    934 {cout<<"("<<real<<","<<imag<<"i)"<<endl;}
    935 
    936 Complex operator + (Complex &c1,Complex &c2)
    937 {
    938  return Complex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());
    939 }
    940 
    941 int main()
    942 {Complex c1(3,4),c2(5,-10),c3;
    943  c3=c1+c2;
    944  cout<<"c3=";
    945  c3.display();
    946  system("pause");
    947  return 0;
    948 }
    949 
    950 #include <iostream>
    951 using namespace std;
    952 class Complex
    953  {public:
    954    Complex(){real=0;imag=0;}
    955    Complex(double r){real=r;imag=0;}
    956    Complex(double r,double i){real=r;imag=i;}
    957    operator double(){return real;}
    958    void display();
    959   private:
    960    double real;
    961    double imag;
    962  };
    963    
    964 void Complex::display()
    965 {cout<<"("<<real<<", "<<imag<<")"<<endl;}
    966 
    967 int main()
    968 {Complex c1(3,4),c2;
    969  double d1;
    970  d1=2.5+c1;
    971  cout<<"d1="<<d1<<endl;
    972  c2=Complex(d1);
    973  cout<<"c2=";
    974  c2.display();
    975  system("pause");
    976  return 0;
    977 }
  • 相关阅读:
    《Spring_Four》第二次作业 基于Jsoup的大学生考试信息展示系统开题报告
    《Spring_Four》第一次作业:团队亮相
    4.11jsp
    4.7jsp
    3.17jsp
    3.24jsp
    3.10jsp
    3.4软件测试
    回文串
    博客园第二次作业
  • 原文地址:https://www.cnblogs.com/Zblogs/p/3268914.html
Copyright © 2020-2023  润新知