?? kao7.cpp
字號:
}
if(flag==0)
break;
}
}
//****************************按成績排序輸出****************************************
void paixu1() //按分數(shù)排序
{
Stud *H,*L,*P;
int i,j,flag,n;
n=tongji(); //調(diào)用統(tǒng)計個數(shù)函數(shù)
for(i=0;i<n-1;i++)
{
flag=0; //跳出控制符
H=head;
L=H->next;
P=L->next;
for(j=1;j<n-i;j++)
{
if(L->chengji.pingjun<P->chengji.pingjun)
{ //如果當前結(jié)點同學平均成績小于下個結(jié)點平均成績則通過指針調(diào)換前后順序
H->next=P;
L->next=P->next;
P->next=L;
flag=flag+1;
}
H=H->next;
L=H->next;
P=L->next;
}
if(flag==0)
break;
}
}
//*********************************按學號查詢***************************************
void find(long b)
{
w=head->next;
while(w!=NULL&&b!=w->xuehao) //查找該學生,找到其結(jié)點
w=w->next;
if(!w)
printf("!不存在該學生!\n");
else
{
printf("\n學號 姓名 性別 系別 班級 宿舍 電話 家庭地址 \n");
output(); //調(diào)用輸出學籍基本信息函數(shù)
printf("\n考試成績: 高數(shù) 英語 算法 匯編 電路 體育 總分 平均分 \n");
printf(" ");
output1(); //調(diào)用輸出成績信息函數(shù)
printf("\n");
printf("\n課表信息: 星期一 星期二 星期三 星期四 星期五\n");
output2(); //調(diào)用輸出課表信息函數(shù)
}
}
//********************************按名字查詢*******************************************
void find1(char b[])
{
w=head->next;
while(w!=NULL&&strcmp(b,w->name)!=0) //查找該同學的結(jié)點
w=w->next;
if(!w)
printf("!不存在該同學!\n");
else
{
printf("\n學號 姓名 性別 系別 班級 宿舍 電話 家庭地址 \n");
output(); //調(diào)用輸出學籍基本信息函數(shù)
printf("\n考試成績 高數(shù) 英語 算法 匯編 電路 體育 總分 平均分 \n");
printf(" ");
output1(); //調(diào)用輸出成績信息函數(shù)
printf("\n");
printf("\n課表信息: 星期一 星期二 星期三 星期四 星期五\n\n");
output2(); //調(diào)用輸出課表信息函數(shù)
}
}
//********************************統(tǒng)計學生信息個數(shù)****************************************
int tongji()
{
Stud *p=head;
int n=0;
while(p->next!=NULL)
{
p=p->next;
n++;
}
return n;
}
//********************************按學號刪除信息*******************************************
void xuehaoDel(long x)
{
stud *p,*s;
p=head;
long b=x;
while(p->xuehao!=b&&p->next!=NULL) //查找該同學
{
s=p;
p=p->next;
}
if (p->next==NULL)
printf("!不存在該學生!\n");
else
{
printf("!刪除成功!\n");
s->next=p->next; //通過指針指向下一個來刪除當前結(jié)點
free(p); // 釋放已刪除的結(jié)點
}
}
//*******************************按姓名刪除************************************************
void nameDel(char b[])
{
stud *p,*s;
p=head;
while(p!=NULL&&strcmp(b,p->name)!=0) //按姓名查找信息
{
s=p;
p=p->next;
}
if (p->next==NULL)
printf("!不存在該學生!\n");
else
{
printf("!刪除成功!\n");
s->next=p->next; //通過指針指向下一個來刪除當前結(jié)點
free(p); //釋放刪除完的結(jié)點
}
}
//*********************************保存學生信息****************************************
void close() //保存學生信息
{ Stud *p;
p=head->next;
fi1=fopen("student.txt","wb"); //打開二進制文件
while(p!=NULL)
{
fwrite(p,sizeof(Stud),1,fi1); //把運行環(huán)境中的鏈表信息輸出到文件保存
p=p->next;
}
fclose(fi1); //關閉文件
}
//******************************載入信息庫的學生信息**********************************************
void open()//打開學生庫信息
{
Stud *sp,*sq;
head=(Stud *)malloc(sizeof(Stud)); ///申請個結(jié)點作為鏈表表頭
head->next=NULL;
sp=head;
if((fi1=fopen("student.txt","rb"))!=NULL) //打開二進制文件
{
while(!feof(fi1))
{
sq=(Stud *)malloc(sizeof(Stud)); //申請一個新結(jié)點存放數(shù)據(jù)
if(!fread(sq,sizeof(Stud),1,fi1)) break; //把文件對應的信息存到剛申請的結(jié)點
sp->next=sq;
sp=sp->next;
}
sp->next=NULL; //鏈表尾指空
fclose(fi1); //關閉文件
}
}
//******************************更新學生信息***************************************************
void gengxin(long b)
{
int choose1=1;
w=head->next;
while(w!=NULL&&b!=w->xuehao) //按學號查找信息
w=w->next;
while(!w)
{
printf("\n!不存在該學生!\n請重新輸入學號:\n");
scanf("%ld",&b);
w=head->next;
while(w!=NULL&&b!=w->xuehao) //按學號查找
w=w->next;
}
printf("\n學號 姓名 班級\n\n");
printf("%ld %s %s\n\n",w->xuehao,w->name,w->banji);
caidan5(); //調(diào)用修改信息類型子菜單
while (choose1!=0)
{
scanf("%d",&choose1);
switch (choose1)
{
case 1: //進入修改學籍基本信息功能小模塊
printf("\n學號 姓名 性別 系別 班級 宿舍 電話 家庭地址 \n");
output(); //調(diào)用輸出學籍基本信息函數(shù)
printf("輸入新的信息\n");
printf("\n姓名 性別 系別 班級 宿舍 電話 家庭地址 \n");
scanf("%s%s%s%s%s%s%s",w->name,w->sex,w->xibie,w->banji,w->sushe,w->tel,w->address);
printf("信息更新成功!\n");
choose1=0;
break;
case 2: //進入修改成績信息功能小模塊
printf("\n學號 姓名 班級 高數(shù) 英語 算法 匯編 電路 體育 總分 平均分 \n");
printf("%-6ld%-6s%-6s",w->xuehao,w->name,w->banji);
output1(); //調(diào)用輸出成績信息函數(shù)
printf("\n輸入新的成績");
printf("\n 高數(shù) 英語 算法 匯編 電路 體育\n");
scanf("%f%f%f",&w->chengji.math,&w->chengji.english,&w->chengji.suanfa);
scanf("%f%f%f",&w->chengji.huibian,&w->chengji.dianlu,&w->chengji.tiyu);
w->chengji.total=w->chengji.math+w->chengji.english+w->chengji.suanfa+w->chengji.huibian+w->chengji.dianlu+w->chengji.tiyu;//計算總分
w->chengji.pingjun=w->chengji.total/6; // 算平均分
printf("信息更新成功!\n");
choose1=0;
break;
case 3: //進入修改課程信息功能小模塊
shuru1();
choose1=0;
break;
default:
printf("\n選擇錯誤,請重新選擇!\n");
printf("請選擇修改類型>>");
break;
}
}
}
//****************************輸入信息函數(shù)*************************************************
void shuru()
{
float x,y;
w=R;
printf("姓名 性別 系別 班級 宿舍 電話 家庭地址\n");
scanf("%s%s%s%s%s%s%s",w->name,w->sex,w->xibie,w->banji,w->sushe,w->tel,w->address);
printf("高數(shù) 英語 算法 匯編 電路 體育\n");
scanf("%f%f%f",&w->chengji.math,&w->chengji.english,&w->chengji.suanfa);
scanf("%f%f%f",&w->chengji.huibian,&w->chengji.dianlu,&w->chengji.tiyu);
x=w->chengji.math+w->chengji.english+w->chengji.suanfa+w->chengji.huibian;
x=x+w->chengji.dianlu+w->chengji.tiyu; //這兩行計算總分
y=x/6; //計算平均分
w->chengji.total=x;w->chengji.pingjun=y;
shuru1(); //調(diào)用輸入課表函數(shù)
}
void shuru1() //輸入課表函數(shù)
{
printf("\n星期一課表: 1-2節(jié) 3-4節(jié) 5-6節(jié) 7-8節(jié) 9-10節(jié)\n");
scanf("%s%s%s%s%s",w->kecheng.mon1,w->kecheng.mon2,w->kecheng.mon3,w->kecheng.mon4,w->kecheng.mon5);
printf("\n星期二課表: 1-2節(jié) 3-4節(jié) 5-6節(jié) 7-8節(jié) 9-10節(jié)\n");
scanf("%s%s%s%s%s",w->kecheng.tues1,w->kecheng.tues2,w->kecheng.tues3,w->kecheng.tues4,w->kecheng.tues5);
printf("\n星期三課表: 1-2節(jié) 3-4節(jié) 5-6節(jié) 7-8節(jié) 9-10節(jié)\n");
scanf("%s%s%s%s%s",w->kecheng.wed1,w->kecheng.wed2,w->kecheng.wed3,w->kecheng.wed4,w->kecheng.wed5);
printf("\n星期四課表: 1-2節(jié) 3-4節(jié) 5-6節(jié) 7-8節(jié) 9-10節(jié)\n");
scanf("%s%s%s%s%s",w->kecheng.thur1,w->kecheng.thur2,w->kecheng.thur3,w->kecheng.thur4,w->kecheng.thur5);
printf("\n星期五課表: 1-2節(jié) 3-4節(jié) 5-6節(jié) 7-8節(jié) 9-10節(jié)\n");
scanf("%s%s%s%s%s",w->kecheng.fri1,w->kecheng.fri2,w->kecheng.fri3,w->kecheng.fri4,w->kecheng.fri5);
}
//*********************************輸出學籍基本信息********************************************
void output() //輸出學籍基本信息
{
printf("%-10ld",w->xuehao);
printf("%-10s",w->name);
printf("%-10s",w->sex);
printf("%-10s",w->xibie);
printf("%-10s",w->banji);
printf("%-10s",w->sushe);
printf("%-10s",w->tel);
printf("%-10s",w->address);
}
//********************************輸出成績信息***********************************************
void output1()//輸出成績信息
{
printf("%-8.2f",w->chengji.math);
printf("%-8.2f",w->chengji.english);
printf("%-8.2f",w->chengji.suanfa);
printf("%-8.2f",w->chengji.huibian);
printf("%-8.2f",w->chengji.dianlu);
printf("%-8.2f",w->chengji.tiyu);
printf("%-8.2f",w->chengji.total);
printf("%-8.2f",w->chengji.pingjun);
}
//********************************輸出課表信息**********************************************
void output2() //輸出課表信息
{
printf("1-2 節(jié): %-13s%-13s%-13s%-13s%-13s\n",w->kecheng.mon1,w->kecheng.tues1,w->kecheng.wed1,w->kecheng.thur1,w->kecheng.fri1);
printf("3-4 節(jié): %-13s%-13s%-13s%-13s%-13s\n",w->kecheng.mon2,w->kecheng.tues2,w->kecheng.wed2,w->kecheng.thur2,w->kecheng.fri2);
printf("5-6 節(jié): %-13s%-13s%-13s%-13s%-13s\n",w->kecheng.mon3,w->kecheng.tues3,w->kecheng.wed3,w->kecheng.thur3,w->kecheng.fri3);
printf("7-8 節(jié): %-13s%-13s%-13s%-13s%-13s\n",w->kecheng.mon4,w->kecheng.tues4,w->kecheng.wed4,w->kecheng.thur4,w->kecheng.fri4);
printf("9-10節(jié): %-13s%-13s%-13s%-13s%-13s\n",w->kecheng.mon5,w->kecheng.tues5,w->kecheng.wed5,w->kecheng.thur5,w->kecheng.fri5);
printf("\n");
}
///*****************************以下是操作菜單函數(shù)定義************************************////
void caidan() //總操作菜單函數(shù)
{
printf(" * * * * * * * * * * * * * * * * * * * * *\n");
printf(" * ~歡迎進入廣西工學院 *\n");
printf(" * 學籍信息管理系統(tǒng)~ *\n");
printf(" * *\n");
printf(" * ★ 操作目錄 ★ *\n");
printf(" * *\n");
printf(" * ☆ 1>> 錄入學生信息 *\n");
printf(" * ☆ 2>> 學號升序輸出 *\n");
printf(" * ☆ 3>> 成績排名輸出 *\n");
printf(" * ☆ 4>> 查詢學生信息 *\n");
printf(" * ☆ 5>> 統(tǒng)計學生個數(shù) *\n");
printf(" * ☆ 6>> 更新學生信息 *\n");
printf(" * ☆ 7>> 刪除學生信息 *\n");
printf(" * ☆ 0>> 安全保存退出 *\n");
printf(" * * * * * * * * * * * * * * * * * * * * *\n");
}
//*****************************************************************************
void caidan1()
{
printf(" *************************************************\n");
printf(" *************************************************\n");
printf(" ★查詢學生信息子菜單★ \n");
printf(" \n");
printf(" 1>> 按學號查詢 \n");
printf(" \n");
printf(" 2>> 按姓名查詢 \n");
printf(" \n");
printf(" 0>> 返回總菜單 \n");
}
//*****************************************************************************
void caidan2()
{
printf(" *************************************************\n");
printf(" *************************************************\n");
printf(" ★刪除學生信息子菜單★ \n");
printf(" \n");
printf(" 1>> 按學號刪除 \n");
printf(" \n");
printf(" 2>> 按姓名刪除 \n");
printf(" \n");
printf(" 3>> !全部刪除! \n");
printf(" \n");
printf(" 0>> 返回總菜單 \n");
}
//****************************************************************************
void caidan3()
{
printf(" *************************************************\n");
printf(" *************************************************\n");
printf(" ★錄入新學生信息★ \n");
}
//***************************************************************************
void caidan4()
{
printf(" *************************************************\n");
printf(" *************************************************\n");
printf(" ★按學號升序排列輸出學生信息★ \n");
printf(" \n");
printf(" 1>> 輸出學籍基本信息 \n");
printf(" \n");
printf(" 2>> 輸出考試成績 \n");
printf(" \n");
printf(" 3>> 輸出學生課表 \n");
printf(" \n");
printf(" 0>> 返回總菜單 \n");
}
//***************************************************************************
void caidan5()
{
printf("請選擇修改類型: \n");
printf(" \n");
printf(" 1>> 修改學生基本信息 \n");
printf(" \n");
printf(" 2>> 修改學生成績信息 \n");
printf(" \n");
printf(" 3>> 修改學生課程信息 \n");
}
//****************************************************************************
void caidan6()
{
printf(" *************************************************\n");
printf(" *************************************************\n");
printf(" ★更新學生信息子菜單★ \n");
}
//*****************************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -