ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:28.16KB ,
资源ID:9462336      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9462336.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言也能干大事编程项目开发计算器编程.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言也能干大事编程项目开发计算器编程.docx

1、C语言也能干大事 编程 项目开发 计算器编程C 语言也能干大事 附注:本文档里的代码都是本人学习编程之后自己所写,请不要随便的改写或删除,如在学习过程中有什么不懂的地方,可以提出来共同探讨学习! 第一部分 C语言也能干大事第一节:题目:自己动手写恶搞坑爹程序要求:运行以后弹出询问对话框(有【是】、【否】两个按钮以及问号图标)“你是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一个警告图标)“一看你就不像好人,点击【确定】开始格式化C盘!”;如果点击【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。代码:(部分重要程序)#include

2、 stdafx.hint APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) int ret1=MessageBox(NULL,TEXT(你是好人吗?),TEXT(人品鉴定系统),MB_YESNO|MB_ICONASTERISK);/*“MB”是“MessageBox”的简写,MB_YESNO是可在窗口中显示的按钮,像这样的按钮还有:#define MB_OK (确定) 0x00000000L#define MB_OKCANCEL (确定和取消) 0x0000

3、0001L#define MB_ABORTRETRYIGNORE (终止、重试和忽略) 0x00000002L#define MB_YESNOCANCEL (是、否和取消) 0x00000003L#define MB_YESNO (是和否) 0x00000004L#define MB_RETRYCANCEL (重试和取消) 0x00000005L定义了一个int型变量,说明“MB_YESNO|MB_ICONASTERISK”运算(是或运算)之后的结果是一个整型数据。“MessageBox()”括号里面有四个参数,第一个参数:hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息

4、框没有拥有窗口;第二个参数:用“TEXT”包起来的字符串,表示框内的内容。第三个参数:用“TEXT”包起来的字符串,表示框的标题;第四个参数:设置希望在对话框中显示的按钮或图标,“MB_ICONASTERISK”就是表示“警告”的图标,像这样的图标的还有:#define MB_ICONHAND (错误“X”状图标) 0x00000010L#define MB_ICONQUESTION (问号图标) 0x00000020L#define MB_ICONEXCLAMATION (感叹号警告图标) 0x00000030L#define MB_ICONASTERISK (感叹号图标) 0x000000

5、40L*/ if(IDYES=ret1) MessageBox(NULL,TEXT(哼哼,一看就知道你不是好人),TEXT(鉴定结果),MB_OK|MB_ICONASTERISK); else if(IDNO=ret1) int ret2=MessageBox(NULL,TEXT(哈哈,算你有自知之明。你想变成一个好人吗?),TEXT(鉴定结果),MB_OK); if(IDOK=ret2) MessageBox(NULL,TEXT(sorry!尝试把你变成好人失败.),TEXT(无力回天),MB_OK|MB_ICONEXCLAMATION); MessageBox(NULL,TEXT(由于你的

6、人品问题,现在开始格式化C盘.),TEXT(处理办法),MB_OK); return 0;/* if语句里面的IDYES是返回值,返回值为用户点击的按钮:(注意:以后我们在判断条件时,把变量写在等号的右边,这样做的目的就是能够在把等号“= =”写成赋值号“=”情况下不能通过编译,快速发现错误。如果把变量写在等号的左边,就变成赋值表达式了,赋值表达式如果是真,就通过了编译,导致不知道错误在哪儿。)像这样的返回值还有:#define IDOK 1#define IDCANCEL 2#define IDABORT 3#define IDRETRY 4#define IDIGNORE 5#define

7、 IDYES 6#define IDNO 7 */第二节:题目:开发一个注册界面本节没有代码,讲一下一些控件的使用:第三节:题目:制作一个能计算加减乘除的计算器(V1.0版)和一个十进制转二进制的小工具。要求:当用户输入非数字或给除数输入0时,要给出错误提示信息。代码:(部分重要程序)#include stdafx.h#include #include #include resource.h#include MainDlg.hBOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) switch(uMsg

8、) HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); return FALSE;BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) return TRUE;BOOL IsInt(TCHAR *str) int i=atoi(str); TCHAR stemp256; wsprintf(stem

9、p,%i,i); if(strcmp(str,stemp)!=0) return FALSE; else return TRUE; /* 在这儿定义了一个类型为BOLL的被掉函数IsInt(),返回值是BOOL型,bool为布尔型,只有一个字节,取值false和true,是0和1的区别。函数的参数是一个字符型指针,接受实参传过来的地址(这里是字符型数组的首地址)。函数atoi()的功能是将字符串转化为整型数。函数说明:参数字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 0) 字符时停止转换,返回整型数。要有头文件: #inc

10、lude 。函数wsprintf()的作用:将一系列的字符和数值输入到缓冲区; 输出缓冲区里的的值取决于格式说明符(即%); 如果写入的是文字,此函数给写入的文字的末尾追加一个0; 函数的返回值是写入的长度,但不包括最后的0。wsprintf()包含在头文件windows.h中。我们可以这样来理解:wsprintf(缓冲区,格式,要格式化的值);第一个参数是字符缓冲区,后面是格式字符串,wsprintf不是将格式化结果写到标准输出,而是将其写入缓冲区中,该函数返回该字符串的长度。Strcmp()函数: 原型:extern int strcmp(char *s1,char * s2); 用法:#

11、include 功能:比较字符串s1和s2。 说明: 当s1s2时,返回值s2时,返回值0*/ void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) /* 按钮被按下的时候Main_OnCommand方法被调用,hwnd是对话框句柄(什么是句柄后面讲,通俗的说就是通过它能够操纵对话框),id是控件的id,后两个参数暂时不关心。Main_OnCommand方法中根据id,也就是被点击按钮的名字来决定不同的动作,从而和匹配case匹配。Hwnd是当前窗口的句柄,句柄就是把柄!操作一个东西,要先抓住他的把柄!通过句

12、柄就可以操作这个对象。 */ switch(id) case IDC_OK: MessageBox(hwnd,TEXT(嘿嘿.同志,你走错门了!),TEXT(嘿嘿),MB_OK|MB_ICONASTERISK); break; case IDC_BUTTON1:/如果按下该按钮执行 TCHAR str1256,str2256; GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1); /* GetDlgItemText就是“得到对话框项目文本”的意思(暂时可以这样理解) Hwnd就是控件的句柄,IDC_EDIT1就是编辑框1, 参数说明:调用这个函数以获

13、得与对话框中的控件相关的标题或文本。GetDlgItemText成员函数将文本拷贝到str1指向的位置并返回拷贝的字节的数目。 */ GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2); if(FALSE=IsInt(str1) MessageBox(hwnd,TEXT(sorry,你的第一个数输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); return;/注意:不要掉了,不然会在错误的情况下得到结果 if(FALSE=IsInt(str2) MessageBox(hwnd,TEXT(sorry,你的第二个数输入有误!),T

14、EXT(错误!),MB_OK|MB_ICONHAND); return; int i1=atoi(str1); int i2=atoi(str2); int i3=i1+i2; TCHAR str3256; wsprintf(str3,%i,i3);SetDlgItemText(hwnd,IDC_EDIT3,str3);/可以理解为:把str3指定的内容拷贝到得到句柄的编辑框内 break; case IDC_BUTTON2: TCHAR str1256,str2256; GetDlgItemText(hwnd,IDC_EDIT4,str1,sizeof(str1); GetDlgItemTe

15、xt(hwnd,IDC_EDIT5,str2,sizeof(str2); if(FALSE=IsInt(str1) MessageBox(hwnd,TEXT(sorry,你的第一个数输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); return; if(FALSE=IsInt(str2) MessageBox(hwnd,TEXT(sorry,你的第二个数输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); return; int i1=atoi(str1); int i2=atoi(str2); int i3=i1-i2; TCHAR str3256

16、; wsprintf(str3,%i,i3); SetDlgItemText(hwnd,IDC_EDIT6,str3); break; case IDC_BUTTON3: TCHAR str1256,str2256; GetDlgItemText(hwnd,IDC_EDIT7,str1,sizeof(str1); GetDlgItemText(hwnd,IDC_EDIT8,str2,sizeof(str2); if(FALSE=IsInt(str1) MessageBox(hwnd,TEXT(sorry,你的第一个数输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); re

17、turn; if(FALSE=IsInt(str2) MessageBox(hwnd,TEXT(sorry,你的第二个数输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); return; int i1=atoi(str1); int i2=atoi(str2); int i3=i1*i2; TCHAR str3256; wsprintf(str3,%i,i3); SetDlgItemText(hwnd,IDC_EDIT9,str3); break; case IDC_BUTTON4: TCHAR str1256,str2256; GetDlgItemText(hwnd,I

18、DC_EDIT10,str1,sizeof(str1); GetDlgItemText(hwnd,IDC_EDIT11,str2,sizeof(str2); if(FALSE=IsInt(str1) MessageBox(hwnd,TEXT(sorry,你的第一个数输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); return; if(FALSE=IsInt(str2) MessageBox(hwnd,TEXT(sorry,你的第二个数输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); return; int i1=atoi(str1); int

19、i2=atoi(str2); if(i2=0) MessageBox(hwnd,TEXT(笨蛋!除数不能为零!),TEXT(错误!),MB_OK|MB_ICONHAND); return; int i3=i1/i2; TCHAR str3256; wsprintf(str3,%i,i3); SetDlgItemText(hwnd,IDC_EDIT12,str3); break; case IDC_BUTTON5: TCHAR str1256; GetDlgItemText(hwnd,IDC_EDIT13,str1,sizeof(str1); if(FALSE=IsInt(str1) Messa

20、geBox(hwnd,TEXT(sorry,你的输入有误!),TEXT(错误!),MB_OK|MB_ICONHAND); return; int i1=atoi(str1); TCHAR str2256; itoa(i1,str2,2); /* 函数itoa(参数1,参数2,参数3);功 能:把一整数转换为字符串 用 法: itoa(i,num,10); i -需要转换成字符串的数字 num- 转换后保存字符串的变量 10- 转换数字的基数(即进制)。10就是说按10进制转换数字。还可以是2,8,16等等你喜欢的进制类型 返回值:指向num这个字符串的指针*/ SetDlgItemText(h

21、wnd,IDC_EDIT14,str2); break; void Main_OnClose(HWND hwnd) EndDialog(hwnd, 0);第四节:题目:开发一个计算器(V2.0版)和一个小工具(功能:用户任意输入年月日后显示这一年是平年还是闰年,并且告诉用户这一天是星期几)。要求:1.上述两个工具在一个界面上实现。 2.如果用户输入的年月日不符合实际(比如:在平年的2月输入29日.)、除数 为零等都要报错。代码:(部分重要程序)#include stdafx.h#include #include #include resource.h#include MainDlg.hBOOL

22、 WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) switch(uMsg) HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); return FALSE;BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)

23、HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1); ComboBox_InsertString(hwndcombo1,-1,TEXT(加); ComboBox_InsertString(hwndcombo1,-1,TEXT(减); ComboBox_InsertString(hwndcombo1,-1,TEXT(乘); ComboBox_InsertString(hwndcombo1,-1,TEXT(除以); return TRUE;/*当对话框接收到WM_INITDIALOG消息时,就会执行函数BOOL Main_OnInitDialog(HWND hw

24、nd, HWND hwndFocus, LPARAM lParam),一般一些初始化的变量之类的都写这个函数内进行初始化。HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);是定义一个HWND类型的量,通过函数GetDlgItem()来获取控件“IDC_COMBO1的句柄,并赋值给hwndcombo1.而ComboBox_InsertString(hwndcombo1,-1,TEXT(加);是将得到的控件内加入内容,其中参数:hwndcombo1是得到的控件的句柄,关于参数-1的说明请看“The zero-based index at which to in

25、sert the string, or 1 to add it to the end of the list.”我的翻译“从0开始以什么样的指标插入字符串,或1到把它添加到列表的末尾”,呵呵,还差强人意吧,用这个“函数”为了使添加内容的顺序按照自己意图实现,如果用“函数”(因为不是真正的函数,其实是宏)ComboBox_AddString()进行添加内容会出现乱序的现象,就不会是“加减乘除”的顺序了 */int IsInt(TCHAR *str) int i=atoi(str); TCHAR str1256; itoa(i,str1,10); if(strcmp(str,str1)!=0) r

26、eturn FALSE; else return TRUE; int fun(int a,int b,int c) int p,q,p1=28,p2=29; if(a%400=0|a%4=0&a%100!=0) p=p2; else if(a%4!=0) p=p1; switch(b) case 1:q=c;break; case 2:q=31+c;break; case 3:q=31+p+c;break; case 4:q=31+p+31+c;break; case 5:q=31+p+31+30+c;break; case 6:q=31+p+31+30+31+c;break; case 7:

27、q=31+p+31+30+31+30+c;break; case 8:q=31+p+31+30+31+30+31+c;break; case 9:q=31+p+31+30+31+30+31+31+c;break; case 10:q=31+p+31+30+31+30+31+31+30+c;break; case 11:q=31+p+31+30+31+30+31+31+30+31+c;break; case 12:q=31+p+31+30+31+30+31+31+30+31+30+c;break; return q;void Main_OnCommand(HWND hwnd, int id, H

28、WND hwndCtl, UINT codeNotify) switch(id) case IDC_OK: MessageBox(hwnd,TEXT(Sorry!由于你的人品出现了问题,系统不允许你退出.嘿嘿-),TEXT(嘿嘿 -),MB_OK|MB_ICONHAND); break; case IDC_BUTTON1: TCHAR str1256,str2256; GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1); GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2); int i1=atoi(str1); int i2=atoi(str2); int i3=0; HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1); int curIndex=ComboBox_GetCurSel(hwndcombo1); /*定义了一个整型变量来表示添加内容的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1