C语言课程设计报告
printf(\课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\\n\
for(ptr=head;ptr;ptr=ptr->next) if(ptr->score==num) {
printf(\ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);
t=0; } if(t) printf(\未找到!\\n\ t=1; system(\ goto L1; case 4:break; } }t=0; } if(t)
printf(\未找到!\\n\t=1;
system(\goto L1;
case 4:break; //退出查找
} }
(七) 插入链表模块
插入链表操作主要用于添加课程,在整个课程信息中加入一些新课程,它在添加模块中被调用:
15
C语言课程设计报告
插入链表模块 SUB *p1,*p2; p1=subj; 是 head==NULL 否 head=p1; head->next=NULL; 是 否 p2=head;p2; 是 p2->next==NULL 否 p2->next=subj; subj->next=NULL; break;
[程序]
void *myInsert(SUB *subj) //链表插入操作 {
SUB *ptr,*ptr2; ptr=subj; if(head==NULL) { head=ptr; head->next=NULL; } else {
eturn head;
16
C语言课程设计报告
for(ptr2=head;ptr2;ptr2=ptr2->next) if(ptr2->next==NULL) { ptr2->next=subj;
插入课程信息 SUB *ptr,*subj; int size=sizeof(SUB); char ch,ch1; 是 ch!='0' 否 输入(课程信息、课程编号、课程名称、课程性质、总学分、授课学分、实践或上机学时) myInsert(subj); printf(\继续插入请按回车\\ C语言课程设计报告 ch1=getchar(); ch=getchar(); }
subj->next=NULL; break; } }
return head;
Return head;
(八) 添加模块
添加模块主要用于增加课程信息,采用链表的操作:
17
C语言课程设计报告
[程序]
void *insert() //插入课程信息 { SUB *ptr,*subj; int size=sizeof(SUB); char ch,ch1; while(ch!='0') {
subj=(SUB *)malloc(size); ptr=subj;
printf(\输入要插入的课程信息:\\n\
printf(\请输入课程编号:\ printf(\请输入课程名称:\ printf(\请输入课程性质:\ printf(\请输入总学时:\printf(\请输入授课学时:\printf(\请输入实践或上机学时:\scanf(\
printf(\请输入学分:\printf(\请输入开课学期:\myInsert(subj);
printf(\继续插入请按回车\\n\printf(\结束添加课程按 0: [ ]\\b\\b\
ch1=getchar(); /*将回车键赋给CH1,否则subj->term输完后输入的回车键会赋给CH,因此用CH1填补。*/
ch=getchar(); } return head; }
(九) 删除模块
删除模块主要用于管理员删除课程信息学生删除自己的选课,全部采用删除链表中的某一个节点的操作:
18
C语言课程设计报告
删除选修课程 SUB *p1,*p2; char ch,ch1; int num printf(输入想要删除的课程编号); scanf(\进行编号查找并删除 printf(\继续删除请按回车\\n\printf(\结束删除课程按 0: \19