C语言开发的软件界面怎么设计的啊?
用C/C++直接开发界面程序一般有以下几种方式:1、直接调用系统api这一种比较麻烦而且开发的效率不高,但通过练习可以让你很好的掌握GUI程序的原理和技巧。
因为常用的第3种也是以此为基础的,学会api有利于更加深入的了解GUI程序原理。
2、直接使用绘图接口自己画这种最麻烦而且一般适用于游戏、虚拟现实等专业领域,比如使用OpenGl绘图接口制作3D程序。
3、调用其他封装好库这一种就是别人把系统api封装好了,给了你一个简单的使用接口,比如MFC。
对于C/C++来说,现在比较流行的有Qt,xwidget等GUI库,使用简单,文档丰富,而且跨平台使用,是目前比较好的选择。
如果以前没有用过MFC,建议还是别学MFC了,繁琐而且不是跨平台的。
还有,如果用VS开发,.NET里面的一些标准控件也足以应付日常开发了,这个其实是现在用的最普遍的。
怎样用c语言开发一个有界面的软件。
要创建图形界面,一般要调用windows操作系统的API函数的,比如CreateWindw(),ShowWindow(),UpdateWindow()等函数,还要用到一些 结构体,WNDCLASS, MSG等等,当然也可以用MFC类库,这是个很复杂的问题,一两句话也说不清,如果楼主真打算要学,建议看《Windwos程序设计》,最新版是第五版,微软出版社出版,国内有翻译成中文版的,这可是 圣经级 的著作,整个书有1000多页,楼主好好学吧。
如果不方便买书的话可以到网上下载电子版本看,楼主好好学啊!下面贴两个例子,用Visual C++ 编译:/*-------------------------------------------------------------- HelloMsg.c -- Displays "Hello, Windows 98!" in a message box (c) Charles Petzold, 1998 --------------------------------------------------------------*/#include int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0) ; return 0 ; } 第二个:/*------------------------------------------------------------ HELLOWIN.C -- Displays "Hello, Windows 98!" in client area (c) Charles Petzold, 1998 ------------------------------------------------------------*/#include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("HelloWin") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) { MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, // window class name TEXT ("The Hello Program"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL) ; // creation parameters ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch (message) { case WM_CREATE: PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ; return 0 ; case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; EndPaint (hwnd, &ps) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
C语言能设计出应用程序界面吗
学习c++程序基础知识学习经典入门。
C++程序是一门广泛用于工业软件研发的大型语言。
具有很高的复杂性和解决问题的能力。
C++不仅在开发上极具价值,同时在学术界也就有很高的价值。
有关C++的文章应该可以用浩如烟海来形容了吧。
C++的世界级经典书籍也是数不胜数。
然而,目前开发语言是如此地繁荣,就连微软也在推出了新的开发语言C#。
一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,前段时间看了据说是微软操作系统源代码的东东,其中很多还是C语言。
而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。
也许Java和C#的狂潮终将迫使C++回归本位— 回到它有着根本性优势的开发领域:低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计、通用程序设计以及数值科学计算等。
果真如此,我认为这未尝不是一件好事。
电力系统软件所要求的高性能和大规模数值计算正是C++所擅长的。
就我所接触的南瑞和鲁能,很多涉及到电力系统计算的软件如PAS等,都是用C++来开发的。
在电力系统软件开发这块阵地,C++大有用武之地。
C++吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软件产品、程序库以及书籍等,数不胜数。
在C++之父Bjarne Stroustrup的个人主页上,有一页列出了一些(全部或大部分)使用C++编写的系统、应用程序和库。
...
如何用c语言实现文本菜单界面啊??c语言课程设计需要
如果楼主想用TC之类的编译器做一个Windows界面那几乎是不可能的(理论上的还是有可能的)。
工作量大的吓人,而且也不知道TC能不能调用Windows API。
如果用其它的编译器(VC?)还是可以的,工作量也不小可能比你的功能实现代码多几倍都不止。
这还是在你VC玩顺了的前提下。
所以还是先学C++,而后用VC来做吧。
如何用c语言设计界面?
#include "Conio.h"#include "graphics.h" /*这个图形函数库可以用来画界面*/void initgr(void) /* BGI初始化 */{ int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */ registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */ initgraph(&gd, &gm, "");}int main(void){ initgr(); /* BGI初始化 */ line(25, 25, 220, 220); circle(100, 100, 50); getch(); /* 暂停一下,看看前面绘图代码的运行结果 */ closegr(); /* 恢复TEXT屏幕模式 */ return 0;}...
如何学习C语言
1、《The C Programming Language》(后面称为 K&R)里面包含了一个简单的语法解析器,包含了malloc如何实现,包含了一个完整的操作系统目录浏览程序,这些程序的实用性极高,可以这样说,如果学习任何一门语言能够自己独立动手实现以上的功能,基本上就可以算是入门了; 2、《C和指针》指针的重要性,学过C语言(或者C++)的朋友都知道,这本书更是把指针拔高到了与C语言平起平坐的地位,其实也是从头开始介绍,作为教学参考书也是可以的;3、《C标准库》这本书是专门介绍C语言的标准库如何实现的,比如malloc算法,用标准的C语言该如何写?strlen这个函数应该如何实现?尽管书中不少代码与真实的C标准库相差很多(由于标准库需要考虑性能优化,很多函数有一些特定的trick),但是绝对值得参考;4、动手实验环境搭建Windows系统下推荐大家使用Code::blocks这个软件。
这个软件最大优点是自带了基于mingw的GCC以及GDB,只要下载70M左右软件包,就可以完整支持C++、C语言编程了。
各种功能(比如调试功能)也很强大,版本更新也比较快。
5、对于计算机专业的学生朋友,建议大家使用Linux操作系统,或者更详细一点是使用Xubuntu操作系统作为桌面,使用Netbeans和GCC这个组合(当然也可以选择Code::Blocks)。
在Xubuntu下可以通过apt-get install build-essential这个命令安装gcc相关程序,已经可以在Terminal下编译C语言程序了,但为了使用方便,大家可以选择Netbeans的C++支持包,在Netbeans网站上就能下载;6、网络资源要学好C语言,在网络上找资源肯定是必须的,这些网络资源对学C语言的人就很有帮助,一些有用的C语言网络资源:C语言标准化组织ISO JTC1/SC22/WG14的主页,在这里可以找到ISO C的文档《The Development of the C Language》作者Dennis Ritchie,极为经典的论文。
Dan Saks在embedded.com上的专栏Programming Pointer,里面文章很有深度,值得一读。
End免责声明:本页容仅供参考,请您根据自身实际情况谨慎操作。
尤其涉及您或第三方利益等事项,请咨询专业人士处理。
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
C语言课程设计:采用菜单界面 建议使用结构和链表等数据结构 模块...
给你做的是第一个题目,由于水平有限,写的代码有点乱,但是绝对是可以运行的! #include #include #include #define NAME_MAX 100//书的名字的最长字数 #define WRITER_MAX 100//作者名字的最长 #define PUB_MAX 100//出版单位最长名字 #define TIME 100//出版时间 typedef struct books { int loading; char name[NAME_MAX]; char writer[WRITER_MAX]; int identify; char pub[PUB_MAX]; char time[TIME]; int price; struct books * next; }book; //头结点不存储信息 void Init(book * head) { head->next=NULL; } //打印一些欢迎词之类的。
。
。
。
。
void welcome() { printf("******欢迎使用章强图书馆,哈哈*********\n"); printf("\n\n"); printf("1:图书信息录入功能\n"); printf("2:图书信息浏览功能,显示该书的所有信息\n"); printf("3:图书信息查询功能:按书名查询与按作者名查询\n"); printf("4:图书信息的修改和删除,可对相应数据进行修改和删除\n"); } //显示一本书的信息 void print_the_book(book * p1) { printf("loading number:%d \n",p1->loading); printf("name: "); puts(p1->name); printf(" \n"); printf("writer: "); puts(p1->writer); printf(" \n"); printf("identify:%d \n",p1->identify); printf(" \n"); printf("pub: "); puts(p1->pub); printf(" \n"); printf("time: "); puts(p1->time); printf(" \n"); printf("price:%d \n",p1->price); } int chongfu(book * head,book * p) { book * p1=head->next; int a=0; while(p1!=NULL) { if(strcmp(p1->name,p->name)==0) { if(strcmp(p1->writer,p->writer)==0) { a=1; break; } } else p1=p1->next; } return a; } //录入一些信息。
。
。
。
void luru(book * head) { book * p1=head; book * p2; //寻找NULL前的那个点 while(p1->next!=NULL) { p1=p1->next; } int a; do { p2=(book *)malloc(sizeof(book)); printf("输入书本信息\n"); printf("登录号\n"); fflush(stdin); scanf("%d",&p2->loading); printf("书名\n"); fflush(stdin); gets(p2->name); fflush(stdin); printf("作者\n"); gets(p2->writer); fflush(stdin); printf("分类号\n"); scanf("%d",&p2->identify); fflush(stdin); printf("出版社\n"); gets(p2->pub); fflush(stdin); printf("出版时间\n"); gets(p2->time); fflush(stdin); printf("价格\n"); scanf("%d",&p2->price); p2->next=NULL; fflush(stdin); //加入链表 if(chongfu(head,p2)) printf("录入信息重复\n"); else { p1->next=p2; p1=p2; } printf("还想继续录入信息吗?\n(1:继续 0:停止)\n"); scanf("%d",&a); }while(a==1); } void liulan(book * head) { book * p1=head->next; int i=1; while(p1!=NULL) { printf("*********第%d本书***********\n",i++); print_the_book(p1); p1=p1->next; } } //查询。
。
。
。
void chaxun(book * head) { printf("按书名查询还是按作者名查询?\n(1:按书名查询 0:按作者名查询)\n"); book * p=head->next; int a; fflush(stdin); scanf("%d",&a); int num=0; char cha[NAME_MAX]; switch(a) { case 1: printf("输入书名:\n"); fflush(stdin); gets(cha); while(p!=NULL) { if(strcmp(p->name,cha)==0) { num++; print_the_book(p); } p=p->next; } break; case 0: printf("输入作者名:\n"); fflush(stdin); gets(cha); while(p!=NULL) { if(strcmp(p->writer,cha)==0) { num++; print_the_book(p); } p=p->next; } } if(num==0) printf("无符合旦绩测啃爻救诧寻超默书本\n"); } //修改信息 void xiugai(book * head) { printf("输入需要修改书本的名称和作者:\n"); char name_book[NAME_MAX]; char writer_book[WRITER_MAX]; printf("书本名称:"); fflush(stdin); gets(name_book); fflush(stdin); printf("书本作者;\n"); gets(writer_book); book * p1=head->next; int a=0; while(p1!=NULL) { if(strcmp(p1->name,name_book)==0) { if(strcmp(p1->writer,writer_book)==0) { a=1; break; } } p1=p1->next; } if(a==0) printf("没有这本书。
。
。
\n"); else { print_the_book(p1); printf("输入新信息\n"); fflush(stdin); printf("登录号\n"); scanf("%d",&p1->loading); printf("书名\n"); fflush(stdin); gets(p1->name); fflush(stdin); printf("作者\n"); gets(p1->writer); fflush(stdin); printf("分类号\n"); scanf("%d",&p1->identify); fflush(stdin); printf("出版社\n"); gets(p1->pub); fflush(stdin); printf("出版时间\n"); gets(p1->time); fflush(stdin); printf("价格\n"); scanf("%d",&p1->price); p1->next=NULL; } } void main() { book * head; head=(book *)malloc(sizeof(book)); Init(head); int contin=1; while(contin) { welcome(); printf("想进行哪项操作?\n"); int a; scanf("%d",&a); switch(a) { case 1: luru(head); break; case 2: liulan(head); break; case 3: chaxun(head); break; case 4: xiugai(head); } printf("继续使用图书馆还是退出?\n(1:continue 0:exit)\n"); scanf("%d",&contin); } }
本人想学习编程,需要哪些入门书籍
C语言、C++、或者java具体怎样学编程 :1.明确学习目的学习编程对大多数IT业人员来说都是非常有用的。
学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。
学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。
知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。
2.打好基础学编程要具备一定的基础,总结之有以下几方面: (1)数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。
因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
(2)逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。
要想成为一名优秀的程序员,最重要的是掌握编程思想。
要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。
因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。
谁都有第一次。
有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
(3)选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。
2)跨平台开发开发工具如 Java 等。
3)网络开发对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。
以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。
选 VB 作为入门的方向对出学者是较为适合的。
3. 注意理解一些重要概念一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。
4.掌握编程思想学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。
例如学习 VC 就要学习 Windows 的内在机理、什么是线程......;学习 COM 就要知道 VTALBE 、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。
5.多实践、多交流掌握编程思想必须在编程实际工作中去实践和体会。
编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。
这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。
亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
6.养成良好的编程习惯编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。
在此期间要注意养成一些良好的编程习惯。
编程风格的好坏很大程度影响程序质量。
良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。
如代码的缩进编排、变量命令规则的一致性、代码的注释等。
7.上网学编程在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。
例如网站“编程课堂”()主要以 VB 和 Delph;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”()是专门介绍C、VC、VB、Delphi 等的综合编程网站;网站“ VB 编程乐园 ”()提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。
8.加强计算机理论知识的再学习学编程是符合“理论→实践→再理论→再实践”的一个认识过程。
一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。
程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。
学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。
因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。
这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。
展开
转载请注明出处51数据库 » c语言实用软件界面设计