抢号专区

如何给简单c程序添加背景图

Less than a minute to read

社区

C语言 帖子详情 如何给简单c程序添加背景图 qq_47024602 2020-04-15 03:06:04 初学c语言,下面是一个简易的药房系统

如何让他的背景不是黑色填充,添加背景图

#include

#include

#include

#include

struct medicine

{

char name[20];

char number[50];

char price[50];

char inventory[50];

char brand[20];

} medicine[100];

int num;

int menu_select()

{

char s[80];

int a;

system("cls");

printf("\t\t------------- 您好!您已进入药房管理系统 -----------\n\n");

printf("\t\t\t1. 输入药品信息 \n");

printf("\t\t\t2. 查看药品信息 \n");

printf("\t\t\t3. 修改药品信息 \n");

printf("\t\t\t4. 按编号查找药品 \n");

printf("\t\t\t5. 按价格排序 \n");

printf("\t\t\t6. 删除药品信息 \n");

printf("\t\t\t7. 退出\n");

printf("\t\t------------------------------------------\n\n");

do{

printf("Enter you choice(1~7):");

scanf("%s",s);

a=atoi(s);

}

while (a<1 || a>7);

return a;

}

int addmedicine()

{

printf("\t\t\t-------------- 请输入您要保存的信息 ------------\n");

printf("\t\t\t 输入药品名称 :\n");

scanf("%s",medicine[num].name);

printf("\t\t\t 输入药品编号 :\n");

scanf("%s",medicine[num].number);

printf("\t\t\t 单价:\n");

scanf("%s",medicine[num].price);

printf("\t\t\t 品牌:\n");

scanf("%s",medicine[num].brand);

printf("\t\t\t 库存数量 :\n");

scanf("%s",medicine[num].inventory);

num++;

printf("\t\t\t 是否继续添加 ?(Y/N):\n");

if(getch()=='y' || getch()=='Y')

addmedicine();

return(0);

}

void modifybyname()

{

char c;

int i,mark=0;

char name[20];

printf("\n\t\t 请输入要修改的药品名称: ");

scanf("%s",name);

if(num==0)

{

printf("\n\t\t 文件中无相关药品 ");

printf("\n\t\t 按任意键返回主菜单 ");

getch(); mark++;

return;

}

for(i=0;i

{

if(strcmp(medicine[i].name,name)==0)

{

printf("\n\t\t 以下是您要修改的药品信息 ");

printf("\n\t\t 药品名称 : %s",medicine[i].name);

printf("\n\t\t 药品编号 : %s",medicine[i].number);

printf("\n\t\t 单价: %s",medicine[i].price);

printf("\n\t\t 品牌: %s",medicine[i].brand);

printf("\n\t\t 库存数量 : %s",medicine[i].inventory);

printf("\n\t\t 是否修改 (y/n)");

if(getch()=='y')

{

printf("\n\t---------------------- 请选择修改信息 -------------------------");

printf("\n\t 1-修改药品名称 ");

printf("\n\t 2-修改药品编号 ");

printf("\n\t 3-修改单价 ");

printf("\n\t 4-修改品牌 ");

printf("\n\t 5-修改库存数量 ");

printf("\n\t--------------------------------------------------------------------------");

printf("\n\t 请选择您所要的服务: ");

scanf("%s",&c);

switch(c)

{

case '1': printf("\n\t 请输入新药品名称: ");

scanf("%s",medicine[i].name);break;

case'2':printf("\n\t 请输入新药品编号: %s");

scanf("%s",medicine[i].number);break;

case'3':printf("\n\t 请输入新单价 : ");

scanf("%s",medicine[i].price);break;

case'4':printf("\n\t 请输入新品牌 : ");

scanf("%s",medicine[i].brand);break;

case'5':printf("\n\t 请输入新库存数量 : ");

scanf("%s",medicine[i].inventory);break;

}

}

}

}

if(mark==0)

{

printf("\n\t\t 药品信息修改完毕 ");

printf("\n\t 是否继续修改? (Y/N):");

if(getch()=='y')

modifybyname();

return;

}

}

void list()

{

int i;

system("cls");

if(num!=0)

{

printf("\t\t\t---------- 已为您显示所有药品信息 ----------\n");

for (i=0;i

{

printf("\t\t\t 药品名称: %s\n",medicine[i].name);

printf("\t\t\t 药品编号: %s\n",medicine[i].number);

printf("\t\t\t 单价: %s\n",medicine[i].price);

printf("\n\t\t 品牌 : %s\n",medicine[i].brand);

printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);

if(i+1

{

system("pause");

}

}

printf("\t\t\t------------------------------\n");

}

else

printf("\t\t\t 系统中无任何记录 \n");

printf("\t\t\t 按任意键返回主菜单: \n");

getch();

return;

}

int searchbyname()

{

int mark=0;

int i;

printf("\t\t\t---------- 按药品名称查找 ----------\n");

char name[20];

printf("\t\t\t 请输入药品名称 :\n");

scanf("%s",name);

for(i=0;i

{

if (strcmp(medicine[i].name,name)==0)

{

printf("\t\t\t------- 以下是您查找的药品信息 -------\n");

printf("\t\t\t 药品名称: %s",medicine[i].name);

printf("\t\t\t 药品编号: %s",medicine[i].number);

printf("\t\t\t 单价: %s",medicine[i].price);

printf("\n\t\t 品牌: %s",medicine[i].brand);

printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);

printf("\t\t\t------------------------------------------------------\n");

mark++;

if((i+1)

{

printf("\t\t\t 是否继续查找相同名称的药品信息: (y/n)\n");

if(getch()=='y' || getch()=='Y')

{

continue;

}

else

return(0);

}

else

{

printf("\t\t\t 请按任意键返回主菜单 ");

getch();

return(0);

}

}

}

if(mark == 0)

{

printf("\t\t\t 没有您要查找的药品记录 \n");

printf("\t\t\t 请按任意键返回主菜单 \n");

getch();

return(0);

}

return 0;

}

int searchbynumber()

{

int mark=0;

int i;

printf("\t\t\t--------------- 按药品编号查找 --------------\n");

char number[10];

printf("\t\t\t 请输入药品编号 :\n");

scanf("%s",number);

for(i=0;i

{

if (strcmp(medicine[i].number,number)==0)

{

printf("\t\t\t--------------- 以下是您查找的药品信息 ---------------\n");

printf("\t\t\t 药品名称: %s",medicine[i].name);

printf("\t\t\t 药品编号: %s",medicine[i].number);

printf("\t\t\t 单价: %s",medicine[i].price);

printf("\n\t\t 品牌: %s",medicine[i].brand);

printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);

printf("\t\t\t-------------------------------------------------\n");

printf("\t\t\t 请按任意键返回主菜单 \n");

mark++;

getch();

return(0);

}

}

if (mark==0)

{

printf("\t\t\t 没有改药品的信息 \n");

printf("\t\t\t 请按任意键返回主菜单 \n");

getch();

return(0);

}

return(0);

}

void deletebynumber()

{

int i,j;

int deletemark=0;

char number[20];

printf("\t\t\t 请输入要删除药品编号: \n");

scanf("%s",number);

if(num==0)

{

printf("\t\t\t 对不起,系统中无任何记录 \n");

printf("\t\t\t 请按任意键返回主菜单 \n");

getch();

return;

}

for (i=0;i

{

if (strcmp(medicine[i].number,number)==0)

{

printf("\t\t\t 以下是您要删除的用户记录: \n");

printf("\t\t\t 药品名称: %s",medicine[i].name);

printf("\t\t\t 药品编号: %s",medicine[i].number);

printf("\t\t\t 单价: %s",medicine[i].price);

printf("\n\t\t 品牌 : %s",medicine[i].brand);

printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);

printf("\t\t\t 是否删除 ?(y/n)");

if (getch()=='y' || getch()=='Y')

{

for (j=i;j

medicine[j]=medicine[j+1];

num--;

deletemark++;

printf("\t\t\t 删除成功 ");

printf("\t\t\t 是否继续删除 ?(y/n)");

if (getch()=='y' || getch()=='Y')

deletebynumber();

return;

}

else

return;

}

continue;

}

if (deletemark==0)

{

printf("\t\t\t 没有该药品的记录 ");

printf("\t\t\t 是否继续删除 ?(y/n)");

if(getch()=='y' || getch()=='Y')

deletebynumber();

return;

}

return;

}

void deletebyname()

{

int a=0;

int findmark=0;

int j;

int deletemark=0;

int i;

char name[20];

printf("\t\t\t 请输入要删除药品名称: \n");

scanf("%s",name);

for (i=a;i

{

if(strcmp(medicine[i].name,name)==0)

{

printf("\t\t\t 以下是您要删除的药品信息: ");

findmark++;

printf("\t\t\t________________________________");

printf("\t\t\t 药品名称: %s",medicine[i].name);

printf("\t\t\t 药品编号: %s",medicine[i].number);

printf("\t\t\t 单价: %s",medicine[i].price);

printf("\n\t\t 品牌 : %s",medicine[i].brand);

printf("\t\t\t 库存数量: %s\n",medicine[i].inventory);

printf("\t\t\t________________________________");

printf("\t\t\t 是否删除 ?(y/n)");

if (getch()=='y' || getch() == 'Y')

{

for(j=i;j

medicine[j]=medicine[j+1];

num--;

deletemark++;

printf("\t\t\t 删除成功 ");

if((i+1)

{

printf("\t\t\t 是否继续删除相同名称的药品信息 ?(y/n)");

if (getch()=='y')

{

a=i;

continue;

}

}

printf("\t\t\t 是否继续删除 ?(y/n)");

if (getch()=='y')

deletebyname();

return;

}

if((i+1)

{

printf("\t\t\t 是否继续删除相同名称的药品信息 ?(y/n)");

if (getch()=='y' || getch() == 'Y')

{

a=i;

continue;

}

}

}

else

continue;

}

if ((deletemark==0)&&(findmark==0))

{

printf("\t\t\t 没有该药品的记录 ");

printf("\t\t\t 是否继续删除 ?(y/n)");

if(getch()=='y' || getch() == 'Y')

deletebynumber();

return;

}

else if (findmark!=0)

{

printf("\t\t\t 没有重名信息 ");

printf("\t\t\t 没有该药品的记录 ");

printf("\t\t\t 是否继续删除 ?(y/n)");

if(getch()=='y' || getch() == 'Y')

deletebynumber();

return;

}

}

int dele()

{

char choic;

printf("\t\t\t1- 按药品编号删除 2-按药品名称删除 ");

printf("\t\t\t 请选择: ");

choic=getch();

switch (choic)

{

case '1':deletebynumber();break;

case '2':deletebyname();break;

}

return(0);

}

int sortbyprice()

{

int i,j;

struct medicine tmp;

for (i=1;i

{

if(strcmp(medicine[i].price,medicine[i-1].price)<0)

{

tmp=medicine[i];

j=i-1;

do

{

medicine[j+1]=medicine[j];

j--;

}while ((strcmp(tmp.price,medicine[j].price)<0&&j>=0));

medicine[j+1]=tmp;

}

}

printf("\t\t\t 排序成功 ,是否显示 ?(y/n)");

if (getch()=='y')

list();

return(0);

}

int main()

{

printf("\t\t---------------------------------------------------------\n");

printf("\t\t---------Welcome to management system ----------\n");

printf("\t\t----------Made By FACE CARD-------------\n");

printf("\t\t---------------------------------------------------------\n");

printf(" 请按任意键进入主菜单 :)\n");

getch();

int selectnum;

while(1)

{

selectnum = menu_select();

switch(selectnum)

{

case 1:

{

addmedicine();

break;

}

case 2:

{

list();

break;

}

case 3:

{

modifybyname();

break;

}

case 4:

{

searchbynumber();

break;

}

case 5:

{

sortbyprice();

break;

}

case 6:

{

dele();

break;

}

case 7:

{

printf("BYE BYE!\n");

system("pause");

getchar();

exit(0);

}

}

}

getchar();

return 0;

}

...全文

3320 14 打赏 收藏 如何给简单c程序添加背景图 初学c语言,下面是一个简易的药房系统 如何让他的背景不是黑色填充,添加背景图 #include #include #include #include struct medicine { char name[20]; char number[50]; char price[50]; char inventory[50]; char brand[20]; } medicine[100]; int num; int menu_ 复制链接

扫一扫 分享 转发到动态 举报

写回复 配置赞助广告取 消

确 定

用AI写文章 14 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 六道佩恩 2020-04-28 打赏举报 回复 1

#include "windows.h"

HBITMAP hbitmap=NULL;

//加载一张bmp图片

void LoadMyBitmap( char* FileName )

{

hbitmap = LoadImage( NULL, FileName, 0, 0, 0, LR_LOADFROMFILE );

}

//在控制台窗口上绘制之前加载的图片

void DrawBitmapInConsole( void )

{

BITMAP bitmap;

GetObject( hbitmap , sizeof(BITMAP), &bitmap );

HWND hwnd = GetConsoleWindow();

HDC hdc = GetDC( hwnd );

HDC mdc = CreateCompatibleDC( hdc );

SelectObject( mdc, hbitmap );

BitBlt( hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, mdc, 0, 0, SRCCOPY );

ReleaseDC( hwnd, hdc );

DeleteDC( mdc );

}

int main( void )

{

LoadMyBitmap( "背景.bmp" );

while( 1 )

{

DrawBitmapInConsole();

Sleep(300);

}

return 0;

}

效果如下(设置控制台窗口上):

准备一张bmp图片,将它的文件名(不和exe同一目录则用绝对路径或相对路径)传给LoadMyBitmap。绘图前这样加载一次就行。然后循环时每次先调用一次DrawBitmapInConsole()。这两个函数你照抄就行了。效果不是很好。对于控制台窗口宽高和图片不符的情况,你可以用MoveWindow或system函数修改控制台窗口的大小以适应图片。 zhuolingyyds 2021-12-07 举报 回复 @六道佩恩 undefined reference to `__imp_GetObjectA' 请问这个怎么解决? 六道佩恩 2021-12-07 举报 回复 @zhuolingyyds 链接gdi32这个库 lknbb 2022-06-09 举报 回复 @六道佩恩 [Error] invalid conversion from 'HANDLE {aka void*}' to 'HBITMAP' [-fpermissive]这怎么办 1条回复 qq_41515678 2020-04-27 打赏举报 回复 控制台添加背景图建议使用GDI绘图

由GetConsoleWindow和GetDC获取画图设备

再由LoadBitmap或LoadImage加载图片,然后绘图

不过这样的话文本输出只能用TextOut或DrawText了 ooolinux 2020-04-27 打赏举报 回复

C++ Builder简单电话簿Demo例子v1.11 ooolinux 2020-04-21 打赏举报 回复 背景图参考

C++ Builder 6.0几个示例程序项目源代码下载:

C++ Builder第一个程序(模拟聊天室)v1.11

C++ Builder模拟数字双时钟示例(未完成)v0.2.1

C++ Builder纸牌游戏Demo v0.03

C++ Builder不规则图像透明贴图(位图的透明显示)三种方法及简单动画v1.3

C++ Builder写的《ZEC 四则运算练习程序》 海底海星情景v0.9.2

C++ Builder是真正的可视化的开发工具。C++ Builder可以用鼠标拖拉控件加上设置属性轻松的“设计”出一个程序的图形用户界面,利用可视的组件/控件像“搭积木”一样,以“所见即所得”的方式搭建应用程序的界面,这也是C++ Builder这个名字中Builder的概念。这样,只需要用C++语言编写业务逻辑代码,类似于DOS下文本界面编程,只要专注于实现业务逻辑功能就可以了,代码非常简洁。数据的输入和表现,都在图形用户界面,非常直观、易用。这就是RAD开发(Rapid Application Development,快速应用程序开发)。

书籍推荐:

《C++Builder 6程序设计教程(第二版)》 (陆卫忠,刘文亮 等编著 /2011-04-01 /科学出版社)(当当网)

《C++Builder 6编程实例精解》(赵明现),PDF,是数字版的,非扫描版的,里面还有一个俄罗斯方块游戏的完整实现。

《精彩C++Builder 6程序设计》(台湾 吴逸贤),里面有10几个简单小游戏的实现,可以自己看懂以后再重写,才是自己掌握的。

《C++ Builder 5高级编程实例精解》(刘滨 编著)都是较大的实用的程序。

大娱乐家cpy 2020-04-20 打赏举报 回复 你好,控制台添加背景图这怕不是小白能搞得,你需要基于对话框的应用程序,比如Qt或Vc,而不是控制台应用程序。 silent_world 2020-04-20 打赏举报 回复 添加背景图有点难度,起码需要图片解析,改变颜色是可行的。

能控制显示信息,主要是gdi模块在起作用,更下面是通过像素操作framebuf空间。如果需要添加图片,最好使用gui框架,如:mfc,minigui,qt等等。 棉猴 2020-04-20 打赏举报 回复 改变控制台背景颜色及输出信息颜色

《VS2015中修改控制台背景及输出字体颜色》

类似如下图

希望能够帮到你! Vegdie 2020-04-20 打赏举报 回复 如果你想改背景颜色,是可以的,但是你写的再长也是控制台程序,想添加背景图,就得做图形开发啦,学学Qt或C++Builder,不行的话Python简单 arfi 2020-04-19 打赏举报 回复 这只是个控制端程序,运行时调出来的背景可不是C代码控制的。

如果是觉得不好看,想做成界面化得,你得用那种java, C++ builder等支持图形化编程的工具 chxchxkkk 2020-04-15 打赏举报 回复 改变背景颜色还容易些,放个背景图比较复杂 为matlab GUI添加背景图片 为matlab GUI添加背景图片

为GUI添加一个背景图片,不仅可以让我们的界面变得漂亮大气上档次,而且软件对与用户的交互更加友好。用C或者C++写过软件界面的人都知道,这件事情可以轻而易举的办到,那么问题来了,怎么为matlab的GUI添加一个背景图片呢?其实这个操作也很简单,但是如果是第一次做这个,可能需要折腾好久。在这里我希望跟大家分享一下这个小技巧,避免大家遇到同样的问题再走弯路。欢迎... 小程序添加水印背景图 先说明,小程序添加全局背景图我也不是很会,还没想出来怎么全局添加,想起来后期再补

想要给小程序添加背景图

代码:

首先现在components组件里建一个watermark文件,对应watermark.js - watermark.json - watermark.wxss - watermark.wxml 这四个文件

watermark.wxml

1.图片如何铺满全屏

//wxml

//wxss

.body{

height: 100%;

width: 100$;

min-height: 100%;

background-size: 100% 100%;

}

上面代码是我们平时经常写的,设background-ima java插入背景图片问题_怎么 在java程序中添加背景图片 怎样 在java程序中添加背景图片怎样在java程序中添加背景图片------解决方案--------------------importjava.awt.FlowLayout;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;i... c语言背景图片怎么添加字体,C语言如何引用背景图片 满意答案xyl8809172015.11.03采纳率:50%等级:8已帮助:808人1、C语言写控制台程序是无法加图片的,只能用命令行输出,最多就是设置下背景和字体,颜色之类的。如果开发API窗口程序,完全依赖于操作系统的函数库。C语言本身并不提供这类函数。2、下面是windows系统下实现的函数代码,第一个参数是图片的存放的位置,第二个参数是窗口句柄。HRESULTShowPic(...

C语言

70,038

社区成员

243,245

社区内容

发帖 与我相关 我的任务 C语言 C语言相关问题讨论 复制链接

扫一扫 分享 确定 社区描述 C语言相关问题讨论 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章


Copyright © 2088 时效性网游活动中心 All Rights Reserved.
友情链接