网页设计课程设计报告钦州学院C语言课程设计报告学生选修课管理系统院系物理与材料科学学院专业自动化学生班级2008级1班姓名李美月学号0805404134指导教师单位钦州学院指导教师姓名陶卫平指导教师职称讲师2011年6月学生选修课管理系统自动化专业2008级李美月指导教师陶卫平摘要:当今时代是飞速发展的信息时代,在各行个业中离不开信息处理,这正是计算机被广泛应用于信息系统环境。
计算机的最到好处的利用它能够进行信息管理使计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。
尤其对复查的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好学生选课信息而设计的。
数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费基于这个问题,有必要建立一个学生选修课系统,使学生选课信息管理工作规范化、系统化、程序化、避免学生选课管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。
【关键词】管理员管理;课程查询;学生选课;系统框图;程序;c++设计目的:(1根据C语言课程设计来设计一个实用的系统即学生选课系统(2设计该系统能够实现选课信息管理工作规范化、系统化、程序化、避免选课管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。
(3通过实践,更进一步掌握C语言课程设计理论知识,做到从理论到实践。
设计技术指标与要求:由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写,尽量要求做到:(1设计界面要求尽量美观简洁;(2管理员能够对课程信息和用户的管理,以及学生对课程信息的查看和选课。
(3用户能够根据提示,输入操作项,调用系统提供的管理功能。
(4完成学生选课管理的开发。
目录前言(31.1程序功能(32系统设计思想(43系统详细设计说明(43.1设计的具体实现(43.2总体流程图(83.3总体说明(83.4操作系统的处理流程图(93.5程序运行结果截图(104结果分析忽然设计会(124.1优缺点(124.2实习总结(12参考文献(13前言:现代社会是信息社会化社会,信息无处不在。
在生产领域、流通领域、各部门每天都和信息打交道,如何处理此信息成为一个重要课题。
学生在学期开学课是教学活动中的一个重要环节,该环节如果能够管理好,它不仅加快学生选课速,也提高了整个活动的效率大学生一般都有上千名学生都要选课,因而产生了大量的课程信息。
面对复查的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好学生选课信息而设计的。
随着飞速发展及应用水平的不断提高,高校教学管理网络化已成为一种趋势。
如何利用互联网这一先进的信息传播手段为研究教学科研服务,已成为目前有待研究和解决的一项重要课题。
为此结合实际设计一个能够添加、管理、修改及查询等各个功能的系统。
1.1程序功能学生选修课程系统是为了方便学生能够在网上选择学习课程的一个系统。
主要用于管理者能够对课程信息和用户的管理,以及学生对课程信息的查看和选课。
为了保存存储信息,系统利用文件将课程信息和用户信息都存储在文件中。
系统也为用户提供了简单的人机界面,使用户能够根据提示,输入操作项,调用系统提供的管理功能。
主要功能描述如下:(1课程信息的录入此部分是管理者输入课程的相关信息。
为学生选课提供基础。
(2课程信息的管理课程的管理主要包括课程信息的增加和课程信息的删除。
(3学生信息的录入输入此系统的操作人员的信息。
保障该系统的实用性。
(4学生信息的管理学生的管理也是包括对学生信息的增加和删除,完成对系统的更新操作。
(5学生选课选择选课后进入此部分的子程序,子程序包括学生选课,查询可以选择的课程,退课以及查询已经选择的课程。
(6信息查看及其存储此部分包括四大部分输出课程信息,输出学生信息,存储课程信息到文件,存储学生信息到文件。
查看课程信息能够方便学生浏览课程信息,查看学生信息是方便学生信息及选课情况。
文件存储都能很好的保存信息。
(7退出此部分的功能是退出系统。
由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。
在编写本程序的过程中,首先借指导材料,确定了目标程序运行的次序与界面,即本程序首先运行【用户系统】菜单界面,其次程序运行【用户插入课程信息】及【用户浏览课程】菜单界面,最后程序运行【统计选课信息】及【选课】界面。
如果用户选择【插入用户信息】选项则程序进入出入用户课程信息界面。
需要一次输入课程编号,课程名称,课程性质,总学时,授课时间,实验或上机学时,学分,开课学期等信息;如果用户选择【浏览课程】选项则程序进入【浏览课程】界面,将会显示所选课程的信息;如果用户选择【查询】选项则会显示按学分查询的选课信息;一次用户还可以查看某门课程的所选情况。
其次,根据目标程序运行的次序与界面,确定设计顺利,设计界面(包括各部分菜单与用户提示信息。
再次是按照程序运行的各界面下的菜单功能编写各功能模块,并调试程序各功能模块,使各模块能够稳定高效准确地完成对应功能。
最后是程序的总体调试及功能完善,此部分从学生选课的角度出发,考虑了更加人性化、更加合理、更加高效准确、更加智能化的设计。
3系统详细设计说明3.1设计的具体实现(1主要函数struct course//课程信息结构体int n elepeo;//课程已选人数int Melepeo;//课程人数上限struct student〃学生信息结构体void keyboardc(〃录入课程子函数void inputc(〃录入课程主函数void inputc(〃录入课程主函数void man ageme ntc(〃课程管理主函数void keyboards(〃录入学生信息子函数void inputs(〃录入学生信息主函数void dels(int num2〃学生信息管理子函数(删除学生信息void man ageme nts(〃学生信息管理主函数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(〃录入课程主函数{printf("\t\t\t录入课程信息\n";printf("\n1.从键盘录入\n";printf("2.返回主菜单\n";printf("请选择(1,2:\n";sca nf("%d",&i;switch(i{case(1:keyboardc(;break;case(2:break;}}void insertc(struct course *incourse// 课程管理子函数(增加课程{struct course *p0,*p1,*p2;p1=head1;pO=in course;if(head1==NULL{p0-> next=NULL;}else{while((p0->num1 > p1->num1 && (p1->next!=NULL { p2=p1;p1=p1- >n ext;}if(p0->num1 <= p1- >num1{if(head1==p1 head仁p0;else p2->n ext=p0;p0->n ext=p1;}elsep1- >n ext=pO;pO-> next=NULL;}}N1=N1+1;}void delc(int num1〃课程管理子函数(删除课程{struct course *p1,*p2;if(head1==NULL{printf("\n没有课程,无法删除!\n";goto end;}p1=head1;while( nu m1!=p1-> num1 && p1- >n ext!=NULL{p2=p1;p1=p1- >n ext;}if(nu m1==p1- >num1{if(p1==head1 head仁pl- >n ext;else p2->n ext=p1- >n ext;printf("已删除该编号课程!\n";N1=N1-1;}else printf("无该编号的课程!\n"; en d:;}void man ageme ntc(〃课程管理主函数{struct course * in course;int i,nu ml;printf("\t\t\t 课程管理\n";printf("1.新增课程\n";printf("2.删除课程\n";printf("3.返回主菜单\n";printf (” 请选择(1~3:\n";sea nf("%d",&i;switch(i{case(1:{in course=(struct course *malloc(sizeof(struct course;printf("课程编号\t 课程名称\t 学分\t 课程人数上限\t 课程性质\t 总学时\t 实验学 \t 开课学期\n";sca nf("%d%s%d%d",&in course->nu m1,i ncourse->n ame1,&in course->score, ncourse->Melepeo,&in course->type,&in course->time ,&in course->pratime,&inco se->team ; in course->n elepeo=0;in sertc(i ncourse;break;}case(2:printf("请输入要删除课程的编号:\n";&uisea nf("%d",&nu ml;delc( numl;break;case(3:break;注:课程信息的录入此部分是管理者输入课程的相关信息。