5_45.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:1k
源码类别:

文章/文档

开发平台:

C/C++

  1. # include<iostream.h>
  2. #include <iomanip.h>
  3. typedef struct candidate
  4. {
  5. char cdd;
  6. struct candidate* next;
  7. }Candidate;
  8. int n;int b[6];
  9. Candidate *ballot()
  10. {
  11.     Candidate* head,*p1,*p2;
  12. n=1;
  13. p1=p2=new Candidate;
  14.     cout<<"请输入第"<<n<<"张选票所选的候选人("#"表结束):";
  15.     cin>>p1->cdd;
  16. head=NULL;  //不带头节点
  17. while(p1->cdd!='#')
  18. {
  19. n++;
  20. if(n==2)
  21. head=p1;
  22. else
  23. p2->next=p1;
  24. p2=p1;
  25. p1=new Candidate;
  26. cout<<"请输入第"<<n<<"张选票所选的候选人("#"表结束):";
  27. cin>>p1->cdd;
  28. }
  29. p2->next=NULL;
  30. return head;
  31. }
  32. void vote(Candidate*h,int a[6])
  33. {
  34. Candidate *p=h;
  35. char candd;
  36.   while(p!=NULL)
  37. {
  38. candd=p->cdd;
  39. switch (candd)
  40. {
  41. case 'A':a[0]++;break;
  42. case 'B':a[1]++;break;
  43.         case 'C':a[2]++;break;
  44. case 'D':a[3]++;break;
  45. case 'E':a[4]++;break;
  46. default:a[5]++;break;
  47. }
  48. p=p->next;
  49. }
  50. }
  51. void main()
  52. {
  53. Candidate* head;
  54. head=ballot();
  55. vote(head,b);
  56. cout<<"候选人:";
  57. for(int i=0;i<6;i++) cout<<setw(3)<<char(65+i);
  58. cout<<endl<<"得票数:";
  59. for(int j=0;j<6;j++) cout<<setw(3)<<b[j];
  60. cout<<endl<<"注:F代表弃权票,A,B,C,D为候选人!";
  61.     cout<<endl;
  62. }