C语言编辑

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:08:31
有一些学生记录比如
学号 姓名 语文 数学 英语
056 zhang 85 46 57
057 cun 80 76 86
058 li 90 76 61
059 lin 91 46 88
若输入你要删除记录的学号,然后就删除掉
若要添加记录和修改记录呢??
这样的程序怎么写??哪个高手帮忙下!!!!!!!!
能不能不用指针和链表,用最简单的方法!!

同意楼上的。这里假定你的数据量不大,比如只有1,2个班级的,在数据搜索方面就不做优化了。

先定义一个struct用来存储每个记录的数据,其中包含一个指针用来指向下一个记录。
typedef struct _STUDENT
{
struct STUDENT * next;
int number; //学号
char name[10]; //姓名一般不会超过9个字符吧
int chinese; //语文成绩
int math; //数学成绩
int english; //英语成绩
} STUDENT;

再定义一个各种操作的enum变量集
typedef enum _MYOPERATION
{
addSTUDENT = 1,
deleteSTUDENT = 2,
changeSTUDENT = 3,
} MYOPERATION;

再定义一个出错信息enum
typedef enum _MYERROR
{
noError = 0,
inValidNumber = 1,
inValidFirst = 2,
inValidOperation = 3,
notEnoughMemory = 4,
} MYERROR;

下面是一个函数用来执行对链表的上述操作
MYERROR modifyStudent(STUDENT * first, MYOPERATION operation, int number, char* name, int chinese, int math, int english)
{
STUDENT * current;
STUDENT * previous;
int i;

if (number <= 0) return inValidNumber;
if (first == NULL) return inValidFirst;
current = f