嵌入式学生选课系统
- 格式:doc
- 大小:73.50 KB
- 文档页数:22
《嵌入式系统应用》课程标准一、课程概要二、课程定位本课程是电子信息工程技术专业的一门核心必修课,是培养学生专业技能的重要组成部分。
在人才培养方案中,本课程支撑学生熟悉嵌入式系统开发的基本理论和工作原理,基本掌握嵌入式应用系统的设计方法,具有初步的嵌入式产品的维护、设计和开发能力,能够利用 Keil—MDK—ARM软件进行嵌入式微控制器的仿真和调试。
三、教学目标(一)知识目标1.了解嵌入式系统相关知识;2.掌握嵌入式C语言的编程特点;3.了解STM32标准外设库编程的特点;4.掌握STM32微控制器GPIO、定时器、PWM输出、中断、串口、AD转换器、DMA控制器等外设的编程方法;5.掌握STM32微控制器驱动彩色LCD显示、WIFI模块以及与物联网云平台的连通方法。
6.通过以上学习初步掌握嵌入式应用系统的设计思路和设计方法。
(二)能力目标1.能设计嵌入式应用系统控制程序;2.能进行嵌入式系统的程序调试;3.具有初步的嵌入式电子产品设计能力;4.具有较强的思考、分析和解决问题的能力;(三)素质目标1.培养学生严谨、细致、规范的职业素质;2.培养学生团队协作、表达沟通能力;3.培养学生跟踪新技术、创新设计能力;4.培养技术标准意识、操作规范意识、服务质量意识等。
四、课程设计本课程以培养目标为起点,选取“帆板角度测量与控制装置”作为整个课程的项目载体,将课程内容分解成10个能力模块,每一个模块对应一个具体的实训项目,每一个实训项目分解成若干个知识技能点,形成了以模块化实训项目为骨架、以技能知识点为内容的实践导向结构化课程内容体系。
在教学设计方面,以项目为驱动,突出实践性、知识性、职业性,体现“教、学、做合一”的设计理念。
实训项目导向的结构化课程内容设计如图1所示。
图1 实践导向的结构化课程内容设计五、教学内容安排六、教学实施(一)教学团队本课程负责人由具备较高专业技术水平、教学经验丰富、教学特色鲜明、具有副高以上专业技术职务的教师担任,并建立职称、学历、年龄等结构合理的专兼结合的“双师型”教学团队,每40人的标准班配备1名任课教师。
嵌入式系统及其应用课程思政资源平台的设计
王莉;孙鹏宇
【期刊名称】《电脑知识与技术》
【年(卷),期】2024(20)5
【摘要】该系统采用JSP作为开发技术,实现了一个在线浏览嵌入式思政资源的平台。
其主要分为教师模块和管理员模块,教师模块可方便地查看嵌入式思政资源,而管理员则可以对平台内的嵌入式思政资源进行管理、对网站的基本信息以及对教师的个人信息进行管理。
通过对前台和后台各功能模块的设计,系统实现了嵌入式思政资源平台所需的各种功能。
文章采用B/S架构的三层结构,即客户浏览器、Web 服务器和数据库服务器,利用JSP技术构建出动态页面,同时为了确保系统安全性和代码可重用性,采用JavaBean来封装程序的关键代码,以实现更高效的系统设计。
除此之外,文章还使用MYSQL来构建后端系统。
【总页数】3页(P56-58)
【作者】王莉;孙鹏宇
【作者单位】湖南工商大学智能工程与智能制造学院
【正文语种】中文
【中图分类】G642
【相关文献】
1.思政课程与课程思政信息化教育新机制--评《信息化教育:理念、环境、资源与应用》
2.构建课程思政教学资源在线平台助力医学院校课程思政建设
3.地理学大类平
台课程开展课程思政的设计与实践——以“水文与水资源学”为例4.融合课程思政的高校计算机实验实践课的探索——以安卓及嵌入式系统设计课程为例
因版权原因,仅展示原文概要,查看原文内容请购买。
《嵌入式系统及应用》课程介绍一、课程简介1.1 课程背景随着科技的不断发展,嵌入式系统越来越广泛地应用在各个领域,如智能家居、汽车电子、医疗设备等。
对嵌入式系统的理解和掌握成为了现代工程技术人才必备的核心能力。
1.2 课程目标本课程旨在帮助学生全面了解嵌入式系统的基本原理和应用,掌握嵌入式系统的设计与开发技术,为日后从事相关工作打下坚实的基础。
二、课程内容2.1 嵌入式系统概述介绍嵌入式系统的定义、特点、分类和应用领域,培养学生对嵌入式系统的整体认识。
2.2 嵌入式系统硬件设计涵盖嵌入式系统的硬件基础知识、电路设计、单片机系统设计等内容,让学生掌握嵌入式系统硬件设计的基本原理和技术。
2.3 嵌入式系统软件设计包括嵌入式系统的嵌入式操作系统、驱动程序设计、实时操作系统等内容,使学生了解嵌入式系统软件设计的关键技术和方法。
2.4 嵌入式系统应用案例分析通过案例分析,引导学生应用所学知识解决实际问题,提高学生的实际应用能力。
三、课程特色3.1 结合理论与实践本课程注重理论与实践相结合,通过理论讲解和实际操作相结合的教学方式,使学生既能够理解嵌入式系统的基本原理,又能够熟练掌握操作技能。
3.2 强调创新能力培养本课程旨在培养学生的创新思维和解决问题的能力,通过课程设计和项目实践,激发学生的创新潜能。
3.3 实用性强本课程内容贴近实际工程应用,注重培养学生的实际操作能力和解决问题的能力,使学生能够在工程实践中运用所学知识。
四、教学方式4.1 理论授课以讲授和课堂讨论的方式,阐述嵌入式系统的基本理论和概念。
4.2 实验操作通过实验操作,让学生亲自动手进行嵌入式系统的设计和开发,提高实际操作能力。
4.3 项目实践结合实际项目,让学生团队合作,应用所学知识解决实际问题,锻炼学生的工程实践能力。
五、教学评估通过课堂作业、实验报告、小组项目和期末考试等方式,对学生的知识掌握情况和能力水平进行全面评估。
六、实习实训6.1 实习内容本课程要求学生参与相关嵌入式系统的实习实训,深入实际企业,了解企业对嵌入式系统人才的需求和工作环境。
嵌入式系统课课程设计一、教学目标本课程的教学目标是让学生掌握嵌入式系统的基本概念、原理和应用,培养学生运用嵌入式系统解决实际问题的能力。
具体分为以下三个部分:1.知识目标:(1)了解嵌入式系统的基本概念、特点和分类;(2)掌握嵌入式处理器、外围设备及其接口技术;(3)熟悉嵌入式操作系统的基本原理和常用操作系统;(4)了解嵌入式系统的设计方法和开发流程。
2.技能目标:(1)能够使用嵌入式处理器和外围设备搭建简单的嵌入式系统;(2)能够编写嵌入式系统的基本程序,实现常见的功能;(3)具备嵌入式操作系统的基本编程能力;(4)能够运用嵌入式系统解决实际问题,开展创新设计。
3.情感态度价值观目标:(1)培养学生对嵌入式系统的兴趣,激发学习热情;(2)培养学生团队合作精神,提高沟通与协作能力;(3)培养学生创新意识,培育勇于探索的精神;(4)培养学生责任感,强化安全意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.嵌入式系统概述:嵌入式系统的概念、特点、分类和应用领域;2.嵌入式处理器:嵌入式处理器的结构、工作原理和性能评估;3.嵌入式外围设备:存储器、输入输出接口、定时器等;4.嵌入式操作系统:嵌入式操作系统的原理、结构和常用操作系统;5.嵌入式系统设计方法:需求分析、系统架构设计、软件设计等;6.嵌入式系统开发流程:项目立项、系统设计、编程调试、测试等;7.嵌入式系统应用案例:常见嵌入式系统的应用案例分析。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:通过讲解嵌入式系统的基本概念、原理和应用,使学生掌握相关知识;2.讨论法:学生针对嵌入式系统的某个主题进行讨论,提高学生的思考和表达能力;3.案例分析法:分析实际案例,使学生了解嵌入式系统在实际应用中的工作原理和设计方法;4.实验法:让学生动手搭建嵌入式系统,亲身体验嵌入式程序的编写和调试过程。
四、教学资源本课程的教学资源包括:1.教材:选用国内权威、实用的嵌入式系统教材;2.参考书:提供相关的嵌入式系统著作,供学生拓展阅读;3.多媒体资料:制作课件、教学视频等,丰富教学手段;4.实验设备:提供嵌入式系统实验平台,让学生动手实践。
嵌入式知识点总结“理论是灰色的,生活之树常青”,只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。
同样,一个人的价值也是通过实践活动来实现的,也只有通过实践才能锻炼人的品质,彰现人的意志。
下面是XXXX为大家整理的关于嵌入式知识点总结,希望对您有所帮助。
欢迎大家阅读参考学习!嵌入式知识点总结1学习嵌入式是我的梦想,我很羡慕能够在嵌入式方面独档一面的高手,希望有一天我也能像他们那样自信自如的在嵌入式这片热土上挥洒着自己的青春和浪漫。
带着无比豪迈的心情和缤纷的梦想来到易嵌学习嵌入式,在新的老师、新的同学和新的环境中,我开始了我的嵌入式学习,开始了新一轮的拼搏。
在易嵌短暂的两个月,我们从linux基础入手,强化了c语言编程,学习了linux系统编程和网络编程。
时间虽短,但成长很快,无论是理论知识还是实践能力都得到了大幅度的提高。
在这里将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。
通过用不同方法实现同一个项目,不断深入,层层推进,学以致用!在易嵌的这个暑假,我过得充实而快乐。
在这里有着同学间的探讨、师生间的互动和魔鬼般的训练!在我丰富多彩的人生路上留下了永远亮丽与难忘的记忆!实践报告正文:看着四年的大学生活就快要结束了,心中隐隐有一种伤感与失落,我陷入了沉思:该挺直腰杆走自己的路了!学习嵌入式是我的梦想,我很羡慕能够在嵌入式方面独档一面的高手,希望有一天我也能像他们那样自信自如的在嵌入式这片热土上挥洒着自己的青春和浪漫。
当我决定好好利用这个暑假,学习我一直都想去学的嵌入式的时候,就注定要在我丰富多彩的人生路上留下永远亮丽与难忘的记忆!算算毕业的时间,我已经闻到了离别的气息,在这即将远离大学时代的时刻,才真正懂得回眸的意义。
想想走过的路,想想现在的路,想想来时的路,不知道未来能否成功,既然选择了远方,就注定要风雨兼程!带着无比豪迈的心情和缤纷的梦想来到易嵌学习嵌入式,希望在这崭新的一页留下人生的美好!在新的老师、新的同学和新的环境中,我开始了我的嵌入式学习,开始了新一轮的拼搏。
UML建模学生选课系统(类图+对象图+用例图+部署图)-课程设计UML建模学生选课系统(类图+对象图+组件图+部署图)录1.项目简介 31.1. 学生选课系统 31.2. 项目主题 31.3. 设计思路 31.4. 项目目的 32. 小组成员 42.1. 小组成员简介 43. 需求分析和设计过程 53.1. 需求分析 53.2. 技术支持 53.3. 设计过程 64. 本次课程设计小结 85.附录 95.1 用例图 95.2 活动图 105.3 状态图 135.4 顺序图 145.5 协作图 195.6 类图 225.7 对象图 235.8 组件图 245.9 部署图 245.10 产考资料 251.项目简介1.1. 学生选课系统随着学校教学管理的网络化,为了简化在校学生选课的复杂程序,为了便捷的管理教学教务,学生选课系统成为了现在高校教学中必不可少的一个部分。
由于,目前高校多采用学分制,学生在一定范围内可以选择自己喜欢的和学需要的学科进行学习和研究,使得高校更好的进行学生的个性教育,同时这也加重了教学教务中工作负担。
此外,我国高校进行扩招,在校学生越来越多,使学校的教学资源紧张,管理教职人员和课程安排更加复杂。
所以,学校推行学生选课系统势在必行。
1.2. 项目主题为了满足在校大学生人数的不断增加,从而对教务系统的数据量的需要。
本系统包括了学生上网选课和教师发布课程两个方面进行设计,基本实现了学生的信息查询、选课功能,教师发布课程的功能,另外也解决了管理员的管理权限问题。
1.3. 设计思路1. 利用UML和Rational Rose工具对系统进行建模 ;2. 进行需求分析,从而绘制系统的用例图、活动图和时序图 ;3. 根据用例模型,进行架构建模,绘制系统的状态图,类图和交互图 ;4. 绘制系统中重要功能的对象图 ;5. 绘制系统的组件图和部署图 ;6. 对所完成的模型进行正向工程,创建系统的主要程序框架;1.4. 项目目的1. 理解UML语言的概念、结构、语义、表示方法以及UML的便捷;2. 掌握UML建模工具Rational Rose的使用方法;3. 通过学生选课系统,熟练地使用Rose工具;2. 小组成员2.1. 小组成员简介李诺进行需求分析,从而绘制系统的用例图、活动图和时序图。
《嵌入式系统设计》课程标准1.课程说明《嵌入式系统设计》课程标准课程编码〔37604〕承担单位〔计算机信息学院〕制定〔〕制定日期〔2022.11.16〕审核〔专业指导委员会〕审核日期〔2022年11月20日〕批准〔二级学院(部)院长〕批准日期〔2022年11月28日〕(1)课程性质:本门课程是物联网应用技术专业的必修课(填写是基础课还是核心课,是必修课还是选修课等)课程。
(2)课程任务:主要针对软件和信息技术服务业的嵌入式系统设计工程技术人员、软件和信息技术服务人员等岗位开设,主要任务是培养学生在嵌入式系统设计岗位的底层应用程序开发能力,要求学生掌握嵌入式系统编程方面的基本技能。
(3)课程衔接:在课程设置上,前导课程有《物联网开源硬件基础》,后续课程有《无线传感器网络技术应用》。
2.学习目标(一)素质目标:(1)坚定拥护中国共产党领导和我国社会主义制度,在习近平新时代中国特色社会主义思想指引下,践行社会主义核心价值观,有深厚的爱国情感和中华民族自豪感;(2)崇尚宪法、遵法守纪、崇德向善、诚实守信、尊重生命、热爱劳动,履行道德准则和行为规范,具有社会责任感和社会参与意识;(3)具有质量意识、环保意识、安全意识、信息素养、工匠精神、创新思维;具有良好的通信工程施工安全与自我保护意识;(4)勇于奋斗、乐观向上,具有自我管理能力、职业生涯规划的意识,有较强的集体意识和团队合作精神;(5)具有健康的体魄、心理和健全的人格,掌握基本运动知识和一两项运动技能,养成良好的健身与卫生习惯,良好的行为习惯;(6)具有一定的审美和人文素养,能够形成一两项艺术特长或爱好。
(7)能够初步理解企业战略和适应企业文化,遵守通信纪律、严守通信秘密。
(二)知识目标:(1)掌握必备的思想政治理论、科学文化基础知识和中华优秀传统文化知识;(2)熟悉计算机程序设计基础;(3)掌握基于8051单片机架构的CC2530嵌入式系统的基础知识;(4)掌握CC2530嵌入式系统开发及应用知识;(5)掌握IAR嵌入式开发环境的应用。
项目源码——学生选课系统学校系别专业班级姓名学号:#include<stdio.h>#include<stdlib.h>#include<string.h>int N1,N2;struct student{int num2;char name2[20];int nelenum[50]; //所选课程编号int nelen; //所选课程学分和struct student * next;};struct course{int num1; //课程编号char name1[20];char major[20];char type[20];int credit;int period;char teacher[20];int people; //选此门课程的人数struct course *next; //结构体指针};struct course * head1;struct student * head2;void zhang() //从键盘录入课程信息{struct course *p1,*p2;N1=0;p1=p2=(struct course *)malloc(sizeof(struct course));printf("课程编号\t课程名称\t主修\t课程性质\t学分\t课时\t教师\n");scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->cr edit,&p1->period,p1->teacher);p1->people=0;head1=NULL;while(p1->num1!=0){N1=N1+1;if(N1==1)head1=p1;else p2->next=p1;p2=p1;p1=(struct course * )malloc(sizeof(struct course));scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->cr edit,&p1->period,p1->teacher);p1->people=0;}p2->next=NULL;}void zhang1() //从文件录入课程信息{FILE * fp;char filepath[20];struct course *p1,*p2;N1=0;printf("请输入您要读取的路径:");getchar();gets(filepath);if((fp=fopen(filepath,"r"))==NULL){printf("找不到%s 文件!\n",filepath);exit(0);}p1=p2=(struct course*)malloc(sizeof(struct course));fscanf(fp,"%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1->type,& p1->credit,&p1->period,p1->teacher,&p1->people);while(!feof(fp)){N1=N1+1;if(N1==1)head1=p1;elsep2->next=p1;p2=p1;p1=(struct course * )malloc(sizeof(struct course));fscanf(fp,"%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1->type,& p1->credit,&p1->period,p1->teacher,&p1->people);}p2->next=NULL;}void load() //录入课程信息函数{int i;printf("\t\t\t录入课程信息\n");printf("\n1.从键盘录入");printf("\n2.从文件录入");printf("\n3.返回主菜单\n");printf("请选择1-3:");scanf("%d",&i);switch(i){case 1: zhang(); break;case 2:zhang1();break;case 3:break;}}void insert(struct course *incourse) //增加课程信息{struct course *p0,*p1,*p2;p1=head1;p0=incourse;if(head1==NULL){head1=p0;p0->next=NULL;}else{while((p0->num1>p1->num1) && (p1->next!=NULL)){p2=p1;p1=p1->next;}if(p0->num1<=p1->num1){if(head1==p1)head1=p0;elsep2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}N1=N1+1;}void delc(int num1) //删除课程信息{struct course *p1,*p2;if(head1==NULL){printf("\n无法删除!\n");goto end;}p1=head1;while(num1!=p1->num1 && p1->next!=NULL) {p2=p1;p1=p1->next;}if(num1==p1->num1){if(p1==head1)head1=p1->next;elsep2->next=p1->next;printf("已删除\n");N1=N1-1;}elseprintf("没有此课程\n");end:;}void managementc() //课程信息管理函数{struct course * p1;int i,num1;printf("\t\t\t课程信息管理\n");printf("1.添加课程\n");printf("2.删除课程\n");printf("3.返回\n");printf("请输入1-3:\n");scanf("%d",&i);switch(i){case 1:{p1=(struct course *)malloc(sizeof(struct course));printf("课程编号\t课程名称\t主修\t课程性质\t学分\t课时\t教师\n");scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->cr edit,&p1->period,p1->teacher);p1->people=0;insert(p1);} break;case 2:printf("请输入您要删除的课程编号:\n");scanf("%d",&num1);delc(num1); break;case 3:break;}}void putin(void) //从键盘录入学生信息{int i;struct student *p1,*p2;N2=0;p1=p2=(struct student *)malloc(sizeof(struct student));printf("学号\t姓名\n");scanf("%d%s",&p1->num2,p1->name2);p1->nelen=0;for(i=0;i<20;i++) p1->nelenum[i]=0;head2=NULL;while(p1->num2!=0){N2=N2+1;if(N2==1)head2=p1;elsep2->next=p1;p2=p1;p1=(struct student * )malloc(sizeof(struct student));scanf("%d%s",&p1->num2,p1->name2);p1->nelen=0;for(i=0;i<20;i++) p1->nelenum[i]=0;}p2->next=NULL;}void putin2() //从文件录入学生信息{int i=0;FILE * fp;char filepath[20];struct student *p1,*p2;N2=0;printf("请输入您要读取的路径:");getchar();gets(filepath);if((fp=fopen(filepath,"rt"))==NULL){printf("找不到%s 文件!\n",filepath);exit(0);}p1=p2=(struct student*)malloc(sizeof(struct student));fread(p1,sizeof(struct student),1,fp);head2=NULL;while(!feof(fp)){i=0;N2=N2+1;if(N2==1)head2=p1;elsep2->next=p1;p2=p1;p1=(struct student * )malloc(sizeof(struct student));fread(p1,sizeof(struct student),1,fp);}p2->next=NULL;}void input() //录入学生信息函数{int i;printf("\t\t\t录入学生信息\n");printf("\n1.从键盘录入\n");printf("2.从文件录入\n");printf("3.返回主菜单\n");printf("请输入1-3:\n");scanf("%d",&i);switch(i){case 1:putin(); break;case 2:putin2(); break;case 3:break;}}void inserts(struct student * incouse) //增加学生信息{struct student *p0,*p1,*p2;p1=head2;p0=incouse;if(head2==NULL){head2=p0;p0->next=NULL;}else{while((p0->num2>p1->num2) && (p1->next!=NULL)){p2=p1;p1=p1->next;}if(p0->num2 <= p1->num2){if(head2==p1) head2=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}N2=N2+1;}void dels(int num2) //删除学生信息{struct student *p1,*p2;if(head2==NULL){printf("\n无法删除\n");goto end;}p1=head2;while(num2!=p1->num2 && p1->next!=NULL){p2=p1;p1=p1->next;}if(num2==p1->num2){if(p1==head2)head2=p1->next;elsep2->next=p1->next;printf("已删除\n");N2=N2-1;}elseprintf("没有此学生编号\n");end:;}void managements() //学生信息管理函数{struct student * p1;int i,num2;printf("\t\t\t学生信息管理\n");printf("1.添加学生信息\n");printf("2.删除学生信息\n");printf("3.返回主菜单\n");printf("请选择1-3:\n");scanf("%d",&i);switch(i){case 1:{p1=(struct student *)malloc(sizeof(struct student));p1->nelen=0;p1->nelenum[0]=0;printf("num\tname\n");scanf("%d%s",&p1->num2,p1->name2);inserts(p1);}break;case 2:{printf("请输入您要删除的学生编号:\n");scanf("%d",&num2);dels(num2);} break;case 3:break;}}void elect() //学生选课{struct student * s;struct course * p;int a,i,b;printf("请输入您的学号:\n");scanf("%d",&a);s=head2;while((s->num2)!=a&&s->next!=NULL) s=s->next;if(s->num2!=a){printf("您的信息不存在,请重新输入:\n");goto end;}if((s->nelen)>10){printf("您的学分已满");goto end;}printf("请输入您要选修的课程编号\n");scanf("%d",&b);for(i=0;(s->nelenum[i])==0;i++);s->nelenum[i]=b;p=head1;while((p->num1)!=b)p=p->next;for(i=0;(s->nelenum[i])!=0;i++);s->nelenum[i]=b;(p->people)++;(s->nelen)=(s->nelen)+(p->credit);(p->people)++;end:;}void back() //学生退课{struct student * p;struct course * p1;int b,i,j,a;printf("请输入您的学号:\n");scanf("%d",&a);p=head2;while(p->num2!=a&&p!=NULL) p=p->next;if(p==NULL)printf("您的信息不存在:\n");else{printf("请输入您要退选的课程:\n");scanf("%d",&b);p1=head1;while(p1->num1!=b) p1=p1->next;for(i=0;p->nelenum[i]!=b;i++);for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1];p->nelenum[--j]=0;(p->nelen)=(p->nelen)-(p1->credit);(p1->people)--;printf("succeed!\n");}}void elective() //学生选课信息管理{int i;printf("\t\t\t学生选课信息管理\n");printf("1.选课\n");printf("2.退课\n");printf("3.返回主菜单\n");printf("请输入1-3:\n");scanf("%d",&i);switch(i){case 1:elect();break;case 2:back();break;case 3:break;}}void listc() //浏览课程信息{struct course * p;p=head1;printf("课程编号课程名称主修课程性质学分课时教师选课人数\n");while(p!=NULL){printf("%6d%13s%13s%10s%7d%7d%12s%5d\n",p->num1,p->name1,p->major, p->type,p->credit,p->period,p->teacher,p->people);p=p->next;}}void lists() //浏览学生信息{struct student * p;int a;p=head2;printf("学生编号学生姓名所选课程编号所选课程学分\n");while(p!=NULL){printf("%6d%13s",p->num2,p->name2);printf("%6d",p->nelen);for(a=0;p->nelenum[a]!=0&&a<14;a++)printf("%d",p->nelenum[a]);printf("\n");p=p->next;}}void intoc() //存储课程信息{FILE * fp;struct course * p;char filepath[30];printf("输入路径:");getchar();gets(filepath);if((fp=fopen(filepath,"w"))==NULL){printf("\无法储存!");exit(0);}p=head1;while(p!=NULL){fprintf(fp,"%d%s%s%s%d%d%s%d\n",p->num1,p->name1,p->major,p->type,p->credit,p->period,p->teacher,p->people);p=p->next;}fclose(fp);printf("已储存入%s文件!\n",filepath);}void intos() //存储学生信息{FILE * fp;struct student * p;char filepath[30];printf("请输入路径:");getchar();gets(filepath);if((fp=fopen(filepath,"wt"))==NULL){printf("\n 无法储存!");exit(0);}p=head2;while(p!=NULL){fwrite(p,sizeof(struct student),1,fp);p=p->next;}fclose(fp);printf("已储存入%s文件!\n",filepath);}void into() //信息存储函数{int i;printf("\t\t\t信息存储\n");printf("1.课程信息存储\n");printf("2.学生信息存储t\n");printf("3.返回主菜单\n");printf("请输入1-3\n");scanf("%d",&i);switch(i){case(1):intoc();break;case(2):intos();break;case(3):break;}}void store() //信息存储浏览函数{int i;printf("\t\t信息存储和浏览\n");printf("1.课程信息浏览\n");printf("2.学生信息浏览\n");printf("3.信息存储\n");printf("4.返回主菜单\n");printf("请输入1-4:\n");scanf("%d",&i);switch(i){case(1):listc();break;case(2):lists();break;case(3):into();break;case(4):break;}}void search1() //按学生编号查找学生信息{int a,b;struct student * p;printf("请输入学生编号");scanf("%d",&a);p=head2;printf("学号学生姓名所选课程编号所选课程学分\n");while(p!=NULL){if(p->num2==a){printf("%6d%13s ",p->num2,p->name2);for(b=0;p->nelenum[b]!=0&&b<14;b++)printf("%d",p->nelenum[b]);printf("%10d\n",p->nelen);}p=p->next;}}void search2() //按学生姓名查找学生信息{int b;char name[20];struct student * p;printf("请输入要查找的学生姓名:");scanf("%s",name);p=head2;printf("学号学生姓名所选课程编号所选课程学分\n");while(p!=NULL){if(strcmp(name,p->name2)==0){printf("%6d%13s ",p->num2,p->name2);for(b=0;p->nelenum[b]!=0&&b<14;b++)printf("%d",p->nelenum[b]);printf("%10d\n",p->nelen);}p=p->next;}}void search() //学生信息查找主函数{int i;printf("\t\t\t学生信息查找");printf("\n1.按学号查找");printf("\n2.按姓名查找");printf("\n3.返回主菜单");printf("\n请输入1-3:");scanf("%d",&i);switch(i){case 1:search1();break;case 2:search2();break;case 3:break;}}void main() //主函数{char m;int i;start:printf("\t\t\t*****************************\n");printf("\n\t\t\t\t欢迎使用此系统!\n");printf("\t\t\t*****************************\n"); printf("\n");printf("\t\t菜单:\n");printf("\t\t\t1.录入课程信息\n");printf("\t\t\t2.课程信息管理\n");printf("\t\t\t3.录入学生信息\n");printf("\t\t\t4.学生信息管理\n");printf("\t\t\t5.学生选课\n");printf("\t\t\t6.信息存储与浏览\n");printf("\t\t\t7.查找学生信息\n");printf("\t\t\t8.退出系统");printf("\t\t\t\n请输入1-8:\n");scanf("%d",&i);if(scanf("%d",&i)){if(i<1 || i>8){printf("请重新输入:\n");goto start;}}if(scanf("%c",&m)){printf("输入错误,请重新输入:\n");goto start;}switch(i){case 1:system("cls"); load(); goto start;break; case 2:system("cls");managementc();goto start;break; case 3:system("cls");input();goto start;break;case 4:system("cls");managements();goto start;break;case 5:system("cls");elective();goto start;break;case 6:system("cls");store();goto start;break;case 7:system("cls");search();goto start;break;case 8:{system("cls");printf("Thank you!\n\nBye-Bye!\n");}}}。