注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Nef. spot

Fortune Favours the Bold.

 
 
 

日志

 
 

2007-2008C语言大作业  

2008-01-05 14:09:09|  分类: C语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
第一次写这么长的东西,虽然简单,但值得纪念。
有改进的地方欢迎指出。(无法防止用户在需要输入数字的地方输入其它东西。)
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <process.h>
#include <math.h>
int a[255];
int b;
void main()
{
    void sort();                                /*声明部分*/
    void tot();
    void maxmin();
    void aver();
    void fang();
    void del();
    void input();
    void add();                                    /*声明部分*/
    char key;
    char msg[10][99]={{"****************数据处理*****************(W=光标上移 S=光标下移 ENTER=确认)"},
    {"  数据排序"},
    {"  求和"},
    {"  求最值"},
    {"  求平均值"},
    {"  求方差及标准差"},
    {"  删除一个数"},
    {"  增加一个数"},
    {"  重新录入数据"},
    {"  退出程序"}};
    int pt=1,r=1,w;
    if (r==1)
    {
        printf("**************本程序可以进行一些简单的整型数据处理**************\n");
        printf("第一次使用本程序,须录入数据……\n");
        r=0;
        input();
    }
    mulu:system("cls");                            /*主目录*/
    printf("%s\n",msg[0]);
    for (w=1;w<=9;w++)
    {
        if (pt==w) printf("→");
        else printf("  ");
        printf("%s\n",msg[w]);
    }                                            /*主目录*/
    key=getch();                                /*光标操作部分*/
    if (key=='w') pt=pt-1;
    if (key=='s') pt=pt+1;
    if (key==13) goto caozuo;
    if (pt<1) pt=9;
    if (pt>9) pt=1;
    goto mulu;                                    /*光标操作部分*/
    caozuo:system("cls");                        /*数据操作*/
    switch (pt)
    {
        case 1: sort();break;
        case 2: tot();break;
        case 3: maxmin();break;
        case 4: aver();break;
        case 5: fang();break;
        case 6: del();break;
        case 7: add();break;
        case 8: input();break;
        case 9: goto end;break;
        default : printf("应该不会出现DEFAULT的情况......");break;
    }
    goto mulu;                                    /*数据操作*/
    end:system("cls");                            /*结束部分*/
    printf("****************************************************\n");
    printf("**                    感谢使用                    **\n");
    printf("****************************************************\n");
    getch();                                    /*结束部分*/
}
void sort()                                        /*排序函数*/
{
    int i,j,tp;
    printf("这些数据由小到大排好后如下:\n");
    for (i=0;i<b;i++)
    {
        for (j=0;j<b-1-i;j++)
        {
            if (a[j]>a[j+1])
           {
               tp=a[j];a[j]=a[j+1];a[j+1]=tp;
           }
        }
    }
    for (i=0;i<b;i++)
    {
        printf("%d\n",a[i]);
    }
    printf("数据排序完毕!按任意键返回……");
    getch();
}                                                /*排序函数*/
void tot()                                        /*求和函数*/
{
    int j,fv=0;
    printf("这些数据的和为:");
    for (j=0;j<b;j++)
    {
        fv=fv+a[j];
    }
    printf("%d",fv);
    printf("\n数据求和完毕!按任意键返回……");
    getch();
}                                                /*求和函数*/
void maxmin()                                    /*求最值函数*/
{
    int max=a[0],min=a[0],i;
    for (i=0;i<b;i++)
    {
        if (max<a[i]) max=a[i];
        if (min>a[i]) min=a[i];
    }
    printf("这些数据中最大的是:%d\n",max);
    printf("          最小的是:%d\n",min);
    printf("求最值完毕!按任意键返回……");
    getch();
}                                                /*求最值函数*/
void aver()                                        /*求平均数函数*/
{
    float av;
    int tt=0,i;
    for (i=0;i<b;i++)
    {
        tt=tt+a[i];
    }
    av=(float)tt/b;
    printf("这些数据的平均值为:%f\n",av);
    printf("求平均值完毕!按任意键返回……");
    getch();
}                                                /*求平均数函数*/
void fang()                                        /*求方差函数*/
{
    float av,fc=0,bzc;
    int tt=0,i;
    for (i=0;i<b;i++)
    {
        tt=tt+a[i];
    }
    av=(float)tt/b;
    for (i=0;i<b;i++)
    {
        fc=fc+pow(((float)a[i]-av),2);
    }
    bzc=sqrt(fc);
    printf("这些数据的方差是:%f\n",fc);
    printf("        标准差是:%f\n",bzc);
    printf("求方差及标准差完毕!按任意键返回……");
    getch();
}                                                /*求方差函数*/
void input()                                    /*录入数据*/
{
    int j;
    printf("请先输入数据个数:");
    scanf("%d",&b);
    for (j=0;j<b;j++)
    {
        printf("请输入第%d个数:",j+1);
        scanf("%d",&a[j]);
    }
    printf("数据录入完毕!按任意键返回……");
    getch();
}                                                /*录入数据*/
void del()                                        /*删除数据*/
{
    int dele,i,panduan=1,resort;
    printf("请输入要删除的数据:");
    scanf("%d",&dele);
    for (i=0;i<b;i++)
    {
        if (dele==a[i])
        {
            panduan=0;
            break;
        }
    }
    if (panduan==1)
    {
        printf("您要删除的数据不存在!");
    }
    else
    {
        for (i=0;i<b;i++)
        {
            if (dele==a[i]) break;
        }
        for (resort=i;resort<b-1;resort++)
        {
            a[resort]=a[resort+1];
        }
        b=b-1;
    }
    if (panduan==0) printf("删除数据成功!按任意键返回……");
    getch();
}                                                /*删除数据*/
void add()                                        /*追加数据*/
{
    printf("请输入要追加的数据:");
    scanf("%d",&a[b]);
    b++;
    printf("操作完毕!按任意键返回……");
    getch();
}                                                /*追加数据*/


  评论这张
 
阅读(117)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017