⽹上投票系统源码_[内附完整源码和⽂档]基于C++的校园⼗⼤
青年投票系统
1.问题的描述和分析5月14日
1.1 问题描述
新⼀届校园⼗⼤青年评⽐开始了!每⼀位在校学⽣可通过⽹上评⽐系统,为⾃⼰认为优秀的学⽣提名与投票。请开发⼀个⽤于该需求的系统,满⾜下列基本功能:
提名优秀学⽣与投票
查看提名学⽣的基本信息
显⽰各提名学⽣的票数钾低
显⽰排⾏榜
1.1.1 基本要求
采⽤散列存储,存放提名学⽣的相关信息
啤酒鸭怎么做>榛子的功效与作用设计哈希函数和冲突解决⽅法
提名学⽣⾄少包括以下信息:姓名、票数、个⼈基本信息(如:班级、专业、年级、突出事迹等)
设计输⼊提名学⽣信息的界⾯
完成基本功能
界⾯友好,操作简单
设计⾜够多的测试⽤例
查看指定学⽣的票数
按序显⽰各提名学⽣票数
1.1.2 较⾼要求
八正散限制每⼈的投票次数
按软件要求,扩充其他功能
实现数据的后效验,即不接收⾮法数据
1.2 问题分析
1.2.1 ⽤哈希表存储提名学⽣相关信息
每位选⼿即学⽣的基本信息含有多个属性,为此可根据学⽣信息建⽴结构体,如下:
struct student{
简爱读后感300char name[20];//姓名的拼⾳
int studentnum;//学号
int number;//票数
int Class;//班级
char major[30];//专业
char grade[10];//年级
char achievement[200];//突出事迹
};
1.2.2 设计哈希函数
并⽤开放定址线性探测法处理冲突。哈希函数根据姓名拼⾳的ascll码来设计,hash(key)=key%hashlength,其中k为姓名所有拼⾳的ascll码值的累加和,hashlength为表长。因此需储存学⽣姓名的拼⾳。
1.2.3 设计⼀个投票系统类
class votesystem{
private:
三级吧
student *st;
int count;//当前元素个数
int hashlength;//哈希表长
public:
votesystem() {st=NULL;count=0;hashlength=0;}
~votesystem() {delete []st;count=0;}
void HashTable(int n);//初始化哈希表
int Hash(char name);//哈希函数void collision(int &s){s=s++;}//开放定址线性探测法处理冲突int hashfind(char name,int&k);//查找void inrthash(charname);//插⼊int vote(char name);//投票
void display();//显⽰哈希表
第一套广播体操void showvote(int k); //按哈希表下标显⽰票数
void showrank();//显⽰排⾏榜
};
1.2.4 加⼊⽤户登录系统
所以同时构造⽤户ur的结构体;结构体中需要有⽤户姓名和⽤户权限次数的数据。
struct ur{
char urname[20];
int root;
ur(){root=4;}
};
完整的源码和详细的⽂档,上传到了 WRITE-BUG技术共享平台 上,需要的请⾃取: