网页设计课程设计报告(共15页).doc
精选优质文档-倾情为你奉上钦州学院C语言课程设计报告学生选修课管理系统院系物理与材料科学学院专业自动化学生班级 2008级1班姓名李美月学号 指导教师单位钦州学院指导教师姓名陶卫平指导教师职称讲师2011年6月学生选修课管理系统自动化专业2008级李美月指导教师陶卫平摘要:当今时代是飞速发展的信息时代,在各行个业中离不开信息处理,这正是计算机被广泛应用于信息系统环境。计算机的最到好处的利用它能够进行信息管理,使计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。尤其对复查的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。基于这个问题,有必要建立一个学生选修课系统,使学生选课信息管理工作规范化、系统化、程序化、避免学生选课管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。【关键词】管理员管理;课程查询;学生选课;系统框图;程序;C+设计目的:(1根据C语言课程设计来设计一个实用的系统即学生选课系统。(2设计该系统能够实现选课信息管理工作规范化、系统化、程序化、避免选课管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。(3通过实践,更进一步掌握C语言课程设计理论知识,做到从理论到实践。设计技术指标与要求:由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写,尽量要求做到:(1设计界面要求尽量美观简洁;(2管理员能够对课程信息和用户的管理,以及学生对课程信息的查看和选课。(3用户能够根据提示,输入操作项,调用系统提供的管理功能。(4完成学生选课管理的开发。目录前言 (31 系统设计概述 (31.1程序功能 (32系统设计思想 (43 系统详细设计说明 (43.1设计的具体实现 (43.2 总体流程图 (83.3 总体说明 (83.4操作系统的处理流程图 (93.5 程序运行结果截图 (104 结果分析忽然设计会 (124.1 优缺点 (124.2 实习总结 (12参考文献 (13前言:现代社会是信息社会化社会,信息无处不在。在生产领域、流通领域、各个部门每天都和信息打交道,如何处理此信息成为一个重要课题。学生在学期开学选课是教学活动中的一个重要环节,该环节如果能够管理好,它不仅加快学生选课速度,也提高了整个活动的效率。大学生一般都有上千名学生都要选课,因而产生了大量的课程信息。面对复查的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。1 系统设计概述随着飞速发展及应用水平的不断提高,高校教学管理网络化已成为一种趋势。如何利用互联网这一先进的信息传播手段为研究教学科研服务,已成为目前有待研究和解决的一项重要课题。为此结合实际设计一个能够添加、管理、修改及查询等各个功能的系统。1.1 程序功能学生选修课程系统是为了方便学生能够在网上选择学习课程的一个系统。主要用于管理者能够对课程信息和用户的管理,以及学生对课程信息的查看和选课。为了保存存储信息,系统利用文件将课程信息和用户信息都存储在文件中。系统也为用户提供了简单的人机界面,使用户能够根据提示,输入操作项,调用系统提供的管理功能。主要功能描述如下:(1课程信息的录入此部分是管理者输入课程的相关信息。为学生选课提供基础。(2课程信息的管理课程的管理主要包括课程信息的增加和课程信息的删除。(3学生信息的录入输入此系统的操作人员的信息。保障该系统的实用性。(4学生信息的管理学生的管理也是包括对学生信息的增加和删除,完成对系统的更新操作。(5学生选课选择选课后进入此部分的子程序,子程序包括学生选课,查询可以选择的课程,退课以及查询已经选择的课程。(6信息查看及其存储此部分包括四大部分输出课程信息,输出学生信息,存储课程信息到文件,存储学生信息到文件。查看课程信息能够方便学生浏览课程信息,查看学生信息是方便学生信息及选课情况。文件存储都能很好的保存信息。(7退出此部分的功能是退出系统。2系统设计思想由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。在编写本程序的过程中,首先借指导材料,确定了目标程序运行的次序与界面,即本程序首先运行【用户系统】菜单界面,其次程序运行【用户插入课程信息】及【用户浏览课程】菜单界面,最后程序运行【统计选课信息】及【选课】界面。如果用户选择【插入用户信息】选项则程序进入出入用户课程信息界面。需要一次输入课程编号,课程名称,课程性质,总学时,授课时间,实验或上机学时,学分,开课学期等信息;如果用户选择【浏览课程】选项则程序进入【浏览课程】界面,将会显示所选课程的信息;如果用户选择【查询】选项则会显示按学分查询的选课信息;一次用户还可以查看某门课程的所选情况。其次,根据目标程序运行的次序与界面,确定设计顺利,设计界面(包括各部分菜单与用户提示信息。再次是按照程序运行的各界面下的菜单功能编写各功能模块,并调试程序各功能模块,使各模块能够稳定高效准确地完成对应功能。最后是程序的总体调试及功能完善,此部分从学生选课的角度出发,考虑了更加人性化、更加合理、更加高效准确、更加智能化的设计。3 系统详细设计说明3.1 设计的具体实现(1主要函数struct course/课程信息结构体int nelepeo;/课程已选人数int Melepeo;/课程人数上限struct student/学生信息结构体void keyboardc(/录入课程子函数void inputc(/录入课程主函数void inputc(/录入课程主函数void managementc(/课程管理主函数void keyboards(/录入学生信息子函数void inputs(/录入学生信息主函数void dels(int num2/学生信息管理子函数(删除学生信息void managements(/学生信息管理主函数void elect(struct student * s/选课void cheak(/学生选课子函数(查询可选课程void back(struct student * p/退课void hcheak(/学生选课子函数(查询已选课程void elective(/学生选课主函数void elective(/学生选课主函数void lists(/输出学生信息void intoc(/存储课程信息void into(/存储信息void store(/信息主函数(2部分详细函数和说明void inputc(/录入课程主函数int i;printf("ttt录入课程信息n"printf("n1.从键盘录入n"printf("2.返回主菜单n"printf("请选择(1,2:n"scanf("%d",&i;switch(icase(1:keyboardc(;break;case(2:break;void insertc(struct course *incourse/课程管理子函数(增加课程struct course *p0,*p1,*p2;p1=head1;p0=incourse;if(head1=NULLhead1=p0;p0->next=NULL;elsewhile(p0->num1 > p1->num1 && (p1->next!=NULL p2=p1;p1=p1->next;if(p0->num1 <= p1->num1if(head1=p1 head1=p0;else p2->next=p0;p0->next=p1;elsep1->next=p0;p0->next=NULL;N1=N1+1;void delc(int num1/课程管理子函数(删除课程struct course *p1,*p2;if(head1=NULLprintf("n没有课程,无法删除!n"goto end;p1=head1;while(num1!=p1->num1 && p1->next!=NULLp2=p1;p1=p1->next;if(num1=p1->num1if(p1=head1 head1=p1->next;else p2->next=p1->next;printf("已删除该编号课程!n"N1=N1-1;else printf("无该编号的课程!n"end:;void managementc(/课程管理主函数struct course * incourse;int i,num1;printf("ttt课程管理n"printf("1.新增课程n"printf("2.删除课程n"printf("3.返回主菜单n"printf("请选择(13:n"scanf("%d",&i;switch(icase(1:incourse=(struct course *malloc(sizeof(struct course;printf("课程编号t课程名称t学分t课程人数上限t课程性质t总学时t实验学时t开课学期n"scanf("%d%s%d%d",&incourse->num1,incourse->name1,&incourse->score,&incourse->Melepeo,&incourse->type,&incourse->time,&incourse->pratime,&incourse->team ;incourse->nelepeo=0;insertc(incourse;break;case(2:printf("请输入要删除课程的编号:n"scanf("%d",&num1;delc(num1;break;case(3:break;注:课程信息的录入此部分是管理者输入课程的相关信息。为学生选课提供基础。系统调用keyboardc(函数完成对课程信息的录入。3.2 总体流程图3.3 总体说明系统启动后,首先加载课程文件信息和用户文件信息。然后进入操作主菜单界面,该界面允许用户输入17之间的数值来选择要进行的操作,其他字符无效,系统会给出错误提示信息。若用户输入1,则调用keyboardc(函数,进行课程信息录入的操作。若输入2,则调用managementc(函数,进入子函数(在该子函数中,选1,即是增加课程信息操作;若选2,即是删除课程信息操作。输入3,调用keyboards(函数,进行学生课程信息录入的操作。输入4,调用management(函数,并进入子函数(在该子函数中,选1,即是增加学生信息操作;若选2,即是删除学生信息操作。输入5,调用elective(函数,进入子函数(在该子函数中,选1,即调用checkc(函数查询可选课程,调用elect(s函数来进行选课;若选2,调用hcheck(函数查询已选课程情况,并有调用back(函数来进行退课。若选6,调用store(函数,进入子系统(在该子系统中,选1,listc(函数课程信息的输出;选2,lists(函数将学生信息输出;选3,储存信息。包括1、intoc(函数将课程信息保存到文件;2、intos(函数将学生信息存储到文件中。选择7,退出操作系统。3.4操作系统的处理流程图如下: 3.5 程序运行结果截图 (1主菜单界面截图: (2)系统窗口代码: int main(/主函数 int i; start: printf("nttt欢迎使用学生选课系统!n" printf("菜单:n" printf("1.录入课程信息n" printf("2.课程管理n" printf("3.录入学生信息n" printf("4.学生信息管理n" printf("5.学生选课n" printf("6.系统信息查看及存储n" printf("7.退出系统n" printf("n请输入菜单选项(17:n" scanf("%d",&i; 10 if(i<1 | i>7 printf("输入错误,请重输:n" goto start; switch(i case(1: system("cls" inputc(; goto start; break; case(2: system("cls" managementc(; goto start; break; case(3: system("cls" inputs(; goto start; break; case(4: system("cls" managements(; goto start; break; case(5: system("cls" elective(; goto start; break; 11 case(6: system("cls" store(; goto start; break; case(7: system("cls" printf("感谢使用本系统!nn再见!n" return(0; 4 结果分析和设计体会 4.1 优缺点分析 一、程序的优点 1、简洁明了的程序菜单。程序主要用了七组层次不同的菜单,相互独立又联系,巧妙连 接,符合用户的习惯和思维。 2、个性化提示语言, 程序提示语言较人性化, 而且提示明确, 具有较强的明确指导作用。 3、智能化模块设计, 程序的智能化主要体现在减少了许多人工操作。 这样给用户带来了 操作的方便,大大提高学生的选课效率。 二、程序缺点 1、程序虽然经过多次精简, 但仅仅是形式上、 小范围的精简, 即未找到更简单、 更高效、 更小占空间资源的算法。 2、程序仍然存在不合理的地方, 例如程序某些部分并输入错误会导致终止或转向其他功 能模块,即程序建议用户注意提示,进行合理准确输入,这样有利于与管理工作。 程序功能仍不够完善。例如信息表达是不丰富,比较单一,缺少图片、音乐等元化表达 方式。 4.2 实习总结 通过本次实习,我掌握了 C 语言在实际操作中的应用。熟悉了 C 语言程序的基本运 行方法,加深了对所学知识的理解和应用。 12 学生选修课系统运用菜单功能执行本程序,在实际操作过程中需对所用到的一些功 能进行设置,遇到一些非基本运算需要进行预处理。 在实习的过程中,我们遇到了一些最基础的同时也最简单的问题,我懂得了自己在理论 方面还有许多欠缺的地方,需要以后在学习中好好巩固,另外还有在实习中遇到的细节 问题,让我明白了只有牢固的理论知识加上细心严谨的态度才有可能办好一件事,对待 科学文化知识更应该如此 参考资料 1 梁旭,谷晓琳,黄明。C 语言课程设计(第二版) 电子工业出版社 2 李丽娟, 语言程序设计教程 C ,人民邮电出版社 13 专心-专注-专业