# include & ltstdlib.h & gt
# include & ltstring.h & gt
# include & ltmalloc.h & gt
結構學生
{
int num
char name[20];
char tel[20];
結構學生*下壹個;
};
struct student *head、*tmp1、* tmp2
int n;
無效載荷()
{
FILE * FP 1;
int I;
fp1=fopen("file.txt "," Rb ");
結構學生* tmp
struct student * q;
Printf("開始讀取學生信息\ n ");
head = 0;
while(1){
tmp = malloc(size of(struct student));
tmp-& gt;next = 0;
//i=fscanf(fp1,"學號:%d姓名:%s電話:% s \ n ",&;(tmp->;num),tmp-& gt;名稱,tmp-& gt;電話);
i=fread(tmp,sizeof(struct student),1,FP 1);
if(i==1){
if(head==0)
q = head = tmp
Printf("讀取壹條學生信息\ n ");
q->;next = tmp
q = q-& gt;接下來;
}否則{
fclose(FP 1);
返回;
}
}
}
無效輸出()
{
tmp 1 =頭;
而(tmp1!=0)
{
Printf("學生ID: %d姓名:%s電話:%s\n ",tmp 1-& gt;num,tmp 1->;名稱,tmp 1->;電話);
tmp 1 = tmp 1-& gt;接下來;
}
}
無效輸入( )
{ struct學生*q,* p;
Printf("請按要求添加學生信息:\ n ");
p=malloc(sizeof(結構學生));
Printf("請輸入學號:");
scanf("%d ",& ampp->;num);
printf(" \ n請輸入學生姓名:");
scanf("%s ",p-& gt;姓名);
printf(" \ n請輸入學生電話號碼:");
scanf("%s ",p-& gt;電話);
p->;next = 0;
if(head==0){
head = p;
q = p;
}否則{
q =頭;
while(q->;下壹個!=0)
{
q = q-& gt;接下來;
}
q->;next = p;
q = p;
}
}
void刪除()
{ struct學生*q,* p;
int numint I;/*這裏的num是什麽冠詞*/
Printf("請輸入要刪除的記錄I \ n ");
scanf("%d ",& ampnum);
if(num==1)
{ head = head-& gt;接下來;}/*刪除頭節點*/
p =頭部;
for(I = 1;我& ltnum-1;I++) /*將p移動到要刪除的節點*/
{ p = p-& gt;接下來;}
if(num & gt;1)
p->;next =(p-& gt;下壹個)-& gt;接下來;/*例如,鏈接2個4節點並刪除3個節點*/
Printf("刪除成功,請檢查\ n ");
}
無效搜索()
{ char c[20];
char tmp 2 _ num[20];
Printf("請輸入要查詢的信息:\ n ");
scanf("%s ",c);
Printf("妳要查詢的是:\ n ");
tmp2 =頭;/*遍歷*/
而(tmp2!=0)
{
Printf("學生ID: %d姓名:%s電話:%s\n ",tmp 2-& gt;num,tmp 2-& gt;名稱,tmp 2-& gt;電話);
if(strncacecmp(tmp 2-& gt;name,c,strlen(c))==0)
Printf("名稱匹配成功\ n ");
/*匹配*/
if(strncacecmp(tmp 2-& gt;tel,c,strlen(c))==0)
Printf("電話匹配成功\ n ");
sprintf(tmp2_num," %d ",tmp 2-& gt;num);
if(strncacescmp(tmp 2 _ num,c,strlen(c))==0)
Printf("學號匹配成功\ n ");
tmp 2 = tmp 2-& gt;接下來;
}
}
無效保存()
{
FILE * FP 1;
struct student *q,* p 1;
fp1=fopen("file.txt "," w ");
p 1 = 0;
p 1 =頭;
if(head==0)
{
Printf("現在沒有學生信息,請先添加學生信息:\ n ");
}
而(p1!=0)
{
//fprintf(fp1,"學生ID: %d姓名:%s電話:%s\n ",p 1-& gt;num,p 1->;名稱,p 1->;電話);
fwrite(p1,sizeof(struct student),1,FP 1);
Printf("學生ID: %d姓名:%s電話:%s\n ",p 1-& gt;num,p 1->;名稱,p 1->;電話);
p 1 = p 1->;接下來;
}
fclose(FP 1);
}
無效更改()
{ struct student * p;
int numint I;/*這裏的num是什麽冠詞*/
Printf("請輸入要修改的記錄I \ n ");
scanf("%d ",& ampnum);
p =頭部;
for(I = 1;我& ltnumi++)
{
p = p-& gt;接下來;
}
Printf("學生ID: %d姓名:%s電話:%s\n ",p-& gt;num,p->姓名,p-& gt;電話);
Printf("請修改學號:");
scanf("%d ",& ampp->;num);
Printf("請修改學生姓名:");
scanf("%s ",p-& gt;姓名);
Printf("請修改學生電話號碼:");
scanf("%s ",p-& gt;電話);
}
int main()
{
head = tmp 1 = 0;
while(1)
{
printf(" \ n \ n ");
Printf ("\ t \ t * *歡迎使用學生管理系統* * \ n ");
Printf ("\ t \ t * *請按要求輸入相應的信息* * \ n ");
Printf ("\ t \ t * * 0。加載學生信息* * \ n ");
Printf ("\ t \ t * * 1。查看學生情況* * \ n ");
Printf("\t\t*** 2。添加學生信息* * * \ n”);
Printf("\t\t*** 3。刪除學生記錄* * * \ n ");
Printf("\t\t*** 4。查詢學生記錄* * * \ n ");
Printf("\t\t*** 5。保存學生信息* * * \ n”);
Printf("\t\t*** 6。修改學生信息* * * \ n ");
Printf ("\ t \ t * * 7。退出* * * \ n ");
Printf("選擇函數:");
scanf("%d ",& ampn);
開關(n)
{
案例0:
load();
打破;
案例1:
OutPut();
打破;
案例二:
InPut();
打破;
案例三:
delete();
打破;
案例4:
search();
打破;
案例5:
save();
打破;
案例六:改變();
打破;
案例7:
退出(0);
打破;
默認值:
Printf("此功能暫時不可用");
}
}
}