第 3 页 共 28页
2.4 详细设计
2.4.1主函数,头文件及结构体声明
主函数main()函数设计地比较简洁,只是提供一个主菜单,switch语句将整个程序分为两个大的功能模块:
2.4.2 管理员功能模块
管理员Mangers()函数的功能一共有四个功能:录入,浏览,查询,删除课程,运用字符串处理函数处理密码的问题,用一个switch语句实现函数的调用:
管理员登录菜单 进入下一层 选择序号进行选课 进入选课系统
i=3 是 i>0 否 输入密码 是 进行码匹对验证 否 进入管理员界面 按任意键退出
第 4 页 共 28页
2.4.3学生功能菜单
学生功Students()函数能菜单包括六个功能:浏览课程,查询课程,选修课程,浏览我所选修的课程,添加选修课程,删除错选的课程,也是用到switch语句来调用函数:
学生登录菜单 按1-6数字键进入各选项
1、浏览所有课程 2、查询课程信息 3、选择选修课程 4、浏览我选修的课程 5、删除错选课程 6、返回主菜单
进入所选目标 2.4.4创建链表模块
创建链表模块create_form()函数,用于录入课程信息:
第 5 页 共 28页
创建链表 输入选修课程信息(num,name,kind,stime,ttime,etime,score,term) 是 Num!=0 否 p=(SUB *)malloc(size); p->num=num; strcpy(p->name,name); strcpy(p->kind,kind); p->stime=stime; p->ttime=ttime; p->etime=etime; p->score=score; p->term=term; 否 Head==NULL 是 Tail->next=p; Tail=p; Head=p Scanf(num,name,kind,&stime,&ttime,&etime,&score,&term); Tail->next=NULL; Return head; 创建完成
2.4.5浏览模块
浏览模块主要用管理员中的“浏览课程”prin()函数和学生功能中的“浏览所
第 6 页 共 28页
有所有课程”prin1()函数,将所有的课程信息输出,即将all_sub.txt文件里面的内容全部输出:
浏览所有课程 SUB *ptr; head=NULL; readfile(); 是 Head==NULL 否 Printf(NO RECORDS); Return; 输出课程信息
2.4.6查询模块
查询模块search() 函数主要用于管理员功能中的“查询课程”和学生功能模块中的“查询所有课程”,查询模块共分为三个查询方法:按课程名称查找,按课程性质查找和按学分查找switch语句中,每一个case语句就是一中查询方法:
第 7 页 共 28页
课程信息查询 按1-3数字键进入各选项 1、按课程性质查找 2、按学分查找 3、退出查找 进入所选目
2.4.7插入链表模块
插入链表myInsert(SUB *subj)函数操作主要用于添加课程,在整个课程信息中加入一些新课程,它在添加模块中被调用: