c++大作业说明书
《程序设计说明书》
(题目:班干选举系统程序设计 )
姓 名: 郑 建 华 学 号: 201038898044 系 别: 计算机工程系 班 级: 软件(1)班 序 号: 23
一、引言
1.编写目的
信息社会的高科技,商品化的高效性,为了使计算机操作方便手工劳动,编写本文档,是为了方便班级班干部的选举,用以精确软件架构设计,提高选举的效率,减少选举的时间,使选举的流程更加通畅,简便。 2.背景
项目名称:班干选举系统
开发背景:通过此软件,提高用软件工程方法分析问题、解决问题的能力。同时增强对VC++ 6.0和数据库的使用能力的使用能力。 3.参考资料
《C++程序设计》.谭浩强 编著. 清华大学出版社. 二、目标
通过学习软件工程的设计方法,主要采用VC++ 6.0技术为数据库开发程序,是用户可以使用具备可以随机为候选人编号,选举人可以直接投票,对总票数、有效票、无效票进行统计并输出每个候选人所得的票数等功能的软件。 三、功能概述
(1)基本功能要求:
(1) (2) (3) (4) (5)
设置候选人的总个数。
记录各候选人的名字(为每个候选人自动生成一个编号) 显示候选人的编号和名称 设置要选举的人数
输入选票信息,若选票中候选人的个数大于要选举的人数,则作 为无效票。(自己设计选票格式,在文档说明书里详细说明) (6) (7)
(2)扩展功能要求:
(1)对候选人的得票数进行排序输出。
(2 实现可视化界面
统计总的选票数,有效票数,无效票数,每个候选人的得票数。 输出获选人的姓名和得票数。
四、程序结构
函数头:#include <iostream> //包括cin、cout等函数
#include <ctime> //随机函数所需 #include <string> //字符串函数所需
using namespace std; //使用命名空间std
主函数:int main()
子函数:void Record();//记录各候选人的个人信息以及初始化得票数 friend void Vote(Person get[],int N,int M); //投票者对候选人进行投票
friend void Sort( Person array[],int N); //对各候选人的得票数进行排序
friend void set(Person leader[],int N,int M);//对票数的统计与输出 五、输入输出
管理员首先输入候选人的人数、投票者的个数和投票人的名字,然后每个投票人按照系统的指示第一票投给谁,第二票投给谁进行投票。投票完毕后系统会自动输出总票数、有效
票数、无效票数、每个候选人的信息、所得的票数并按从高到低排列和最后得选人的信息和票数。
六、程序详细设计 #include <iostream> #include <ctime> #include <string>
using namespace std;
class Person //候选人Person类的声明 {
public: //声明以下部分为的共有的 //共有的成员函数与友元成员函数 void Record();//成员函数的声明
friend void Vote(Person get[],int N,int M);//友元函数的声明 friend void Sort( Person array[],int N); //友元函数的声明
friend void set(Person leader[],int N,int M); //友元函数的声明
private: //声明以下部分为私有的 //私有的数据 };
int Leader_num; //候选人的编号
string Leader_name;//候选人的姓名
int count; //候选人的得票数
类是C++中十分重要的概念,它是实现面向对象程序设计的基础,是对象的抽象。C++对C的改进,最重要的就是增加了“类”这样一种类型。所以C++开始时被称为“带类的C”。 类是抽象的,不占用内存,它有三中成员访问限定符,分别是:私有的(private)、公用的(public)和受保护的(protect)。类还可以继承派生出其它的类,为软件技术的发展扩大的很大空间,解决了软件重用问题。
友元函数是类中常见的,它可以是不属于任何类的非成员函数,也可以是其它类的成员函数,它可以访问本类的私有成员,在类体中用friend对该函数进行声明。出了友元函数外还有友元类。
//成员函数的的类外定义:
//记录各候选人的个人信息以及初始化得票数 void Person::Record() {int num;
srand (time(0));//让随机函数rand()不再产生重复的数字 num=rand()%100;
Leader_num=num; // 自动为候选人生成一个1-100之间的编号 cout<<"编号:"<<Leader_num<<'\t'; //输出候选人的编号 cout<<"候选人的姓名:";
cin>>Leader_name; //输入候选人的姓名,如:张三 count=0;
cout<<"得票数:"<<count<<endl; //输出候选人刚开始的得票数 }
//友员函数的的类外定义:
//投票者对候选人进行投票
void Vote(Person get[],int N,int M)
{int num1,num2,i,j; //每一个投票者可以投出自己两张宝贵的票,允许两张投给一个候选
人,分别为num1,num2
cout<<"每人请投两张票。"<<endl;
for(i=1;i<=M;i++)//循环每次输入投票者所要投给的候选人 {cout<<"投票人"<<i<<endl;
cout<<"第一张投谁的票:";
cin>>num1;//输入第一票所投的候选人的编号 cout<<"第二章投谁的票:";
cin>>num2; //输入第一票所投的候选人的编号
for(j=0;j<N;j++)
{if(num1==get[j].Leader_num) //判断投票者第二张票的编号
{get[j].count+=1;break;} //每个投票者第一张票所对应的候选人的编号,若对应,该候
选人得票数+1
}
for(j=0;j<N;j++)
if(num2==get[j].Leader_num)//判断投票者第二张票的编号
{get[j].count+=1;break;} //每个投票者第二张票所对应的候选人的编号,若对应,该候
选人得票数+1 } }
//友员函数的的类外定义:
//对各候选人的得票数进行排序
void Sort( Person array[],int N) {int i,j;
Person temp;
for(j=1;j<=2;j++) {for(i=0;i<N-1;i++)
{if(array[i].count<array[i+1].count)
{temp=array[i];
array[i]=array[i+1]; //调换位置 array[i+1]=temp;} } }
}
//友员函数的的类外定义:
//对票数进行统计并输出最终结果
void set(Person leader[],int N,int M)
{int EorrTicket=0,NoEorrTicket=0,TotalTicket=0;
//EorrTicket为无效票数,NoEorrTicket为有效票数,TotalTicket为总选票数 for(int i=0;i<N;i++)
{
if(leader[i].count>=M) //判断每位候选人的票数是否大于投票者人数,若大于,有效票数为投票人数,否则继续执行
EorrTicket=leader[i].count-M;//求有效票数 TotalTicket+=leader[i].count;//求总票数 }
NoEorrTicket=TotalTicket-EorrTicket;//求无效票数
//输出总票数,有效票 …… 此处隐藏:3453字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




