发布时间 : 星期四 文章报告软件工程课程设计实验报告-学生信息管理系统.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;
课件