【VC++开源代码栏目提醒】:网学会员在VC++开源代码频道为大家收集整理了“c++课程设计报告+源码--班干选举系统 - 编程语言“提供大家参考,希望对大家有所帮助!
一、 需求分析 在现在的班干选举工作,大部分以举手或纸条投票为主,不能进行比较公正、公平、高效的进行,为配合班干选举工作的规范进行,及方面班干选举工作的高效进行,开发出一款比较易用且方面的软件是非常必要的。
班干选举投票系统以实现以下主要功能: :增加候选人(包括:学号、姓名、性别、出生年月、电 管理员部分(登录需要密码)话号码、邮箱地址、意向职务及个人简历)、删除候选人、修改候选人信息(除学号及姓名以外)、查询候选人信息、追加候选人信息、保存候选人信息、显示候选人简明信息、查询投票结果、加载选举人信息(以便学生登录)。
学生部分:登录(用管理员加载的学号)、浏览候选人信息、投票选举(不能重复投票)。
二、 设计 由以上需求设计两个类,一是 houxuanren 类,二是 student 类,分别来定义候选人以及选举人的属性,及方法。
因为两者没有太大的共同点没有把它们设计为继承关系。
1、 系统类图: houxuanren student char num20 char name120 char name20 char num120 char sex4 int flag char phonenum20 student next char mail20 char jianli80 student add2 int toupaio1student int yixiang h int piaoshu void baocun1student int yearmonth h houxuanren next student daochu1 houxuanren add houxuanren delethouxuanren h houxuanren xiugaihouxuanren h void xianshihouxuanren h void chaxunhouxuanren h void baocunhouxuanren h houxuanren daochu void add1 void xianshi1houxuanren hint n 2、主要算法思想: 设计 houxuanren 类及 student 类,运用面向对象的设计思想,实现对类的封装及成员的保护,运用链表实现首地址的传递,灵活的进行各函数间的地址传递及调用。
运用文件保存信息,分别用 s.txt 保存候选人的信息,用 a.txt 保存选举人信息。
属性和方法的定义 类名 成员类别 类型 类型名 描述 char name20 候选人姓名 char num20 候选人学号 char sex4 性别 char phonenum20 电话号码 char mail20 邮箱地址 属性 char jianli80 个人简历 int year 出生年 int month 出生月 int piaoshu 得到票数 int yixiang 意向职务编号 houxuanren next 下一个节点 houxuanren add 建立链表,输入信息 delethouxuanren houxuanren 删除信息 h 从文件把信息读入内 houxuanren daochu 存 houxuanren xiugaihouxuanren houxuanren 修改信息 h xianshihouxuanren void 显示所有信息 h chaxunhouxuanren void 查询信息 方法 h baocunhouxuanren void 保存信息至文件 h 简单显示编号 xianshi1houxuanren void 为 n 职务的候选人信 hint n 息 toupiaohouxuanren void 选举人投票 h jieguohouxuanren void 显示投票结果 h void add1 追加候选人信息 类名 成员类别 类型 类型名 描述 student 属性 char num1 投票人学号 char name1 投票人姓名 int flag 判断是否已投过票 student next 指向下一节点 toupaio1student int 投票人登录 h baocun1student void 保存信息 方法 h student add2 加载投票人信息 从文件把信息读入内 student daochu1 存3、实现注释: 、查询以及 本系统除完成任务书要求的管理员部分可以增加、删除、修改(姓名除外)投票人要求的显示及投票(如该投票人已经对该候选人投票,则无法继续投票)的全部功能外,还增加了以下功能:可以同时对多个职位的班干部同时投票、管理员登录需要密码(123456)才能进入、由管理员加载投票人信息、完成一个功能后的清屏功能、投票人登录功能、利用非常简明的条形图显示结果、追加候选人等。
另外,也用 c实现了 widows 窗口的班干选举系统也具备以上功能。
4、详细算法设计表示: 1、 候选人类 增加候选人函数建立链表 houxuanren add char flag houxuanren hNULLpp1 do pnew houxuanren//开辟一个新节点 coutltltquot请输入p-gtnum ............................//省略部分 coutltltquot 职务序号quotltltendl coutltltquot1、 班长 2、 团支书 3、学习委员 4、 生活委员 5、 文艺委员quotltltendl coutltltquot请输入意向职务序号:quot cingtgtp-gtyixiang coutltltquot请输入简历:quot cingtgtp-gtjianli p-gtpiaoshu0//所得票数初始为 0 //如果 p 为输入的第一个则把地址传给 h,否则传给 p1-gtnext ifhNULL//释放 p 所指向的地址以便下一次输入 hp else p1-gtnextp p1p coutltltquot是否继续输入候选人: (y/n)quot cingtgtflag whileflagyflagY p1-gtnextNULL return h //返回头地址删除候选人信息 houxuanren delethouxuanren h//删除候选人信息 houxuanren p1p2 char nums20 coutltltquot请输入要删除的nums p2h p1h//遍历所有候选人,查询候选人若 p1!NULL 则找到否则没找到 whilep1NULL ifstrcmpp1-gtnumnums0 break p1p1-gtnext ifp1NULL coutltltquot提示:没有找到该候选人信息!quotltltendl return h coutltltquot提示:该候选人已找到!quotltltendl coutltltquotquotltltp1-gtnameltltquot的信息quotltltendl coutltltquottnumltltendl …………………………….. char chl1: coutltltquot提示:你确定要删除该候选人吗?(y/n)quot cingtgtch ifchyampampchYampampchnampampchN coutltltquot提示:输入错误!请重新输入.....quotltltendl goto l1 //删除候选人信息,释放节点 else ifchychY ifp1h hp1-gtnext else p2-gtnextp1-gtnext coutltltquotn 提示:不要忘记保存修改!quotltltendl else coutltltquot提示:该候选人没有删除!quotltltendl return h 结果显示 void jieguohouxuanren h houxuanren pp1 int m0n ph coutltltquot 1、班长 2、团支书 3、学习委员 4、生活委员 5、文艺委员quotltltendl coutltltquot请选择查看职务:quot cingtgtn ifp-gtyixiangn ifn1 coutltltquot-----------------班长投票结果----------------quotltltendl ……………………………//省略部分 coutltltquot-----------------文艺委员投票结果----------------quotltltendl else getchar coutltltquot提示:选择出错!quot coutltltquot quotltltquot姓名quotltltquot quotltltquot票数quotltltendl whilepNULL ifp-gtyixiangn pp-gtnext continue coutltltquot quotltltp-gtnameltltquot: quot forint i0iltp-gtpiaoshui coutltltquotquot coutltltendl ifmgtp-gtpiaoshu mm else mp-gtpiaoshu p1p pp-gtnext coutltltquot------------------------------------------quotltltendl coutltltquotn 最后结果如上图:quotltltp1-gtnameltltquot同学,获得最高的quotltltp1-gtpiaoshultltquot票quotltltendl 主函数: 1、 管理员入口 用 switch 选择用户操作(一些操作选择自动数据导入) 2、投票人入口登陆函数: int toupiao1student h student p char num10 coutltltquotn 请输入你的num //mima ph whilepNULL ifstrcmpp-gtnum1num0 break pp-gtnext ifpNULL coutltltquot提示:没有找到该候选人信息!quotltltendl return 0 coutltltquotngtquotltltp-gtname1lt
上一篇:
数据结构课程设计之C源文件关键字统计
下一篇:
法律专业开题报告范文