visualc课程设计案例精编
Ⅰ 求Visual C++课程设计案例精编电子版下载
书名=Visual C++课程设计案例精编
作者=夏崇镨,任海军,余健编著
页码=369
ISBN=978-7-302-18612-0
出版社=北京:清华大学出版社 , 2008.11
附件已经上传
Ⅱ 急求《c语言课程设计案例精编》电子书,急求!!!!最好是pdf!
以我自身经历来看,感觉看视频比看书效率高,毕竟理科知识不像是文科的,看书效率太低了。可能一个很简单的知识点,自己看书得半个小时,但是懂的人就讲几句话,就能明白了。所以相比之下,还是视频效率比看书高。选择个适合自己的就能学懂C了。我当初看的是夏老师的,感觉挺适合我这样初学者的。他讲的不繁琐啰嗦,都是重点,而且思维原理讲的最好。能让我理解,我感觉这点很重要。比之前看的什么郝斌曾怡金文的那些繁琐啰嗦听不出重点的好多了。
Ⅲ C#课程设计案例精编 这本书的PDF谁有啊!求共享!
书名=C#课程设计案例精编
作者=张仁才,段德亮,赵红岩编著
页码=359
ISBN=978-7-302-17692-3
出版社=北京:清华大学出版社 , 2008.06
附件已经上传
Ⅳ c语言课程设计案例精编
如果有来一定的基础的话源,一楼的说的不错先学学“数据结构”的相关知识!算法在程序设计中有很“重要”的作用……其实学c主要是学编程的思想!你要是就一个个的死学案例,也只是会设计类似的东西!不会有创新,甚至有的地方会根本搞不明白。不知道你基础怎么样?如果不是很好,就复习《数据结构吧》清华出版社 那本严蔚敏的数据结构(C语言版)。比较容易理解,最好还是要看些英文的原版数据结构的书。
当然如果你数据结构学得很好的话,比如你就是想通过一些案例的开发,来增强自己的实战能力,你可以深入学习你说的那本书,其实你只要仔细看一下就会发现,其实案例设计的教程中文版的根本没什么创新都停留在以下几个“经典问题”上,不同的版本也没什么太多的区别就是重印一下而已!这本书作为对编程基本功的训练不错!
案例一:贪吃蛇游戏
案例二:计算器
案例三:黑白棋游戏
案例四:迷宫问题
案例五:扫地雷游戏
案例六:速算24
案例七:数据结构CAI系统
案例八:进度调度
案例九:存储管理分区分配算法
案例十:通讯录
案例十一:学生成绩管理
案例十二:工资管理
案例十三:图书借阅管理
案例十四:教师工作量计算
相关下载地址:
Ⅳ visual c++ 课程设计案例精选与编程指导 四则运算答案谁有啊 东南大学出版的
^#include<iostream.h>
#include<string.h>
#include<stdlib.h>
char pause;
int len(char*source)
{ int retval=0;
while(*(source+retval++)!=0){}
return --retval;
}
class CStr{
private:
int nlen;
char *pstr;
public:
CStr(){};
CStr(char *str){nlen=len(str);pstr=str;}
int Getlen(){return nlen;}
char*Getstr(){return pstr;}
CStr(CStr&str){nlen=str.Getlen();pstr=str.Getstr();}
char * Getpstr(){return pstr;}
void midstr(CStr & str1,int start,int length);
void left(CStr & str1,int length);
void right(CStr & str1,int length);
calculate();
friend int charinstr(char);
double val();
str(double val);
friend istream &operator>>(istream &,CStr &);
int Judge();
};
void CStr::left(CStr & str1,int length)
{ char*destination=pstr;char *source=str1.Getstr();
*(destination+--length+1)=0;
while(length>=0){
*(destination+length)=*(source+length--);
}
}
void CStr::midstr(CStr & str1,int start,int length)
{ char *source=str1.Getstr();
source+=start-1;
char*destination=pstr;
*(destination+--length+1)=0;
while(length>=0){
*(destination+length)=*(source+length--);
}
}
void CStr::right(CStr & str1,int length)
{ char *source=str1.Getstr();
while(*source!=0){
source++;
}
char*destination=pstr;
source-=length;
*(destination+--length+1)=0;
while(length>=0){
*(destination+length)=*(source+length--);
}
}
int charinstr( char *destination,char char_to_find)
{
int pos=0;
while(*(destination+pos)!=0){
if(char_to_find==*(destination+pos++)){
return pos;
}
}
return 0;
}
CStr::str(double value)
{
char*tempdest=pstr;
int a=0;
int b=(int)value;
double c=value-b;
int multiplier=1000000000;
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){*tempdest=0;}
else{*tempdest++='.';
for(a=1;a<=4;a++)
{c*=10;int d=(int)c;
if(d!=0||a<4){*tempdest++='0'+d;}
c-=d;
}
*tempdest=0;
}
}
char*addstrings(char*destination,char*source1,char*source2)
{ char*tempdest=destination;
while(*source1!=0){*(tempdest++)=*(source1++);}
while(*source2!=0){*(tempdest++)=*(source2++);}
*tempdest=0;
return destination;
}
double pwr(double a,double b)
{ double result=1;
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,'.');
if(z==0){int multiplier=(int)pwr(10,len(source)-1);
while(*source!=0){
result+=(*(source++)-'0')*multiplier;multiplier/=10;
}
return result;
}
else{
char a1[50];
CStr A1(a1);
A1.left(nstr,z-1);
char*nint=A1.Getstr();
int multiplier=(int)pwr(10,len(nint)-1);
while(*nint!=0){
result+=(double)(*(nint++)-'0')*multiplier;multiplier/=10;
}
char a3[50];
CStr A3(a3);
A3.midstr(nstr,z+1,len(source)-z);
char *ndouble=A3.Getstr();
for(multiplier=10;*ndouble!=0;ndouble++){
result+=((double)(*(ndouble)-'0'))/(double)multiplier;
multiplier*=10;
}
}
return result;
}
char*assignstr(char*source,char*destination)
{ char*tempdest=destination;
while (source!=0){*(tempdest++)=*(source++);}
*tempdest=0;
return destination;
}
CStr::calculate()
{
char*string=pstr;
CStr nstr(string);
char buf1[50],buf2[50],buf3[50],buf4[50],buf5[50];
CStr cuf1(buf1),cuf2(buf2),cuf3(buf3),cuf4(buf4),cuf5(buf5);
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 ((*(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<len(string);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();
}
}
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<<"运行的结果是"<<pstr<<endl;
}
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 *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;
}
cout<<"去除空格后的算式:"<<pstr<<endl;
char *destination=source;
while(*destination!=0)
{if('('<=*destination&&*destination<='+'||'-'<=*destination&&*destination<='/'||'0'<=*destination&&*destination<='9'||*destination=='^'||*destination==' ')
{destination++;}
else{return 0;}
}
destination=pstr;
if(*destination=='^'||*destination=='*'||*destination=='/'||*destination=='+'||*destination=='-')
{ 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]))
{
pos=charinstr(source,opstr[pos_in_opstr]);z=pos;
if(*(source+z)=='^'||*(source+z)=='*'||*(source+z)=='/'||*(source+z)=='+'||*(source+z)=='-'||*(source+z)==0)
{return 0;}
z-=2;
if(*(source+z)=='^'||*(source+z)=='*'||*(source+z)=='/'||*(source+z)=='+'||*(source+z)=='-'||*(source+z)==0)
{return 0;}
else{source+=pos;}
}
}
return 1;
}
void main()
{ CStr myrecord;
cout<<"\2 欢迎使用四则运算程序 \2 \n";
cout<<"\2 \2 \n";
cout<<"\2 \2 \n";
cout<<"\2 \2 \n";
cout<<"\2 \2 \n";
cout<<"\2 \2 \n";
cout<<"\2 设计者: ** \2 \n";
cout<<"\2 \2 \n";
cout<<"\2 \2 \n";
cout<<"\2 按回车键继续 \2 \n";
cin.get(pause);
system("cls");
int choice=1;
while(choice){
char strn[50],f1[50],f2[50],f3[50],f4[50],f5[50];
CStr buf1(f1),buf2(f2),buf3(f3),buf4(f4),buf5(f5),origin(strn),oristr(strn);
int z,lastopen;
cout<<"请输入一个算式\n";
operator >>(cin,oristr);
if(oristr.Judge()==0){;
cout<<"输入有误,请重新输入\n";
continue;
}
else{
cout<<"输入的算式是:"<<oristr.Getstr()<<endl;
while(charinstr(&strn[0],'(')){
for(z=0;z<=len(&strn[0]);z++){
if(strn[z]=='('){lastopen=z;}
if(strn[z]==')'){
buf1.midstr(oristr,lastopen+2,z-lastopen-1);
cout<<"在"<<origin.Getstr()<<"中,找到"<<buf1.Getstr()<<",提出进行计算"<<'\n';
buf3.left(oristr,lastopen);
buf2.right(oristr,len(&strn[0])-z-1);
buf1.calculate();
addstrings(&strn[0],addstrings(&f4[0],buf3.Getstr(),buf1.Getstr()),buf2.Getstr());
cout<<"新的式子是:"<<strn<<endl;
z=len(&strn[0])+1;
}
}
}
}
oristr.calculate();
cout<<"计算结果为:"<<oristr.Getstr()<<endl;
cout<<"退出吗?\n"<<"继续计算请输入1,退出程序请输入0"<<endl;
cin>>choice;
cin.get();
}
cout<<"现在退出运算!\n";
}
Ⅵ 求Delphi 7课程设计案例精编 赵应丁 PDF
只有源代码的下载,没有PDF的
Ⅶ visual c++ 课程设计案例精选与编程指导 四则运算 答案
|//输入表达式,可以求出值
#include <iostream>
#include <cstdlib>
#include <cctype>
#include <cstring>
using namespace std;
enum types { DELIMITER = 1, VARIABLE, NUMBER};
class parser {
char *exp_ptr; // points to the expression
char token[80]; // holds current token
char tok_type; // holds token's type
void eval_exp2(double &result);
void eval_exp3(double &result);
void eval_exp4(double &result);
void eval_exp5(double &result);
void eval_exp6(double &result);
void atom(double &result);
void get_token();
void serror(int error);
int isdelim(char c);
public:
parser();
double eval_exp(char *exp);
};
// parser constructor
parser::parser()
{
exp_ptr = NULL;
}
// Parser entry point.
double parser::eval_exp(char *exp)
{
double result;
exp_ptr = exp;
get_token();
if(!*token) {
serror(2); // no expression present
return 0.0;
}
eval_exp2(result);
if(*token) serror(0); // last token must be null
return result;
}
// Add or subtract two terms.
void parser::eval_exp2(double &result)
{
register char op;
double temp;
eval_exp3(result);
while((op = *token) == '+' || op == '-') {
get_token();
eval_exp3(temp);
switch(op) {
case '-':
result = result - temp;
break;
case '+':
result = result + temp;
break;
}
}
}
// Multiply or divide two factors.
void parser::eval_exp3(double &result)
{
register char op;
double temp;
eval_exp4(result);
while((op = *token) == '*' || op == '/' || op == '%') {
get_token();
eval_exp4(temp);
switch(op) {
case '*':
result = result * temp;
break;
case '/':
result = result / temp;
break;
case '%':
result = (int) result % (int) temp;
break;
}
}
}
// Process an exponent
void parser::eval_exp4(double &result)
{
double temp, ex;
register int t;
eval_exp5(result);
if(*token== '^') {
get_token();
eval_exp4(temp);
ex = result;
if(temp==0.0) {
result = 1.0;
return;
}
for(t=(int)temp-1; t>0; --t) result = result * (double)ex;
}
}
// Evaluate a unary + or -.
void parser::eval_exp5(double &result)
{
register char op;
op = 0;
if((tok_type == DELIMITER) && *token=='+' || *token == '-') {
op = *token;
get_token();
}
eval_exp6(result);
if(op=='-') result = -result;
}
// Process a parenthesized expression.
void parser::eval_exp6(double &result)
{
if((*token == '(')) {
get_token();
eval_exp2(result);
if(*token != ')')
serror(1);
get_token();
}
else atom(result);
}
// Get the value of a number.
void parser::atom(double &result)
{
switch(tok_type) {
case NUMBER:
result = atof(token);
get_token();
return;
default:
serror(0);
}
}
// Display a syntax error.
void parser::serror(int error)
{
static char *e[]= {
"Syntax Error",
"Unbalanced Parentheses",
"No expression Present"
};
cout << e[error] << endl;
}
// Obtain the next token.
void parser::get_token()
{
register char *temp;
tok_type = 0;
temp = token;
*temp = '\0';
if(!*exp_ptr) return; // at end of expression
while(isspace(*exp_ptr)) ++exp_ptr; // skip over white space
if(strchr("+-*/%^=()", *exp_ptr)){
tok_type = DELIMITER;
// advance to next char
*temp++ = *exp_ptr++;
}
else if(isalpha(*exp_ptr)) {
while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++;
tok_type = VARIABLE;
}
else if(isdigit(*exp_ptr)) {
while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++;
tok_type = NUMBER;
}
*temp = '\0';
}
// Return true if c is a delimiter.
int parser::isdelim(char c)
{
if(strchr(" +-/*%^=()", c) || c==9 || c=='\r' || c==0)
return 1;
return 0;
}
int main()
{
char expstr[80];
cout << "Enter a period to stop.\n";
parser ob; // instantiate a parser
for(;;) {
cout << "Enter expression: ";
cin.getline(expstr, 79);
if(*expstr=='.') break;
cout << "Answer is: " << ob.eval_exp(expstr) << "\n\n";
};
return 0;
}
Ⅷ 谁有C#课程设计案例精编的电子版或PDF文档!
给你发了一份pdf(好像不是张仁才的)和一份源码。。。希望对你有帮助!!!!
这本书真的好难找,所以就给你源码咯!!!!。源码很好。
Ⅸ visualc++课程设计案例精选与编程指导矩阵乘法计算答案 好心人帮帮忙啊c++一窍不通谢谢啦
我编过c的,你要么,要的话请追问