| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 781 人关注过本帖
标题:新手上路、求助、编写出错了
只看楼主 加入收藏
我叫小刀
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-5-19
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:7 
新手上路、求助、编写出错了
/*所要用到的头文件*/

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>



/*定义结构体*/
struct student           /*定义结构体*/
{
   long int no;          /*学号*/
   char name[10];        /*名字*/
   char sex[3];          /*性别*/
   char major[20];       /*专业*/
   int math;             /*数学成绩*/
   int chinese;          /*语文成绩*/
   int english;          /*英语成绩*/
   int score;            /*专业课成绩*/
   int total;            /*总分=数学+语文+英语+专业课*/
};


/*自定义函数*/

void welcome();
void menu();
void input(struct student *stu,int length);
void print(struct student *stu,int *length);
void sore(struct student *stu,int length);
void insert(struct student *stu,int *length);
void del(struct student *stu,int length);
void find(struct student *stu,int length);
void modify(struct student *stu,int length);



/*主函数*/
int main(void)
{
   struct student *stu;    /*定义结构体指针*/
   int length,choice;             /*定义要储存的学生人数及选项*/
   printf("请输入需要存入的学生人数:");
   scanf("%d",&length);
   stu=(struct student *)malloc((sizeof(struct student) *length));
                            /*分配内存空间*/
   welcome();
  
   while(1)                /*无限循环*/
   {
      system("cls");       /*清除屏幕*/
      menu();
      printf("请选择:");
      scanf("%d",&choice);
      switch(choice)
      {
         case 1: input(stu,length);  break;   /*输入学生数据*/
         case 2: print(stu,&length);  break;  /*输出学生数据*/
         case 3: sore(stu,length);  break;
         case 4: insert(stu,&length);  break;
         case 5: del(stu,length); break;
         case 6: find(stu,length); break;
         case 7: modify(stu,length); break;
         case 8:
         case 9:
         default:  break;
         getch();
      }
   }
   return 0;
}


/*欢迎进入模块*/
void welcome()
{
   printf("\n\n\n\n");
   printf("\t\t**************************************************\n");
   printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n");
   printf("\t\t★☆                                          ☆★\n");
   printf("\t\t★☆            欢迎使用学生管理系统          ☆★\n");
   printf("\t\t★☆                                          ☆★\n");
   printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n");
   printf("\t\t**************************************************\n");
   getch();
}


/*菜单函数模块*/
void menu()
{
   printf("\n\n\n\n");
   printf("\t\t**************************************************\n");
   printf("\t\t☆☆☆☆☆☆☆☆☆☆☆ 菜单 ☆☆☆☆☆☆☆☆☆☆☆\n");
   printf("\t\t☆----------------------------------------------☆\n");
   printf("\t\t☆------------【1】输入学生资料-----------------☆\n");
   printf("\t\t☆------------【2】输出学生资料-----------------☆\n");
   printf("\t\t☆------------【3】按学生成绩进行排列-----------☆\n");
   printf("\t\t☆------------【4】添加学生资料-----------------☆\n");
   printf("\t\t☆------------【5】按姓名查找,删除该学生资料---☆\n");
   printf("\t\t☆------------【6】查找并显示学生资料-----------☆\n");
   printf("\t\t☆------------【7】按姓名查找,修改该学生资料---☆\n");
   printf("\t\t☆------------【8】从文件中读入数据-------------☆\n");
   printf("\t\t☆------------【9】储存并退出系统---------------☆\n");
   printf("\t\t☆----------------------------------------------☆\n");
   printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
   printf("\t\t**************************************************\n");
}


/*输入学生资料模块*/
void input(struct student *stu,int length)
{
   int i;
   for(i=0;i<length;i++)
   {
      printf("请输入第%d个学生的成绩资料:",i+1);
      printf("\n==请输入学号:");
      scanf("%ld",&stu[i].no);          /*学号为长整型*/
      printf("==请输入姓名:");
      scanf("%s",&stu[i].name);         /*姓名为字符型,长度为10*/
      printf("==请输入性别:");
      scanf("%s",&stu[i].sex);          /*性别为字符型,长度为3*/
      printf("==请输入专业:");
      scanf("%s",&stu[i].major);        /*专业为字符型,长度为20*/
      printf("==请输入数学成绩:");
      scanf("%d",&stu[i].math);         /*数学成绩*/
      printf("==请输入语文成绩:");
      scanf("%d",&stu[i].chinese);      /*语文成绩*/
      printf("==请输入英语成绩:");
      scanf("%d",&stu[i].english);       /*英语成绩*/
      printf("==请输入专业成绩:");
      scanf("%d",&stu[i].score);        /*专业成绩*/
      stu[i].total=stu[i].math+stu[i].chinese+stu[i].english+stu[i].score;
                                      /*计算该学生成绩总分*/
   }
   printf("\n");
   return;
}

/*输出学生资料模块*/
void print(struct student *stu,int *length)
{
   int i;
   printf("\n\t================================学生信息================================\n");
   printf("\t************************************************************************\n");
   printf("\t|  学号  |  姓名  | 性别 |  专业  | 数学 | 语文 | 英语 | 专业课 | 总分 |\n");
   printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
   for(i=0;i<*length;i++)
   {
       printf("\t|%-8ld|%-8s|%-6s|%-8s",stu[i].no,stu[i].name,stu[i].sex,stu[i].major);
       printf("|%-6d|%-6d|%-6d|%-8d|%-6d|\n",stu[i].math,stu[i].chinese,stu[i].english,stu[i].score,stu[i].total);
       printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
   }
   printf("\t************************************************************************\n");
   getch();
   return;
}


/*按成绩排序模块*/

void sore(struct student *stu,int length)
{
   int i,j;
   struct student temp;        /*交换数据的中间变量*/
   for(i=0;i<length;i++)
   {
       for(j=0;j<length-1;j++)
          if(stu[j].total<stu[j+1].total)
          {
             temp.no=stu[j].no;
             strcpy(temp.name,stu[j].name);
             strcpy(temp.sex,stu[j].sex);
             strcpy(temp.major,stu[j].major);
             temp.math=stu[j].math;
             temp.chinese=stu[j].chinese;
             temp.english=stu[j].english;
             temp.score=stu[j].score;
             temp.total=stu[j].total;

             stu[j].no=stu[j+1].no;
             strcpy(stu[j].name,stu[j+1].name);
             strcpy(stu[j].sex,stu[j+1].sex);
             strcpy(stu[j].major,stu[j+1].major);
             stu[j].math=stu[j+1].math;
             stu[j].chinese=stu[j+1].chinese;
             stu[j].english=stu[j+1].english;
             stu[j].score=stu[j+1].score;
             stu[j].total=stu[j+1].total;

             stu[j+1].no=temp.no;
             strcpy(stu[j+1].name,temp.name);
             strcpy(stu[j+1].sex,temp.sex);
             strcpy(stu[j+1].major,temp.major);
             stu[j+1].math=temp.math;
             stu[j+1].chinese=temp.chinese;
             stu[j+1].english=temp.english;
             stu[j+1].score=temp.score;
             stu[j+1].total=temp.total;

          }                        /*交换排序*/
   }
   printf("排序完成并输出!");
   print(stu, &length);
   return;
}

/*添加学生资料模块*/
void insert(struct student *stu,int *length)
{
   int i,num;    /*添加的个数*/

   printf("请输入您要添加几个学生信息:");
   scanf("%d",&num);
   stu=(struct student *)malloc((sizeof(struct student) * (*length+num)));
   for(i=*length;i<*length+num;i++)
   {
       printf("请输入第%d个学生信息:",i+1);
       printf("==请输入学号:");
       scanf("%ld",&stu[i].no);          /*学号为长整型*/
       printf("==请输入姓名:");
       scanf("%s",&stu[i].name);         /*姓名为字符型,长度为10*/
       printf("==请输入性别:");
       scanf("%s",&stu[i].sex);          /*性别为字符型,长度为3*/
       printf("==请输入专业:");
       scanf("%s",&stu[i].major);        /*专业为字符型,长度为20*/
       printf("==请输入数学成绩:");
       scanf("%d",&stu[i].math);         /*数学成绩*/
       printf("==请输入语文成绩:");
       scanf("%d",&stu[i].chinese);      /*语文成绩*/
       printf("==请输入英语成绩:");
       scanf("%d",&stu[i].english);       /*英语成绩*/
       printf("==请输入专业成绩:");
       scanf("%d",&stu[i].score);        /*专业成绩*/
       stu[i].total=stu[i].math+stu[i].chinese+stu[i].english+stu[i].score;
   }
   print(stu,&i);
}

/*按姓名查找,删除*/
void del(struct student *stu,int length)
{
   long int num;
   int i,j;
   printf("请输入学号:");
   scanf("%ld",&num);
   for(i=0;i<length;i++)
   {
       if(num==stu[i].no)
       {
           for(j=i+1;j<length;j++)
           {
               stu[j-1].no=stu[j].no;
               strcpy(stu[j-1].name,stu[j].name);
               strcpy(stu[j-1].sex,stu[j].sex);
               strcpy(stu[j-1].major,stu[j].major);
               stu[j-1].math=stu[j].math;
               stu[j-1].chinese=stu[j].chinese;
               stu[j-1].english=stu[j].english;
               stu[j-1].score=stu[j].score;
               stu[j-1].total=stu[j].total;
           }
           break;
       }
   }
   length--;
}


/*查找并显示模块*/

void find(struct student *stu,int length)
{
   long int num;
   int i;
   printf("请输入您要查找的学号:");
   scanf("%ld",&num);
   for(i=0;i<length;i++)
   {
      if(num==stu[i].no)
      {
          printf("\n\t================================学生信息================================\n");
          printf("\t************************************************************************\n");
          printf("\t|  学号  |  姓名  | 性别 |  专业  | 数学 | 语文 | 英语 | 专业课 | 总分 |\n");
          printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
          printf("\t|%-8ld|%-8s|%-6s|%-8s",stu[i].no,stu[i].name,stu[i].sex,stu[i].major);
          printf("|%-6d|%-6d|%-6d|%-8d|%-6d|\n",stu[i].math,stu[i].chinese,stu[i].english,stu[i].score,stu[i].total);
          printf("\t************************************************************************\n");
      }
   }
   getch();
   return;
}


/*修改学生信息模块*/

void modify(struct student *stu,int length)
{
    char name[10];
    char ch;
    int i;
    printf("请您输入要修改的学生的姓名:");
    scanf("%s",name);
    for(i=0;i<length;i++);
    {
        if(strcmp(name,stu[i].name)==0)
        {
            printf("\n\t================================学生信息================================\n");
            printf("\t************************************************************************\n");
            printf("\t|  学号  |  姓名  | 性别 |  专业  | 数学 | 语文 | 英语 | 专业课 | 总分 |\n");
            printf("\t|--------|--------|------|--------|------|------|------|--------|------|\n");
            printf("\t|%-8ld|%-8s|%-6s|%-8s",stu[i].no,stu[i].name,stu[i].sex,stu[i].major);
            printf("|%-6d|%-6d|%-6d|%-8d|%-6d|\n",stu[i].math,stu[i].chinese,stu[i].english,stu[i].score,stu[i].total);
            printf("\t************************************************************************\n");
             printf("您确定要修改该学生信息(y/n)");
             scanf("%c",&ch);
            if(ch=='y'||ch=='Y')
            {
                printf("\n==请输入学号:");
                scanf("%ld",&stu[i].no);          /*学号为长整型*/
                printf("==请输入姓名:");
                scanf("%s",&stu[i].name);         /*姓名为字符型,长度为10*/
                printf("==请输入性别:");
                scanf("%s",&stu[i].sex);          /*性别为字符型,长度为3*/
                printf("==请输入专业:");
                scanf("%s",&stu[i].major);        /*专业为字符型,长度为20*/
                printf("==请输入数学成绩:");
                scanf("%d",&stu[i].math);         /*数学成绩*/
                printf("==请输入语文成绩:");
                scanf("%d",&stu[i].chinese);      /*语文成绩*/
                printf("==请输入英语成绩:");
                scanf("%d",&stu[i].english);       /*英语成绩*/
                printf("==请输入专业成绩:");
                scanf("%d",&stu[i].score);        /*专业成绩*/
                stu[i].total=stu[i].math+stu[i].chinese+stu[i].english+stu[i].score;
                                                /*计算该学生成绩总分*/
            }
   
        }
    }
}

还没有写完、添加学生资料模块、修改学生信息模块和删除该学生资料不知道怎么弄了
求大神帮忙一下,指点一下,
非常感谢
搜索更多相关主题的帖子: english major 新手上路 英语成绩 include 
2013-05-19 21:51
我叫小刀
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-5-19
收藏
得分:0 
急求!!!!!!!
2013-05-19 22:25
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:3 
别用结构体数组了,用链表可以解决问题
2013-05-19 23:49
C语系爱好者
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2013-4-7
收藏
得分:3 
估计是问度娘了吧,班级管理系统不用这么复杂,用动态链表方便些
2013-05-20 00:03
黄辉
Rank: 4
等 级:业余侠客
帖 子:106
专家分:255
注 册:2013-4-28
收藏
得分:3 
学习中。。。。。

你不勇敢,谁替你坚强。。。
2013-05-22 12:37
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:3 
添加删除,你看一下文件操作,用流文件进行操作

Maybe
2013-05-22 13:55
wycat
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-5-22
收藏
得分:3 
xuexizhong.....
2013-05-22 15:36
clovey10000
Rank: 2
等 级:论坛游民
帖 子:30
专家分:39
注 册:2013-4-24
收藏
得分:3 
好强悍的样子。。。
2013-05-22 17:04
快速回复:新手上路、求助、编写出错了
数据加载中...
 
   



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

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