电子投票平台

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct _Info
{
	int no;//序号
	int count;//得票数
	char name[20];//姓名
	char introduce[100];//简介
}Info,*PInfo;

typedef struct _Code
{
	char count[20];//账号
	char code[20];//密码
}Code;

int Main_Menu()
{
	int choice;
	system("cls");
	printf("1:用户登录\n");
	printf("2:管理员登录\n");
	printf("0:退出\n");
	printf("请输入选择:");
	scanf("%d",&choice);
	while(choice<0||choice>2)
	{
		printf("请重新输入选择:");
		scanf("%d",&choice);
	}
	return choice;
}

int Menu1()
{
	int choice;
	system("cls");
	printf("1:投票\n");
	printf("2:浏览候选人\n");
	printf("3:查看候选人简介\n");
	printf("0:返回\n");
	printf("请输入选择:");
	scanf("%d",&choice);
	while(choice<0||choice>3)
	{
		printf("请重新输入选择:");
		scanf("%d",&choice);
	}
	return choice;
}

int Menu2()
{
	int choice;
	system("cls");
	printf("1:增加候选人信息\n");
	printf("2:浏览候选人简介\n");
	printf("3:修改候选人简介\n");
	printf("4:查询投票情况\n");
	printf("5:清除投票信息\n");
	printf("6:删除候选人信息\n");
	printf("7:设置投票账号密码\n");
	printf("0:返回\n");
	printf("请输入选择:");
	scanf("%d",&choice);
	while(choice<0||choice>7)
	{
		printf("请重新输入选择:");
		scanf("%d",&choice);
	}
	return choice;
}

void Set_User_Info(Code* user)
{
	system("cls");
	printf("请设置投票用户:");
	scanf("%s",user->count);
	printf("请设置投票密码:");
	scanf("%s",user->code);
	printf("设置成功!\n");
	system("pause");
}

void Save_USER_File(Code user)
{	
	FILE* fp=fopen("user.txt","w+");//用写的方式打开文件
	if(fp==NULL)//打开失败则返回
	{		
		return ;	
	}	
	fwrite(&user,sizeof(Code),1,fp);//每次写入一个结构体大小	
	fclose(fp);//关闭文件
}

void Load_USER_File(Code* user)
{	
	FILE* fp=fopen("user.txt","r+");//用读的方式打开文件
	if(fp==NULL)//打开失败则返回	
	{		
		return;	
	}	
	fread(user,sizeof(Code),1,fp);	//每次读取一个结构体大小
	fclose(fp);//关闭文件
}

void Save_Info(PInfo mon,int n)
{
	int i;
	FILE* pFile = fopen("Mon_Info.dat","w");
	if(pFile==NULL)
	{
		return;
	}
	for(i=0;i<n;i++)
	{
		fwrite(&mon[i],1,sizeof(Info),pFile);
	}
	fclose(pFile);
}

int Read_Info(PInfo mon)
{
	int i=0;
	FILE* pFile = fopen("Mon_Info.dat","r");
	if(pFile==NULL)
	{
		return 0;
	}
	while(fread(&mon[i++],1,sizeof(Info),pFile));
	fclose(pFile);
	if(i>=1)
	{
		return i-1;
	}
	return 0;
}

int Login(Code* user)
{
	char count[20],code[20];
	system("cls");
	printf("请输入账号:");
	scanf("%s",count);
	printf("请输入密码:");
	scanf("%s",code);
	if(!strcmp(count,user->count) && !strcmp(code,user->code))
		return 1;
	printf("账号密码错误!\n");
	system("pause");
	return 0;
}

int Add_New_Info(PInfo info,int n)
{
	system("cls");
	printf("请输入候选人序号:");
	scanf("%d",&info[n].no);
	printf("请输入候选人姓名:");
	scanf("%s",info[n].name);
	printf("请输入候选人简介:");
	scanf("%s",info[n].introduce);
	info[n].count=0;
	printf("录入成功!\n");
	system("pause");
	return n+1;
}

int Del_Info(PInfo info,int n)
{
	int i,temp,j;
	system("cls");
	printf("请输入要删除的序号:");
	scanf("%d",&temp);
	for(i=0;i<n;i++)
	{
		if(temp==info[i].no)
			break;
	}
	if(i==n)
		return n;

	for(j=i;j<n;j++)
		info[j]=info[j+1];
	printf("删除成功!\n");
	system("pause");
	return n-1;
}

void Clean_Info(PInfo info,int n)
{
	int i;
	system("cls");
	for(i=0;i<n;i++)
	{
		info[i].count=0;
	}
	printf("清除成功!\n");
	system("pause");
}


void Print_Info_Count(PInfo info,int n)
{
	int i;
	system("cls");
	printf("%-10s%-10s%-10s\n","序号","姓名","得票");
	for(i=0;i<n;i++)
	{
		printf("%-10d%-10s%-10d\n",info[i].no,info[i].name,info[i].count);
	}
	system("pause");
}

void Print_Info_info(PInfo info,int n)
{
	int i;
	system("cls");
	printf("%-10s%-10s\n","序号","姓名");
	for(i=0;i<n;i++)
	{
		printf("%-10d%-10s\n",info[i].no,info[i].name);
	}
	system("pause");
}

void Print_Introduce(PInfo info,int n)
{
	int i;
	system("cls");
	printf("%-10s%-10s%-10s\n","序号","姓名","简介");
	for(i=0;i<n;i++)
	{
		printf("%-10d%-10s%-10s\n",info[i].no,info[i].name,info[i].introduce);
	}
	system("pause");
}

void Print_One_Introduce(PInfo info,int n)
{
	int i,temp;
	system("cls");
	printf("请输入要查询的序号:");
	scanf("%d",&temp);
	for(i=0;i<n;i++)
	{
		if(temp==info[i].no)
			break;
	}
	if(i==n)
	{
		printf("无该序号!\n");
		system("pause");
		return ;
	}
	printf("%-10s%-10s%-10s\n","序号","姓名","简介");
	printf("%-10d%-10s%-10s\n",info[i].no,info[i].name,info[i].introduce);

	system("pause");
}

void Modify_Info(PInfo info,int n)
{
	int i,temp;
	system("cls");
	printf("请输入要修改的序号:");
	scanf("%d",&temp);
	for(i=0;i<n;i++)
	{
		if(temp==info[i].no)
			break;
	}
	if(i==n)
	{
		printf("无该序号!\n");
		system("pause");
		return ;
	}

	printf("请输入新简介:");
	scanf("%s",info[i].introduce);
	printf("修改成功!\n");
	system("pause");
}

void Vote_Info(PInfo info,int n)
{
	int i,temp;
	system("cls");
	printf("请输入要投票的序号:");
	scanf("%d",&temp);
	for(i=0;i<n;i++)
	{
		if(temp==info[i].no)
			break;
	}
	if(i==n)
	{
		printf("无该序号!\n");
		system("pause");
		return ;
	}
	info[i].count++;
	printf("投票成功!\n");
	system("pause");
}


int main()
{
	int choice,choice2;
	Code user;
	Info info[100];
	int NUM;
	Load_USER_File(&user);
	NUM=Read_Info(info);
	do
	{
		choice=Main_Menu();
		switch(choice)
		{
		case 1:
			if(!Login(&user))
				break;
			do
			{
				choice2=Menu1();
				switch(choice2)
				{
				case 1:
					Vote_Info(info,NUM);
					break;
				case 2:
					Print_Info_info(info,NUM);
					break;
				case 3:
					Print_One_Introduce(info,NUM);
					break;
				}
			}while(choice2!=0);
			break;
		case 2:
			do
			{
				choice2=Menu2();
				switch(choice2)
				{
				case 1:
					NUM=Add_New_Info(info,NUM);
					break;
				case 2:
					Print_Introduce(info,NUM);
					break;
				case 3:
					Modify_Info(info,NUM);
					break;
				case 4:
					Print_Info_Count(info,NUM);
					break;
				case 5:
					Clean_Info(info,NUM);
					break;
				case 6:
					NUM=Del_Info(info,NUM);
					break;
				case 7:
					Set_User_Info(&user);
					break;
				}
			}while(choice2!=0);
			break;
		}
	}while(choice!=0);
	Save_USER_File(user);
	Save_Info(info,NUM);
	return 0;
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在线投票系统(加文档)源码 项目来源及开发的目的和意义 随着INTERNET的发展,世界网民的数量急剧增加,社会的信息化强度增强,企业竞争之激烈,故对市场信息的掌握范围不仅仅是周边的 一些信息,而应把范围扩展到全国,甚至全世界,INTERNET恰恰是实现这目标的有利工具.对于新产品,新观点的调查范围应该更广泛 ,消息应该及时反馈给企业单位,故一个网上在线投票系统应允而生,它正好充分满足客户的需求,信息反馈的范围扩大,人力资源的节省, 从而使得企业在竞争激烈的市场中拥有更强大的资本.开发此投票系统是为了更好的把市场的信息更准确更快速的反馈给客户,使信息 的来源更广泛,从而提高信息的准确性.运用此系统可以降低企业为市场调查而消耗的人力和物力,利用节省的资源提高产品的质量, 增强竞争力.该课题领域的开发及应用现状分析 项目所使用的相关技术的说明 该项目的开发需要用到的语言是C#,采用了当今最为流行的ASP.NET技术来开发.数据库方面使用的是SQL2000. 目标 在线投票功能是网站应用程序最常用的功能之一,也是网站应用程序开发常用的功能模块。当网站的管理员或用户提出一些新的想法 与建议或者出现一种新产品时,他们可能需要通过用户或者客户的投票方式来确定这些新的想法、建议或者新的产品是否满足用户 或者客户的需求,另外,网站还可以通过网站在线投票功能做一些实际性的调查工作。随时了解市场是一个企业拥有强大竞争力的 必须品,所以在线投票系统可以解决企业的难题,不受地区限制,不受人手压力的限制,随时了解产品的市场效应,增强自己的竞争力 ;此系统将以图形化的界面来显示投票结果,一目了然的回溃客户的的需求信息; 用户特点 本在线投票系统的用户只需懂得运用互联网络者均可以使用,此系统在网站中的使用频度预计非常的频繁; 对性能的要求和约束 该系统属于实用型网站,需要对数据的处理,比如对投票票数的统计并把结果反馈给投票者,故对数据的及时更新要求较高, 保证数据的真实性.该系统在任何操作系统下都可以运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值