共7个文件
list.c 用到的链表实现
main.c 主函数入口,controller
main1.c 链表的常规算法
stu.h 头文件
use.c service层
welcome.c view层
student.txt 数据源
teach.txt 数据源
#include"stu.h"
//welcome.c
extern c;
extern a,b;
int d;
void welcome()
{
system("clear");
printf("*********************************************************************************************\n");
printf("FileName:FiveRow.c\n");
printf("Purpose:Increase efficiency manager student information\n");
printf("Author:HanShuai\n");
printf("Data:2016:01:26\n");
// sleep(5);
/*int i=7;
while(i--)
{
system("clear");
sleep(1);
printf("hello\n");
time_t now=time(NULL);
printf("%d",now);
printf("%d : %d : %d \n",now/3600%24+8,now/60%60,now%60);
}*/
system("clear");
printf("*********************************欢迎使用师生信息管理系统***************************************\n");
printf("#####**************************************************************************************#####\n");
printf("please input user id\n");
scanf("%d",&a);
printf("please input user passwd\n");
scanf("%d",&b);
}
void superuser()
{
system("clear");
printf("-----------------------------欢迎进入管理员界面---------------------\n");
printf("-------------------------A 添加用户信息-------------------------------\n");
printf("-------------------------D 删除用户信息-------------------------------\n");
printf("-------------------------P 查看用户信息-------------------------------\n");
printf("--------q返回主菜单------------Q退出系统------------------------------\n");
printf("*********请选择功能**************************************[A&D&P]\n");
}
void teachuser()
{
system("clear");
printf("Teacher login\n");
printf("----------------------------欢迎使用师生管理系统---------------------\n");
printf("-------------------------A 添加教师信息-------------------------------\n");
printf("-------------------------M 修改教师信息-------------------------------\n");
printf("-------------------------D 删除教师信息-------------------------------\n");
printf("-------------------------S 添加学生成绩-------------------------------\n");
printf("-------------------------E 删除学生成绩-------------------------------\n");
printf("-------------------------F 查询学生成绩-------------------------------\n");
printf("-------------------------L 查询学生信息-------------------------------\n");
printf("--------q返回主菜单------------Q退出系统------------------------------\n");
printf("*********请输入功能选项**************************************[A&M&D&S&E&F&L]\n");
}
void studentuser()
{
system("clear");
printf("Student login\n");
printf("----------------------------欢迎使用师生管理系统---------------------\n");
printf("-------------------------A 注册学生信息-------------------------------\n");
printf("-------------------------S 查询学生信息-------------------------------\n");
printf("-------------------------M 修改学生信息-------------------------------\n");
printf("-------------------------G 查询学生成绩-------------------------------\n");
printf("-------------------------T 查询教师信息-------------------------------\n");
printf("--------q返回主菜单------------Q退出系统------------------------------\n");
printf("*********请输入功能选项**************************************[A&S&M&G&T]\n");
}
int welcomemain(int a,int b)
{
Use *pHead = initListu();
Stu *pHead1 = initList();
Tea *pHead2 = initListT();
d=usetest(pHead,a,b);
if(a==1&&b==111111)
{
printf("your are superuser\n");
superuser();
getchar();
scanf("%c",&c);
getchar();
if(c=='A')
{
printf("请输入你要添加用户的类别,学生用户请按1,老师用户请按2\n");
scanf("%d",&a);
if(a==1)
stuadduse(pHead);
if(a==2)
teaadduse(pHead);
}
else if(c=='D')
{
printf("请输入你要删除的用户名****\n");
usedel(pHead);
}
else if(c=='P')
{
useinformation(pHead);
}
else if(c=='q')
{
main();
}
else if(c=='Q')
{
exit(0);
}
else
{
printf("your input error,please again\n");
}
}
if(d==1)
{
printf("you are student\n");
studentuser();
getchar();
scanf("%c",&c);
getchar();
if(c=='A')
{
addstudent(pHead1);
}
else if(c=='S')
{
findstudent(pHead1);
}
else if(c=='M')
{
changestudent(pHead1);
}
else if(c=='G')
{
findscore(pHead1);
}
else if(c=='T')
{
findteach(pHead2);
}
else if(c=='q')
{
main();
}
else if(c=='Q')
{
exit(0);
}
else
{
printf("your input error,please again\n");
}
}
if(d==2)
{
printf("you are teach\n");
teachuser();
getchar();
scanf("%c",&c);
getchar();
if(c=='A')
{
addteach(pHead2);
}
else if(c=='M')
{
changeteach(pHead2);
}
else if(c=='D')
{
delteach(pHead2);
}
else if(c=='S')
{
addstudent(pHead1);
}
else if(c=='E')
{
delstudent(pHead1);
}
else if(c=='F')
{
findscore(pHead1);
}
else if(c=='L')
{
findstudent(pHead1);
}
else if(c=='q')
{
main();
}
else if(c=='Q')
{
exit(0);
}
else
{
printf("your input error,please again\n");
}
}
return 0;
}`
#include "stu.h"
//list.c
void show(Stu *pHead)
{
printf("--------------------------\n");
Stu *pTmp = pHead->next;
while(pTmp)
{
printf("%s %d %c %d\n",pTmp->name,pTmp->id,pTmp->gender,pTmp->score);
pTmp = pTmp->next;
}
}
void showt(Tea *pHead1)
{
printf("--------------------------\n");
Tea *pTmp = pHead1->next;
while(pTmp)
{
printf("%s %d %s %d\n",pTmp->name,pTmp->age,pTmp->subject,pTmp->rank);
pTmp = pTmp->next;
}
}
void showu(Use *pHead2)
{
printf("--------------------------\n");
Use *pTmp = pHead2->next;
while(pTmp)
{
printf("%d %d %c\n",pTmp->id,pTmp->passwd,pTmp->status);
pTmp = pTmp->next;
}
}
Stu *initList()
{
Stu *pHead = malloc(sizeof(Stu));
if(NULL == pHead)
{
printf("create phead failed\n");
return NULL;
}
pHead->next = NULL;
}
Tea *initListT()
{
Tea *pHead = malloc(sizeof(Tea));
if(NULL == pHead)
{
printf("create phead1 failed\n");
return NULL;
}
pHead->next = NULL;
}
Use *initListu()
{
Use *pHead = malloc(sizeof(Use));
if(NULL == pHead)
{
printf("create phead2 failed\n");
return NULL;
}
pHead->next = NULL;
}
int clear(Stu *pHead)
{
Stu *pTmp = pHead->next;
Stu *pPrev = pTmp;
while(pTmp)
{
pPrev = pTmp;
pHead->next = pTmp->next;
pTmp = pTmp->next;
free(pPrev);
pPrev = NULL;
}
return 0;
}
int cleart(Tea *pHead)
{
Tea *pTmp = pHead->next;
Tea *pPrev = pTmp;
while(pTmp)
{
pPrev = pTmp;
pHead->next = pTmp->next;
pTmp = pTmp->next;
free(pPrev);
pPrev = NULL;
}
return 0;
}
int clearu(Use *pHead)
{
Use *pTmp = pHead->next;
Use *pPrev = pTmp;
while(pTmp)
{
pPrev = pTmp;
pHead->next = pTmp->next;
pTmp = pTmp->next;
free(pPrev);
pPrev = NULL;
}
return 0;
}
int destroy(Stu *pHead)
{
clear(pHead);
free(pHead);
pHead = NULL;
return 0;
}
int destroyt(Tea *pHead1)
{
cleart(pHead1);
free(pHead1);
pHead1 = NULL;
return 0;
}
int destroyu(Use *pHead2)
{
clearu(pHead2);
free(pHead2);
pHead2 = NULL;
return 0;
}
//创建新结点
static Stu *createNewNode(Stu data)
{
Stu *newNode = malloc(sizeof(Stu));
if(NULL == newNode)
{
printf("malloc failed\n");
return NULL;
}
memcpy(newNode,&data,sizeof(data));
newNode->next = NULL;
return newNode;
}
static Tea *createNewNodet(Tea data)
{
Tea *newNode = malloc(sizeof(Tea));
if(NULL == newNode)
{
printf("malloc failed\n");
return NULL;
}
memcpy(newNode,&data,sizeof(data));
newNode->next = NULL;
return newNode;
}
static Use *createNewNodeu(Use data)
{
Use *newNode = malloc(sizeof(Use));
if(NULL == newNode)
{
printf("malloc failed\n");
return NULL;
}
memcpy(newNode,&data,sizeof(data));
newNode->next = NULL;
return newNode;
}
int pushBack(Stu *pHead,Stu data)
{
//在尾结点处进行插入
Stu *pTmp;
Stu *pData = createNewNode(data);
if(pHead->next == NULL)
{
pHead->next = pData;
pData->next = NULL;
return 0;
}
pTmp = pHead->next;
while(pTmp->next)
pTmp = pTmp->next;
pTmp->next = pData;
pData->next = NULL;
return 0;
}
int pushBackt(Tea *pHead,Tea data)
{
//在尾结点处进行插入
Tea *pTmp;
Tea *pData = createNewNodet(data);
if(pHead->next == NULL)
{
pHead->next = pData;
pData->next = NULL;
return 0;
}
pTmp = pHead->next;
while(pTmp->next)
pTmp = pTmp->next;
pTmp->next = pData;
pData->next = NULL;
return 0;
}
int pushBacku(Use *pHead,Use data)
{
//在尾结点处进行插入
Use *pTmp;
Use *pData = createNewNodeu(data);
if(pHead->next == NULL)
{
pHead->next = pData;
pData->next = NULL;
return 0;
}
pTmp = pHead->next;
while(pTmp->next)
pTmp = pTmp->next;
pTmp->next = pData;
pData->next = NULL;
return 0;
}
int getSize(Stu *pHead)
{
int size = 0;
Stu *pTmp = pHead->next;
while(pTmp)
{
size++;
pTmp = pTmp->next;
}
return size;
}
int insert(Stu *pHead,Stu data,int pos)
{
Stu *pTmp = pHead->next;
Stu *pData = createNewNode(data);
if(pos <=0 || pos > getSize(pHead)+1)
{
printf("pos valid\n");
return -1;
}
if(pos == 1)
{
pushFront(pHead,data);
return 0;
}
if(pos == getSize(pHead)+1)
{
pushBack(pHead,data);
return 0;
}
pos = pos-1;
while(--pos)
{
pTmp = pTmp->next;
}
pData->next = pTmp->next;
pTmp->next = pData;
return 0;
}
int pushFront(Stu *pHead,Stu data)
{
Stu *pData = createNewNode(data);
if(pHead->next == NULL)
{
pHead->next = pData;
pData->next = NULL;
return 0;
}
Stu *pNode = pHead->next;
pHead->next = pData;
pData->next = pNode;
return 0;
}
//从尾部删除结点
int popBack(Stu *pHead)
{
//只有一个头指针
if(pHead->next == NULL)
return 0;
Stu *pTmp = pHead->next;
Stu *pPrev = pTmp;
//只有一个头结点
if(pTmp->next == NULL)
{
free(pTmp);
pTmp = NULL;
pHead->next = NULL;
return 0;
}
//查找链表的尾结点,进行空间释放
while(pTmp->next)
{
pPrev = pTmp;
pTmp = pTmp->next;
}
free(pTmp);
pTmp = NULL;
pPrev->next = NULL;
return 0;
}
//从链表头部进行删除
int popFront(Stu *pHead)
{
//只有一个头指针
if(pHead->next == NULL)
return 0;
Stu *pTmp = pHead->next;
//只有一个头结点
if(pTmp->next == NULL)
{
free(pTmp);
pTmp = NULL;
pHead->next = NULL;
return 0;
}
pHead->next = pTmp->next;
free(pTmp);
pTmp = NULL;
return 0;
}
int delByPos(Stu *pHead,int pos)
{
Stu *pTmp = pHead->next;
Stu *pPrev = pTmp;
if(pos <= 0 || pos > getSize(pHead))
{
printf("pos valid\n");
return -1;
}
if(pos == 1)
{
popFront(pHead);
return 0;
}
while(--pos)
{
pPrev = pTmp;
pTmp = pTmp->next;
}
pPrev->next = pTmp->next;
free(pTmp);
pTmp = NULL;
return 0;
}
int delByData(Stu *pHead,char *data)
{
Stu *pTmp = pHead->next;
int index=1;
while(pTmp->next)
{
if(memcmp(pTmp->name,data,strlen(data)) == 0)
{
delByPos(pHead,index);
index--;
}
index++;
pTmp = pTmp->next;
}
}
void stuadduse(Use *pHead)
{
Use g;
int i=1;
FILE *fp=fopen("use.txt","a");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
printf("添加用户的格式为 用户名+密码+类别(老师类别为t,学生类别为s,用户名和密码都为阿拉伯数字)eg:12 13 s\n");
scanf("%d %d %c",&g.id,&g.passwd,&g.status);
fwrite(&g,sizeof(g),1,fp);
fclose(fp);
fp=fopen("use.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
pushBacku(pHead,g);
}
showu(pHead);
destroyu(pHead);
fclose(fp);
}
void teaadduse(Use *pHead)
{
Use g;
int i=1;
FILE *fp=fopen("use.txt","a");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
printf("添加用户的格式为 用户名+密码+类别(老师类别为t,学生类别为s,用户名和密码都为阿拉伯数字)eg:12 13 t\n");
scanf("%d %d %c",&g.id,&g.passwd,&g.status);
fwrite(&g,sizeof(g),1,fp);
fclose(fp);
fp=fopen("use.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
pushBacku(pHead,g);
}
showu(pHead);
destroyu(pHead);
fclose(fp);
}
void useinformation(Use *pHead)
{
Use g;
int i=1;
FILE *fp=fopen("use.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
pushBacku(pHead,g);
}
showu(pHead);
destroyu(pHead);
fclose(fp);
}
void usedel(Use *pHead)
{
Use g;
int data;
int i=1;
scanf("%d",&data);
FILE *fp=fopen("use.txt","r+");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
printf("hello\n");
printf("%d\n",g.id);
if(g.id==data)
continue;
pushBacku(pHead,g);
}
showu(pHead);
fclose(fp);
fp=fopen("use.txt","w");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
Use *pTmp=pHead->next;
while(pTmp)
{
fwrite(pTmp,sizeof(g),1,fp);
pTmp=pTmp->next;
}
destroyu(pHead);
fclose(fp);
}
int usetest(Use *pHead,int idd,int passwdd)
{
Use g;
FILE *fp=fopen("use.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
if(((g.id==idd && g.passwd==passwdd) && g.status=='s')==1)
{
fclose(fp);
return 1;
}
if(((g.id==idd && g.passwd==passwdd )&& g.status == 't')==1)
{
fclose(fp);
return 2;
}
}
fclose(fp);
return 0;
}
void addstudent(Stu* pHead)
{
Stu g;
FILE *fp=fopen("student.txt","a");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
printf("添加学生信息的格式是 姓名 + 学号 + 性别 + 分数,eg hanmeimei 1001 m 99\n");
scanf("%s %d %c %d",g.name,&g.id,&g.gender,&g.score);
fwrite(&g,sizeof(g),1,fp);
fclose(fp);
fp=fopen("student.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
pushBack(pHead,g);
}
show(pHead);
destroy(pHead);
fclose(fp);
}
int findstudent(Stu* pHead)
{
printf("请输入学生的姓名 eg:hanmeimei\n");
char name1[30];
scanf("%s",name1);
Stu g;
FILE *fp=fopen("student.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
if(strcmp(g.name,name1)==0)
{
printf("您查询的信息为\n");
printf("name=%s id= %d gender=%c score=%d\n",g.name,g.id,g.gender,g.score);
fclose(fp);
return 1;
}
}
printf("查无此人\n");
fclose(fp);
return 1;
}
int findscore(Stu* pHead)
{
printf("请输入学生的姓名 eg:hanmeimei\n");
char name1[30];
scanf("%s",name1);
Stu g;
FILE *fp=fopen("student.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
if(strcmp(g.name,name1)==0)
{
printf("您查询的成绩为\n");
printf("name= %s, score=%d\n",g.name,g.score);
fclose(fp);
return 1;
}
}
printf("查无此人\n");
fclose(fp);
return 1;
}
int findteach(Tea *pHead)
{
Tea g;
FILE *fp=fopen("teach.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
pushBackt(pHead,g);
}
showt(pHead);
destroyt(pHead);
fclose(fp);
}
int changestudent(Stu *pHead)
{
printf("请输入学生的信息 eg:hanmeimei 1001 f 88\n");
Stu h;
scanf("%s %d %c %d",h.name,&h.id,&h.gender,&h.score);
Stu g;
FILE *fp=fopen("student.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
if(strcmp(g.name,h.name)==0)
{
pushBack(pHead,h);
continue;
}
pushBack(pHead,g);
}
show(pHead);
fclose(fp);
fp=fopen("student.txt","w");
Stu *pTmp=pHead->next;
while(pTmp)
{
fwrite(pTmp,sizeof(g),1,fp);
pTmp=pTmp->next;
}
fclose(fp);
return 1;
}
void addteach(Tea *pHead)
{
Tea g;
FILE *fp=fopen("teach.txt","a");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
printf("添加学生信息的格式是 姓名 + 年龄 + 学科 + 等级,eg hanmeimei 35 math 3\n");
scanf("%s %d %s %d",g.name,&g.age,g.subject,&g.rank);
fwrite(&g,sizeof(g),1,fp);
fclose(fp);
fp=fopen("teach.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
pushBackt(pHead,g);
}
showt(pHead);
destroyt(pHead);
fclose(fp);
}
int changeteach(Tea *pHead)
{
printf("请输入老师的信息 eg:hanmeimei 25 math 1\n");
Tea h,g;
scanf("%s %d %s %d",h.name,&h.age,h.subject,&h.rank);
FILE *fp=fopen("teach.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
if(strcmp(g.name,h.name)==0)
{
pushBackt(pHead,h);
continue;
}
pushBackt(pHead,g);
}
showt(pHead);
fclose(fp);
fp=fopen("teach.txt","w");
Tea *pTmp=pHead->next;
while(pTmp)
{
fwrite(pTmp,sizeof(g),1,fp);
pTmp=pTmp->next;
}
fclose(fp);
return 1;
}
int delteach(Tea *pHead)
{
printf("请输入老师的名字 eg:hanmeimei\n");
Tea h,g;
scanf("%s",h.name);
FILE *fp=fopen("teach.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
if(strcmp(g.name,h.name)==0)
{
continue;
}
pushBackt(pHead,g);
}
showt(pHead);
fclose(fp);
fp=fopen("teach.txt","w");
Tea *pTmp=pHead->next;
while(pTmp)
{
fwrite(pTmp,sizeof(g),1,fp);
pTmp=pTmp->next;
}
fclose(fp);
return 1;
}
int delstudent(Stu *pHead)
{
printf("请输入学生姓名 eg:hanmeimei\n");
Stu h;
scanf("%s",h.name);
Stu g;
FILE *fp=fopen("student.txt","r");
if(fp==NULL)
{
printf("failed\n");
exit(0);
}
while(fread(&g,sizeof(g),1,fp)!=0)
{
if(strcmp(g.name,h.name)==0)
{
continue;
}
pushBack(pHead,g);
}
show(pHead);
fclose(fp);
fp=fopen("student.txt","w");
Stu *pTmp=pHead->next;
while(pTmp)
{
fwrite(pTmp,sizeof(g),1,fp);
pTmp=pTmp->next;
}
fclose(fp);
return 1;
}
`#include"stu.h"
//main.c
int a,b;
char c;
int main()
{
welcome();
welcomemain(a,b);
return 0;
}
#ifndef STU_H
#define STU_H
//stu.h
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
typedef struct stu
{
char name[30];
int id;
char gender;
int score;
struct stu *next;
}Stu;
typedef struct tea
{
char name[30];
int age;
char subject[30];
int rank;
struct tea *next;
}Tea;
typedef struct user
{
int id;
int passwd;
char status;
struct user *next;
}Use;
//创建头指针
Stu *initList();
Tea *initListT();
Use *initListu();
//清空链表
int clear(Stu *pHead);
int cleart(Tea *pHead);
int clearu(Use *pHead);
//销毁链表
int destroy(Stu *pHead);
int destroyt(Tea *pHead);
int destroyu(Use *pHead);
//从尾部插入
int pushBack(Stu *pHead,Stu data);
int pushBackt(Tea *pHead,Tea data);
int pushBacku(Use *pHead,Use data);
//获取链表长度
int getSize(Stu *pHead);
void stuadduse(Use *pHead);
void teaadduse(Use *pHead);
void useinformation(Use *pHead);
void usedel(Use *pHead);
int usetest(Use *pHead,int x,int y);
void addstudent(Stu *pHead);
int findstudent(Stu *pHead);
int findscore(Stu *pHead);
int findteach(Tea *pHead);
int changestudent(Stu *pHead);
void addteach(Tea *pHead);
int changeteach(Tea *pHead);
int delteach(Tea *pHead);
int delstudent(Stu *pHead);
#endif
#include "stu.h"
//这个代码是早期mian版本,现在已经没用了
void show(Stu *pHead)
{
printf("--------------------------\n");
Stu *pTmp = pHead->next;
while(pTmp)
{
printf("%s %d %c %d\n",pTmp->name,pTmp->id,pTmp->gender,pTmp->score);
pTmp = pTmp->next;
}
}
void showt(Tea *pHead1)
{
printf("--------------------------\n");
Tea *pTmp = pHead1->next;
while(pTmp)
{
printf("%s %d %s %d\n",pTmp->name,pTmp->workage,pTmp->subject,pTmp->rank);
pTmp = pTmp->next;
}
}
void showu(Use *pHead2)
{
printf("--------------------------\n");
Use *pTmp = pHead2->next;
while(pTmp)
{
printf("%d %d %c\n",pTmp->id,pTmp->passwd,pTmp->status);
pTmp = pTmp->next;
}
}
int main()
{
Stu a = {"hanmeimei",10001,'f',90};
Stu b = {"lilei",10002,'m',80};
Stu c = {"lily",10003,'f',91};
Tea a1 = {"zhangsan",2,"chinese",2};
Tea b1 = {"lisi",3,"math",4};
Tea c1 = {"wangwu",5,"English",3};
Use a2 = {1,111111,'r'};
Use b2 = {2,123456,'t'};
Use c2 = {51,111111,'s'};
Stu *head = initList();
Tea *head1 = initListT();
Use *head2 = initListu();
FILE *fp2=fopen("use.txt","wb");
if(NULL==fp2)
{
printf("failed\n");
return -1;
}
pushBacku(head2,a2);
fwrite(&a2,sizeof(Use),1,fp2);
showu(head2);
pushBacku(head2,b2);
fwrite(&b2,sizeof(Use),1,fp2);
showu(head2);
pushBacku(head2,c2);
fwrite(&c2,sizeof(Use),1,fp2);
showu(head2);
FILE *fp1=fopen("teach.txt","wb");
if(NULL==fp1)
{
printf("failed\n");
return -1;
}
pushBackt(head1,a1);
fwrite(&a1,sizeof(Tea),1,fp1);
showt(head1);
pushBackt(head1,b1);
fwrite(&b1,sizeof(Tea),1,fp1);
showt(head1);
pushBackt(head1,c1);
fwrite(&c1,sizeof(Tea),1,fp1);
showt(head1);
FILE *fp=fopen("student.txt","wb");
Stu d = {"lucy",10003,'f',91};
pushBack(head,d);
fwrite(&d,sizeof(Stu),1,fp);
show(head);
/* scanf("%s %d %c %d",d.name,&d.id,&d.gender,&d.score);
pushBack(head,d);
fwrite(&d,sizeof(Stu),1,fp);
show(head);*/
pushBack(head,a);
fwrite(&a,sizeof(Stu),1,fp);
show(head);
pushBack(head,b);
fwrite(&b,sizeof(Stu),1,fp);
show(head);
pushBack(head,c);
fwrite(&c,sizeof(Stu),1,fp);
show(head);
fclose(fp1);
fclose(fp);
fclose(fp2);
cleart(head1);
destroyt(head1);
clear(head);
show(head);
clearu(head2);
destroyu(head2);
destroy(head);
printf("--------------------------------------------------------------------------------\n");
fp=fopen("student.txt","a");
if(fp==NULL)
{
printf("fail\n");
return 0;
}
int i=1;
while(i)
{
scanf("%s %d %c %d\n",a.name,&a.id,&a.gender,&a.score);
fwrite(&a,sizeof(a),1,fp);
printf("halt please input 0,others 1\n");
printf("%d",&i);
}
fclose(fp);
printf("-----------------------------\n");
fp=fopen("student.txt","a");
if(fp==NULL)
{
printf("failed\n");
return -1;
}
head = initList();
while(fread(&a,sizeof(Stu),1,fp)!=0)
{
printf("sdsa\n");
pushBack(head,a);
}
show(head);
fclose(fp);
return 1;
}