| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 358 人关注过本帖
标题:求解如何使用工程。
取消只看楼主 加入收藏
fan111213
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-9-16
结帖率:50%
收藏
已结贴  问题点数:35 回复次数:0 
求解如何使用工程。
期末了,老师要求的程序我已经写好了,但为了帮一个同学不挂科,只好组一个小组。老师要求小组的程序要使用工程来分。但没有教过,想请问各位大大,怎么创建工程和把程序分开来。程序如下,求指点:
#include<stdio.h>
#include<string.h>        /*关于字符数组的函数定义的头文件,下面用到strcmp*/
#define N 1000      //学生人数//
void shuru(struct Student s[]);
void chaxun(struct Student s[]);
void paixu(struct Student s[]);
void shanchu(struct Student s[]);
void zengjia();
void menuStu();

struct Student//定义一个结构体//
{
    int Number;//定义学号//
    char name[20];//定义姓名//
    char sex;//定义性别//
    float yingyu;
    float yuwen;
    float c_yuyan;
    float Photoshop;
    int age;//定义年龄//
    float aver;//平均分//
    float sum;//总分//
};

struct Student s[N];
int n;
void main()//主函数//
{
    menuStu();
}

//定义一个输入函数
void shuru(struct Student s[])//输入//
{
    int j;//j表示输入的元素//
    int sum=0;//注意初始化//
    printf("请输入你要输入的人数:");
        scanf("%d",&n);
    printf("请输入学生的基本信息 :\n");
    for(j=1;j<=n;j++)//循环体,若输入的学生人数>1,则循环输入学生信息,直到输入完所有学生信息为止//
    {
        s[j].sum=0;
        printf("学号 :");
        scanf("%d",&s[j].Number);
        printf("姓名 :");
        scanf("%s",s[j].name);
        printf("性别 :");
        scanf(" %c",&s[j].sex);
        printf("请输入第 %d 个学生的[英语]成绩:\n",j);
        scanf("%f",&s[j].yingyu);
        printf("请输入第 %d 个学生的[语文]成绩:\n",j);
        scanf("%f",&s[j].yuwen);
        printf("请输入第 %d 个学生的[c语言]成绩:\n",j);
        scanf("%f",&s[j].c_yuyan);
        printf("请输入第 %d 个学生的[Photoshop]成绩:\n",j);
        scanf("%f",&s[j].Photoshop);
        s[j].sum=s[j].yingyu+s[j].yuwen+s[j].c_yuyan+s[j].Photoshop;
          s[j].aver=s[j].sum/4;
        printf("年龄 : ");
        scanf("%d",&s[j].age);
    }
}

void xiugai(struct Student s[])//修改//
{
    int i,j,s1,item,flag;
    if(n==0)
    {
        printf("没有可修改信息!请先输入学生信息!\n");
        return;
    }
    printf("请输入要修改的学生的学号:");
    scanf("%d",&s1);
    printf("以下为您所要修改的学生的原信息:\n");
    printf("==========================================================================\n");
    printf("学号\t姓名\t性别\t年龄\t英语\t语文\tc语言 Photoshop 平均数\t总分\n");
    printf("==========================================================================\n");
    for(i=1;i<=n;i++)
    {
     if(s[i].Number==s1)
     {
       printf("%d\t",s[i].Number);
       printf("%s\t",s[i].name);
       printf("%c\t",s[i].sex);
       printf("%d\t",s[i].age);

       printf("%.1f\t",s[i].yingyu);
       printf("%.1f\t",s[i].yuwen);
       printf("%.1f\t",s[i].c_yuyan);
       printf("%.1f\t",s[i].Photoshop);
       printf("%.1f\t",s[i].aver);
       printf("%.1f\t",s[i].sum);
    printf("================================================================\n");
    printf("------------------\n");
    printf("1.修改学号\n");
    printf("2.修改姓名\n");
    printf("3.修改性别\n");
    printf("4.修改成绩\n");
    printf("5.修改年龄\n");
    printf("6.退出本菜单\n");
    printf("------------------\n");
    while(1)
    {
        printf("请选择子菜单编号:");
        scanf("%d",&item);
        switch(item)
    {
    case 1:
          flag=1;
          while(flag)
          {
           flag=0;
           printf("请输入新的学号:");
           scanf("%d",&s[i].Number);
           for(j=i-1;j>=0;j--)
           {
             if(s[i].Number==s[j].Number)
            {
                printf("已有该学号,请检查后重新录入!\n");
                flag=1;
                break; /*如有重复立即退出该层循环,提高判断速度*/
            }
           }
          }
        break;
    case 2:
        printf("请输入新的姓名:");
        scanf("%s",&s[i].name);
        break;
    case 3:
        printf("请输入新的性别:");
        scanf(" %s",&s[i].sex);
        break;
    case 4:
          s[i].sum=0;
            printf("请输入第 %d 个学生的[英语]成绩:\n",i);
            scanf("%f",&s[i].yingyu);
            printf("请输入第 %d 个学生的[语文]成绩:\n",i);
            scanf("%f",&s[i].yuwen);
            printf("请输入第 %d 个学生的[c语言]成绩:\n",i);
            scanf("%f",&s[i].c_yuyan);
            printf("请输入第 %d 个学生的[Photoshop]成绩:\n",i);
            scanf("%f",&s[i].Photoshop);
            s[i].sum=s[i].yingyu+s[i].yuwen+s[i].c_yuyan+s[i].Photoshop;
            s[i].aver=s[i].sum/4;
        break;
    case 5:
        printf("请输入新的年龄:");
        scanf("%d",&s[i].age);
        break;
    case 6:return;
    default:printf("请在1-6之间选择\n");
    }
    }
    }
    }
}

void zengjia(struct Student s[])//增加//
{   
    int i=N,j,flag,m;//flag=1表示有重复学号,0表示无重复学号,m表示增加的人数
    printf("请输入待增加的学生数:\n");
    scanf("%d",&m);
    do
    {   
        flag=1;
        while(flag)
        {   
            flag=0;
            printf("请输入第 %d 个学生的学号:\n",i+1);
            scanf("%s",s[i].Number);        
            for(j=0;j<i;j++)
                if(strcmp(s[i].Number,s[j].Number)==0)
                {
                    printf("已有该学号,请检查后重新录入!\n");
                    flag=1;
                    break; /*如有重复立即退出该层循环,提高判断速度*/
                }
        }
        printf("请输入第 %d 个学生的姓名:\n",i+1);
        scanf("%s",s[i].name);
        printf("请输入第 %d 个学生的年龄:\n",i+1);
        scanf("%d",&s[i].age);
        printf("请输入第 %d 个学生的性别:\n",i+1);
        scanf("%s",s[i].sex);
        m--;
    }while(m==0);
        printf("录入完毕!\n\n");
}

void shanchu(struct Student s[])//删除//
{
    int b,ch,i,j;
       printf("请输入要删除学生信息的学号:");
       scanf("%d",&b);
       printf("该学生的信息是:\n");
       for(i=1;i<=n;i++)
       {
           if(b==s[i].Number)
           {
          printf("%d\t",s[i].Number);
          printf("%s\t",s[i].name);
          printf("%s\t",s[i].sex);
          printf("%d\t",s[i].age);

         printf("%.1f\t",s[i].yingyu);
         printf("%.1f\t",s[i].yuwen);
         printf("%.1f\t",s[i].c_yuyan);
         printf("%.1f\t",s[i].Photoshop);
          printf("%.1f\t",s[i].aver);
          printf("%.1f\t",s[i].sum);
          printf("确认是否要删除(1为是,0为否):");
             scanf("%d",&ch);
             if(ch==1)
            {
                for(j=i;j<n;j++)
                {
                    s[j]=s[j+1];
                }
             printf("删除成功!\n");
            }
        }   
       }
    n=n-1;
}


void chaxun(struct Student s[])
{
    int i,j;
    printf("* * * * * * * * *学生的基本信息是* * * * * * * * *\n");
    printf("======================================================================\n");
    printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\tc语言\t平均数\t总分\n");
   
    for(j=0;j<n;j++)
    {
        printf("%d\t",s[j].Number);
        printf("%s\t",s[j].name);
        printf("%c\t",s[j].sex);
        printf("%d\t",s[j].age);

        printf("%.1f\t",s[i].yingyu);
        printf("%.1f\t",s[i].yuwen);
        printf("%.1f\t",s[i].c_yuyan);
        printf("%.1f\t",s[i].Photoshop);
        
        printf("%.1f\t",s[j].sum);
        printf("%.1f\n",s[j].aver);

        printf("\n");
    }
    printf("======================================================================\n");
}

//定义一个排序函数
void paixu(struct Student s[])
{
    int i,j;//i表示循环轮次,j表示循环体中的元素//
    struct Student temp;
    for(i=1;i<=n-1;i++)
    {
        for(j=0;j<=n-2;j++)
        {
            if(s[j].sum<s[j+1].sum)//如果j<j+1,那么两者交换//
            {
                temp=s[j];
                s[j]=s[j+1];
                s[j+1]=temp;
            }
        }
    }
}


//操作界面//
void menuStu()
{
    int n;
    printf("================欢迎光临==================");
    printf("\n请选择:\n");

        printf("\t\t\t*************************************\n");
        printf("\t\t\t*              操作菜单             *\n");
        printf("\t\t\t*                                   *\n");
        printf("\t\t\t*          1.输入学生信息           *\n");
        printf("\t\t\t*          2.修改学生信息           *\n");
        printf("\t\t\t*          3.增加学生信息           *\n");
        printf("\t\t\t*          4.按删除学生信息         *\n");
        printf("\t\t\t*          5.按学号从低到高排序     *\n");
        printf("\t\t\t*          6. 查                  *\n");
        printf("\t\t\t*          7. 保                  *\n");
        printf("\t\t\t*-----------------------------------*\n");
        printf("\t\t\t*          8.退出系统               *\n");
        printf("\t\t\t*-----------------------------------*\n");
        printf("\t\t\t*       请输入1-8任意一个数字       *\n");
        printf("\t\t\t*-----------------------------------*\n");

    printf("请选择菜单编号:");
    scanf("%d",&n);

    while(n!=-1)
    {
        
        switch(n)
        {
            case 1:shuru(s,N);break;
            case 2:xiugai(s,n);break;
            case 3:zengjia();break;
            case 4:shanchu(s);break;
            case 5:paixu(s,N);break;
            case 6:chaxun(s,N);break;
            case 7:break;
            case 8:break;
            default:printf("输入错误!\n");break;
        }
        printf("请选择\n");
        printf("1.输入\t2.修改\t3.增加\t4.删除\t5.排序\t6.查询\t7.退出\n");

        scanf("%d",&n);
    }
}

求各位大大指点迷津~~~~
搜索更多相关主题的帖子: include 工程 如何 
2011-12-19 18:11
快速回复:求解如何使用工程。
数据加载中...
 
   



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

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