首页 新闻 会员 周边 捐助

学员注册系统

0
[待解决问题]

一、语言和环境

A、实现语言

C语言

B、环境要求

    VC++ 6.0

C、时间

   120分钟

二、要求

 

请编写一个C语言程序,完成学生的注册功能。

程序的功能要求如下:

1)  启动程序,首先进入欢迎界面和主界面,且主界面能够循环显示

 

2)  选择1,程序提示输入学生信息(学号,姓名,性别,年龄,入学成绩),输入完毕后屏幕打印当前学生信息,并将学生信息保存到文件

 

3) 选择2,屏幕打印所有注册的学生信息

 

 

4) 选择 3,退出程序

 

、算法说明

 

用结构体数组保存学员信息,用fscanf();fprintf();实现文件读写

四、推荐实现步骤

 

1、全局变量

 

1)      定义一个用于存放学生信息的结构体数组:

struct student{

 int   sno;  //学号

 char  name[10];  //姓名

char  sex[4]; //性别

        int age;  //年龄

        float  score; //入学成绩

};

struct  student  students[100]; //可容纳100个学生的数组

 2)定义一个全局变量int  maxTag =-1,存放最后一个学员的下标(初值为-1)。

3) 声明文件指针FILE  *fp

2、 函数声明

  void  addStu();  //添加学生信息

  void  readData(); //读文件

  void  writeData(); //写文件

  void  displayCurrent(int  index);  //显示当前信息

  void  displayAll();  //显示全部信息

3、编写main函数

1) 调用maxTag = readData()函数, 把数据从文件读到结构体数组中。

2) 调用addStu()函数,增加学生信息,并显示该学员信息。

3) 在addStu()中调用writeData()函数, 把每增加一个新学员的结构体数组重新写入文件中。

4、编写addStu函数

   1)定义是否继续变量  char  answer;

   2 ) 在循环中输入学生信息

   3)输入结束后提示是否继续,如果继续continue  否则调用writeData(),退出循环

 

5、编写readData()子函数 (返回值为最后一个元素的下标)

  1) 打开文件student.txt,以r+的方式打开

     

2)  用while循环,和fscanf()读取文件信息,退出循环的循环条件是feof(fp),如果文件为空(fp==NULL)则返回-1,否则返回i-2(i为循环变量,表示元素下标,从0开始)

3) 关闭文件 fclose(fp);

 

6、编写writeData()子函数

 

1)      打开文件student.txt,以w+的方式打开

2)      用for循环,和fprintf()写入文件,循环条件是i<=end,如果文件指针为空(fp==NULL)则报错,并退出整个程序(exit(0);注意头文件的引入 #include <stdlib.h>)

3)关闭文件 fclose(fp);

tzz0124的主页 tzz0124 | 菜鸟二级 | 园豆:202
提问于:2012-05-29 08:53
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册