C语言,学生选课系统,课程设计报告书,计算机
- 格式:doc
- 大小:222.50 KB
- 文档页数:25
c语言课程设计学生选课系统一、教学目标本课程的目标是让学生掌握C语言编程基础,能够运用C语言设计学生选课系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识。
2.技能目标:学生能够运用C语言编写简单的程序,具备一定的编程能力,能够独立设计并实现学生选课系统的核心功能。
3.情感态度价值观目标:学生通过本课程的学习,能够培养对计算机编程的兴趣和热情,提高解决问题的能力,培养团队协作和自主学习的意识。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。
2.函数:包括函数的定义、声明、调用等。
3.数组和字符串:包括一维数组、多维数组、字符串的基本操作等。
4.指针:包括指针的基本概念、指针与数组、指针与函数等。
5.结构体和文件:包括结构体的定义和使用、文件的读写操作等。
6.学生选课系统的设计与实现:包括系统需求分析、系统设计、核心功能实现等。
三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构等知识,让学生掌握C语言的基础知识。
2.案例分析法:通过分析实际的学生选课系统的案例,让学生了解并掌握系统的设计与实现方法。
3.实验法:让学生通过动手编写程序,巩固所学知识,提高编程能力。
4.小组讨论法:分组让学生讨论并解决问题,培养团队协作和自主学习的意识。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材。
2.参考书:提供相关的C语言编程参考书籍,供学生自主学习。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。
4.实验设备:提供计算机实验室,让学生能够进行上机实验,提高编程能力。
五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。
c语言课程设计 学生选课系统一、课程目标知识目标:1. 学生能理解C语言在开发学生选课系统中的应用,掌握基本的数据结构(如结构体、数组、链表)和文件操作相关知识。
2. 学生能运用C语言实现学生选课系统的基本功能,如学生信息管理、课程信息管理、选课操作等。
3. 学生能理解并掌握C语言中的模块化编程思想,将学生选课系统分解为多个函数,提高代码的可读性和可维护性。
技能目标:1. 学生能运用C语言编写、调试和运行学生选课系统,具备一定的编程实践能力。
2. 学生能通过团队协作,共同完成一个完整的学生选课系统项目,提高沟通与协作能力。
3. 学生能运用所学知识,对现有学生选课系统进行优化和改进,提高系统性能。
情感态度价值观目标:1. 学生通过本课程的学习,培养对计算机编程的兴趣和热情,树立学习C语言的自信心。
2. 学生在团队协作中,学会尊重他人意见,培养合作精神和团队意识。
3. 学生能够认识到编程在解决实际问题中的价值,提高将所学知识应用于实际生活的意识。
课程性质:本课程为C语言编程实践课程,旨在让学生通过动手实践,掌握C 语言编程技能,并运用所学知识解决实际问题。
学生特点:学生已具备一定的C语言基础,具备基本编程能力,但缺乏实际项目经验。
教学要求:注重理论与实践相结合,强调编程实践,培养学生解决实际问题的能力。
通过团队协作,提高学生的沟通与协作能力。
在教学过程中,关注学生的个体差异,因材施教,使每位学生都能在原有基础上得到提高。
二、教学内容1. 数据结构基础:回顾结构体、数组、链表等基本数据结构,讲解其在学生选课系统中的应用。
相关教材章节:第3章 数据类型与表达式,第4章 控制结构,第5章 函数,第6章 数组与字符串,第7章 指针与结构体。
2. 文件操作:介绍文件读写、文件管理等基本操作,为学生选课系统提供数据持久化支持。
相关教材章节:第10章 文件操作。
3. 模块化编程:讲解模块化编程思想,引导学生将学生选课系统分解为多个函数,提高代码的可读性和可维护性。
c语言学生选课系统设计详细设计详细设计:1. 数据结构设计:- 学生信息结构体:包含学生姓名、学号、已选课程等信息。
- 课程信息结构体:包含课程名称、课程编号、授课教师等信息。
- 教师信息结构体:包含教师姓名、教师编号等信息。
2. 功能设计:- 学生选课功能:学生可以浏览可选课程列表,并选择自己感兴趣的课程进行选修。
选修成功后,将该门课程加入学生的已选课程列表中。
- 课程管理功能:教师可以添加、修改和删除课程信息。
- 学生信息管理功能:教师可以查看学生的选课情况,并进行相关操作,如修改学生选课等。
3. 界面设计:- 学生选课界面:显示可选课程列表,并提供选课按钮。
- 课程管理界面:显示课程信息列表,并提供添加、修改和删除按钮。
- 学生信息管理界面:显示学生信息列表和选课情况,并提供相关操作按钮。
4. 数据库设计:- 学生表:包含学生姓名、学号、已选课程等字段。
- 课程表:包含课程名称、课程编号、授课教师等字段。
- 教师表:包含教师姓名、教师编号等字段。
5. 系统流程设计:- 学生选课流程:学生登录系统后,进入选课界面,浏览可选课程列表,选择自己感兴趣的课程进行选修。
选修成功后,系统更新学生的已选课程列表。
- 课程管理流程:教师登录系统后,进入课程管理界面,可以进行添加、修改和删除课程信息的操作。
系统更新课程表。
- 学生信息管理流程:教师登录系统后,进入学生信息管理界面,可以查看学生的选课情况,并进行相关操作,如修改学生选课。
系统更新学生表。
6. 错误处理设计:- 输入错误处理:对于用户输入的非法数据,系统进行提示并要求重新输入。
- 数据库错误处理:对于数据库操作过程中的错误,系统进行捕获并给出相应的错误提示。
以上为一个简单的C语言学生选课系统的详细设计。
根据具体需求,还可以进行更加详细和具体的设计。
课程设计学生选课系统c语言一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握学生选课系统相关的数据类型、运算符、控制语句等知识;2. 学会使用C语言设计学生选课系统的功能模块,包括学生信息管理、课程信息管理、选课操作等;3. 了解C语言在学生选课系统中的应用场景,掌握一定的软件设计方法和技巧。
技能目标:1. 能够运用C语言编写简单的学生选课系统程序,具备基本的编程能力;2. 学会分析学生选课系统的需求,设计合理的程序结构,培养解决问题的能力;3. 能够使用调试工具对程序进行调试和优化,提高程序的执行效率。
情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习编程的热情,提高自主学习的积极性;2. 培养学生的团队协作意识,学会与他人合作完成项目任务;3. 通过实际操作,让学生认识到编程在解决实际问题中的价值,增强社会责任感。
课程性质:本课程为实践性较强的学科,结合实际应用场景,培养学生的编程能力和解决问题的能力。
学生特点:学生在本年级已具备一定的C语言基础,对编程有一定的兴趣和热情,但缺乏实际项目经验。
教学要求:教师需结合学生特点和课程性质,注重理论与实践相结合,引导学生主动参与,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. C语言基础回顾:数据类型、变量、运算符、控制语句(选择、循环)、函数等基本概念和用法。
2. 学生选课系统需求分析:介绍学生选课系统的功能模块,分析各模块的需求,明确编程目标和任务。
3. 系统设计:- 数据结构设计:学生、课程等实体的属性和关系,以及数据存储方式;- 界面设计:系统菜单、功能界面等;- 功能模块设计:学生信息管理、课程信息管理、选课操作、查询等模块。
4. 编程实践:- 搭建开发环境,熟悉编程工具;- 编写各功能模块的代码,实现学生选课系统的基本功能;- 调试和优化程序,确保系统的稳定性和性能。
课程设计报告课程设计题目:学生选课管理系统学号:09110712姓名:李唐松专业:软件工程班级: 091107指导老师:谢小林2009年1月5日星期二*实验题目:学分管理程序*实验时间与地点:2009年1月7日星期四软件楼508*实验目的:1综合运用所学的C语言知识进行编程。
2进一步了解掌握C的基本语法。
3开始逐步培养编程思维,完善编程思维漏洞。
4侧重对C中数组函数指针结构体和文件等相关内容的综合应用。
4进一步提升自己的编程能力,为以后学习开始奠基。
*实验要求:1学生选课信息的添加(学生选课信息包括学生学生学号、课程名称、学分)2学生选课信息的删除3学生选课信息的查询(查询每个学生的选课信息,每个学生选课的总学分,选具体某门课程(课程名输入)的学生名单)*实验思路:1.函数定义判断,调用函数实现函数功能。
2.首先自定义函数,做出主菜单。
3.运用do….while , switch 语句完成主函数。
4.主程序中调用函数,程序运行时实现菜单选择功能。
5.自定义函数主要if语句完成,注重函数的应用。
*流程图:A主干图B具体流程:*程序操作:#i n c l u d e<s t d i o.h>#i n c l u d e<s t r i n g.h>#i n d e f i n e s i z e10s t r u c t c o u r s e{l o n g n u m;c h a r c o u r s e1[20];i n t s c o r e1;c h a r c o u r s e2[20];i n t s c o r e2;c h a r c o u r s e3[20];i n t s c o r e3;c h a r c o u r s e4[20];i n t s c o r e4;}c o u r s e[s i z e];v o i d m e n u(){p r i n t f(“*************************\n”); p r i n t f(“学生选课管理系统\n”);p r i n t f(“************************\n”); p r i n t f(“0退出程序\n“);p r i n t f(“1学生选课信息的添加\n”);p r i n t f(“2学生选课信息的删除\n”);p r i n t f(“3学生选课信息的查询\n”);p r i n t f(“请输入0~3\n”);}v o i d s u r e(){i n t i;f o r(i=0;i<s i z e;i++)p r i n t f(“学号:\n”);s c a n f(“%l d”,c o u r s e[i].n u m);p r i n t f(“课程1:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e1);p r i n t f(“学分1:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e1);p r i n t f(“课程2:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e2);p r i n t f(“学分2:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e2);p r i n t f(“课程3:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e3);p r i n t f(“学分3:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e3);p r i n t f(“课程4:\n”);s c a n f(“%s”,c o u r s e[i].c o u r s e1);p r i n t f(“学分4:\n”);s c a n f(“%d”,c o u r s e[i].s c o r e4);i f(s t r c m p(c o u r s e[i].c o u r s e1)==0)r e t u r n;i f(s t r c m p(c o u r s e[i].c o u r s e2)==0)r e t u r n;i f(s t r c m p(c o u r s e[i].c o u r s e3)==0)r e t u r n;i f(s t r c m p(c o u r s e[i].c o u r s e4)==0)r e t u r n;}v o i d d e l(){i n t i;l o n g n;p r i n t f(“请输入学号:\n”);s c a n f(“%l d”,&n);f o r(i=0;i<=s i z e;i++)i f(c o u r s e[i].n u m==n)c o u r s e[i].n u m=c o u r s e[i+1].n u ms t r c p y(c o u r s e[i].c o u r s e1,c o u r s e[i+1].c o u r s e1);c o u r s e[s i z e].c o u r s e1=”\o”c o u r s e[i].s c o r e1=c o u r s e[i+1].s c o r e2;c o u r s e[i].s c o r e2=c o u r s e[i+1].s c o r e3;c o u r s e[i].s c o r e3=c o u r s e[i+1].s c o r e4;}v o i d o p e n(){i n t i;l o n g n;i n t s c o r e;p r i n t f(“请输入学号:”);s c a n f(“%l d”,&n);f o r(i=0;i<s i z e;i++)i f(c o u r s e[i].n u m==n){p r i n t f(“学号:%l d”,c o u r s e[i].n u m);p r i n t f(“课程1:%s”,c o u r s e[i].c o u r s e1);p r i n t f(“学分1:%d”,c o u r s e[i].s c o r e1);p r i n t f(“课程2:%s”,c o u r s e[i].c o u r s e2);p r i n t f(“学分2:%d”,c o u r s e[i].s c o r e2);p r i n t f(“课程3:%s”,c o u r s e[i].c o u r s e3);p r i n t f(“学分3:%d”,c o u r s e[i].s c o r e3);p r i n t f(“课程4:%s”,c o u r s e[i].c o u r s e4);p r i n t f(“学分4:%d”,c o u r s e[i].s c o r e4);s c o r e=c o u r s e[i].s c o r e1+c o u r s e[i].s c o r e2+c o r s e[i].s c o r e3+c o u r s e[i].s c o r e4; p r i n t f(“总学分:%d”,s c o r e);}v o i d m a i n(){i n t n;s c a n f(“%d”,&n);d o{me n u();s w i t c h(n){c a s e1:s u r e();b r e a k;c a s e2:de l();b r e a k;c a s e3:o p e n();b r e a k;}}w h i l e(n!=0)}实验总结:1.运用该程序可以顺利完成学生选课的添加、删除以及查询。
c语言课程设计学生选课系统设计一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握数组、指针、函数等基本概念;2. 学会使用结构体、文件操作等C语言特性进行数据组织和存储;3. 掌握面向过程编程思想,能够运用C语言设计简单的学生选课系统。
技能目标:1. 能够运用结构化编程方法,编写模块化的C语言代码;2. 学会使用C语言进行简单的数据输入、处理和输出;3. 能够运用调试工具,分析并解决程序中的错误。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发自主学习编程的积极性;2. 培养学生的团队合作意识,学会在团队中发挥个人优势,共同解决问题;3. 培养学生严谨、细心的编程习惯,认识到编程对培养逻辑思维能力和解决问题能力的重要性。
课程性质:本课程为C语言程序设计课程的实践环节,以学生选课系统设计为主题,结合C语言编程知识,培养学生的实际编程能力和解决问题的能力。
学生特点:学生已具备一定的C语言基础,对编程有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重实践操作,强化编程能力和团队协作能力的培养。
在教学过程中,关注学生个体差异,提供个性化指导,确保课程目标的达成。
二、教学内容1. C语言基础知识复习:数组、指针、函数、结构体、文件操作等基本概念和用法。
教材章节:第三章数组和第四章函数。
2. 面向过程编程思想:顺序结构、分支结构、循环结构等控制结构在实际编程中的应用。
教材章节:第五章控制结构。
3. 学生选课系统需求分析:了解系统功能、模块划分,明确编程目标和任务。
教材章节:项目实训部分。
4. 学生选课系统设计:模块化设计、数据结构设计、界面设计等。
教材章节:项目实训部分。
5. 编程实践:根据设计文档,编写C语言代码实现学生选课系统。
教材章节:项目实训部分。
6. 调试与测试:使用调试工具,对程序进行调试和测试,确保系统功能的正确性和稳定性。
c++课程设计--学生选课系统程序设计报告计算机科学与技术学院学生选课系统程序设计报告班级: 1003专业:嵌入式软件指导教师:吴克立杨素娣学号: 211011016姓名:李倩倩2010年2月29日目录一.设计目的.....................................二.总体设计.....................................三.详细设计.....................................1.界面设计...................................2.课程信息设计............................3.学生信息设计............................4.选课设计...................................四.测试与调试.................................五.心得体会....................................一.设计目的网上选课系统是针对在校学生和教师使用,从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式,传统的教学模式(学生按照学校安排好的课程上课)已经不能适应新型的教学手段,如果仍然通过纸上的方式选课,一方面浪费的大量的人力、物力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。
随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,这种弊端会越来越多的暴露出来。
因此,利用网络,使学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。
从教师的角度来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作较学生选课而言更加的复杂,因此通过网上进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。
C语言课程设计--学生选修课系统内蒙古科技大学本科生课程设计说明书题目:C语言课程设计——学生选修课管理学生姓名:***学号:**********专业:计算机科学与技术班级:13-计算机2班指导教师:***内蒙古科技大学课程设计论文2013年12月31日内蒙古科技大学课程设计任务书目录课程设计任务书 (V)目录 (V)第一部分:程序总体设计思路 (3)第二部分:程序功能划分、图示及流程图 (3)函数划分 (3)总体设计 (4)课程选择函数流程图 (5)课程新增函数流程图 (6)第三部分:程序设计数据及运行结果 (7)第四部分:心得体会 (12)第五部分:附录(参考文献及源程序) (12)主函数部分:main() (14)菜单函数:void index() (14)登陆界面函数:void login() (15)学生登陆界面函数:void stu_login() (17)管理员登陆界面函数:void man_login() (16)退出界面函数:void bye_sys() (16)学生课程选择函数:void c_select() (18)课程增加函数:void c_add() (21)课程删除函数:void c_delete() (22)学生课程查询函数:void c_search() (25)管理员课程查询函数:void c_search() (28)管理员课程浏览函数:void c_view() (31)学生课程浏览函数:void c_view() (34)第一部分:程序总体设计思路由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。
具体设计思路如下:程序的需求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。
首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。
武汉理工大学华夏学院课程设计报告书课程名称:C课程设计题目:学生选课系统程序设计系名:信息工程系专业班级:姓名:学号:指导教师:成绩:2016年 3 月4日课程设计任务书学生姓名:专业班级:指导教师:工作单位:设计题目:学生选课系统程序设计初始条件:学生选课系统能提供学生选课,以及学生和课程信息管理等一系列功能。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、任务描述假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。
试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存)(3)课程信息浏览功能(4)查询功能(5)按学分查询(6)某门课程学生选修情况(可选项)2、本课程涉及的知识点变量的定义、输入和输出函数、结构体类型的定义、结构体数组、循环语句、选择语句,文件的操作等。
设计报告撰写格式要求:一、课程设计说明书(或报告书)正文内容【设计题目】例如:学生选课系统【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP 【开发工具】 Microsoft Visual C++ 6.0【完成时间】 2016-2 -29-----2016.3.4【需求分析】分析阐述用户的需要以及要实现的程序应具有什么样的功能。
【系统总体设计】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。
让读者了解方案的总体设计和关键技术。
要阐述自己的设计方案,说明为什么要选择或设计这样的方案。
具体包括:系统总的设计思路,功能模块图;使用的设计软硬件环境和开发技术和平台等。
【系统详细设计】在这部分中,应该具有相关关键实现技术(如使用什么库函数,使用什么循环结构等)。
【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。
数学与计算机学院课程设计说明书课程名称:计算机科学与技术程序设计语言-课程设计课程代码:题目:学生成绩管理系统年级/专业/班: 学生姓名: 学号: 开始时间:年月日完成时间:年月日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总分(100)指导教师签名:年月日程序设计语言课程设计任务书学院名称:数学与计算机学院课程代码:_8404091_专业:计算机科学与技术年级:一、设计题目学生管理系统二、主要内容设计一个简单的学生管理系统,实现出最基本的功能。
三、具体要求及应提交的材料学生基本信息文件(StuInfor.txt)及其内容:StuInfor.txt文件不需要编程录入数据,可用文本编辑工具直接生成。
学号姓名性别宿舍号码电话号码01 张成成男501 8773211102 李成华女101 8772311203 王成凤女101 8772311204 张明明男502 8773433305 陈东男501 8773211106 李果男502 8773433307 张园园女102 87756122……. .. …………..学生成绩基本信息文件(StuScore.txt)及其内容:学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分01 A01 大学物理 3 66 78 8202 B03 高等数学 4 78 -1 9001 B03 高等数学 4 45 -1 8802 C01 VF 3 65 76 66……. ………. .. .. …功能要求及说明:(1) 数据录入功能: 对StuInfor.txt进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。
综合成绩、学分由程序根据条件自动运算。
综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% 。
实得学分的计算: 采用等级学分制。
综合成绩在90-100之间,应得学分=学分*100% 综合成绩在80-90之间,应得学分=学分*80%综合成绩在70-80之间,应得学分=学分*75% 综合成绩在60-70之间,应得学分=学分*60%综合成绩在60以下,应得学分=学分*0%(2)查询功能:分为学生基本情况查询和成绩查询两种A:学生基本情况查询:A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。
A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。
B:成绩查询:B1:输入一个学号时,查询出此生的所有课程情况,格式如下:学号:xx 姓名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx………………………共修:xx科,实得总学分为: xxx(3)删除功能:当在StuInfor.txt中删除一个学生时,自动地在StuScore.txt中删除此人所有信息。
(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
设计要求:1.分析设计要求,给出解决方案(要说明设计实现所用的原理,采用的数据结构);2.模块化程序设计,画出程序的基本结构框图和流程图;3.对程序的每一部分要有详细的设计分析说明;4.程序执行的每个步骤要有具体的提示内容或输出;5.源代码格式规范(锯齿型书写格式),注释不少于三分之一;6.设计合适的测试用例,对得到的运行结果要有分析;7.设计中遇到的问题,设计的心得体会。
设计结束后,每位同学必须上交如下材料:1.《课程设计说明书》打印稿一份;2.《课程设计说明书》电子文档及课程设计的程序源代码刻盘四、主要技术路线提示首先根据要解决的问题进行分析和总体设计,得到要定义的数据结构(可使用链表或结构数组存储数据)和函数,然后进行详细编码,在主函数中对各功能函数进行测试。
五、进度安排一周完成。
1天查阅资料和分析,3天编写软件,2天写出课程设计报告并上交。
六、推荐参考资料(不少于3篇)1.谭浩强.程序设计题解与上机指导. 北京:清华大学出版社,2005.102.黄明,梁旭等编著.C语言课程设计. 北京:电子工业出版社,2006.63.陈清华,朱红主编. Visual C++课程设计案例精选与编程指导. 南京:东南大学出版社,2003.064.李春葆. C语言习题与解析A级. 北京:清华大学出版社,2006.10指导教师签名日期年月日系主任审核日期年月日目录1 引言 (1)1.1问题的提出 (1)1.2国内外研究的现状 (1)1.3任务与分析 (1)2 程序的主要功能 (1)2.1学生信息录入-------课程信息录入 (1)2.2学生信息查询 (1)2.3删除学生信息 (1)2.4按所修学分高低进行排序 (1)3 程序运行平台 (2)4 总体设计 (2)5模块分析: (2)5.1学生信息录入模块: (4)5.2查询学生信息模块: (6)5.3删除学生信息浏览模块: (7)5.4按学分高低进行排序模块: (9)6系统测试 (10)6.0进入主菜单: (10)6.1选“1”进入学生信息录入: (12)6.2选“2”进入查询学生信息: (13)6.3选“3”删除学生信息: (14)6.4选“4”,进行排序: ................................. 错误!未定义书签。
6.5选“0”退出系统: ................................... 错误!未定义书签。
结论. (16)致谢 (17)参考文献 (18)摘要随着计算机的普及,计算机系统越来使用于社会的各个领域。
社会需求以及市场竞争等日新月异、瞬息万变,在这种情况下,信息进入重要资源的行列。
随着信息技术的推广应用和信息资源的不断开发利用,管理信息化正在往广度和深度发展,这导致信息管理在整个管理中地位的提升。
信息管理渗透于和体现在各种管理的全部过程。
自从有了计算机以后,好的学生选课系统能够使教育更加繁荣,更加规范化,提高了教育人士的办事效率,创造出无形的价值,让学生更好的发展。
在以前没有学生选课系统,对学生的学习情况不能够及时的了解,做出快的政策,致使很多学生延误。
因此,针对这些问题。
设计学生选课系统解决对学生每科每人的统计,能够了解学生学习情况,能够输出一览表,直观的快速的看到各种情况。
对各种数据自动化计算,大大提高了工作效率。
关键词:学生管理系统;计算机;学生;信息。
1 引言1.1 问题的提出在现代化的教育管理中,学生管理系统有着十分重要的作用,然而,用大型软件系统来于小型的教育单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
1.2国内外研究的现状现在各大高校已基本上全部使用。
1.3任务与分析本课程设计主要是录入并保存学生的基本信息以及学生所选课程的所有信息包括课程编码、课程名称、平时成绩、学分、卷面成绩等,最后在按学生所修学分高低进行排序。
系统以菜单方式工作1、学生信息录入功能(课程信息用文件保存)--输入2、信息查询功能--输出3、删除学生信息功能4、排序功能2 程序的主要功能2.1学生信息录入录入学生的基本信息。
2.2信息查询能够对所有学生的信息进行浏览2.3删除学生信息能够对于所有学生的信息进行删除2.4排序按学生所修学分高低进行排序3 程序运行平台VC++6.0。
具体操作如下:新建工程,建立新的源文件,再编译,链接,执行,调试4 总体设计图4.1 系统总体框架图5模块分析:本函数有两个结构体和两个主调函数(其中choice 主调函数调用4个功能函数)。
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #define N 20 struct kec { char kcbm[10];//课程编码 char kcmc[10];//课程名称 float xf;//学分float pscj;//平时成绩主函数信息录入信息查询退出系统删除信息排 序float sycj;//实验成绩float jmcj;//卷面成绩float zhcj;//综合成绩float sdxf;//实得学分};typedef struct{char xh[4];//学号char name[10];//姓名char xb[4];//性别char qsh[10];//寝室号码char dhh[10];//电话号码struct kec kc[10];//所选课程float gxxf;//共修学分}stu;void print(stu *x);//菜单选择void choice(){char ch;while(1){system("cls");menu();//显示菜单ch=getch();//选择菜单if(ch=='0')break;switch(ch)//判断功能项{case'1':input();break;case'2':search();break;case'3':dele();break;case'4':sort();break;}}printf("\n欢迎使用!!!\n"); }void main(){choice();//调用菜单选择}下面是4个函数模块:(它们通过主菜单函数指示功能)//菜单void menu(){printf(" 学生管理系统\n");printf("=====================\n");printf("1.数据录入\n");printf("2.查询\n");printf("3.删除\n");printf("4.排序\n");printf("0.退出\n");printf("====================\n");printf("请选择相应的功能:");}5.1课程录入模块:进入主菜单后,选择功能“1”,进入学生信息录入阶段.其函数代码为: //数据录入void input()菜单学生信息录入输入学号是否为1N Y{system("cls");float s;int t;stu x;FILE *fp;if((fp=fopen("student.txt","ab"))==NULL){printf("cannot open this file\n");exit(0);}while(1){t=0;s=0;printf("\n学生基本信息录入格式:学号姓名性别寝室号码电话号码 . 当输入学号为1结束录入\n");scanf("%s",x.xh);if(strcmp(x.xh,"1")==0) break;scanf("%s %s %s %s",,x.xb,x.qsh,x.dhh);printf("\n学生成绩基本信息录入格式课程编码课程名称学分平时成绩实验成绩卷面成绩. \n ");printf("第%d个课程信息:当输入课程编码为A时结束\n",t+1);while(1){scanf("%s",x.kc[t].kcbm);if(strcmp(x.kc[t].kcbm,"A")==0)break;scanf("%s %f %f %f %f",x.kc[t].kcmc,&x.kc[t].xf,&x.kc[t].pscj,&x.kc[t].sycj,&x.kc[t].jmcj); if(x.kc[t].sycj==-1)x.kc[t].zhcj=(float)(x.kc[t].pscj*0.3+x.kc[t].jmcj*0.7);elsex.kc[t].zhcj=(float)((x.kc[t].pscj+x.kc[t].sycj)*0.15+x.kc[t].jmcj*0.7);if(90<=x.kc[t].zhcj)x.kc[t].sdxf=(float)(x.kc[t].xf);else if(80<=x.kc[t].zhcj)x.kc[t].sdxf=(float)(x.kc[t].xf*0.8);else if(70<=x.kc[t].zhcj)x.kc[t].sdxf=(float)(x.kc[t].xf*0.75);else if(60<=x.kc[t].zhcj)x.kc[t].sdxf=(float)(x.kc[t].xf*0.6);else if(60>x.kc[t].zhcj)x.kc[t].sdxf=0;s=s+x.kc[t].sdxf;t=t+1;printf("\n学生成绩基本信息录入格式课程编码课程名称学分平时成绩实验成绩卷面成绩. \n ");printf("第%d个课程信息:当输入课程编码为A时结束\n",t+1);}x.gxxf=s;fwrite(&x,sizeof(stu),1,fp); //将信息写入文件}fclose(fp);//用完文件关闭文件getchar();}5.2查询信息模块:进入主菜单后,选择功能“2”,进入更改查询信息阶段.其函数代码为:void search()//按学号查找{system("cls");stu x;FILE *fp;菜单输入学号是否存在输出该生信息NYchar number[4];printf("\n输入要查学生的学号: ");scanf("%s",number);if((fp=fopen("student.txt","rb"))==NULL) {printf("can't open file!\n");exit(0);} while(!feof(fp)){fread(&x,sizeof(stu),1,fp);//把文件的学生信息读入到xs结构体if(strcmp(number,x.xh)==0)//学号相当的时候运行下面程序{ printf(" 学生的信息如下:\n");printf("学生姓名性别寝室号码电话号码");printf("\n %s %s %s %s\n",,x.xb,x.qsh,x.dhh);print(&x);break;}}if(feof(fp)) printf("cannot find\n");fclose(fp);getchar();getchar();}void print(stu *x){int i;printf("学号姓名");printf("%s %s\n",x->xh,x->name);for(i=0;i<10;i++){if(strcmp((x->kc[i]).kcbm,"A")==0)break;printf("课程名称:%s 综合成绩:%6.2f 实得学分:%6.2f\n",(x->kc[i]).kcmc,(x->kc[i]).zhcj,(x->kc[i]).sdxf);}printf("共修科目:%d ",i);printf("共修学分:%6.2f\n",x->gxxf);}5.3删除信息模块:进入主菜单后,选择功能“3”,进入删除信息阶段.菜单输入姓名N是否存在Y删除该生信息其函数代码为://删除:输入学生姓名,若该学生存在,则删除void dele(){stu xs[N];FILE *fp;char name[10];int i,len,k=-1;system("cls");printf("\n输入要删除的学生姓名: ");scanf("%s",name);i=0;;if((fp=fopen("student.txt","rb+"))==NULL) {printf("can't open file!\n");exit(0);} while(!feof(fp)){fread(&xs[i],sizeof(stu),1,fp);if(feof(fp)) break;if(strcmp(xs[i].name,name)==0) k=i;i++;}fclose(fp);//以下是删除后重新写文件len=i;if(k>=0){if((fp=fopen("student.txt","wb+"))==NULL) {printf("can't open file!\n");exit(0);} for(i=0;i<len;i++){if(i==k) continue;fwrite(&xs[i],sizeof(stu),1,fp);}printf("删除成功");fclose(fp);}else printf("删除失败!!!\n");getchar();getchar();}5.4排序模块:进入主菜单后,选择功能“4”,进入排序阶段。