社区
C语言
帖子详情
[HELP] 需求分析报告怎么写?给个范文~3Q!
jeff__lueny
2003-06-23 09:18:31
RT
...全文
546
5
打赏
收藏
[HELP] 需求分析报告怎么写?给个范文~3Q!
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
matlab7
2003-06-27
打赏
举报
回复
哈。
Skt32
2003-06-27
打赏
举报
回复
笑什么,瞧我又升了一个三角,哈
Laney
2003-06-23
打赏
举报
回复
哈哈,楼上的搞笑
Skt32
2003-06-23
打赏
举报
回复
SORRY 发错了
·什么是需求
·探究需求管理的本质
·软件开发:需求分析的20条法则
·软件工程之需求分析(一) (11.26)
·软件工程之需求分析(二) (11.26)
http://www.huihoo.com/development/requirement/requirement.html
http://www.huihoo.com/development/requirement/requirement1.html
http://www.huihoo.com/development/requirement/requirement2.html
http://www.huihoo.com/development/requirement/requirement3.html
http://www.huihoo.com/development/requirement/20rules.html
Skt32
2003-06-23
打赏
举报
回复
读硬盘序列号控件dll版(源码/例子)(1.00)ftp://211.100.8.153/download/67/7349_disksndll.zip
CPU
CString GetCPUID()
{
CString CPUID;
unsigned long s1,s2;
unsigned char vendor_id[]="------------";
char sel;
sel='1';
CString VernderID;
CString MyCpuID,CPUID1,CPUID2;
switch(sel)
{
case '1':
__asm{
xor eax,eax
cpuid
mov dword ptr vendor_id,ebx
mov dword ptr vendor_id[+4],edx
mov dword ptr vendor_id[+8],ecx
}
VernderID.Format("%s-",vendor_id);
__asm{
mov eax,01h
xor edx,edx
cpuid
mov s1,edx
mov s2,eax
}
CPUID1.Format("%08X%08X",s1,s2);
__asm{
mov eax,03h
xor ecx,ecx
xor edx,edx
cpuid
mov s1,edx
mov s2,ecx
}
CPUID2.Format("%08X%08X",s1,s2);
break;
case '2':
{
__asm{
mov ecx,119h
rdmsr
or eax,00200000h
wrmsr
}
}
printf("CPU id is disabled.\n");
break;
}
MyCpuID = CPUID1+CPUID2;
CPUID = MyCpuID;
return CPUID;
}
主板
DWORD CComputerInfo::GetMainboardBIOSIdentification(LPSTR lpbuf,BYTE *buflen)
{
DWORD retvalue=RET_BIOS_FAILED_CHECK;
DWORD Add=0;
HANDLE physmem;
DWORD dwPlatformId=dllGetPlatformId();
if(m_bBIOSCheckSuccess){
retvalue=(DWORD)strlen(m_pBIOSData);
goto RETURN_DATA;
}
if(dwPlatformId==VER_PLATFORM_WIN32_NT){//NT/2k
UNICODE_STRING physmemString;
OBJECT_ATTRIBUTES attributes;
WCHAR physmemName[] = L"\\Device\\PhysicalMemory";
NTSTATUS ntStatus;
HMODULE hNTDLL=::GetModuleHandle(TEXT("NTDLL.DLL"));//ntdll.dll must be loaded,it is OK.
ZwOpenSection=(TZwOpenSection)GetProcAddress(hNTDLL,"ZwOpenSection");
ZwMapViewOfSection=(TZwMapViewOfSection)GetProcAddress(hNTDLL,"ZwMapViewOfSection");
ZwUnmapViewOfSection=(TZwUnmapViewOfSection)GetProcAddress(hNTDLL,"ZwUnmapViewOfSection");
RtlInitUnicodeString=(TRtlInitUnicodeString)GetProcAddress(hNTDLL,"RtlInitUnicodeString");
RtlInitUnicodeString( &physmemString, physmemName );
InitializeObjectAttributes( &attributes,
&physmemString,
OBJ_CASE_INSENSITIVE,
NULL,
NULL
);
ntStatus = ZwOpenSection( &physmem,
SECTION_MAP_READ,
&attributes
);
if( !NT_SUCCESS( ntStatus ))
return retvalue;
DWORD PAdd = 0xF0000;
DWORD LPAdd = 0xFFFF;
if(!biosMapView(physmem,&PAdd,&LPAdd,&Add))
return retvalue;
}
if(!((retvalue=biosCheckAward(Add)) > 0 || \
(retvalue=biosCheckPhoenix(Add)) > 0 || \
(retvalue=biosCheckAMI(Add)) > 0)){//No supported
m_bBIOSCheckSuccess=_BIOS_CHECK_UNKNOWN;
if(dwPlatformId==VER_PLATFORM_WIN32_NT)
ZwUnmapViewOfSection((HANDLE)-1,(PVOID)Add);
return RET_BIOS_UNKNOWN;
}
if(dwPlatformId==VER_PLATFORM_WIN32_NT)
ZwUnmapViewOfSection((HANDLE)-1,(PVOID)Add);
m_bBIOSCheckSuccess=_BIOS_CHECK_SUCCESS;
RETURN_DATA:
if(lpbuf!=NULL){
if(*buflen > retvalue){
__try{
strcpy(lpbuf,m_pBIOSData);
}
__except(1)
{
retvalue=RET_BIOS_INALID_BUFFER;
}
}
else
{
*buflen=(BYTE)(retvalue+1);
retvalue=RET_BIOS_INSUFFICIENT_LEN;
}
}
return retvalue;
}
BYTE CComputerInfo::biosCheckAward(DWORD Add)
{
size_t nlen;
if(dllGetPlatformId()==VER_PLATFORM_WIN32_NT)//NT/2k
Add+=0xEC71;
else
Add=0xFEC71;
//Validate
memcpy(m_pBIOSData,(LPBYTE)Add,MAX_BIOS_IDENTIFICATION);
m_pBIOSData[MAX_BIOS_IDENTIFICATION+1]='\0';
if((nlen=strlen(m_pBIOSData)) < MAX_BIOS_IDENTIFICATION && nlen > 0){
//Example
//AWard:07/08/2002-i845G-ITE8712-JF69VD0CC-00
// 10/10/98-xxx……
//Phoenix-Award:03/12/2002-sis645-p4s333
if(m_pBIOSData[2]=='/' && m_pBIOSData[5]=='/'){
CHAR *p=m_pBIOSData;
while(*p){
if(*p < 0x20 || *p > 0x71)
goto NOT_AWARD;
p++;
}
return (BYTE)nlen;
}
}
NOT_AWARD:
return 0;
}
BYTE CComputerInfo::biosCheckPhoenix(DWORD Add)
{
size_t nlen;
if(dllGetPlatformId()==VER_PLATFORM_WIN32_NT)//NT/2k
Add+=0x6577;
else
Add=0xF6577;
//Validate
memcpy(m_pBIOSData,(LPBYTE)Add,MAX_BIOS_IDENTIFICATION);
m_pBIOSData[MAX_BIOS_IDENTIFICATION+1]='\0';
if((nlen=strlen(m_pBIOSData)) < MAX_BIOS_IDENTIFICATION && nlen > 0){
//Example
//Phoenix:NITELT0.86B.0044.P11.9910111055
if(m_pBIOSData[7]=='.' && m_pBIOSData[11]=='.'){
CHAR *p=m_pBIOSData;
while(*p){
if(*p < 0x20 || *p > 0x71)
goto NOT_PHOENIX;
p++;
}
return (BYTE)nlen;
}
}
NOT_PHOENIX:
return 0;
}
BYTE CComputerInfo::biosCheckAMI(DWORD Add)
{
size_t nlen;
if(dllGetPlatformId()==VER_PLATFORM_WIN32_NT)//NT/2k
Add+=0xF478;
else
Add=0xFF478;
//Validate
memcpy(m_pBIOSData,(LPBYTE)Add,MAX_BIOS_IDENTIFICATION);
m_pBIOSData[MAX_BIOS_IDENTIFICATION+1]='\0';
if((nlen=strlen(m_pBIOSData)) < MAX_BIOS_IDENTIFICATION && nlen > 0){
//Example
//AMI:51-2300-000000-00101111-030199-
if(m_pBIOSData[2]=='-' && m_pBIOSData[7]=='-'){
CHAR *p=m_pBIOSData;
while(*p){
if(*p < 0x20 || *p > 0x71)
goto NOT_AMI;
p++;
}
return (BYTE)nlen;
}
}
NOT_AMI:
return 0;
}
BOOL CComputerInfo::biosMapView( HANDLE hPMemory,DWORD *dwPAddress,DWORD *dwLength,DWORD *dwVAddress)
{
NTSTATUS Status;
PHYSICAL_ADDRESS ViewBaseAddress;
*dwVAddress = 0;
ViewBaseAddress.QuadPart = (ULONGLONG) (*dwPAddress);
Status = ZwMapViewOfSection ( hPMemory,
(HANDLE) -1,
(PVOID*)dwVAddress,
0,
*dwLength,
&ViewBaseAddress,
dwLength,
ViewShare,
0,
PAGE_READONLY
);
return NT_SUCCESS( Status);
}
调吧
财务oracle上线总结,oracleebs表结构及功能总结财务,制造,分销模块工作计划总结活动总结培训总结
范文
公文心得最新...
本文详细解析Oracle应用程序表结构设计,包括通过WHO字段查找历史表、LAST_QUERY判断表使用、TRACE追踪方法、源代码分析,以及库存模块的组织设计。重点介绍了INV表结构和经营单位、库存组织的关系,以及MTL_PARAMETERS在组织管理中的作用。
AI时代职业跃迁三大核心转变:问题定义、工作流架构与可信度证明
本文系统阐述AI时代职场人必须完成的三大核心转变:从任务执行者到问题定义者、从工具操作员到工作流架构师、从单点技能持有者到可信度证明者。重点强调问题定义能力超越工具学习、工作流架构决定AI真实价值、可信度成为稀缺资源。通过剥洋葱练习、三色便签法、信任资产包等实操方法,提供可落地的认知升级与行动路径,聚焦信息技术赋能下的职业能力重构。
豆包AI英语训练法:真实场景下的动态语言习得
本文提出基于豆包AI的真实场景英语动态训练方法论,聚焦语音神经重建、场景化角色扮演、对比式重
写
和错误归因分析四步闭环。强调指令设计的关键性——需具备可执行动作、具体输入载体和明确输出边界。揭示豆包在语境理解、即时反馈与非结构化交互上的独特优势,区别于传统AI学习工具。同时梳理7类致命操作误区及5项隐藏能力,如跨语言思维转换、语料库级表达分析、语境化语法决策树等,全部依托豆包原生功能实现,无需插件,突出其作为免费、高适应性英语训练场的技术价值。
鼎捷易飞9.0.8和9.0.7授权注册文件
源码直接下载地址: https://pan.quark.cn/s/50dc62428457 最新版本的鼎捷易飞9.0.8与易飞9.0.7的授权注册文档,其中基本模块覆盖了10个用户授权,特殊模块则每模块分配3个用户授权,同时提供易飞全模块的授权方案,该授权适用于从易飞9.0至最新的9.0.8版本的所有需求。
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
内容概要:本文研究了一种基于遗传算法的新型异构分布式系统任务调度算法,旨在解决异构计算环境中任务分配与调度的复杂优化问题。通过Matlab代码实现该算法,充分利用遗传算法强大的全局搜索能力和鲁棒性,对任务执行时间、资源利用率、系统负载均衡等关键性能指标进行综合优化,有效提升分布式系统的整体运行效率与稳定性。研究详细阐述了算法的整体架构设计、染色体编码策略、适应度函数构造、选择机制以及交叉与变异等遗传操作的实现细节,并通过大量仿真实验验证了所提出算法相较于传统调度方法在收敛速度、解的质量和调度性能方面的显著优越性。; 适合人群:具备一定编程基础和优化算法理论知识,从事分布式计算、高性能计算、云计算资源调度或智能优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于高性能计算、云计算、边缘计算等异构计算平台中的任务调度优化,提升资源利用效率;②为研究人员提供遗传算法在复杂组合优化问题中应用的完整实现案例,深化对智能优化算法设计原理与仿真实践的理解; 阅读建议:建议读者结合提供的Matlab代码深入研读,重点理解适应度函数的设计逻辑与遗传算子的参数调优策略,并可通过更换不同的任务集和系统模型来测试算法的泛化能力与鲁棒性。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章