| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 381 人关注过本帖
标题:c语言编程求助---下面的这个程序编了一半 其他的有些不会求高手帮忙
只看楼主 加入收藏
syl13140
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-14
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
c语言编程求助---下面的这个程序编了一半 其他的有些不会求高手帮忙
/* student.txt是文本文件,记录班级学生信息 */
/* 程序的功能:添加学生记录,查询班级学生信息 */
#include "stdio.h"
typedef struct student{       /*学生记录的结构体*/
    long id;          /*记录ID*/
    long no;          /*记录学生学号*/
    char name[11];    /*记录学生姓名*/
    char sex[3];         /*记录学生性别*/
    //int  age;         /*记录学生年龄*/
    char nation[11]; /*记录学生民族*/
    char address[21]; /*记录学生家庭所在地*/
    char classes[15];   /*记录学生所在班级*/
    char college[11];   /*记录学生所在学院*/
}ST;
ST a[500];            /*学生结构体数组*/
int size;            /*学生总数*/

void readfile()
 {
    FILE *fp; int i,n; ST *p=a;
    if((fp=fopen("student.txt", "r")) == NULL)
    {printf("can not open file student.txt!\n");
    exit(0);  }
    i=0;
    //fscanf(fp,"%*ld%*ld%*s%*s%*s%*s%*s%*s");
    do
    {n=fscanf(fp,"%ld%ld%s%s%s%s%s%s",&p->id,&p->no,p->name,
             p->sex,p->nation,p->address,p->classes,
             p->college);
     p++;i++;
    }while(n>0);
     size=i-1;
     fclose(fp);
}
 void savefile()
 {
    FILE *fp; int i,n; ST *p=a;
    if((fp=fopen("student.txt", "w")) == NULL)
    {printf("can not open file student.txt!\n");
    exit(0);  }
    //fprintf(fp,"序号 学号     姓名   性别 民族     来源地区         班级     学院\n");
    for(i=0;i<size;i++,p++)
    fprintf(fp,"%-4ld %-6ld %-8s %-2s %-8s %-16s %-6s %-6s\n",
             p->id,p->no,p->name,p->sex,p->nation,
             p->address,p->classes,p->college);
     fclose(fp);
}
void display()
 {
    int i; ST *p=a;

    printf("序号 学号     姓名   性别 民族     来源地区         班级     学院\n");
    for(i=0;i<size;i++,p++)
    printf("%-4ld %-6ld %-8s %-2s %-8s %-16s %-6s %-6s\n",
             p->id,p->no,p->name,p->sex,p->nation,
             p->address,p->classes,p->college);
}


 void addnew()
 {
    int i,n; ST *p=a+size;
    printf(" 请输入学号:");
    scanf("%ld",&p->no);
    printf(" 请输入姓名:");
    scanf("%s",p->name);
    printf(" 请输入性别:");
    scanf("%s",p->sex);
    printf(" 请输入民族:");
    scanf("%s",p->nation);
    printf(" 请输入家庭所在地:");
    scanf("%s",p->address);
    printf(" 请输入所在班级:");
    scanf("%s",p->classes);
    printf(" 请输入所在学院:");
    scanf("%s",p->college);
    size++;
    p->id=size;
 }
 
 void query()
 {
   long no; int i;ST *p;
   printf(" 请输入学号:");
   scanf("%ld",&no);
   for(i=0,p=a;i<size;i++,p++)
   if(p->no==no)break;
   if(i<size)
    printf("%-4ld %-6ld %-8s %-2s %-8s %-16s %-6s %-6s\n",
             p->id,p->no,p->name,p->sex,p->nation,
             p->address,p->classes,p->college);
    else printf("无此学生.\n");
   
 }
int inputchoice()     /*选择操作参数*/
{
    int mychoice;
    printf("\n请用键盘键入数字选择:\n");
    printf("1 - 新生报到.\n");
    printf("2 - 显示全体学生.\n");
    printf("3 - 查询.\n");
    printf("4 - 修改.\n");
    printf("5 - 删除.\n");
    printf("6 - 保存.\n");
    printf("0 - 退出系统.\n");
    scanf("%d",&mychoice);
    return mychoice;
}

int main(void)
{
    int choice;
    readfile();
    while((choice=inputchoice())!=0){
      switch(choice){
      case 1:
         addnew( );
         break;
      case 2:
         display( );break;/*列出所有学生信息*/
      case 3:
         query( );
         break;/*查询学生信息*/
         
      case 6:
         savefile( );
         break;/*保存学生信息*/
      default:
        printf("Input Error.");break;
    }
    }
    /*函数功能:修改学生信息*/
void modify(struct student *parr,int len)
{
int no = 0;
 char ch = '\0';
 int i;
 printf("请您输入要修改的学生的学号:");
 scanf("%d",&no);
 for( i=0; i<len; i++ )
 {
 if(no == parr[i].no)
 {
printf("姓名:%s 学号:%d\n",
parr[i].name,parr[i].no);
 printf("您确定要修改该学生信息(y/n)");
  scanf(" %c",&ch);
  if(ch == 'y')
  {
  printf("请输入姓名:");
  scanf("%s",parr[i].name);
  printf("请输入学号:");
  scanf("%d",&parr[i].no);
  printf("姓名:%s   学号:%d\n",
  parr[i].name,parr[i].no);
  printf("修改成功!");
  getch();
  }
  else
  {
  printf("没有找到该学生");
  getch();
  break;
  }
  }
  }
  return;
  }
    return 0;
}
搜索更多相关主题的帖子: classes address 文本文件 记录 
2012-12-14 17:28
syl13140
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-14
收藏
得分:0 
亲们、求解啊
2012-12-17 18:08
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:14 
哪里不会,说清楚点,面太广不好说,也没人愿意花功夫给你完善这个系统

小小战士,战士中的战斗机!
2012-12-17 18:51
快速回复:c语言编程求助---下面的这个程序编了一半 其他的有些不会求高手帮忙
数据加载中...
 
   



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

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