VC++6.0及QT简单程序练习

来源:互联网 发布:官网pkpm软件价格 编辑:程序博客网 时间:2024/06/16 19:01

很初级,继续学习。


3.1.1 V带选择程序

代码:

// Vdai.cpp : Defines the entry point for the console application.


#include <stdio.h>

int main(int argc, char* argv[])
{
int i;
float b[7] = {6.0, 10.0, 13.0, 17.0, 22.0, 32.0, 38.0}; 
    float h[7] ={4.0, 6.0, 8.0 ,10.5, 13.5, 19.0, 23.5}; 
float bp[7]= {5.3, 8.5, 11.0, 14.0, 19.0, 27.0, 32.0}; 


printf("Zhou Jianguo 2015012631\n");
    printf("\n");


    printf("please input i=");
    scanf("%d", &i);
printf("\n");


printf("Found Vdai-Belt parameters: \n");
printf("b=%.2f,h=%.2f, bp=%.2f\n",b[i],h[i],bp[i]);
    printf("\n");


return 0;
}


VC端运行:


QT端运行



3.1.2 键的选择程序

代码:

// Jian.cpp : Defines the entry point for the console application.
//
#include <stdio.h>


int main(int argc, char* argv[])
{
int i;
float D[12] = {6.0, 10.0, 13.0, 17.0, 22.0, 32.0, 38.0}; 
    float kb[12] ={4.0, 6.0, 8.0 ,10.5, 13.5, 19.0, 23.5}; 
float kh[12] = {5.3, 8.5, 11.0, 14.0, 19.0, 27.0, 32.0};
float kt[12] = {6.0, 10.0, 13.0, 17.0, 22.0, 32.0, 38.0}; 
    float kt1[12] ={4.0, 6.0, 8.0 ,10.5, 13.5, 19.0, 23.5}; 

printf("Zhou Jianguo 2015012631\n");
printf("\n");


    printf("please input i=");
scanf("%d", &i);
printf("\n");

printf("Found Jian-Belt parameters: \n");
printf("D=%.2f,kb=%.2f, kh=%.2f, kt=%.2f,kt1=%.2f\n",D[i],kb[i],kh[i],kt[i],kt1[i]);
printf("\n");

return 0;
}


VC端运行:


QT端运行



3.1.3 包角系数的选择程序

代码:

// Baojiao.cpp : Defines the entry point for the console application.
#include <stdio.h>
#include <MATH.H>


int main(int argc, char* argv[])
{     
    int i;
   float baojiao, k2;
int deg[10] = {90.0,100.0,110.0,120.0,130.0,140.0,150.0,160.0,170.0,180.0};
float k[10] = {0.68,0.74,0.79,0.83,0.86,0.89,0.92,0.95,0.98,1.00};
        
printf("Zhou Jianguo 2015012631\n");
printf("\n");


printf("please input baojiao=");
scanf("%f", &baojiao);
printf("\n");

        if(baojiao<90.0||baojiao>180.0)
{
printf("Not Found!\n");
printf("\n");
        }


else
{
for( i=0; i<10; i++)
{
                if(baojiao>=deg[i]&&baojiao<=deg[i+1])
{
k2 = k[i] + (k[i+1] - k[i]) * (baojiao - deg[i]) / (deg[i+1] - deg[i]);

                printf("Found Baojiao-Belt parameter: \n");
       printf("k2=%.4f\n",k2);
       printf("\n");


       break;
}
}
}
}


VC端运行



QT端运行



4.1 删除数据元素程序

代码:

// fourpointone.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#define LEN 6


main()
{
static char listc[LEN]={'A', 'B', 'C', 'D', 'E'};
int i,j;

printf("Zhou Jianguo 2015012631\n");

printf("\n删除第几个数据元素?");
scanf("%d",&i);

for (j=i;j<LEN;j++)
listc[j-1]=listc[j];
listc[j]='\0';

printf("\n新的数据元素组为:%s\n",listc);

    return 0;
}


VC端运行



QT端运行:



4.2 插入新的数据元素

代码:

// fourpointtwo.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#define LEN 6


main()
{
    printf("Zhou Jianguo 2015012631\n");


static char listc[LEN]={'A', 'B', 'C', 'D', 'E'};
int i, j;
char c1;


printf("\n输入新的数据元素:");
c1=getchar();
printf("\n输入新的数据元素的位置:");
scanf("%d", &i);


for(j=LEN; j>i;j--)
listc[j]=listc[j-1];
listc[j]=c1;


    printf("\n新的数据元素组是:%c,%c,%c,%c,%c,%c\n",listc[0],listc[1],listc[2],listc[3],listc[4],listc[5]);
}

VC端运行



QT端运行



其他程序代码:

//!!Show your code!
#include <stdio.h>
#include <stdlib.h>
#include"orderline.h"
#include "link.h"
#include"stack.h"
#include"tree.h"
int main()
{
    Show();
    char num;
    scanf("%c",&num);EatLine();
    while(num>='a'||num<='e'){
            switch(num){
            case 'a': OrderLineDelete();break;//
            case 'b': OrderLineInsert();break;
            case 'c':LinkList();break;
            case 'd':FindZhou();break;
            case 'e':TreeTraverse();break;
            case 'q':exit(0);
            }


        Show();
        scanf("%c",&num);EatLine();
    }


    return 0;
}

#include "link.h"
#include<stdio.h>
#include<stdlib.h>
//单链表
void LinkList(void)
{
    Link L=LinkCreat();
    LinkVisit(3,L);
    LinkSearch('C',L);
    LinkDelete(3,L);
    LinkInsert('T',3,L);


    DLink DL=DLinkCreat();
    DLinkVisit(2,DL);
}


Link LinkCreat(void)
{
    Link L,Head,Temp;
    int i,LEN=5;
    for(i=0;i<LEN;i++){
        L=(Link)malloc(sizeof(struct LNode));
        L->Data='A'+i;
        L->Next=NULL;
        if(i==0)
            Head=Temp=L;


        else{
            Temp->Next=L;
            Temp=L;
        }
    }
    LinkTraverse(Head);
    return Head;
}


void LinkTraverse(Link L)
{
    while(L){
        printf("%c ",L->Data);
        L=L->Next;
    }


    putchar('\n');
}


void LinkVisit(int i,Link L)
{
    int j;


    Link Temp=L;
    for(j=0;j!=i-1;j++){
        Temp=Temp->Next;}
    printf("第%d个元素是%c\n",i,Temp->Data);
}


void LinkSearch(char ch,Link L)
{
    int count=0;
    Link Temp=L;
    while(Temp){
        if(Temp->Data==ch)
            {printf("%c是第%d个元素\n",ch,count+1);break;}
        else
            count++;
            Temp=Temp->Next;
    }
}


void LinkDelete(int i,Link L)
{
    Link Temp,Head,Pre;
    Head=Temp=L;
    int j=1;
    if(i==1){
        Head=Head->Next;
        free(Temp);
        return ;
    }
    while(j!=i){
        Pre=Temp;
        Temp=Temp->Next;
        j++;
    }
    Pre->Next=Temp->Next;
    free(Temp);
    LinkTraverse(L);
}


void LinkInsert(char ch,int i,Link L)
{
    int j=1;
    Link Temp=L,New;
    while(j++!=i-1){
        Temp=Temp->Next;
    }
    New=(Link)malloc(sizeof(struct LNode));
    New->Data=ch;
    New->Next=Temp->Next;
    Temp->Next=New;
    LinkTraverse(L);
}








DLink DLinkCreat(void)
{
    DLink Temp,New,Tail;
    int i,LEN=5;
    for(i=0;i<LEN;i++){
        New=(DLink)malloc(sizeof(struct DLNode));
        New->Data='A'+i;
        New->Last=NULL;
        New->Next=NULL;
        if(i==0)
            Temp=New;
        else{
            Temp->Next=New;
            New->Last=Temp;
            Temp=New;
        }
    }
    Tail=Temp;
    //LinkTraverse(Head);
    return Tail;
}
void DLinkVisit(int i,DLink DL)
{
    int j;
    DLink Temp=DL;
    for(j=1;j!=i;j++)
        Temp=Temp->Last;
    printf("双向链表倒数第%d个元素是%c\n",i,Temp->Data);
}

//顺序存储
#include"orderline.h"
#include<stdio.h>
#include<stdio.h>
//数组
void OrderLineDelete(void)
{
    static char listc[LEN]={'A','B','C','D','E'};
    int i,j;
    printf("\n删除第几个数据元素?");
    scanf("%d",&i);
    for(j=i;j<LEN;j++)
        listc[j-1]=listc[j];
    listc[j]='\0';
    puts(listc);
}


void OrderLineInsert(void)
{
    static char listc[LEN]={'A','B','C','D','E'};
    int i,j;
    char ch;
    printf("\n输入新的数据元素:");
    scanf("%c",&ch);
    printf("\n输入新的数据元素的位置:");
    scanf("%d",&i);
    for(j=LEN-1;j!=i-1;j--)
        listc[j-1]=listc[j-2];
    listc[j]=ch;
    puts(listc);
}


void Show(void)
{
    printf("To choose a function,enter its label:\n");
    printf("a) OrderLineDelete\nb) OrderLineInsert\n");
    printf("c) LinkList\nd) FindZhou\ne) TreeTraverse\nq) Quit\n");
}


void EatLine(void)
{
    while(getchar()!='\n')
        continue;
}

#include<stdio.h>
#include<stdlib.h>
#include "stack.h"




void FindZhou(void)
{
    Stack S=CreatStack();
    int i=0,j=1,n;
    printf("输入轴号(1~%d):",Max-1);
    scanf("%d",&n);
    if(n<1||n>Max){
        printf("没有这个轴号\n");
        exit(0);
    }
    Push(0,S);
    while(!IsEmpty(S)||j<10){
        if(a[i][j]){
            Push(j,S);
            if(j==n){
                printf("\n%d号轴的传动路线是:",n);
                for(i=0;i<S->Top;i++)
                    printf("--%d--",S->Data[i]);
                exit(1);
            }
            else{i=j;j=0;}
        }
        else if(j==9){
            j=Pop(S);
            i=S->Data[S->Top];
        }
        j++;
    }
    printf("没有找到%d号轴的传动路线\n",n);
}
Stack CreatStack(void)
{
    Stack S=(Stack)malloc(sizeof(struct SNode));
    S->MaxSize=Max;
    S->Data=(ElementType *)malloc(S->MaxSize*sizeof(ElementType));
    S->Top=-1;
    return S;
}


ElementType Pop(Stack S)
{
    return S->Data[S->Top--];
}


void Push(ElementType X,Stack S)
{
    S->Data[++S->Top]=X;
}


int IsEmpty(Stack S)
{
    return S->Top==-1?1:0;
}


int IsFull(Stack S)
{
    return S->Top==S->MaxSize?1:0;
}


#include"tree.h"
#include<stdio.h>
#include<stdlib.h>


void TreeTraverse(void)
{
    BinTree T;
    T=CreatTree(Max);//!建成一个只有右子树的二叉树
    PreTraverse(T);printf("\n");
    InterTraverse(T);printf("\n");
    PostTraverse(T);
}
BinTree NewNode(int X)
{
    BinTree T=(BinTree)malloc(sizeof(struct TNode));
    T->Data=X;
    T->Left=T->Right=NULL;
    return T;
}
BinTree CreatTree(int N)
{
    int i;
    BinTree T=NewNode(0);
    for(i=1;i<N;i++){
        T=Insert(i,T);
    }printf("%d\n",T->Right->Data);
    return T;
}
BinTree Insert(int X,BinTree T)
{
    if(!T){
        T=NewNode(X);
    }
    else{
        if(X>T->Data)
            T->Right=Insert(X,T->Right);
        else if(X<T->Data)
            T->Left=Insert(X,T->Left);
    }
    return T;
}
void PreTraverse(BinTree T)
{
    if(T){
        printf("%c ",T->Data+'A');
        PreTraverse(T->Left);
        PreTraverse(T->Right);
    }
}
void InterTraverse(BinTree T)
{
    if(T){
        InterTraverse(T->Left);
        printf("%c ",T->Data+'A');
        InterTraverse(T->Right);
    }
}
void PostTraverse(BinTree T)
{
    if(T){
        PostTraverse(T->Left);
        PostTraverse(T->Right);
        printf("%c ",T->Data+'A');
    }
}