用c语言自制软件 求用c语言自制一个简易抽奖程序
- 作者: 此号被社byV先森
- 来源: 51数据库
- 2020-04-21
用data.txt文件保存以下内容:
13725528132 李桂荣
13725528131 李二来
13725528133 张荣刚
13725528130 荣南
13725528137 王三
13725528138 吴立
13725528139 郭德纲
13725528140 周星驰
13725528141 张曼玉
13725528142 张艺谋
13725528152 秦香莲
13725528162 潘金莲
13725528172 李大嘴
13725528182 展堂
//源代码如下
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 9999
//定义保存人名和电话的数据结构
struct Person
{
char name[20];
char telno[15];
char award;
};
int num = 0; //统计人数
FILE *fp; //文件指针
Person persons[MAX_NUM]; //定义数组
int awarder_1[1] = {-1}; //一等奖
int awarder_2[2] = {-1, -1}; //二等奖
int awarder_3[5] = {-1, -1, -1, -1, -1};//三等奖
//读取文件
void readdata()
{
int i = 0; //数组下标
Person person;
//文件打开
fp = fopen("data.txt", "r");
if (fp == NULL)
{
printf("打开文件data.txt失败!\n");
return;
}
//当文件不为空
while (!feof(fp))
{
num ++;
fscanf(fp, "%s", person.telno);
fscanf(fp, "%s", person.name);
person.award = 'F';
persons[i++] = person;
}
}
//初始化标识
void init()
{
for(int i = 0; i < num; i++)
{
persons[i].award = 'F';
}
}
//显示单个中奖信息
void info( int i)
{
printf("手机号码: %s 姓名: %s\n", persons[i].telno, persons[i].name);
}
void main()
{
char again = 'Y';
//读取文件
readdata();
printf("简单抽奖程序\n");
srand((long)time(0));
while(again == 'Y' || again == 'y')
{
//初始化标识
init();
printf("\n开始抽第一等奖(1名),按任意键开始...\n");
getchar();
awarder_1[0] = abs(rand() % num);
while (persons[awarder_1[0]].award == 'T')
{
awarder_1[0] = rand() % num;
}
persons[awarder_1[0]].award = 'T';
info(awarder_1[0]);
printf("\n开始抽第二等奖(2名)\n");
for (int i = 0; i < 2; i++)
{
printf("\n第%d个二等奖,按任意键开始...\n", i+1);
getchar();
awarder_2[i] = rand() % num;
while (persons[awarder_2[i]].award == 'T')
{
awarder_2[i] = rand() % num;
}
persons[awarder_2[i]].award = 'T';
info(awarder_2[i]);
}
printf("\n\n开始抽第三等奖(5名)\n");
for (i = 0; i < 5; i++)
{
printf("\n第%d个三等奖,按任意键开始...\n", i + 1);
getchar();
awarder_3[i] = rand() % num;
while (persons[awarder_3[i]].award == 'T')
{
awarder_3[i] = rand() % num;
}
persons[awarder_3[i]].award = 'T';
info(awarder_3[i]);
}
printf("\n是否重新开始抽奖?(Y or N)...\n");
again = getchar();
}
getchar();
return;
}
用C语言制作一个简单实用菜单的程序。
#include <stdio.h>
/*定义三个函数*/
void FindNum(){/*似乎你要自已定义?*/}
void Dianmond()
{
/*空心还是实心的菱形?乍不说清楚呢*/
/*打印5×5的菱形*阵,当然也可以直接使用5行printf()来描画*/
for (int h=1;h<6;h++)
{
for(int v=1;v<6;v++)
{
if(v-h==2 || (h-v)==2 || h%2==0&&v==h)printf("*");
else printf(" ");
}
printf("\n");
}
}
void Goodbye(){printf("Goodbye!\n");}
/*驱动实现*/
int main()
{
/*设置退出开关的状态*/
bool quit=false;
int input;
/*循环*/
while(!quit)
{
/*打印菜单*/
printf("1.FindNum 2.Diamond 3.Goodbye! Input 1-3:");
/*接收输入*/
input=getchar()-0x30,getchar();
/*选择分支*/
switch(input)
{
case 1:FindNum();break;
case 2:Dianmond();break;
case 3:Goodbye();quit=true;break;
default:break;
}
}
}
/*注释得这么清楚了,流程图就免了吧,PS水平实在不够看*/
用c语言做一个小程序exe
以GCC编译器为例,可以分为四步。
第一步是预处理,包括语法检查等工作。
gcc -P abc.c
第二步由源程序生产汇编语言代码。
gcc -S abc.c
会生成abc.s文件,这个文件里就是汇编代码。
第三步编译器生成目标代码,一个源文件生成一个目标代码。
gcc -c abc.c
会生成abc.o
第四步连接器从目标代码生成可执行文件。
gcc abc.o
目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。
怎么用c语言做一个界面
呵呵,楼主和我当初一样的迷惑。
我当初啃C语言的时候,也是想用C语言做界面出来,走了很多冤枉路,这里希望能给楼主一些提示。
如果你想用“纯”C来做界面的话,那么我会很肯定的告诉你,很难。你所有的操作都要调用API,包括每个按钮的位置、大小,框的位置、大小等等都是通过计算得出来的。这样一来开发的效率是可想而知的。
当然,也有专门做界面的,程序用C语言来写。比如:QT。具体的楼主可以去了解了解。
如果你想感受一下C语言的“乐趣”的话,在Win32中写一下程序:
#include <windows.h>
void main()
{
MessageBox(NULL," Hello World!","我的第一个窗口程序",MB_OK);
//这里的MessageBox函数,就是API函数,函数的意思是调用一个信息框
}
界面只是一个和用户交互的窗口,比如说在MFC中,界面和程序之间数据传递的方式就是通过UpDate()这个函数,UpDate(FALSE);是把变量数据传给界面,UpDate(TRUE)是把界面数据传给变量。当然,前提是需要它们之间关联一下。这么一说楼主估计就明白界面的用处了吧。
MFC是用C++开发的,C++和C上还是有很大的差异的。直接入门会有很大的难度。建议楼主可以先看看C++的书。了解下,什么是类,什么是容器,什么是重载,什么是构造,什么是析构,什么是面向对象。这也不是一句话两句话能讲完的。
我给楼主些意见:
一:想玩界面的话,就用QT写,或者先用其它简单语言(VB、或国产易语言。PS:易语言实质上就是C++的封装,不过很多功能都打包了,用起来比MFC简单的多。)。
二:如果你想更深一步做软件,可以选择学习C++,然后学MFC
三:C语言很强大,是其它编程易语言无法超越的(个人观点)。你前面的说C语言学的很好,我觉得你话撩的有点早。(这个观点当你水平从菜鸟上升一两个等级时候你就会明白)
四:多做项目。(PS:自己想做什么软件,就着手做,不要把要求定的太高,比你水平高一点的软件,做项目是上升最快的方法之一)
请问,用四个独立按键来制作简易密码锁C语言程序该怎么编写
这个可以模拟那种拨码形式的密码锁方式来设计,比如OFO共享单车的拨码方式。
#include<reg51.h>
#define uchar unsigned char
uchar mima[4]={1,2,3,4};
uchar keymm[4]={0,0,0,0};
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit led=P1^4;
bit flag=0;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
{
uchar i;
led=1;
while(1)
{
if(key1==0)
{
while(key1==0);
keymm[0]++;
keymm[0]%=10;
}
if(key2==0)
{
while(key2==0);
keymm[1]++;
keymm[1]%=10;
}
if(key3==0)
{
while(key3==0);
keymm[2]++;
keymm[2]%=10;
}
if(key4==0)
{
while(key4==0);
keymm[3]++;
keymm[3]%=10;
}
for(i=0;i<4;i++)
{
if(keymm[i]!=mima[i])break;
if(i==3)flag=1;
}
if(flag)
{
i=10;
while(i--)
{
led=~led;
delay(100);
}
flag=0;
}
}
}来自:求助得到的回答
如何自己编程序做软件?
万事开头难,首先,要有扎实的基础知识,推荐先学 c语言,搞清楚基本概念,比如 变量,函数,类,数据类型等等,再下点功夫研究下数据结构,前者是所有编程语言的构成基石,后者是算法,就是如何用编程语言去解决实际问题。不要相信什么速成教程,不要被当下众多流行的编程语言搞得不知如何下手,安下心花功夫把基础打牢。
第二,推荐学习下java语言,建议看看 《java编程思想》这本书,这是本著名的java编程教学书籍,网上有 pdf下载。
第三,熟悉一下关系型数据库,当前三大主流关系型数据库 包括 mysql, oracle,sqlserver,你可以挑一个专门学习下,主要学习关系型数据中的 基本概念,比如 表,视图,存储过程,函数,以及 关系型数据库 语言,在网上搜相关书籍学习下就可以了,mysql 安装较为简单,而且使用广泛,免费,跨平台,推荐安装,以它为蓝本学习。
第四,学习下 html ,js,css ,这些是做网页的基础,这些你可以 上 菜鸟教程 等网站学习,当然,这些网站教的比较浅,要想深入研究,最好还是找相关书籍好好学一下。
有了这些知识,你可以尝试做个小系统,比如论坛,图书管理系统什么的。 前端页面 用 html 设计,css美化,js 做数据加载,java 做后台,接收发送数据从(到)前端页面, 操作数据库 ,mysql作为数据库用来存放数据。
然后,你可以研究一些专业性的框架做一些真正的可用的软件开发了,前端比如,angularjs,vue ,react,后端 如 java spring ,hibernate , 这时候,你要做的就是上官网,看帮助文档了。
计算机发展的速度是非常快的,新技术层出不穷,但不管怎样,基础的东西是不会变的,所以,花时间把基础打牢,然后多做项目实践,这样才能成功。
转载请注明出处51数据库 » 用c语言自制软件 求用c语言自制一个简易抽奖程序
