1、学生选修课程系统设计说明书课程设计说明书课 程 名 称:计算机科学与技术程序设计语言-课程设计课 程 代 码: 8404091 题 目: 学生选修课程系统设计 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 2010 年 06 月 18 日完 成 时 间: 2010 年 07 月 02 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日目 录1 引 言 11.1 设计背景 11.2任务与分析 12 程序的主要功能 22.1管理员功能 22.2学生功能 22.3浏览功能 22.4查询功能
2、22.5添加功能 22.6删除功能 23 程序运行平台 34 总体设计 44.1 系统功能结构图 44.2 数据结构 55 模块分析 55.1 结构体声明,创建链表及主函数模块 55.2 管理员模块 75.3 学生模块 95.4 浏览模块 105.5 查询模块 115.6 插入链表模块 115.7 添加模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.8 删除模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.9 选修
3、课程模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 系统测试 167 结论 21参考文献 21s摘 要大学期间总会有很多公共选修课,以往的选课方法是随堂报名。这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。原因是传统的选课方法没有预见性,大家没有事先协调好。使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,不用浪费体力去选课,还可以使教学资源合理平均地分配。全校性选修课的目的在于扩大学生的知识面,加强学生素质教育,培养复合型高级人才,具
4、有不可替代的重要性!随着教育改革的不断深入和素质教育的加强完全学分制的实施,选修课在一个学生的培养计划中站的比重越来越大!关键词:选修课;素质教育; 开拓知识面 1 引 言 1.1 设计背景全校性选修课的目的在于扩大学生的知识面,加强学生素质教育,培养复合型高级人才,具有不可替代的重要性!随着教育改革的不断深入和素质教育的加强完全学分制的实施,选修课在一个学生的培养计划中站的比重越来越大! 1.2任务与分析 本课程设计假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统
5、,使之能提供以下功能:系统以菜单方式工作1、课程信息录入功能(课程信息用文件保存)输入2、课程信息浏览功能输出3、查询功能:(至少一种查询方式)算法 按学分查询、按课程性质查询4、学生选修课程(可选项)。分析:首先根据要解决的问题进行分析和总体设计,定义的数据结构使用链表结构体定义存储数据)和函数,然后进行详细编码,在主函数中对各功能函数进行测试。划分为模块形式:管理员和学生模块!分别实现各自功能能!浏览,查找添加,删除,选择等!2 程序的主要功能2.1管理员功能管理员功能一共有四个:浏览课程,查询课程,添加课程,删除课程。运用字符串处理函数处理密码的问题,用一个switch语句实现函数的调用
6、。2.2学生功能学生功能菜单包括五个功能:浏览所有课程,查询所有课程,选择选修课程,浏览所选课程,删除错选课程,用switch语句调用函数.2.3浏览功能浏览模块主要应用与管理员模块中的浏览课程,和学生中的浏览所有课程及浏览学生所选课程,即:从文件中读出数据;2.4查询功能查询功能主要用于管理员功能中的“查询课程”和学生功能模块中的”查询所有课程”,查询模块共分为三个查询方法:按课程名称查找,按课程性质查找和按学分查找.switch语句中,每一个case语句就是一中查询方法2.5添加功能通过链表方式,管理员添加新课程信息。2.6删除功能删除模块主要应用于管理员删除哪门课程的信息,主要应用删除链
7、表中的哪个节点来实现。3 程序运行平台Microsoft visual c+ 6.0具体操作如下:(1) 进入Microsoft visual c+ 6.0集成环境。(2) 输入自己所编好的程序(3) 检查已输入程序是否有误,如发现及时改正(4) 进行编译和链接。如在编译和链接过程中发生错误,屏幕上会显示出“报错信息”,根据提示找出错误位置和原因,加以改正。在进行编译与连接!(5) 运行并分析运行结果是否合理和正确4 总体设计4.1 系统功能结构图学生菜单管理员菜单主 菜 单浏览课程 浏览我选修的课程删除错选的课程选择选修课程查询课程信息浏览所有课程删除课程添加课程查询课程4.2 数据结构本系
8、统的实现,全部采用链表这种数据结构,用链表实现课程的查找,添加,删除,课程的选修,追加选修的课程.课程信息采用结构体这种数据结构.5 模块分析5.1 结构体声明,创建链表及主函数模块主函数设计比较简单,只是提供一个主菜单,switch语句将整个程序分为两个大的功能模块!#include#include #include typedef struct subjects /定义课程信息结构体 int num; /课程编号 char name20; /课程名称 char kind10; /课程性质 int stime; /总学时 int ttime; /授课学时 int etime; /实验或上机学
9、时 int score; /学分 int term; /开课学期 struct subjects *next;SUB;SUB *head=NULL;SUB *create_form() /创建链表 SUB *head,*tail,*p; int num,stime,ttime; int etime,score,term; char name20,kind10; head=tail=NULL; printf(输入选修课程信息:n); scanf(%d%s%s%d%d%d%d%d,&num,name,kind,&stime,&ttime,&etime,&score,&term); while(nu
10、m!=0) p=(SUB *)malloc(sizeof(SUB); 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; if(head=NULL) head=p; else tail-next=p; tail=p; scanf(%d%s%s%d%d%d%d%d,&num,name,kind,&stime,&ttime,&etime,&score,&term); tail-next=NULL; r
11、eturn head;int main() int n,w=1; do system(cls); puts(nntt*MENU*nn); puts(tttt1.以管理员身份登录n); puts(tttt2.以学生身份登录n); puts(tttt3.退出); puts(nntt*n); printf(Chiose your number(1-3): bb); scanf(%d,&n); switch(n) case 1:Mangers() ; break; case 2:Students(); break; case 3:w=0; break; default:; while(w=1); re
12、turn 0;5.2 管理员模块管理员功能一共有四个:浏览课程,查询课程,添加课程,删除课程。运用字符串处理函数处理密码的问题,用一个switch语句实现函数的调用。管理员菜单void Mangers() int n,w=1,flag=0,i=3; char s8; char password7=1; do printf(nnEnter password:); scanf(%s,s); if(!strcmp(s,password) /进行密码匹配验证 flag=1; break; else printf(nnError! You only have %d times! Enter again:
13、n,i-1); i-; while(i0); if(!flag) printf(you have Enter 3 times!); /输入密码超过了3次! exit(0); /自动退出 do system(cls); puts(nntt*管理员菜单*nn); puts(tttt1-浏览课程n); puts(tttt2-查询课程n); puts(tttt3-添加课程n); puts(tttt4-删除课程n); puts(tttt5-返回主菜单); puts(nntt*n); printf(Chiose your number(1-5): bb); scanf(%d,&n); switch(n) case 1:prin(); break; case 2:search(); break; case 3:insert(); savefile(); break; case
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1