报告软件工程课程设计实验报告-学生信息管理系统.doc 联系客服

发布时间 : 星期四 文章报告软件工程课程设计实验报告-学生信息管理系统.doc更新完毕开始阅读939484cbacf8941ea76e58fafab069dc50224795

专业课件 }

return ; }

void Qur(Link l) /*按学号或姓名,查询学生记录*/ {

int select; /*1:按学号查,2:按姓名查,其他:返回主界面(菜单)*/ char searchinput[20]; /*保存用户输入的查询内容*/ Node *p;

if(!l->next) /*若链表为空*/ {

system(\

printf(\ getchar(); return;

}

system(\

printf(\ =====>1 Search by number =====>2 Search by name\\n\ printf(\ please choice[1,2]:\ scanf(\

if(select==1) /*按学号查询*/ {

stringinput(searchinput,10,\

p=Locate(l,searchinput,\在l中查找学号为searchinput值的节点,并返回节点的指针*/

if(p) /*若p!=NULL*/ {

printheader(); printdata(p); printf(END);

printf(\ getchar(); } else

Nofind(); getchar(); }

else if(select==2) /*按姓名查询*/ {

stringinput(searchinput,15,\ p=Locate(l,searchinput,\ if(p) {

printheader();

课件

专业课件 printdata(p); printf(END);

printf(\ getchar(); } else

Nofind(); getchar(); } else

Wrong(); getchar(); }

void Del(Link l) /*删除学生记录:先找到保存该学生记录的节点,然后删除该节点*/ {

int sel;

Node *p,*r;

char findmess[20]; if(!l->next) {

system(\

printf(\ getchar(); return; }

system(\ Disp(l);

printf(\ =====>1 Delete by number =====>2 Delete by name\\n\ printf(\ please choice[1,2]:\ scanf(\ if(sel==1) {

stringinput(findmess,10,\ p=Locate(l,findmess,\ if(p) /*p!=NULL*/ {

r=l;

while(r->next!=p) r=r->next;

r->next=p->next;/*将p所指节点从链表中去除*/ free(p); /*释放内存空间*/

printf(\ getchar(); saveflag=1;

课件

专业课件 } else

Nofind(); getchar(); }

else if(sel==2) {

stringinput(findmess,15,\

p=Locate(l,findmess,\ /*先按姓名查询到该记录所在的节点*/ if(p) {

r=l;

while(r->next!=p) r=r->next; r->next=p->next; free(p);

printf(\ getchar(); saveflag=1; } else

Nofind(); getchar(); } else

Wrong(); getchar(); }

void Modify(Link l) /*修改学生记录。先按输入的学号查询到该记录,然后提示用户修改学号之外的值,学号不能修改*/ {

Node *p;

char findmess[20]; if(!l->next) {

system(\

printf(\ getchar(); return; }

system(\

printf(\ Disp(l);

课件

专业课件 stringinput(findmess,10,\输入并检验该学号*/ p=Locate(l,findmess,\查询到该节点*/ if(p) /*若p!=NULL,表明已经找到该节点*/ {

printf(\ printf(\

stringinput(p->data.name,15,\

printf(\

p->data.cgrade=numberinput(\

printf(\

p->data.mgrade=numberinput(\

printf(\

p->data.egrade=numberinput(\

p->data.total = p->data.egrade + p->data.cgrade + p->data.mgrade; p->data.ave=(float)(p->data.total/3); p->data.mingci=0;

printf(\ Disp(l); saveflag=1; } else

Nofind(); getchar(); }

void Insert(Link l) /*插入记录,按学号查询到要插入的节点的位置,然后在该学号之后插入一个新节点*/ {

Link p,v,newinfo; /*p指向插入位置,newinfo指新插入记录*/

char ch,num[10],s[10]; /*s[]保存插入点位置之前的学号,num[]保存输入的新记录的学号*/

int flag=0; v=l->next; system(\ Disp(l); while(1) {

stringinput(s,10,\ after the Number:\ flag=0;

课件