| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2086 人关注过本帖, 2 人收藏
标题:高手!高手!快点来帮拖!我被难题难住了!!!
只看楼主 加入收藏
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 
呵呵~~~,我们的数据结构课程设计题目~~~,简单~~<可是各方面都要考虑完全也比较复杂~~

我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-06-09 23:13
黄建广
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-6-9
收藏
得分:0 
恩!如果没有人帮我们,我们可以去问老师呀!我们怎么忘记了我们最亲最爱的陈雪老师呢!数据结构课程设计题目老师出的,老师做出来就好了!
2004-06-10 07:38
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 

黄建广,本人与你同样厌恶在此捣乱的朋友,我非高手,但希望这些程序可以帮助你,你拿去做个参考,希望可以根据这些代码写出你自己需要的程序!

1,定义以下变量

Double dblAcc; //运算数A   Double dblSec; //运算数B   bool blnClear,blnFrstOpen;//布尔类型用来判断清除与否,以及第一个显示字符   String strOper;//通过获取strOper的值来决定运算+,-,*,/,=

2,用以下方法来实现按钮的动作

bDot.click+=net EventHandler(btn_clk);//EventHandler类是事件代表类,用来注册事件的处理方法.

  //第一个参数是object类型,指向发出事件的对象;

  //第二个参数是EventArgs类型,包含了关于这个事件的数据

3,用以下方法来判断运算以及运算操作

private void calc(){ switch(strOper){  case "+":   dblAcc+=dblSec;//加法运算   break;  case "-":   dblAcc-=dblSec;//减法运算   break;  case "*":   dblAcc*=dblSec;//乘法运算   break;  case "/":   dblAcc/=dblSec;//除法运算   break; } strOper="=";//等号运算 blnFrstOpen=true;

txtCalc.Text=Convert.ToString(dblAcc);//将运算结果转换成字符型,并输出结果

dblSec=dblAcc; }

4,小数点运算

//先判断是否已经按了小数点按钮,如果按了,最0.x来代替运算变量,并且将转换成Double数型数值 private void btn_clk(object obj,EventArgs ea){  if(blnClear)   txtCalc.Text="";   Button b3=(Button)obj;   txtCalc.Text+=b3.Text;  if(txtCalc.Text==".")   txtCalc.Text="0.";   dblSec=Convert.ToDouble(txtCalc.Text);   blnClear=false; }


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-06-10 12:15
啸天
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-6-10
收藏
得分:0 

看来这真还不是个好做的题呢!你女朋友可不是一般的聪明,让你想吻、、、都难呀!

不过小生我也是有心无力呀!

学识浅薄,无能为力呀!

楼上的姐姐很厉害吗!请教她吧!准行!!!


濯足溪水 振衣高冈
2004-06-10 17:17
小蚂蚁
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2004-4-14
收藏
得分:0 
你怎么能这样!
我给你一个delphi的代码,有界面的,看不懂也没关系的。
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, jpeg;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    RadioGroup1: TRadioGroup;
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    Image2: TImage;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit1Enter(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button2Click(Sender: TObject);{ÏìÓ¦¡°Í˳ö¡±°´Å¥}
begin
  close
end;

procedure TForm1.Button1Click(Sender: TObject);{ÏìÓ¦¡°ÔËËã¼ü¡±°´Å¥}
var
        x,y,z: integer;
begin
        try
                x:=strtoint(edit1.text);
                y:=strtoint(edit2.text);
               if (y=0) and(radiogroup1.ItemIndex=3)then
                begin
                showmessage('³ýÊý²»ÄÜΪÁã');
                exit;
                end;
        except
                showmessage('Êý¾ÝÓÐÎó');
                exit;
        end;
                case radiogroup1.ItemIndex of
               0:      z:=x+y;
               1:      z:=x-y;
               2:      z:=x*y;
               3:      z:=x div y;
                end;
                edit3.text:=inttostr(z);
               if checkbox2.checked and (radiogroup1.ItemIndex=3) then
                       if(x mod y <> 0) then
                               edit3.text:=edit3.text+'Óà'+inttostr(x mod y);

end;

procedure TForm1.Edit1Enter(Sender: TObject);
{Ñ¡ÖС°½øÈëÊäÈë¿òʱÇå¿ÕÆäÖеÄÄÚÈÝ¡±Ê±×ö³öµÄ´¦Àí}
begin
 if checkbox1.Checked then
        begin
                edit3.text:='';
                if sender=edit1 then
                       edit1.text:=''
                else
                       edit2.text:='';
                end;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
{ÅжÏÓû§ÊäÈëÊÇ·ñΪÊý×Ö}
begin
        if not(key in ['0'..'9']) then
                key:=chr(0);
end;

end.

[c相关下载版主] 任时光匆匆流去, 我只在乎你,心甘情愿感染你的气息.
2004-06-10 17:34
黄建广
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-6-9
收藏
得分:0 

小蚂蚁!流星雨 !啸天 (排名不分先后) 黄建广在这里真的真的非常非常感谢你们提供的参考资料.但是我今天看了我电脑老师的这道题目的参考答案.里面的数据结构不是你们想的那样的.它是一个不能直接输入数字的界面,比如1+1=2,首先你先把界面上一个类似光标的箭头指向你要输入的数字,箭头指向1后要按回车键,像这样把+,1用箭头输入后,最后用箭头指到=后,答案才出来。

程序我今天晚上发布出来.大家好好研究!

2004-06-10 18:21
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
快发布啊,朋友,在下很想目睹!

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-06-10 21:03
黄建广
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-6-9
收藏
得分:0 

看到答案后,我想到了四个字.跳楼和自杀!!!

#include <dos.h> /*DOS接口函数*/ #include <math.h> /*数学函数的定义*/ #include <conio.h> /*屏幕操作函数*/ #include <stdio.h> /*I/O函数*/ #include <stdlib.h> /*库函数*/ #include <stdarg.h> /*变量长度参数表*/ #include <graphics.h> /*图形函数*/ #include <string.h> /*字符串函数*/ #include <ctype.h> /*字符操作函数*/ #define UP 0x48 /*光标上移键*/ #define DOWN 0x50 /*光标下移键*/ #define LEFT 0x4b /*光标左移键*/ #define RIGHT 0x4d /*光标右移键*/ #define ENTER 0x0d /*回车键*/ void *rar; /*全局变量,保存光标图象*/ struct palettetype palette; /*使用调色板信息*/ int GraphDriver; /* 图形设备驱动*/ int GraphMode; /* 图形模式值*/ int ErrorCode; /* 错误代码*/ int MaxColors; /* 可用颜色的最大数值*/ int MaxX, MaxY; /* 屏幕的最大分辨率*/ double AspectRatio; /* 屏幕的像素比*/ void drawboder(void); /*画边框函数*/ void initialize(void); /*初始化函数*/ void computer(void); /*计算器计算函数*/ void changetextstyle(int font, int direction, int charsize); /*改变文本样式函数*/ void mwindow(char *header); /*窗口函数*/ int specialkey(void) ; /*获取特殊键函数*/ int arrow(); /*设置箭头光标函数*/ /*主函数*/ int main() { initialize();/* 设置系统进入图形模式 */ computer(); /*运行计算器 */ closegraph();/*系统关闭图形模式返回文本模式*/ return(0); /*结束程序*/ } /* 设置系统进入图形模式 */ void initialize(void) { int xasp, yasp; /* 用于读x和y方向纵横比*/ GraphDriver = DETECT; /* 自动检测显示器*/ initgraph( &GraphDriver, &GraphMode, "" ); /*初始化图形系统*/ ErrorCode = graphresult(); /*读初始化结果*/ if( ErrorCode != grOk ) /*如果初始化时出现错误*/ { printf("Graphics System Error: %s\n", grapherrormsg( ErrorCode ) ); /*显示错误代码*/ exit( 1 ); /*退出*/ } getpalette( &palette ); /* 读面板信息*/ MaxColors = getmaxcolor() + 1; /* 读取颜色的最大值*/ MaxX = getmaxx(); /* 读屏幕尺寸 */ MaxY = getmaxy(); /* 读屏幕尺寸 */ getaspectratio( &xasp, &yasp ); /* 拷贝纵横比到变量中*/ AspectRatio = (double)xasp/(double)yasp;/* 计算纵横比值*/ } /*计算器函数*/ void computer(void) { struct viewporttype vp; /*定义视口类型变量*/ int color, height, width; int x, y,x0,y0, i, j,v,m,n,act,flag=1; float num1=0,num2=0,result; /*操作数和计算结果变量*/ char cnum[5],str2[20]={""},c,temp[20]={""}; char str1[]="1230.456+-789*/Qc=^%";/* 定义字符串在按钮图形上显示的符号 */ mwindow( "Calculator" ); /* 显示主窗口 */ color = 7; /*设置灰颜色值*/ getviewsettings( &vp ); /* 读取当前窗口的大小*/ width=(vp.right+1)/10; /* 设置按钮宽度 */ height=(vp.bottom-10)/10 ; /*设置按钮高度 */ x = width /2; /*设置x的坐标值*/ y = height/2; /*设置y的坐标值*/ setfillstyle(SOLID_FILL, color+3); bar( x+width*2, y, x+7*width, y+height ); /*画一个二维矩形条显示运算数和结果*/ setcolor( color+3 ); /*设置淡绿颜色边框线*/ rectangle( x+width*2, y, x+7*width, y+height ); /*画一个矩形边框线*/ setcolor(RED); /*设置颜色为红色*/ outtextxy(x+3*width,y+height/2,"0."); /*输出字符串"0."*/ x =2*width-width/2; /*设置x的坐标值*/ y =2*height+height/2; /*设置y的坐标值*/ for( j=0 ; j<4 ; ++j ) /*画按钮*/ { for( i=0 ; i<5 ; ++i ) { setfillstyle(SOLID_FILL, color); setcolor(RED); bar( x, y, x+width, y+height ); /*画一个矩形条*/ rectangle( x, y, x+width, y+height ); sprintf(str2,"%c",str1[j*5+i]); /*将字符保存到str2中*/ outtextxy( x+(width/2), y+height/2, str2); x =x+width+ (width / 2) ; /*移动列坐标*/ } y +=(height/2)*3; /* 移动行坐标*/ x =2*width-width/2; /*复位列坐标*/ } x0=2*width; y0=3*height; x=x0; y=y0; gotoxy(x,y); /*移动光标到x,y位置*/ arrow(); /*显示光标*/ putimage(x,y,rar,XOR_PUT); m=0; n=0; strcpy(str2,""); /*设置str2为空串*/ while((v=specialkey())!=45) /*当压下Alt+x键结束程序,否则执行下面的循环*/ { while((v=specialkey())!=ENTER) /*当压下键不是回车时*/ { putimage(x,y,rar,XOR_PUT); /*显示光标图象*/ if(v==RIGHT) /*右移箭头时新位置计算*/ if(x>=x0+6*width) /*如果右移,移到尾,则移动到最左边字符位置*/ { x=x0; m=0; } else { x=x+width+width/2; m++; } /*否则,右移到下一个字符位置*/ if(v==LEFT) /*左移箭头时新位置计算*/ if(x<=x0) { x=x0+6*width; m=4; } /*如果移到头,再左移,则移动到最右边字符位置*/ else { x=x-width-width/2; m--; } /*否则,左移到前一个字符位置*/ if(v==UP) /*上移箭头时新位置计算*/ if(y<=y0) { y=y0+4*height+height/2; n=3; } /*如果移到头,再上移,则移动到最下边字符位置*/ else { y=y-height-height/2; n--; } /*否则,移到上边一个字符位置*/ if(v==DOWN) /*下移箭头时新位置计算*/ if(y>=7*height) { y=y0; n=0; } /*如果移到尾,再下移,则移动到最上边字符位置*/ else { y=y+height+height/2; n++; } /*否则,移到下边一个字符位置*/ putimage(x,y,rar,XOR_PUT); /*在新的位置显示光标箭头*/ } c=str1[n*5+m]; /*将字符保存到变量c中*/ if(isdigit(c)||c=='.') /*判断是否是数字或小数点*/ { if(flag==-1) /*如果标志为-1,表明为负数*/ { strcpy(str2,"-"); /*将负号连接到字符串中*/ flag=1; } /*将标志值恢复为1*/ sprintf(temp,"%c",c); /*将字符保存到字符串变量temp中*/ strcat(str2,temp); /*将temp中的字符串连接到str2中*/ setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,str2); /*显示字符串*/ } if(c=='+') { num1=atof(str2); /*将第一个操作数转换为浮点数*/ strcpy(str2,""); /*将str2清空*/ act=1; /*做计算加法标志值*/ setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0."); /*显示字符串*/ } if(c=='-') { if(strcmp(str2,"")==0) /*如果str2为空,说明是负号,而不是减号*/ flag=-1; /*设置负数标志*/ else { num1=atof(str2); /*将第二个操作数转换为浮点数*/ strcpy(str2,""); /*将str2清空*/ act=2; /*做计算减法标志值*/ setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/ outtextxy(5*width,height,"0."); /*显示字符串*/ } } if(c=='*') { num1=atof(str2); /*将第二个操作数转换为浮点数*/ strcpy(str2,""); /*将str2清空*/ act=3; /*做计算乘法标志值*/ setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0."); /*显示字符串*/ } if(c=='/') { num1=atof(str2); /*将第二个操作数转换为浮点数*/ strcpy(str2,""); /*将str2清空*/ act=4; /*做计算除法标志值*/ setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,"0."); /*显示字符串*/ } if(c=='^') { num1=atof(str2); /*将第二个操作数转换为浮点数*/ strcpy(str2,""); /*将str2清空*/ act=5; /*做计算乘方标志值*/ setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/ outtextxy(5*width,height,"0."); /*显示字符串*/ } if(c=='%') { num1=atof(str2); /*将第二个操作数转换为浮点数*/ strcpy(str2,""); /*将str2清空*/ act=6; /*做计算模运算乘方标志值*/ setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/ outtextxy(5*width,height,"0."); /*显示字符串*/ } if(c=='=') { num2=atof(str2); /*将第二个操作数转换为浮点数*/ switch(act) /*根据运算符号计算*/ { case 1:result=num1+num2;break; /*做加法*/ case 2:result=num1-num2;break; /*做减法*/ case 3:result=num1*num2;break; /*做乘法*/ case 4:result=num1/num2;break; /*做除法*/ case 5:result=pow(num1,num2);break; /*做x的y次方*/ case 6:result=fmod(num1,num2);break; /*做模运算*/ } setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆盖结果区*/ sprintf(temp,"%f",result); /*将结果保存到temp中*/ outtextxy(5*width,height,temp); /*显示结果*/ } if(c=='c') { num1=0; /*将两个操作数复位0,符号标志为1*/ num2=0; flag=1; strcpy(str2,""); /*将str2清空*/ setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆盖结果区*/ outtextxy(5*width,height,"0."); /*显示字符串*/ } if(c=='Q')exit(0); /*如果选择了q回车,结束计算程序*/ } putimage(x,y,rar,XOR_PUT); /*在退出之前消去光标箭头*/ return; /*返回*/ } /*窗口函数*/ void mwindow( char *header ) { int height; cleardevice(); /* 清除图形屏幕 */ setcolor( MaxColors - 1 ); /* 设置当前颜色为白色*/ setviewport( 20, 20, MaxX/2, MaxY/2, 1 ); /* 设置视口大小 */ height = textheight( "H" ); /* 读取基本文本大小 */ settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );/*设置文本样式*/ settextjustify( CENTER_TEXT, TOP_TEXT );/*设置字符排列方式*/ outtextxy( MaxX/4, 2, header ); /*输出标题*/ setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); /*设置视口大小*/ drawboder(); /*画边框*/ } void drawboder(void) /*画边框*/ { struct viewporttype vp; /*定义视口类型变量*/ setcolor( MaxColors - 1 ); /*设置当前颜色为白色 */ setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*设置画线方式*/ getviewsettings( &vp );/*将当前视口信息装入vp所指的结构中*/ rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*画矩形边框*/ } /*设计鼠标图形函数*/ int arrow() { int size; int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*定义多边形坐标*/ setfillstyle(SOLID_FILL,2); /*设置填充模式*/ fillpoly(8,raw); /*画出一光标箭头*/ size=imagesize(4,4,16,16); /*测试图象大小*/ rar=malloc(size); /*分配内存区域*/ getimage(4,4,16,16,rar); /*存放光标箭头图象*/ putimage(4,4,rar,XOR_PUT); /*消去光标箭头图象*/ return 0; } /*按键函数*/ int specialkey(void) { int key; while(bioskey(1)==0); /*等待键盘输入*/ key=bioskey(0); /*键盘输入*/ key=key&0xff? key&0xff:key>>8; /*只取特殊键的扫描值,其余为0*/ return(key); /*返回键值*/ } 

2004-06-10 21:41
快速回复:高手!高手!快点来帮拖!我被难题难住了!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017522 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved