c++大作业说明书_第1页
c++大作业说明书_第2页
c++大作业说明书_第3页
c++大作业说明书_第4页
c++大作业说明书_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计说明书 (题目:班干选举系统程序设计 ) 姓 名: 郑 建 华 学 号: 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 /包括 cin、cout 等函数 #include /随机函数所需 #include /字符串函数所需 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 #include #include 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 之间的编号 coutLeader_name; /输入候选人的姓名,如:张三 count=0; coutnum1;/输入第一票所投的候选人的编号 coutnum2; /输入第一票所投的候选人的编号 for(j=0;j=M) /判断每位候选人的票数是否大于投票者人数,若大于,有效 票数为投票人数,否则继续执行 EorrTicket=leaderi.count-M;/求有效票数 TotalTicket+=leaderi.count;/求总票数 NoEorrTicket=TotalTicket-EorrTicket;/求无效票数 /输出总票数,有效票数,无效票数 cout低的排序 /调整各候选人的有效票数 for(i=0;iM) leaderi.count-=EorrTicket; /输出各候选人的有效票数 coutN;/输入候选人数 N coutM;/输入投票人数 M int i,j; Person Leader20;/定义一个 Person 类型对象数组存放候选人信息 cout“记录候选人的信息:“endl; for(i=0;iN;i+) Leaderi.Record();/记录候选人信息 cout“n 开始投票:“endl; Vote(Leader,N,M);/每个投票者投票 set(Leader,N,M); /对最后的结果进行统计并输出 return 0; 主函数 main 为成员函数提供实参数,如本程序中 main 函数为成员函数提供 N、M 与对 象数组 Leader 三个实参,调用 Record、Vote、和 set 三个函数,进行对候选人信息的记 录,进行投票和输出最后的结果。 七、总结 本程序虽然能解决一般的选举问题,但还是存在不足点,该程序没有对投票者弃权的 考虑,不能对候选人

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论