`
javatgo
  • 浏览: 1122870 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

答loveMFC19760708问

 
阅读更多

先有你MM的录音吧?转成wave格式的,这会吧?

在VC中新建一个空的win32项目,然后添加一个资源,把wave文件加进去,取个ID:MY_WAVE

新建一个CPP文件叫WinMain.cpp,然后添加到源文件文件夹里,在里面写下面的代码:

#include <windows.h>

int WinMain( HINSTANCE hInstance, HINSTANCE, LPSTR, int )
{
return PlaySound( MAKEINTRESOURCE(MY_WAVE), hInstance, SND_RESOURCE|SND_NOWAIT );
}


编译运行就好了

BOOL PlayResource(LPSTR lpName)
{
BOOL bRtn;
LPSTR lpRes;
HANDLE hResInfo, hRes;

// Find the WAVE resource.

hResInfo = FindResource(hInst, lpName, "WAVE");
if (hResInfo == NULL)
return FALSE;

// Load the WAVE resource.

hRes = LoadResource(hInst, hResInfo);
if (hRes == NULL)
return FALSE;

// Lock the WAVE resource and play it.

lpRes = LockResource(hRes);
if (lpRes != NULL) {
bRtn = sndPlaySound(lpRes, SND_MEMORY | SND_SYNC |
SND_NODEFAULT);
UnlockResource(hRes);
}
else
bRtn = 0;

// Free the WAVE resource and return success or failure.

FreeResource(hRes);
return bRtn;
}

===============

PlaySound("C://SOUNDS//BELLS.WAV", NULL, SND_SYNC);

下面这段程序可以在Windows的控制台窗口中播放mp3,支持列表。编译一下就可以运行。

class Globals
{

public:
//## Constructors
Globals(){};

//## Destructor
virtual ~Globals(){};
//## Other Operations (specified)
// This method copies a file.
static bool copyFile (const CString& sourceFilename, const CString& destinationFilename);
//## This method removes a file.
static void removeFile (const CString& filename);

};

class Player
{
public:
//## Constructors
Player(){ srand( (unsigned)time( NULL ) );};

//## Destructor
~Player(){};

//## Other Operations (specified)
#define MAX_FILES 10000
void printinfo ();
void printerror (char * programname);
long fillplaylist (CString& file);
void playmp3(long entries, bool randomplay, bool copy);
protected:

private:
CString playlist[MAX_FILES];
int randomindex[MAX_FILES];

};

#include <stdlib.h>
#include <conio.h>
#include <io.h>
#include <stdio.h>
#include <time.h>
#include <iostream.h>
#include <afx.h>
#include <fstream.h>
#include <mmsystem.h>
#include <winbase.h>
void main (int ArgC, char *ArgV[])
{
Player play;
long entries;
bool randomplay = false;
bool copy = false;
int LV_Option;

play.printinfo ();
if (ArgC < 2)
play.printerror(ArgV[0]);
for(int i = 2; i<ArgC; i++)
{
if(strlen(ArgV[i]) == 1)
{
LV_Option = ArgV[i][0];
switch (LV_Option)
{
case 'r': randomplay = true;
cout << "Note: Playing titles in random order." << endl;
break;
case 'c': copy = true;
cout << "Note: Copy files before playing." << endl;
break;
}
}
}
entries=play.fillplaylist((CString) ArgV[1]);
if (entries > 0)
play.playmp3(entries,randomplay,copy);
cout << "End reached, program terminated normally."<< endl;
};

bool Globals::copyFile (const CString& sourceFilename, const CString& destinationFilename)
{
const int BUF_SIZE = 10480;

ifstream sourceFile;
ofstream destinationFile;
unsigned char *buffer = NULL;

errno = 0;
//cout << "copy file: " << sourceFilename << " to " << destinationFilename<< endl;
sourceFile.open((const char *)sourceFilename,ios::nocreate);
if (sourceFile.fail())
{
cout << "Error opening source file: " << sourceFilename << " Reason: " << strerror(errno) << endl;
return false;
}
sourceFile.setmode(filebuf::binary);

destinationFile.open((const char *)destinationFilename);
if (destinationFile.fail())
{
cout << "Error opening destination file: " << destinationFilename << " Reason: " << strerror(errno) << endl;
return false;
}
destinationFile.setmode(filebuf::binary );
buffer = new unsigned char[BUF_SIZE];
while (!sourceFile.eof())
{
sourceFile.read(buffer, BUF_SIZE);

if ((sourceFile.fail()) && (!sourceFile.eof()))
{
delete buffer;
cout << "Error reading source file: " << sourceFilename << " Reason: " << strerror(errno) << endl;
return false;
}
if (sourceFile.eof())
destinationFile.write(buffer, sourceFile.gcount());
else
destinationFile.write(buffer, BUF_SIZE);

if (destinationFile.fail())
{
delete buffer;
cout << "Error writing to destination file: " << destinationFilename << " Reason: " << strerror(errno) << endl;
return false;
}
} // End-while (!sourceFile.eof())

sourceFile.close();
destinationFile.close();

delete buffer;
return true;
}

void Globals::removeFile (const CString& filename)
{
//cout << "remove file: " << filename << endl;
if (filename.GetLength() > 0)
{
errno = 0;
if (remove((const char *)filename) != 0)
{
cout << "Error deleting file: " << filename << " Reason: " << strerror(errno) << endl;
exit (-1);
}
}
}


void Player::printinfo ()
{
cout << "==========================================================================" << endl;
cout << "=== Simple mp3 player for WIN-DOS ===" << endl;
cout << "=== Version 1.2 ===" << endl;
cout << "=== R. Luff - (c)DG2HL (rluff@gmx.de) (http://visumod.freeshell.org) ===" << endl;
cout << "==========================================================================" << endl <<endl;
}

void Player::printerror (char * programname)
{
cout << "Usage: " << programname << " listfile.lst/m3u, *.mp3 or mp3file.mp3 [r] [c]" << endl << endl;
cout << "Options:" << endl;
cout << "r: random play." << endl;
cout << "c: copy file temporary to hard disk before playing." << endl;
cout << "e.g. " << programname << " c://music//playlist.m3u r" << endl;
cout << "plays titles from playlist file playlist.m3u in random order, do not copy file." << endl << endl;
cout << "During execution press:" << endl;
cout << "q to terminate the program." << endl;
cout << "s to skip a song, the program will continue with the next song in playlist." << endl;
cout << "p for pause mode, press any key to continue playing." << endl;
exit (-1);
}

long Player::fillplaylist (CString& file)
{
long lv_entries = 0;
long i = 0;
if ((file.Find( ".lst" ) > 0 ) || (file.Find( ".m3u" ) > 0 ))
{
//load a playlist
char buffer[200];
ifstream ifile (file);
if (!ifile.fail())
{
cout << "Loading list file: " << file << " .....";
while ((!ifile.eof()) && (i < MAX_FILES))
{
ifile.getline(buffer,sizeof(buffer));
if (buffer[0] != '#')
{
playlist[i] = buffer;
i++;
}
}
cout << " done!" << endl;
lv_entries = i-1;
}
else
{
cout << "Error loading list-file" << endl;
exit (-1);
}
}
if (file.Find(".mp3") > 0)
{
cout << "Getting playlist from directory: " << file << " .....";
//load the directory
struct _finddata_t c_file;
long hFile;
int lastslash;
CString path ="";

//a path given ?? separate it
lastslash = file.ReverseFind('//');
if (lastslash > 0)
{
path = file.Left(lastslash+1);
}
// Find first file in current directory
if( (hFile = _findfirst( file, &c_file )) == -1L )
{
cout << endl << "No file: " << file << " found !" << endl;
exit (-1);
}
else
{
playlist[i] = path + c_file.name;
/* Find the rest of the files */
while( _findnext( hFile, &c_file ) == 0 )
{
i++;
playlist[i] = path + c_file.name;
}
_findclose( hFile );
lv_entries = i+1;
}
cout << " done!" << endl;
}

for ( i = 0; i < lv_entries; i++ )
{
randomindex[i] = 0;
}
return lv_entries;
}

<接上>
void Player::playmp3(long entries, bool randomplay, bool copy)
{
long i;
long stop = 0;
long random;
int ch;
CString title;
//this path is exists everywhere and prevents me to search environment variables
CString tmpplayfile = "c://mp3player.mp3";
CString mci_command;
bool OK;
LPTSTR lpszReturnString =" ";
DWORD fdwError = 0;
UINT cchErrorText=50;

i = 0;
do
{
if (randomplay)
{
do
{
//play playlist in random order, but play all titles once
random = rand()%entries;
}
while (randomindex[random] != 0);
randomindex[random] = 1;
title = playlist[random];
}
else
{
//play playlist in normal order
title = playlist[i];
}
i = i + 1;
OK = false;
if (copy)
{
OK = Globals::copyFile(title, tmpplayfile);
}
else
{
//when the file do not needed to copy, mciSendString do not like the long names with spaces, convert it:
char buf[256];
if (GetShortPathName( title, buf, 256 ) > 0)
{
tmpplayfile = buf;
OK = true;
}
}
if (OK)
{
ch = ' ';

cout << "Playing: " << title << " " << i << " of " << entries << endl;
mci_command = "open ";
mci_command += tmpplayfile;
mci_command += " type MPEGVideo Alias Mp3 wait";
//mciSendString("open c://TEMP//player//Debug//a.mp3 type MPEGVideo Alias Mp3", "", 0, 0);
mciSendString(mci_command, "", 0, 0);
mciSendString("play Mp3", "", 0, 0);
fdwError = mciSendString("status Mp3 mode",lpszReturnString,50, 0);
while ((strcmp(lpszReturnString,"playing") == 0) && (stop == 0))
{
Sleep(2000);
fdwError = mciSendString("status Mp3 mode",lpszReturnString,50, 0);
//mciGetErrorString(fdwError, lpszReturnString, cchErrorText );
if( _kbhit() )
{
ch = _getch();
ch = toupper( ch );
if (ch == 'Q')
{
cout << "Note: Normal termination by user. Playlist not completely finnished" << endl;
stop = 1;
}
if (ch == 'S')
{
cout << "Note: Song skipped by user" << endl;
stop = 1;
}
if (ch == 'P')
{
mciSendString("pause Mp3", "", 0, 0);
cout << "Note: Pause, press any key to continue" << endl;
ch = _getch();
mciSendString("play Mp3", "", 0, 0);
}
}
//cout << "TEST>>" << lpszReturnString<< "<<TEST" << endl;
}
mciSendString("close Mp3 wait", "", 0, 0);
stop = 0;
if (copy)
Globals::removeFile(tmpplayfile);
else
Sleep(2000);
}
//check if q buttom has been pressed on keyboard
}
while (i != entries && ch != 'Q' );
}


分享到:
评论

相关推荐

    node-v12.16.3-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    云计算基础课件—架构dr.pptx

    云计算基础课件—架构dr.pptx

    067ssm-jsp-mysql艺诚美业管理系统.zip(可运行源码+数据库文件+文档)

    L文主要是对艺诚美业管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对艺诚美业管理系统进行了一些具体测试。 本文以JSP为开发技术,实现了一个艺诚美业管理系统。艺诚美业管理系统的主要使用者分为管理员;个人中心、会员管理、员工管理、员工打卡管理、技师预约管理、发型美容师管理、技师类型管理、套餐信息管理、套餐类型管理、套餐购买管理、会员充值管理、系统管理,员工;个人中心、员工打卡管理、技师预约管理,会员;个人中心、技师预约管理、套餐购买管理、会员充值管理,前台首页;首页、发型美容师、套餐信息、我的、跳转到后台等功能。通过这些功能模块的设计,基本上实现了整个艺诚美业管理系统的过程。 具体在系统设计上,采用了B/S的结构,同时,也使用JSP技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的艺诚美业管理系统。 关键词 :艺诚美业管理系统;JSP技术;Mysql数据库;B/S结构

    【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar

    【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:242】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 有管理员,外卖员,餐厅,用户共四个角色。管理员功能有个人中心,外卖员管理,餐厅管理,用户管理,菜品分类管理,菜品信息管理,外卖订单管理,订单配送管理,订单评价管理,在线留言管理,系统管理等。外卖员,餐厅,用户都可以在微信小程序上面进行注册和登录操作。餐厅角色可以在微信小程序上面进行菜品的添加,修改,删除,查询操作,可以对用户的订单进行审核操作,查看订单配送状态和评价,可以查看投诉反馈和在线留言等。外卖员角色可以在微信小程序上面进行订单的抢单操作,查看订单配送和评价信息等。 用户角色可以在微信小程序上面进行菜品的查看和查询,对自己下的订单进行支付操作,查看订单配送和对订单评价,收藏菜品等操作。

    oplog4j是java项目生成操作日志的工具,兼容spring(高分项目).zip

    Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程

    数学规划模型讲义.pptx

    数学模型算法

    【前端素材】大数据-大数据可视化系统数据分析通用模版i.zip

    大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。

    matlab实现遗传算法matlab源码+详细说明.zip

    遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解

    基于JSP毕业设计-MVC设计模式应用之游戏卡在线销售系统(论文).zip

    基于JSP毕业设计-MVC设计模式应用之游戏卡在线销售系统(论文).zip 随着市场经济的逐渐形成,全球化经济已在国内迅速发展起来。以往的销售模式正在受到空前的挑战,人们已对过去固定场所购买(出售)固定的物品交易方式所带来的不便越来越感到不满了。 原因之一:交易时间长、效率低。原因之二:销售场地高额的租金、服务人员的众多配制、各种繁多的额外开支、给商家带来了沉重的成本支出。 为了适应市场、适应经济前进的步伐,买家和商家都在努力积极地寻找一种能够带来高效率、低成本的销售模式。计算机及世界互联网的飞速发展使得这种新的销售模式成为可能。   网上商城(简称商城)使得商家可以把商店开到互联网上来,而买家也可以到互联网上选择购买自己喜欢的商品。网上商城不需要商店的租赁费,新商品可以用最短的时间吸引顾客的眼球,因为它不需要那么长的运输时间。 网上商城为商家节省了大笔的运输费用、场地租赁费等额外成本,同时也为买家带来了无穷的方便性。因为它不需要你花上一天的时间去商场,在玲郎满目的众多商品中选择你需要的东西。网上商城使得“买东西、不出门”成为现实。廉价的网络资源使得网上商城成本低廉,世界性的互联网络

    基于java的-140-net高校学科竞赛项目管理-源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

    node-v8.1.4.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    【前端素材】大数据-银行企业信用风险实时监测.zip

    大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。

    SQL(Structured Query Language).zip

    SQL,即结构化查询语言(Structured Query Language),是一种用于管理和操作关系数据库管理系统的标准编程语言。它被广泛应用于各种数据库系统中,如MySQL、PostgreSQL、SQL Server、Oracle和SQLite等。

    385.基于51单片机的火灾报警【温度,烟雾】(仿真).rar

    火灾报警器 1、使用DS18B20测量温度 2、使用烟雾传感器和ADC0832测量烟雾浓度 3、温度或烟雾超过阀值,报警提示 资料包括程序、原理图、仿真、流程图、器件清单等等。

    nginx安装部署所需要的文件模板

    nginx安装部署所需要的文件模板

    智能建造解决方案qy.pptx

    智能建造解决方案qy.pptx

    基于java的-129-jspm影院管理系统--LW-源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

    城市公交查询系统.rar

    近年来, Internet推动了以互联网技术为核心的各项工作蓬勃展开,互联网的强大也大大的促进了社会的发展,整个社会信息化进程逐步加快,网络也变成了我们日常活动中越来越重要的组成成分。为了使得我国公交乘客出行及查询有关信息更方便,本文运用JAVA语言技术,Jsp技术,Mysql数据库开发了B/S结构的城市公交查询系统。 该系统顺应了时代发展且具有以下优点:首先,方便乘客的出行,乘客不用询问站牌工作人员如何倒车,便可到达目的地。其次,乘客在网上就可以查询到公交公司发布的路况信息,以便提早做好换乘准备节约出行时间。最后,本系统可以节约人力资源,以往的站牌附近要安排公交公司的工作人员来帮助不熟悉的乘客,有了公交查询系统提前上网查询便可知道。 关键词:B/S架构;JAVA;Mysql;JSP

    基于java的-52-42-在线图书管理-源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

    大模型时代 最大化CPU价值的优化策略-何普江.pdf

    大模型时代 最大化CPU价值的优化策略-何普江

Global site tag (gtag.js) - Google Analytics