# include
# include
Struct student
{
int num;
Char name [20].
Char sex [5].
int age;
Char spe [10]./* */
Int cla./* class */
};
Struct Node
{
Struct student data;
Struct Node * next;
};
//structure variables said header
Struct Node * createlist ()
{
Struct Node * headNode=(struct Node *) malloc (sizeof (struct Node));
If (headNode==NULL)
{
Printf (" application space failed! \n");
exit(0);
}
HeadNode - & gt; Next=NULL;
Return headNode;
}
//create node
Struct Node * createNode (struct student data)
{
Struct Node * newNode=(struct Node *) malloc (sizeof (struct Node));
NewNode - & gt; Data=https://bbs.csdn.net/topics/data;
NewNode - & gt; Next=NULL;
Return the newNode;
}
//print list
Void printlist (struct Node * headNode)
{
Struct Node * pMove=headNode - & gt; Next;
Printf (" student id \ \ t t name gender \ professional \ \ t t t age class \ n ");
While (pMove)
{
Printf (" % d % s \ \ t t t % d \ % s \ \ t t % s % d ", pMove - & gt; Data. The num, pMove - & gt; Data. The name, pMove - & gt; Data. The sex, pMove - & gt; Data. The age, pMove - & gt; Data. The spe, pMove - & gt; Data. Cla);
PMove=pMove - & gt; Next;
}
printf("\n");
}
//insert node method (head)
Void insertNodeByHead (struct Node * headNode, struct student data)
{
Struct Node * newNode=createNode (data);
NewNode - & gt; Next=headNode - & gt; Next;
HeadNode - & gt; Next=newNode;
}
//delete
Void deleteAppoinNode (struct Node * headNode, char * name)
{
Struct Node * posNode=headNode - & gt; Next;
Struct Node * posFrontNode=headNode;
If (posNode==NULL)
{
Printf (" data is empty, can't delete! \n");
return;
}
While (STRCMP (posNode - & gt; Data. The name, the name))
{
PosFrontNode=posNode;
PosNode=posFrontNode - & gt; next;
If (posNode==NULL)
{
Printf (" cannot delete specified location was not found, \ n ");
return;
}
}
PosFrontNode - & gt; Next=posNode - & gt; Next;
Free (posNode);
}
//query function
Struct Node * searchInfoByData (struct Node * headNode, char * name)
{
Struct Node * pMove=headNode - & gt; Next;
If (pMove==NULL)
Return NULL;
While (STRCMP (pMove - & gt; Data. The name, the name))
{
PMove=pMove - & gt; Next;
}
Return pMove;
}
//file read
/* void readInfoFromFile (struct Node * headNode, char * fileName)
{
FILE *fp;
Struct student data;
Fp=fopen (fileName, "r");
If (fp==NULL);
{
Fp=fopen (fileName, "w +");
}
While (fscanf (fp, "% d \ t % s % d \ % s \ \ t t t t % d \ % s \ n", & amp; Data. The num, data. The name, data. Sex, & amp; Data. The age, the data. The spe, & amp; Data. Cla)!=(EOF)
{
InsertNodeByHead (headNode, data);
}
fclose(fp);
}
//file write
Void writeInfoToFile (struct Node * headNode, char * fileName)
{
FILE *fp;
Struct Node * pMove=headNode - & gt; Next;
Fp=fopen (fileName, "w");
While (pMove)
{
Fprintf (fp, "% s \ \ % d t t t % d \ % s \ \ t t % s % d", pMove - & gt; Data. The num, pMove - & gt; Data. The name, pMove - & gt; Data. The sex, pMove - & gt; Data. The age, pMove - & gt; Data. The spe, pMove - & gt; Data. Cla);
PMove=pMove - & gt; Next;
}
fclose(fp);
}
*/
Void menu ()
{
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- [] student information management system -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1, inputting information -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 2, query information -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3, delete information -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 4, browse information -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
}
Void keyDown ()
{
Struct Node * list=createlist ();
Int choice=0;
Struct student data;
Struct Node * pMove=NULL;
Printf (" please input your choice: ");
The scanf (" % d ", & amp; Choice);
The switch (choice)
{
Case 1:
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- information [enter] -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - \ n ");
Printf (" please enter the student student id, name, gender, age, profession, class: ");
The scanf (" % d % d % d % s % s % s ", & amp; Data. The num, data. The name, data. Sex, & amp; Data. The age, the data. The spe, & amp; Data. Cla);
InsertNodeByHead (list, data);
break;
Case 2:
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- [query information] -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - \ n ");
Printf (" please enter to find student's name: ");
The scanf (" % s ", data. The name).
PMove=searchInfoByData (list, data name);
If (pMove==NULL)
{
Printf (" did not find relevant information, unable to query! \n");
system("pause");
}
The else
{
Printf (" student id \ \ t t name gender \ professional \ \ t t t age class \ n ");
Printf (" % d % s \ \ t t t % d \ % s \ \ t t % s % d ", pMove - & gt; Data. The num, pMove - & gt; Data. The name, pMove - & gt; Data. The sex, pMove - & gt; Data. The age, pMove - & gt; Data. The spe, pMove - & gt; Data. Cla);
}
break;
Case 3:
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- information [deleted] -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - \ n ");
Printf (" please enter the student's name: delete ");
The scanf (" % s ", data. The name).
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull