社区
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写文章