数据结构的课程设计

这是一个数据结构课程设计的程序,实现了运动会分数统计系统。用户可以选择输入项目名次,按照学校编号、团体总分等不同方式排序,并查询学校和项目的获奖情况。程序包含输入、排序和查询功能。
摘要由CSDN通过智能技术生成
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. extern int ex1();
  4. extern int ex2();
  5. extern int ex3();
  6. extern int ex4();
  7. int main()
  8. {
  9.     char str[20];   
  10.     while(1)
  11.     {
  12.         system("cls"); 
  13.         cout<<"/n/n/n/n         数据结构课程设计程序各课题菜单选择界面/n/n"
  14.             <<"     ┌────────────────────────┐/n"
  15.             <<"     │课题一:运动会统计…………………………………<1> │/n"
  16.             <<"     │                                                │/n"
  17.             <<"     │课题二:航空订票系统………………………………<2> │/n"
  18.             <<"     │                                                │/n"
  19.             <<"     │课题三:文本编辑……………………………………<3> │/n"
  20.             <<"     │                                                │/n"
  21.             <<"     │课题四:猴子选大王…………………………………<4> │/n"
  22.             <<"     │                                                │/n"
  23.             <<"     │帮助:…………………………………………………<H> │/n"
  24.             <<"     │                                                │/n"
  25.             <<"     │退出本程序:…………………………………………<Q> │/n"
  26.             <<"     ├───────────────┬────────┤/n"
  27.             <<"     │注释:<>中的为操作参数。      │ 制作:夏午心晴 │/n"
  28.             <<"     └───────────────┴────────┘/n"
  29.             <<"/n       请输入(1,2,3,4或Q)已完成相应的功能:";
  30.         cin>>str;
  31.         switch(str[0])
  32.         {
  33.             case'1':system("cls");ex1();break;
  34.             case'2':system("cls");ex2();break;
  35.             case'3':system("cls");ex3();break;
  36.             case'4':system("cls");ex4();break;
  37.             case'h':
  38.             case'H':system("help.htm");break;
  39.             case'q':
  40.             case'Q':return 0;
  41.         }
  42.     };
  43.     return 0;
  44. }
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #define N 20
  4. const int ji[2][5]={ {7,5,3,2,1},{5,3,2}};
  5. struct xiangmu
  6. {
  7.     int school[5],qu;
  8. }*xm;
  9. struct IN
  10. {
  11.     int score,m,w,num;
  12. }s[N];
  13. int m,w,n,i;
  14. int cmp_school_num(const void *a , const void *b ) 
  15. {
  16.     return ((IN*)b)->num - ((IN*)a)->num; 
  17. }
  18. int cmp_school_score(const void *a , const void *b ) 
  19. {
  20.     return ((IN*)b)->score - ((IN*)a)->score; 
  21. }
  22. int cmp_school_m(const void *a , const void *b ) 
  23.     return ((IN*)b)->m - ((IN*)a)->m; 
  24. int cmp_school_w(const void *a , const void *b ) 
  25.     return ((IN*)b)->w - ((IN*)a)->w; 
  26. void csh()
  27. {
  28.     m=0;w=0;n=0;i=0;
  29.     for(int tp=0;tp<N;tp++)
  30.     {
  31.         s[tp].num=tp+1;
  32.         s[tp].score=0;
  33.         s[tp].m=0;
  34.         s[tp].w=0;
  35.     }
  36. }
  37. void luru(struct xiangmu *xm)               
  38. {
  39.     int r,temp;
  40.     for(int tp=0;tp<i;tp++)
  41.     {
  42.         cout<<((tp<m)?"请输入男子项目记入前几名":"请输入女子项目记入前几名")<<"(项目号:"<<tp+1<<")"<<endl;
  43.         cin>>(xm+tp)->qu;
  44.         if((xm+tp)->qu==5)
  45.             r=0;
  46.         else
  47.             r=1;
  48.         cout<<"请输入取得前几名的学校编号:/n";
  49.         for(int tp1=0;tp1<((xm+tp)->qu);tp1++)
  50.         {
  51.             cin>>temp;
  52.             (xm+tp)->school[tp1]=temp-1;
  53.             s[(xm+tp)->school[tp1]].score+=ji[r][tp1];
  54.             tp<m?(s[(xm+tp)->school[tp1]].m+=ji[r][tp1]):(s[(xm+tp)->school[tp1]].w+=ji[r][tp1]);
  55.         }
  56.     }
  57. }
  58. void pai_num()
  59. {
  60.     qsort(s,N,sizeof(s[0]),cmp_school_num);
  61.     cout<<"按学校编号输出"<<endl;
  62.     for(int tp=N-1;tp>-1;tp--)
  63.         cout<<"学校编号"<<s[tp].num<<",总分数为:"<<s[tp].score<<"分。"<<endl;
  64.     cout<<endl;
  65. }
  66. void pai_school()
  67. {
  68.     qsort(s,N,sizeof(s[0]),cmp_school_score);
  69.     cout<<"学校总分排名情况"<<endl;
  70.     for(int tp=0;s[tp].score>0;tp++)
  71.         cout<<"第"<<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值