没有合适的资源?快使用搜索试试~ 我知道了~
首页数据结构课程设计——校园十大优秀青年评比
新一届校园十大青年评比开始了!每一位在校学生可通过网上评比系统,为自己认为优秀的学生提名与投票。请开发一个用于该需求的系统,满足下列基本功能: (1)提名优秀学生与投票。 (2)查看提名学生的基本信息。 (3)显示各提名学生的票数。 (4)显示排行榜。 (1)采用散列存储,存放提名学生的相关信息。 (2)设计哈希函数和冲突解决方法。 (3)提名学生至少包括以下信息:姓名、票数、个人基本信息(如:班级、专业、年级、突出事迹等)。 (4)设计输入提名学生信息的界面。 (5)完成基本功能。 (6)界面友好,操作简单。 (7)设计足够多的测试用例。 (8)查看指定学生的票数。 (9)按序显示各提名学生票数。
资源详情
资源评论
资源推荐
南通大学计算机学院
《数据结构课程设计报告书》
题目:校园十大优秀青年评比
专业: 计算机科学与技术
班级:
姓名:
学号:
指导教师:
开始日期: 2013.1.14
完成日期: 2013.1.16
1.问题的描述和分析
1
数据结构课程设计
1.1 问题描述
新一届校园十大青年评比开始了!每一位在校学生可通过网上评比系统,为
自己认为优秀的学生提名与投票。请开发一个用于该需求的系统,满足下列
基本功能:
(1)提名优秀学生与投票。
(2)查看提名学生的基本信息。
(3)显示各提名学生的票数。
(4)显示排行榜。
一.基本要求:.
(1)采用散列存储,存放提名学生的相关信息。
(2)设计哈希函数和冲突解决方法。
(3)提名学生至少包括以下信息:姓名、票数、个人基本信息(如:班级、
专业、年级、突出事迹等)。
(4)设计输入提名学生信息的界面。
(5)完成基本功能。
(6)界面友好,操作简单。
(7)设计足够多的测试用例。
(8)查看指定学生的票数。
(9)按序显示各提名学生票数。
二.较高要求
(1)限制每人的投票次数。
(2)按软件要求,扩充其他功能。
(3)实现数据的后效验,即不接收非法数据。
1.2 问题分析
(1)用哈希表存储提名学生相关信息。
每位选手即学生的基本信息含有多个属性,为此可根据学生信息建立结构
体,如下:struct student{
char name[20];//姓名的拼音
int studentnum;//学号
int number;//票数
int Class;//班级
char major[30];//专业
char grade[10];//年级
char achievement[200];//突出事迹
};
2 / 22
数据结构课程设计
(2)设计哈希函数,并用开放定址线性探测法处理冲突。哈希函数根据姓名
拼音的 ascll 码来设计,hash(key)=key%hashlength,其中 k 为姓名所有拼音的
ascll 码值的累加和,hashlength 为表长。因此需储存学生姓名的拼音。
(3)设计一个投票系统类:votesystem
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 inserthash(char*name);//插入
int vote(char*name);//投票
void display();//显示哈希表
void showvote(int k); //按哈希表下标显示票数
void showrank();//显示排行榜
};
(4)加入用户登录系统,所以同时构造用户 user 的结构体;
结构体中需要有用户姓名和用户权限次数的数据。
struct user{
char username[20];
int root;
user(){root=4;}
};
2.概要设计
2.1 系统模块划分
3 / 22
数据结构课程设计
图 2-1 系统模块图
2.2 ADT(抽象数据类型)描述
1.
为了满足程序功能的设计,定义了两个结构体;
分别是学生选手 student 和登录用户 user;
2.
定义了投票系统类 class votesystem;
3.详细设计
3.1 ADT 基本操作算法设计
3.1.1
struct student{
char name[20];//姓名的拼音
int studentnum;//学号
int number;//票数
int Class;//班级
char major[30];//专业
char grade[10];//年级
char achievement[200];//突出事迹
};
struct user{
char username[20];
int root;
user(){root=4;}
4 / 22
选手信息
模块
评比系统
界面模块
用户登录
模块
查询得票
模块
投票模块 前十排行
模块
退出系统
模块
数据结构课程设计
};
user store[20];
3.1.2
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 inserthash(char*name);//插入
int vote(char*name);//投票
void display();//显示哈希表
void showvote(int k); //按哈希表下标显示票数
void showrank();//显示排行榜
};
3.2 功能模块设计
3.2.1 评比界面模块
(1)界面设计
(2)处理流程设计
评比系统选择界面:由于选择结构比较单一,故在选择时没有选择使用 switch
语句,使用简单的 if 语句;
while(choice!=2)
{ system("cls");
cout<<"***欢迎来到校园十大优秀青年评比系统***"<<endl;
5 / 22
剩余21页未读,继续阅读
谁动了我的代码
- 粉丝: 13
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1