Vc++¿Î³ÌÉè¼Æ±¨¸æ
ÌâÄ¿Ãû³Æ£ºËÄÔòÔËË㠰༶£º²â¿Ø¼¼ÊõÓëÒÇÆ÷ ÐÕÃû£ºÖÜÈü
ѧºÅ£º914101170150 Ò»¡¢³ÌÐò¹¦Äܼò½é
¸Ã³ÌÐòÓÃ×Ö·û´®ÐÎʽ½ÓÊÜÒ»¸ö´øÀ¨ºÅµÄËÄÔòÔËËã±í´ïʽ£¬È»ºó°´ÕÕËÄÔòÔËËãÓÅÏȼ¶µÄËã·¨ÏÈÀ¨ºÅ£¬ºó³Ë·½¡¢³Ë³ý¡¢¼Ó¼õÕâÑùµÄ˳Ðò½«Õâ¸öËãʽ½â³ö¡£
¸Ã³ÌÐòµÄÉè¼Æ±È½ÏÇÉÃÊÇÔÚÖ÷³ÌÐòÖз´¸´²éÕÒ×îºóÒ»¶ÔÀ¨ºÅ£¬½«ÆäÖеĽá¹û¼ÆËã³öÀ´£¬È¥µôÀ¨ºÅ£¬ÕâÑùµÄ¹ý³Ì³ÖÐøÏÂÈ¥£¬×îºóµ¼ÖÂËùÓеÄÀ¨ºÅ¶¼È¥³ý£¬½â³öËãʽ¡£ ¶þ¡¢¿Î³ÌÉè¼ÆÒªÇó
(£±)ÓÃÀàµÄÒªÇó¸Äд³ÌÐò£¬½«Êý¾ÝºÍº¯Êý·â×°µ½ÀàÖС£
(£²)ÐÞ¸ÄÖ÷³ÌÐò£¬Ê¹³ÌÐò¿ÉÒÔ·´¸´ÔËË㣬ֱµ½Ñ¡ÔñÍ˳öΪֹ¡£ (£³)À©³ä³ÌÐò¹¦ÄÜ£¬Ê¹³ÌÐòÊʺϸ¡µãÊýÔËËã¡£
(£´)Ôö¼Ó³ÌÐòµÄÅжϹ¦ÄÜ£¬µ±ÓзǷ¨µÄÊäÈëʱ£¨Èç×ÖĸµÈ£©£¬¸ø³öÌáʾÐÅÏ¢²¢Í˳öÔËË㣬µ±ÊäÈë´øÓпոñʱ£¬Äܽ«¿Õ¸ñÂ˳ý¡£ Èý¡¢³ÌÐòÉè¼Æ˼Ïë (1)ÀàµÄ·â×°
ʵ¼ÊÉϸÃ×Ö·û´®Àà»ù±¾ÀàËÆÓڣ㣫£«ÖеÄstringÀ࣬±ÈstringÀà¶à¶¨ÒåÁ˸¡µãÊýÓë×Ö·û´®µÄÏ໥ת»»µÄº¯Êý£¬ÊäÈëÊä³öÓÑÔªº¯Êý£¬¿ÉÒÔ´ÓstringÀàÅÉÉú³öCStrÀ࣬ÕâÑù£¬ÀàµÄ¶¨Òå¾Í¸ü¼Ó¼òµ¥£¬ÇÒ¿ÉÒÔÀûÓúܶàÏֳɵijÉÔ±º¯Êý¡£ (2)Ö÷³ÌÐò½á¹¹Ëã·¨µÄÉèÖÃ
¶¨ÒåcharÀàÐ͵ıäÁ¿ÓÃÀ´´æ´¢×Ö·û´®£¬¶¨ÒåCStrÀàÓÃÓÚ¶Ô×Ö·û´®²Ù×÷º¯ÊýµÄÒýÓᣠÏȶÔÊäÈë×Ö·û´®ÓÃJudgeº¯Êý½øÐÐÊäÈëÕýÈ·ÐÔµÄÅжϼ°È¡³ö¿Õ¸ñÄÚÈÝ£» È»ºóÓÃcharinstrº¯ÊýÔÚ×Ö·û´®Öз´¸´²éÕÒ×îºóÒ»¶ÔÀ¨ºÅ£» ÓÃmidstrº¯ÊýÌáÈ¡³öÀ´£¬ÓÃcalculateº¯Êý½øÐмÆË㣻
²¢ÓÃleftº¯ÊýÓërightº¯Êý¼°addstringsº¯Êý½«ËùÕÒµ½Õâ¶ÔÀ¨ºÅµÄ×ó±ß¡¢Óұ߼°ÔËËã½á¹ûÒÔ×Ö·û´®µÄÐÎʽºÏ²¢³ÉÒ»¸öеÄ×Ö·û´®£» Öظ´ÉÏÊö²Ù×÷Ö±ÖÁ×Ö·û´®Öв»ÔÙÓÐÀ¨ºÅ£»
×îºóÓÃcalculateº¯Êý½øÐÐ×îºóµÄ¼ÆËã·µ»Ø¼ÆËã½á¹û¡£
½ô½Ó׎øÐÐÊÇ·ñÍ˳ö¼ÆËãµÄÊäÈëÅжϣ¬Íê³É³ÌÐò·´¸´ÔËËãµÄ¹¦ÄÜ¡£ ËÄ¡¢ÏêϸÉè¼Æ
¢ÙÅжϹ¦ÄÜ£ºÓÃÀàÖж¨ÒåµÄjudgeº¯ÊýʵÏÖ£¬·µ»ØֵΪ1¼´ºÏ·¨£¬Îª0¼´²»ºÏ·¨¡£
È¥³ý¿Õ¸ñ£º¶¨Òåp¡¢sÁ½¸öÖ¸ÕëÖ¸Ïò×Ö·û´®£¬rÖ¸ÕëÖ¸ÏòpÖ¸ÕëʵÏÖp¡¢sÖ¸ÕëÔÚ×Ö·û´®ÖеıéÀú£¬ÓÃpÖ¸ÕëÕÒµ½µÚÒ»´¦¿Õ¸ñ´¦£¬ÔÙÓÃsÖ¸ÕëÕÒµ½pÖ¸ÏòλÖÃÒÔºó×î½üÒ»¸ö²»ÊÇ¿Õ¸ñ´¦£¬¸³ÖµÓï¾ä*p=*s£¬¼ÌÐøÏòϱéÀú×Ö·û´®Ö±ÖÁ½áÊø¡£
·Ç·¨ÊäÈ룺¶¨ÒådestinationÖ¸Ïò×Ö·û´®£¬ÁоÙËãʽÖгöÏֵĺϷ¨µÄ×Ö·û£¬Í¨¹ý±éÀú×Ö·û´®ÕÒµ½·Ç·¨ÊäÈë×Ö·û£¬·µ»Ø0£»
·Ç·¨ËãʽÂß¼£º°üÀ¨ÔËËã·ûºÅÏàÁ¬£¬ÒÔ¼°Î¥±³ÔËËã·¨ÔòµÈÏÖÏó£¬Í¨¹ý¶ÔÔËËã·ûºÅµÄ±éÀú±È½ÏʵÏÖ£»»¹ÓаüÀ¨×óÀ¨ºÅÇ°»òÓÒÀ¨ºÅºó½ô°¤Êý×Ö£¬Í¨¹ý¶¨ÒåÒ»¸öÐÂ×Ö·û´®Êý×éÖ¸Ïò×Ö·û´®À´Ñ°ÕÒÀ¨ºÅ²¢ÅжÏÀ¨ºÅÇ°ºóÊÇ·ñºÏ·¨£»·Ç·¨£¬·µ»Ø0£» È«¶¼ºÏ·¨·µ»Ø1.
¢ÚÊý×Ö×Ö·û´®×ª»»³ÉÊý×Ö£ºÓÃÀàÖж¨ÒåµÄvalº¯ÊýʵÏÖ£¬À©³äµ½¸¡µãÊýµÄÔËË㷶Χ¡£
¶¨ÒåcharÀàÐ͵ÄsourceÖ¸ÕëÖ¸Ïò×Ö·û´®£¬ÓÃcharinstrº¯ÊýÑ°ÕÒ×Ö·û´®ÖÐСÊýµãλÖã¬ÒÔ´ËÅжÏÕûÊý»¹ÊǸ¡µãÊý£¬Èç¹ûÕûÊý¼´ÓÃ10µÄÏàӦλÊýµÄ³Ë·½À´³ËÒÔÏàÓ¦×Ö·ûλÖÃ×Ö·ûµÄÊý×Ö£¬²¢½øÐÐÀÛ¼Ó£¬×îºó·µ»Øresult£»Èç¹ûÊǸ¡µãÊý£¬Ôò·ÖΪÕûÊýÓëСÊý²¿·ÖÒÀ´Î½øÐмÆË㣬ÕûÊýͬÉÏ£¬Ð¡Êý²¿·ÖÔòÓÃÏàÓ¦×Ö·ûλÖÃ×Ö·ûËù´ú±íµÄÊý×Ö³ýÒÔ10µÄÏàӦλÊýµÄ³Ë·½£¬²¢½øÐÐÀÛ¼Ó£¬×îºó½«ÕûÊýСÊý²¿·ÖµÄºÍ·µ»Øresult¡£
¢Û×Ö·û´®µÄÁ¬½Ó£¬Í¨¹ýÀàÖж¨ÒåµÄleft¡¢right¡¢midstr¡¢addstringsº¯ÊýÅäºÏʵÏÖ¡£ ͨ¹ýleft¡¢right¡¢midstrÈý¸öº¯Êý½øÐÐ×Ö·û´®µÄÌáÈ¡£¬addstrtingsº¯Êý½øÐÐÈý¸öÖ¸ÕëµÄ±éÀúʵÏÖÁ½¸ö×Ö·û´®µÄºÏ²¢¡£
¢ÜÊý×ÖµÄ×Ö·û´®»¯£¬Í¨¹ýÀàÖж¨ÒåµÄstrº¯ÊýʵÏÖ¡£
Àà±Èvalº¯ÊýÒ»ÑùÇø·ÖÕûÊýÓ븡µãÊý£¬½«Êý×ÖµÄÿһ¸öÊý×Öµ¥¸öÌáÈ¡³öÀ´Í¨¹ýÓë×Ö·û¡®0¡¯µÄ±È½Ïת»¯ÎªÏàÓ¦×Ö·û¸´ÖƸøµÝÔöµÄÖ¸Õë¡£ ¢ÝËãʽµÄ¼ÆË㣬ͨ¹ýÀàÖж¨ÒåµÄcalculateº¯ÊýʵÏÖ¡£
ÒÀ´Î°´ÕÕ^*/+-µÄ˳ÐòÓÃcharinstrº¯ÊýÑ°ÕÒÔËËã·ûºÅ£¬²¢ÓÃÏàÓ¦º¯Êý½øÐÐ×Ö·û´®ÓëÊý×ÖÖ®¼äµÄת»»£¬ÒÔ¼°ÐµÄ×Ö·û´®µÄºÏ²¢£¬·µ»Ø¼ÆËã½á¹û¡£
¢ÞÓÑÔªº¯ÊýµÄ¶¨Ò壬¶¨ÒåÊäÈëÊä³öÓÑÔªº¯Êý£¬ÖØÔظ³ÖµÔËËã·ûµÈ£¬ÊµÏÖ×Ö·û´®Ö®¼äµÄ¼Ó·¨¡£ Îå¡¢³ÌÐòµ÷ÊԵĹý³Ì ³öÏÖÎÊÌâ:
¢Ù¿ªÊ¼±àдÍêÕû¸ö³ÌÐò£¬³öÏÖÐí¶à±àд´íÎó£¬Ò»¸ö¸ö¸ÄÕý£»
¢ÚÔÚʵÏÖ¸¡µãÊýµÄÀ©³ä¹ý³ÌÖеÄСÊý²¿·Ö£¬ÒÔ¼°ÊäÈëºÏ·¨ÐÔµÄÅжϹý³Ì©µôÇé
¿ö£¬Ö¸ÕëµÄÎóÓõȣ»
¢ÛÓÐʱµ¥¶ÀµÄÒ»¸öº¯Êý²»Äܸ㶮»ò´íÎó²»ÄܸÄÕý£¬¾Íµ¥¶ÀÔÚ±àдһ¸öÀàËƳÌÐò£¬
¶à´Îµ÷ÊÔÔËÐУ¬À´Åª¶®²¢¼ÓÒÔ¸ÄÕý£»
½â¾ö°ì·¨£º²éÔÄÊé¼®£¬ÉÏÍøËÑË÷£¬¶ÀÁ¢Ë¼¿¼£¬Ñ¯ÎÊͬѧÀÏʦ£¬¶à´ÎÉÏ»úµ÷ÊԵȣ» Áù¡¢ÊäÈëÊä³öÊý¾Ý ¿ªÊ¼½çÃ棺
·Ç·¨ÊäÈëÅжϣº
¢Ù·Ç·¨×Öĸ£º¢ÚÔËËã·û½ô°¤£º
¢Û×óÀ¨ºÅÇ°»òÓÒÀ¨ºÅºóΪÊý×Ö£º
¢ÜÀ¨ºÅΪÖÐÎÄ·ûºÅ£º
ÇåÀí¿Õ¸ñ£º
ÔËËãµÚÒ»¸öÊäÈë×Ö·û´®Ëãʽ½á¹û£º
Í˳öÅжϣº¼ÌÐøÔËË㣺
Í˳öÔËË㣺
¸¡µãÊýµÄ¼ÓÈ룺
Æß¡¢¿Î³ÌÉè¼Æ×ܽá
¾¹ýÕâ´ÎÅÓ´ó¸´ÔӵĿγÌÉè¼Æ¹ý³Ì£¬ÊÇÎÒ¶Ôc++֪ʶÓÐÁ˸ü¼ÓÉî¿ÌµÄÀí½â£¬ÒýÆðÁËÎÒ¶Ôc++ÓïÑÔÊÀ½çµÄÎÞÏÞºÃÆæÐĺÍ̽Ë÷Óû£¬¸Ð¿®µ½ÁËÊÀ½çµÄÉñÆæÓë΢Ã³ÌÐò¿ØÖƵÄÎÞÏÞÓÃ;ÒÔ¼°×ÔÉíµÄÃìС£»
ÔÚÆäÖбàдÅжÏÀ¨ºÅÇ°ºóÊÇ·ñºÏ·¨Óï¾äʱ£¬Ö¸Õë±éÀú²»Ò×ʵÏÖ£¬ÓÚÊǾ¹ý¶à´Îµ÷ÊÔºóÖØж¨ÒåÁËÒ»¸ö×Ö·û´®Êý×éÀ´ÊµÏÖ£¬Õâ¸øÁËÎҺܴóµÄÆôʾ£¬Ö»ÒªÅ¬Á¦²¢²»¶Ï³¢ÊÔеĶ«Î÷
Ò»¶¨»á³É¹¦£»
»¹ÓгÌÐòÖÐÓÑÔªº¯ÊýÓëÔËËã·ûÖØÔز¿·Ö£¬ÓÉÓÚ֪ʶÕÆÎÕ²»¹»Àι̣¬·´¸´µ÷ÊÔ²éÔÄÊé
¼®£¬×îÖյõ½Á˽â¾ö£¬Ò²Ê¹µÃÎÒ¶ÔÕâ·½ÃæµÄ֪ʶ»ñµÃÁ˸üΪÉî¿ÌµÄÀí½âÓëÈÏÖª£»
¸¡µãÊýµÄ¼ÓÈëÒª½øÐÐСÊýµãÊýλµÄÈ¡Éᣬº¯ÊýÖÐÉ趨ΪСÊýµã¶ùºóÁù룬Òò´Ë¸¡µã
ÊýÔËËã¹ý³ÌÖÐÿ´Î¶¼»á³öÏÖÁùλСÊýµÄÏÖÏó£¬Ê¹µÃ½á¹ûÓÐ0.000001µÄÎó²î£¬Í¨¹ýµ¥¶À±àдÀàËƺ¯Êý¶à´Îµ÷ÊÔ£¬Ê¹µÃÎÒ¶Ôc++ÓïÑÔÖжÔdoubleÐÍÏòintÐͱäÁ¿×ª»¯µÄ¹æÂɵÄÀí½â»ñµÃÁ˸üÉî²ã´ÎµÄÀí½â£»
ͨ¹ý±àд¹ý³Ì£¬Ìå»áµ½ÁËϸ½ÚµÄÀ÷º¦£¬ÓÐʱһ¸ö΢СµÄ´íÎó¾ÍÄÜʹÕû¸ö³ÌÐò¶ø²»ÄÜ
ÕýÈ·ÔËÐУ» °Ë¡¢Ô´³ÌÐò×¢½â
#include
char pause;
//Ëã³ö×Ö·û´®µÄ³¤ËØ
int len(char*source) { int retval=0; }
class CStr { private: };
void CStr::left(CStr & str1,int length) ×Ö·û´®
//´Ó²ÎÊýÖ¸ÏòµÄµØÖ·×ó±ßÈ¡Length¸ö×Ö·û¸³¸øÄ¿µÄ
int nlen; //×Ö·û´®³¤¶È char *pstr; //×Ö·û´®Ê×µØÖ· CStr(){};
CStr(char *str) {nlen=len(str);pstr=str;} int Getlen(){return nlen;} char*Getstr(){return pstr;} char*Getpstr(){return pstr;}
void midstr(CStr & str1,int start,int length); void left(CStr & str1,int length);
/*·µ»ØÖ¸¶¨×Ö·û´®ÀàÖдÓnStartÐòºÅ¿ª
//·µ»Ø×Ö·û´®³¤¶È //·µ»Ø×Ö·û´®Ê×µØÖ·
//¿½±´¹¹Ô캯Êý
//¶¨Òå×Ö·û´®Àà
while(*(source+retval++)!=0){} return --retval;
public:
CStr(CStr&str){nlen=str.Getlen();pstr=str.Getstr();}
ʼnLength³¤¶ÈµÄ×Ö·û*/
/*·µ»ØÖ¸¶¨×Ö·û´®ÖдÓ×ó±ß¿ªÊ¼nLength¸ö×Ö·û*/ /*·µ»ØÖ¸¶¨×Ö·û´®ÖдÓÓұ߿ªÊ¼nLength¸ö×Ö·û*/
void right(CStr & str1,int length); friend int charinstr(char); double val(); str(double val);
calculate(); //¼ÆËã¸Ã×Ö·û´®Ëù´ú±íµÄËÄÔòÔËËãµÄÖµ£¨ÄÚÎÞÀ¨ºÅ£©
//ÓÑÔªº¯Êý£¬ÅжÏ×Ö·ûÊÇ·ñÔÚ×Ö·û´®ÖÐ
//Çó×Ö·û´®´ú±íµÄÊý×Ö×Ö·ûµÄÊýÖµ
//½«ÊýÖµ±íʾ³É×Ö·û´®µÄÐÎʽ
//ÖØÔØÊäÈëÔËËã·û
friend istream &operator>>(istream &,CStr &); int Judge(); //ÅжÏÊäÈëÊÇ·ñºÏ·¨£¬Â˳ý¿Õ¸ñ
{ }
char*destination=pstr; char *source=str1.Getstr(); *(destination+--length+1)=0;
//Ä¿µÄ×Ö·û´®ÒÔ0 ½áβ
while(length>=0) //¸³ÖµLength¸ö×Ö·û
{ *(destination+length)=*(source+length--); }
//´Ó²ÎÊýÖ¸ÏòµÄµØÖ·´¦´Óstartλ
void CStr::midstr(CStr & str1,int start,int length) ÖÿªÊ¼È¡length¸ö×Ö·û¸³¸øÄ¿µÄ×Ö·û´® { }
void CStr::right(CStr & str1,int length) ×Ö·û´® { }
int charinstr( char *destination,char char_to_find) Ä¿µÄ×Ö·û´®ÖУ¬ÈôÔÚ£¬·µ»ØÆäËùÔÚλÖã¬Èô²»ÔÙ·µ»Ø0 { int pos=0; }
CStr::str(double value) { char*tempdest=pstr; int a=0; int b=(int)value;
double c=value-b;
int multiplier=1000000000; while(*(destination+pos)!=0) }
return 0;
{ return pos; }
//Ñ»·²éÕÒ
{ if(char_to_find==*(destination+pos++))
//ÕÒµ½£¬·µ»ØÆäλÖÃ
char *source=str1.Getstr(); while(*source!=0){ source++; } char*destination=pstr; source-=length;
//ÌøÖÁÓû¸³ÖµµÄÊ×µØÖ·
*(destination+--length+1)=0; char *source=str1.Getstr();
source+=start-1; //¿ªÊ¼¸³Öµ´¦µÄµØÖ· *(destination+--length+1)=0; {
char*destination=pstr;
//Ä¿µÄ×Ö·û´®ÒÔ0 ½áβ
while(length>=0) //¸³ÖµLength¸ö×Ö·û
*(destination+length)=*(source+length--); }
//´Ó²ÎÊýÖ¸ÏòµÄµØÖ·ÓÒ±ßÈ¡Length¸ö×Ö·û¸³¸øÄ¿µÄ
//ÒÆÖÁ×Ö·û´®Î²²¿
//Ä¿µÄ×Ö·û´®ÒÔ0 ½áβ
while(length>=0) //¸³ÖµLength¸ö×Ö·û
{ *(destination+length)=*(source+length--); }
//ÅжÏ×Ö·û´®char_to_findÊÇ·ñÔÚ
//½«valueµÄֵת»»Îª×Ö·û´®µÄÐÎʽ·µ»Ø£¬¼ÓÈ븡µãÊý
for(multiplier=1000000000;multiplier!=0;multiplier/=10) {
*tempdest='0'+(char)(b/multiplier); b-=(b/multiplier)*multiplier; if((*tempdest!='0')||(a))
{
a++;tempdest++; }
}
}
if(c==0) //Èç¹ûvalueΪÕûÊý {*tempdest=0;}
else //Èç¹ûvalueΪ¸¡µãÊý { }
//Á½¸ö×Ö·û´®ºÏ²¢£¬½á¹ûÔÚµÚ
*tempdest++='.'; for(a=1;a<=6;a++) { }
*tempdest=0; //¸³Öµ×Ö·û´®×îºóһλΪ0
c*=10;int d=(int)c; if(d!=0&&a<=6) {*tempdest++='0'+d;} c-=d;
char*addstrings(char*destination,char*source1,char*source2) Ò»¸ö²ÎÊýÖÐ
{ char*tempdest=destination;
while(*source1!=0){*(tempdest++)=*(source1++);} while(*source2!=0){*(tempdest++)=*(source2++);} }
double pwr(double a,double b) {
double result=1;
//¼ÆËãaµÄb´Î·½
*tempdest=0; //NULL return destination;
for(int c=1;c<=b;c++){result*=a;} return result; }
double CStr::val() {
char*source=pstr; double result=0;
//½«Êý×Ö×Ö·û´®×ª»»³ÉÊýÖµ£¨°üÀ¨¸¡µãÊý£©
CStr nstr(source);
int z=charinstr(source,'.'); //´Ósource×Ö·û´®ÖÐÕÒµ½Ð¡Êýµã
if(z==0) //Èç¹ûΪÕûÊý { }
else //Èç¹ûΪСÊý£¬´ËʱָÕëÖ¸ÏòСÊýµãµÄλÖà {
char a1[50]; A1.left(nstr,z-1);
//·µ»Ø´ËʱnstrÖ¸ÏòµÄµØÖ·×ó±ßµÄz-1¸ö×Ö·û£¬¼´ËùÐ踡µãÊýµÄÕû
CStr A1(a1);
int multiplier=(int)pwr(10,len(source)-1); while(*source!=0) {
//ÒÀ´Î±éÀúÿһ¸ö×Ö·û
result+=(*(source++)-'0')*multiplier;multiplier/=10;} //½«ÏàÓ¦×Ö·ûת»¯Îª¶ÔÓ¦
λÊýµÄÕûÊý£¬²¢ÒÀ´ÎÀÛ¼Ó»ñµÃËùÐèÕûÊýÊý
return result;
Êý²¿·Ö
}
char*nint=A1.Getstr(); while(*nint!=0) {
//½«A1µÄÄÚÈݸ³Öµ¸ønintÖ¸Õë
int multiplier=(int)pwr(10,len(nint)-1); //¶¨ÒåmultiplierµÈÓÚ10µÄÕûÊýλÊýµÄ³Ë·½
result+=(double)(*(nint++)-'0')*multiplier;multiplier/=10; }
//½«¸¡µãÊýÕû
Êý²¿·Ö×Ö·û´®×ª»»ÎªÊýÖµ
char a3[50];
//·µ»Ø´ÓnstrÖ¸ÏòµØÖ·µÄz+1λÖÿªÊ¼µÄ
CStr A3(a3);
A3.midstr(nstr,z+1,len(source)-z); }
return result;
char *ndouble=A3.Getstr();
(len(source)-z)¸ö×Ö·û£¬¼´ËùÐ踡µãÊýµÄСÊý²¿·Ö
//½«A3µÄÄÚÈݸ³Öµ¸øndoubleÖ¸Õë
//ÒÀ´Î±éÀúndoubleÖ¸ÏòµÄÿһ¸ö×Ö·û
for(multiplier=10;*ndouble!=0;ndouble++)
{ result+=((double)(*(ndouble)-'0'))/(double)multiplier; multiplier*=10; } //½«ÏàÓ¦×Ö·û³ýÒÔ¶ÔÓ¦ÊýλµÄ10µÄ³Ë·½»ñµÃ¸ÃλµÄСÊý²¢ÒÀ´ÎÏà¼Ó
char*assignstr(char*source,char*destination)//×Ö·û´®¸³Öµ {
char*tempdest=destination;
while (source!=0){*(tempdest++)=*(source++);}
*tempdest=0; return destination; }
CStr::calculate()
//¼ÆËãÊý×ÖËãʽÐÎʽµÄ×Ö·û´®£¬½«Æäת»»ÎªÊý×ÖÐÎʽ²¢¼ÆËã³öÀ´£¬È»ºóÔÙ½«½á¹ûת»»Îª×Ö·û´®µÄÐÎʽ£¬´ËËãʽûÓÐÀ¨ºÅ£¬×ñѵÄÔÔòÊÇÏȳ˳ýºó¼Ó¼õ {
char*string=pstr;
char buf1[50],buf2[50],buf3[50],buf4[50],buf5[50]; char opstr[6]=\double leftnr; double rightnr; int oppos; int z;
double result;
for(int pos_in_opstr=0;pos_in_opstr<=4;pos_in_opstr++) { while(charinstr(string,opstr[pos_in_opstr]))
{ oppos=charinstr(string,opstr[pos_in_opstr]); //ÕÒµ½ºó£¬½«ÔËËã·û×ó±ßµÄÊý×Ö×Ö·û
for (z=oppos-2;z>=0;z--) {
if
//ÏÈÕÒÓÅÏȼ¶¸ßµÄÔËËã·û£¬Ö±
CStr nstr(string);
CStr cuf1(buf1),cuf2(buf2),cuf3(buf3),cuf4(buf4),cuf5(buf5);
ÖÁ½«ËãʽÖÐËùÓеÄÔËËã·û¶¼ÕÒ³öÀ´
È¡³öת»»ÎªÊý×Ö
((*(string+z)=='+')||(*(string+z)=='/')||(*(string+z)=='-')||(*(string+z)=='*')||(*(string+z)=='^'))
}
{ cuf1.midstr(nstr,z+2,oppos-z-2); leftnr=cuf1.val();
z=-1; }
else if(z==0) {
cuf1.left(nstr,oppos-1); leftnr=cuf1.val(); }
//ÔÙ½«ÔËËã·ûÓұߵÄÊý×Ö×Ö·ûÈ¡³öת»»ÎªÊý×Ö
for(z=oppos;z if((*(string+z)=='+')||(*(string+z)=='/')||(*(string+z)=='-')||(*(string+z)=='*')||(*(string+z)=='^')) { cuf2.midstr(nstr,oppos+1,z-oppos); rightnr=cuf2.val();z=len(string);} else if(z==len(string)-1) { cuf2.right(nstr,len(string)-oppos); rightnr=cuf2.val(); } //¶ÔÕâÁ½¸öÊý×Ö½øÐмÆË㣬½á¹ûÔÚresultÖÐ if(opstr[pos_in_opstr]=='+') {result=leftnr+rightnr;} else if (opstr[pos_in_opstr]=='-') {result=leftnr-rightnr;} else if (opstr[pos_in_opstr]=='/') {result=leftnr/rightnr;} else if (opstr[pos_in_opstr]=='*') {result=leftnr*rightnr;} else if (opstr[pos_in_opstr]=='^') {result=pwr(leftnr,rightnr);} //¼ÆËãºó£¬½«½á¹ûת»»Îª×Ö·û´®£¬È»ºó½«×óÓÒδÔËËã¹ýµÄ×Ö·û´®ÓëÆäÁ¬½ÓÆðÀ´ cuf4.left(nstr,oppos-len(&buf1[0])-1); cuf5.str(result); addstrings(&buf3[0],cuf4.pstr,cuf5.pstr); cuf5.right(nstr,len(string)-oppos-len(&buf2[0])); addstrings(string,cuf3.pstr,cuf5.pstr); } } cout<<\ÔËÐеĽá¹ûÊÇ\ //Êä³öÕâ¸ö×Ö·û } istream & operator>>(istream&is,CStr&ss) { char a[50]; char *x=a; char *y=ss.pstr; cin.getline(x,50); while(*x!=0) {*(y++)=*(x++);} *y=0; return is; } } int CStr::Judge() //ÐÂÔö³ÌÐòÅжϹ¦ÄÜ {//Èý¸öÖ¸ÕëÒÀ´Î±éÀú×Ö·û´®£¬È¥³ý¿Õ¸ñ //ÕÒµ½³ý»ù±¾ÔËËã·ûºÍÊý×ÖÍâµÄ·Ç·¨ÊäÈë char *destination=source; while(*destination!=0) { if('('<=*destination&&*destination<='+'||'-'<=*destination&&*destination<='/'||'0'<=*d } //ÕÒµ½·Ç·¨Âß¼ destination=pstr; if(*destination=='^'||*destination=='*'||*destination=='/'||*destination=='+')//Ò»¿ªÊ¼ { return 0;} {destination++;} //ÕÒµ½·Ç·¨ÊäÈ룬·µ»Ø0 char *p,*s,*r,*source=pstr; p=source;s=p+1; while(*p!=0) { } r=p; if(*p==' ') { while(*s!=0) {*p=*s;p++;s++;} } *p=0;p=r;s=p+1; continue; p=r+1;s=p+1; estination&&*destination<='9'||*destination=='^'||*destination==' ') else{return 0;} ΪÔËËã·û int pos_in_opstr; int pos;int z; char opstr[6]=\ for(pos_in_opstr=0;pos_in_opstr<=4;pos_in_opstr++) { while(charinstr(source,opstr[pos_in_opstr])) if(*(source+z)=='^'||*(source+z)=='*'||*(source+z)=='/'||*(source+z)=='+'||*(source+z) if(*(source+z)=='^'||*(source+z)=='*'||*(source+z)=='/'||*(source+z)=='+'||*(source+z) {return 0;} //Á½¸öÔËËã·ûÏà¾à·Ç·¨£¬·µ»Ø0 {return 0;} //ÔËËã·ûºó½ô½Ó×ÅÓÖÊÇÔËËã·û£¬·µ»Ø0 { pos=charinstr(source,opstr[pos_in_opstr]); z=pos; =='-'||*(source+z)==0) z-=2; =='-'||*(source+z)==0) } } } else{source+=pos;} //¼ÌÐø±éÀú×Ö·û´® char m[50];int n=0; strcpy(m,pstr); while(m[n]) { if(m[n]=='(') } return 1; cout<<\È¥³ý¿Õ¸ñºóµÄËãʽ£º\ { } if(m[n]==')') { } n++; if(m[n+1]==0) {n++;continue;} {return 0;break;} //ÓÒÀ¨ºÅλÓÚ½á⣬¼ÌÐø else if('0'<=m[n+1]&&m[n+1]<='9') //Èç¹ûÓÒÀ¨ºÅÓÒ±ßÊÇÊý×Ö£¬Ã»ÓÐÔËËã·ûºÅ£¬·Ç·¨£¬·µ»Ø0 if(n==0) {n++;continue;} {return 0;break;} //×óÀ¨ºÅλÓÚ¿ªÍ·£¬¼ÌÐøÏòϱéÀú //Èç¹û×óÀ¨ºÅ×ó±ßÊÇÊý×Ö£¬Ã»ÓÐÔËËã·ûºÅ£¬·Ç·¨£¬·µ»Ø0 else if('0'<=m[n-1]&&m[n-1]<='9') void main() { CStr myrecord; cout<<\cout<<\cout<<\cout<<\cin.get(pause); system(\int choice=1; //½øÐÐÍ˳öÅжϣ¬Ê¹³ÌÐò¿ÉÒÔ·´¸´ÔËËã cout<<\»¶ÓʹÓÃËÄÔòÔËËã³ÌÐò \\2 \\n\ cout<<\ cout<<\Çë°´»Ø³µ¼ü¼ÌÐø \\2 \\n\ while(choice) { char strn[50],duf1[50],duf2[50],duf3[50],duf4[50],duf5[50]; CStr buf1(duf1),buf2(duf2),buf3(duf3),buf4(duf4),buf5(duf5),origin(strn),oristr(strn); int z,lastopen; cout<<\ÇëÊäÈëÒ»¸öËãʽ\\n\operator >>(cin,oristr); if(oristr.Judge()==0) else { cout<<\ÊäÈëµÄËãʽÊÇ£º\ while(charinstr(&strn[0],'(')) //ÅжÏ×óÀ¨ºÅ //Êä³öÈ¥³ý¿Õ¸ñºóµÄËãʽ×Ö·û´® //ÅжÏÊäÈëÊÇ·ñºÏ·¨ {; cout<<\ÊäÈëÓÐÎó£¬ÇëÖØÐÂÊäÈë\\n\ } } { for(z=0;z<=len(&strn[0]);z++) } //È¥µôÀ¨ºÅºó£¬¼ÆËã×îºóÊ£ÓàµÄËãʽ { if(strn[z]=='(') {lastopen=z;} //ÕÒµ½×îºóÒ»¸ö×óÀ¨ºÅµÄλÖà } } cout<<\еÄʽ×ÓÊÇ:\z=len(&strn[0])+1; if(strn[z]==')') //ÕÒµ½µÚÒ»¸öÓÒÀ¨ºÅ£¬½«×óÓÒÀ¨ºÅÖеÄ×Ö·û´®È¡³ö¼ÆËã { buf1.midstr(oristr,lastopen+2,z-lastopen-1); cout<<\ÔÚ\ÖУ¬ÕÒµ½\Ìá³ö½øbuf3.left(oristr,lastopen); buf2.right(oristr,len(&strn[0])-z-1); buf1.calculate(); ÐмÆËã\ //È»ºó½«¼ÆËãºóµÄ½á¹ûÓëÔÏÈ×óÓÒÀ¨ºÅÁ½±ßµÄ×Ö·û´®ºÏ²¢£¬Ï൱ÓÚÈ¥µôÒ»¶ÔÀ¨ºÅ addstrings(&strn[0],addstrings(&duf4[0],buf3.Getstr(),buf1.Getstr()),buf2.Getstr()); oristr.calculate(); cout<<\¼ÆËã½á¹ûΪ£º\ cout<<\Í˳öÂð£¿\\n\¼ÌÐø¼ÆËãÇëÊäÈë1£¬Í˳ö³ÌÐòÇëÊäÈë0\cin>>choice; cin.get(); cout<<\ÏÖÔÚÍ˳öÔËËã!\\n\} ¾Å¡¢³ÌÐò²»×ã:¸¡µãÊýµÄÎó²îÎÊÌ⣬ÉÏÎÄÖÐÌá¼°¹ý£»ÒÔ¼°²»ÄܽøÐиºÊýÔËË㣬ÔøÊÔͼ¶Ô¿Î±¾Ô´³ÌÐò½øÐдËÀà¸Ä½ø£¬µ«×îÖÕÎÞ¹û¡£