校园十大优秀青年评比

更新时间:2023-06-10 23:32:06 阅读: 评论:0

校园十大优秀青年评比
    一、问题描述 新一届校园十大青年评比开始了!每一位在校学生可通过网上评比系统,为自己认为优秀的学生提名与投票。请开发一个用于该需求的系统,满足下列基本功能:
    (1)提名优秀学生与投票。
    (2)查看提名学生的基本信息。
    (3)显示各提名学生的票数。
    (4)显示排行榜。
    基本要求:
完具    (1)采用散列存储,存放提名学生的相关信息。
    (2)设计哈希函数和冲突解决方法。
    (3)提名学生至少包括以下信息:姓名、票数、个人基本信息(如:班级、专业、年级、突
出事迹等)。
    (4)设计输入提名学生信息的界面。
    (5)完成基本功能。
    (6)界面友好,操作简单。
    (7)设计足够多的测试用例。
防烟分区    (8)查看指定学生的票数。
    二、数据结构设计 1)用哈希表存储提名学生相关信息。
    每位选手即学生的基本信息含有多个属性,为此可根据学生信息建立结构体,如下:
    struct student{ char name;//姓名的拼音+学号 int number;//票数 int Class;//班级 char Major;//专业 char Grade;//年级 char Honour;//突出事迹 };
    (2)设计哈希函数,并用开放定址线性探测法处理冲突。
六味地黄丸的副作用
    (3)设计一个投票系统类:votesystem class votesystem{ private:
    student *stu;
    int count;//当前元素个数
    int sizeindex;//哈希表长 public:
    votesystem() {stu=NULL;count=0;sizeindex=0;}
    ~votesystem() {delete []stu;count=0;}
    void InitHashTable(int n);//初始化哈希表
    int Hash(char *name);//哈希函数
    void collision(int s){s=s++;}//开放定址线性探测法处理冲突
    int arch(char *name,int//查找
    void inrt(char*name);//插入
    int vote(char*name);//投票
    void display();//显示哈希表
tizen系统    void showvote(int k); //按哈希表下标显示票数
    void showrank();//显示排行榜 }; 三、算法设计 votesystem 成员函数详细设计:
    (1)哈希函数 Hash 根据实现要点提示设计哈希函数 int votesystem::Hash(char *name)//哈希函数 {
    char *p=name;
    int key=0;人生百态
    while(*p)
    {
    key+=int(*p);
    p++;
    }
    return key%sizeindex; }
    (2)查找函数 arch
    Step1:对指定的选手调用哈希函数求值
    Step2:用开放定址线性探测法处理冲突,在哈希表中查找 k=Hash(name);//哈希函数定位 while(stu[k].name!=“\0"strcmp(stu[k].name,name))
    collision(k);//处理冲突
平邑县教育局
    Step3:若找到返回 1;否则返回 0 if(!strcmp(stu[k].name,name)) return 1;//找到
    el return 0;
    (3)插入函数 inrt
    Step1:调用查找函数 arch,找到插入信息的位置
    Step2:按照提名学生信息示例格式输入学生的信息 void votesystem::inrt(char *name) { int s;char a; arch(name,s); cout"提名学生信息格式如下:\n"
郑渊洁的童话作品
    "\t 班级:2\n"
    "\t 专业:软件工程\n"
    "\t 年级:二\n"
    "\t 突出事迹:全国三好学生\n"; strcpy(stu[s].name,name); cout"班级:\t";cinstu[s].Class; cout"专业:\t";line(a,2);line(stu[s].Major,50); cout"年级:\t";line(stu[s].Grade,10); cout"突出事迹:\t";line(stu[s].Honour,100);
    Step3:提名即为投一票,同时当前元素个数加 1
    stu[s].number=1;//提名即为投一票
    count++;//当前人数加 1 }
    (4)投票函数 vote Step1:
    记录已存在时调用 arch 函数 int votesystem::vote(char*name)
    {
社会保险网上查询系统    int s;
    int f;
    f=arch(name,s);//定位
    if(f) {stu[s].number++;return 1;}//投票成功
    el return 0;//投票失败 } Step2:
    记录不存在时,转到提名或返回
    cout"无此记录!\n";
    cout"
    1、提名该学生\n"
    "
    2、返回\n"
    "请选择操作:";
    int t;
    cint;
    if(t==1)
    {
    L.inrt(name);
    cout"提名成功\n";
    } (5)
    显示哈希表函数 display
    从表头开始,若表中记录已存在,则输出该学生的基本信息:姓名,票数,专业,年级,班级,突出事迹;否则转到下一个。

本文发布于:2023-06-10 23:32:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1032847.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学生   信息   提名   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图