C#学生成绩管理系统课程设计剖析

2025-04-10 版权声明 我要投稿

C#学生成绩管理系统课程设计剖析(推荐10篇)

C#学生成绩管理系统课程设计剖析 篇1

《汇编语言》课程设计对于巩固汇编语言理论知识,加强学生的实际动手能力和提高学生综合素质十分必要。课程设计的目的主要是通过程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。

2、软件需求分析和设计

2.1学生成绩管理系统是对学生成绩的管理,其中包括以下几个模块:(1).插入一个数据(插入学生学号以及语数外三个成绩)。(2)修改一个数据。(3)删除学生成绩数据。(4)查找学生成绩。(5)查看学生成绩的排名(6)查看学生成绩分布(7)按esc键退出系统

2.2学生成绩管理系统应该包含以下信息:学号,语文成绩,英语成绩,数学成绩。因此,系统应该提供以下功能:(1)输出显示菜单。(2)输入学生的成绩(3)修改学生成绩(4)删除学生成绩(5)查询学生成绩(6)显示学生成绩排名(7)显示成绩分布统计(8)按esc键退出系统

2.3依据程序的功能需求,该系统的功能结构图如下

系统功能结构图

2.4 程序流程图:

主程序流程图

查找学生成绩

插入学生学号及成绩

修改学生的成绩

显示各个学科各分数段的人数

3、程序实现说明

3.1学生管理系统中各子程序如下:

(1).输入全部学生学号以及语文,英语,数学三科的成绩。子程序名:insert 子程序描述:该子程序为输入字程序。系统在开始的时候是没有数据的,通过该子程序可以初始化系统,将学生的学号及成绩输入系统。

代码:

insert proc near;定义进程子程序:插入学生,学号及 成绩 call input;调用input add n,1 ret insert endp

(2).修改输入的成绩。子程序名:modify 子程序描述:通过子程序修改学生的成绩 代码:

modify proc near;定义进程子程序:修改学生学号,成绩 md1:output mess1;输出mess1 shuru;调用宏shuru:二位数据输入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si];先查找输入的学生是否存在

je qq1_1;查到的话,就跳转到qq1_1输入修改的值,也就是重新输入。;结果相等则跳转到qq1_1 add si,1

cmp si,bx jbe md;小于等于则跳转到md output mess;输出mess jmp md1;不相等继续输入学号

qq1_1:;转入修改的值重新输入。mov di,si output mess2 output mess4 mov si,0 mov cx,3

qq3_1:shuruu;cmp dx,78h;

jbe qq2_1;output ts3;jmp qq1_1;qq2_1:mov buf[si],dl output bg;add si,1 loop qq3_1 mov al,buf[0];mov chi[di],al mov al,buf[1]

分别输入语文,英语,数学成绩,并将其放 在缓冲区buf中 比较输入的成绩是否大于120,如果大于120的 话,那么重 新输入成绩 小于等于则转移到qq2_1 输出ts3 跳转到qq1_1 输出空格 将存入buf中的成绩,分别赋值给存放对应科 目的成绩的数组

mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp

(3).删除学生的成绩。子程序名:delete 子程序描述:通过子程序删除学生的成绩 代码:

de proc near;删除某个学生的记录 sc1:output mess1 shuru;调用宏shuru,接受输入的学号 mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si];查询输入学号的学生信息是否存在,不存在的话,重新输入学号 je sc2;相等则转移到sc2 add si,1 cmp si,bx jbe sc;小于等于则转移到sc output mess;输出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3;相等则转移到sc3 mov cx,bx

sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4;loop循环指令,执行操作(cx)<--(cx)-1.若 cx!=0,跳转到标号sc处循环执行;cx=0,则推出

循环,执行loop的下一条指令 sub n,1 sc3: ret de endp

(3).查询学生的成绩。子程序名:find 子程序描述:通过子程序查询学生的成绩 代码:

find proc near;定义进程子程序:查找学生成绩 call sum;求学生的总成绩 call ping;求学生的平均成绩

bj1:output mess1;输出mess1 shuru;二位数数据输入 mov bl,n mov bh,0 mov al,dl

mov si,0

bj: cmp al,xh[si];将输入的学号与输入的学号相比,je i;存在的话,将此学生的成绩输出。je表示结果相

等则转移。add si,1 cmp si,bx jbe bj;output mess jmp bj1 i: output strr2 shuzi xh[si];shuzi output bg;mov al,chi[si] cbw;shuzii ax;shuzii output bg;mov al,eng[si] cbw;shuzii ax;shuzii output bg

mov al,mat[si] cbw shuzii ax output bg;

mov al,pj[si] cbw

小于等于则转移到bj 为二位数据输出 输出空格 将字节变为字

为三位数据输出。输出空格 将字节变为字

为三位数据输出 输出空格的字符串,用于与标题栏对齐

shuzii ax output bg

mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx];shuzii为三位数据输出

output bg;输出空格的字符串,用于与标题栏对齐 shuzi mc[si];shuzi为二位数据输出 ret find endp

(4).显示学生的成绩排名。子程序名:show 子程序描述:通过子程序显示学生的成绩排名 代码:

show proc near;定义进程子程序:显示结果排名 call sum;调用宏sum call ping;调用宏ping call rank;调用宏rank call shuchu;调用宏shuchu ret show endp

3.2程序运行抓图:

主菜单

修改学生成绩

删除学生成绩

显示各个学科各分数段的人数

4、程序总结

通过两个星期的学习,努力,终于完成了报告。系统可以很好的运行。这两个多星期的时间,几乎每天不是在敲代码,就是在看代码,查书,上网。系统中用到了很多最近才学习的知识,比如宏,子程序。这些都使得代码的运行效率提高了,代码行数减少了。系统还用到了bios的清屏功能。这些功能如果不是做课程设计,我想我很难会接触到这些知识。

由于自己对知识掌握的不是很牢固,其中也会碰到一些困难。每当遇到问题的时候,我会先上网去查找,看看有没有人提过这方面的问题。互联网是强大的,大部分的问题通过网络都可以解决。部分找不到的问题,我就去请教班里学得好的同学。他们对知识的掌握远超过我。这样下来,很多问题都迎刃而解了。

C#学生成绩管理系统课程设计剖析 篇2

1 课程设计过程管理

1.1 课程设计任务分配

课程设计内容从“机械设计”课程教学基本要求出发, 注重对基本知识的理解和应用, 要求难易适当。目前课程设计题目广泛采用的是二级齿轮减速器为主的机械传动装置设计, 是一个经过多年实践验证的设计题目, 符合教学大纲对该教学环节的要求。

根据教学大纲的要求, 在不减少学生设计工作量的前提下, 在讲述机械设计部分时就把课程设计任务布置给学生, 将课程设计的部分设计计算内容 (如带传动设计、链传动设计、齿轮传动的设计) 放在机械设计课程教学时[2], 强调与该课程的关系, 这样可以发挥学生学习的主动性和积极性, 从而减少此部分设计计算的耗时, 提高设计效率。

将课程设计任务按设计内容分组, 比如:带传动+二级斜齿圆柱齿轮减速器、二级斜齿圆柱齿轮减速器+链传动、圆锥齿轮-斜齿圆柱齿轮减速器+链传动等组, 每组各设正副组长一名, 负责平时的纪律管理、设计中的问题搜集及反馈等。布置课程设计任务时, 指导教师制定完整的设计进度表, 让学生对照进度表进行设计。

1.2 设计过程中的指导工作

指导教师及时、耐心、细致的指导有助于学生及时解决设计中遇到的问题, 排除困难, 有利于加快设计进度, 提高设计质量。指导教师应勤于指导, 每天都把设计中出现的问题及时解决掉, 不能让学生带着错误往下做。对学生设计中面临的共性问题, 由组长收集整理, 每天集中讲解。对于以往经常出问题的地方, 设计前一定要重点指出来, 提醒学生注意, 避免再犯。课程设计后期画图阶段, 也要把容易犯的错误提前总结指出, 降低简单问题出现错误的概率。

1.3 学生平时管理

课程设计过程中的出勤率低一直是一个非常严重的问题。许多学生生活作风懒散, 认为课程设计时可以不到设计室, 或者迟到、早退, 致使他们在设计中进度缓慢, 出现的错误不能及时纠正, 一错到底。为此, 在开始设计时, 要求按学生学号安排座位, 并要求他们把自己的姓名、学号写在设计图纸上, 以方便对照检查出勤和设计进度。同时, 定期检查设计进度, 重点检查平时设计进展情况, 作为最终成绩的依据。

1.4 收尾工作

指导教师要对学生最后完成的图纸、设计说明书逐项进行严格检查。同时, 提出一些设计中的相关问题, 考察学生对设计知识的理解掌握情况。据此给出学生学习课程设计的成绩。

2 成绩评定

2.1 评定人员及职责

将传统的由指导教师一人给成绩的做法, 改为由指导教师、小组成员、学生自己组成三级成绩评定机构进行综合评定。指导教师负责制定、解释评定办法和评定指标体系, 审定评定结果, 接受学生有关成绩评定的申诉[3]。

2.2 成绩评定办法

学生课程设计成绩评定得分由指导教师、小组成员、学生自己3部分评价构成, 三者所占权重分别为5∶3∶2。最后由指导教师整理给出最终成绩。成绩评定内容包括:平时表现、设计图纸质量、设计说明书质量、回答问题情况, 权重比例为3∶3∶3∶1[4]。

2.3 评定程序

1) 指导教师评定。指导教师根据学生的平时表现、设计图纸和说明书做出总体评价。

2) 小组内互评。小组内各成员都要互相评分, 对每个人的设计工作做出横向比较。每个人都要客观、公正、公平地对其他组员进行评价, 同时发现自己与他人之间的差距, 并对平时表现起到互相监督作用, 减少抄袭的现象。

3) 学生自评。学生是课程设计的主体, 对自己的设计任务完成情况有基本的认识, 要求参考组内其他人对自己的设计完成情况做出评价, 有助于对自己做出清醒的认识[5]。

2.4 评定结果认定及处理

1) 评定等级分为优秀、良好、中等、及格和不及格5个等级。评定综合得分在90分 (含) 以上或排名在前10%者为优秀, 80~89分者为良好, 70~79分者为中等, 60~69分者或排名在后10%者为及格, 60分以下为不及格。

2) 成绩评定结果由指导教师组织学生进行统计、分析, 向全班学生公布, 作为学生课程设计最终成绩的重要参考依据。

3) 成绩评定等级不合格的学生, 责令其对设计图纸、设计说明书限期整改, 经指导教师再次评定合格后方可给出最终合格的成绩。

总之, 对《机械设计课程设计》过程科学安排, 严格管理, 才能保证课程设计正常进行并取得预期教学效果。改进的课程设计成绩评定方法有助于科学、公正、客观地评价学生的课程设计质量及水平, 提高学生的积极性, 改善课程设计教学效果。

摘要:为提高机械设计课程设计的质量, 使学生达到学习知识、锻炼技能的目的, 在课程设计中需要从课程设计任务分配、教师指导、学生日常管理、成绩评定等多方面科学安排, 并阐述了成绩评定的方法和程序、评定结果认定及处理方法。

关键词:机械设计课程设计,过程管理,成绩评定

参考文献

[1]贾吉林.机械设计课程设计教学改革与探索[J].机械管理开发, 2009, 24 (4) :151-152.

[2]谢宋良, 林怡青.《机械设计课程设计》质量保障与监控[J].教育教学论坛, 2012 (5) :229-230.

[3]莫海军, 黄华梁, 徐忠阳.《机械设计课程设计》教学方法改革与探索[J].装备制造技术, 2009 (7) :188-190.

[4]高利宁.机械设计课程设计教学改革初探[J].电子制作, 2013, 25 (11) :69.

C#程序设计课程教学思考 篇3

【关键词】课程设计;C#程序

一、课程性质和任务

《C#程序设计》是计算机软件技术专业(.net开发方向)一门专业技能课 ,是C# winForm 应用程序和ASP.NET Web应用程序设计的前导课程,是.net开发方向的核心基础课程。通过本课程的学习,学生应掌握 C# 语言的基本语法,程序设计的基本思想、基本概念和基本方法,进一步熟悉面向过程程序设计,掌握面向对象程序设计的思想,能对一般问题进行分析和面向对象抽象,根据UML图编写面向对象的C# 程序。

二、课程教学目标

知识教学目标:

掌握C#语言的基本语法、语句;掌握C#中的数据类型、运算符和表达式;熟练掌握顺序、分支和循环三种基本的程序控制结构;掌握结构、枚举的定义,并灵活使用;熟练掌握数组的定义、初始化和数组的基本操作;熟练掌握函数的定义和调用;掌握面向对象相关概念:类、对象、类的封装、继承、多态等特性和使用;掌握接口和抽象类的定义,并灵活使用;掌握集合、多态状态下的类型和值的比较、类型的转换、泛型;掌握事件与委托的概念与使用。

能力培养目标:

掌握结构化程序设计的基本思想和方法;掌握面向对象程序设计的基本思想和方法。能够对客观世界进行抽象,并编写出面向对象程序;熟练运用C#语言的编辑调试环境,能编写常用的C#应用程序。

思想教育目标:

培养学生吃苦耐劳与敬业精神、团队精神;培养学生具有实事求是的学风和严谨的工作态度;

培养学生分析问题和解决问题的能力。

三、教学内容和要求

(一)理论教学模块

第一章 C# 简介

1.教学要求

了解什么是.NET Framework,什么是C#,理解.NET Framework的运作流程,了解C#的主要特性,以及C#的现代编程语言特性。

2.教学内容

C#和.NET Framework的含义,.NET Framework的工作原理和特别之处,C# 的功能。

第二章 编写C#程序

1.教学要求

掌握使用Visual Studio 2005创建C#程序的方法,掌握使用Visual Studio 2005创建基本控制台界面的C#程序的方法,掌握C#程序的基本结构,熟悉控制台输入、输出方法,了解C#基本语句、注释等要求,理解命名空间。

2.教学内容

Visual Studio 2005的基础知识,编写简单的控制台应用程序,编写Windows Form应用程序。

第三章 变量和表达式

1.教学要求

掌握C#的基本语法,理解C#程序的基本结构,掌握简单数据类型的定义和使用,包括整型、浮点型、小数型、布尔型,掌握变量的定义,熟悉camelCase和PascalCase变量命名法,了解数据类型转换,掌握常量,熟悉表达式及运算符实现数据的计算。

2.教学内容

C#的基本语法,简单数据类型,变量及其用法,表达式及其用法。

第四章 流程控制

1.教学要求

了解C#中的布尔类型的定义与使用方法,理解位运算,掌握分支语句,包括if和switch,掌握循环语句(包括for、while、do while),学会分析问题,并使用分支和循环解决。

2.教学内容

布尔逻辑的含义及其用法,位运算的含义及其用法,分支语句,循环语句。

第五章 复杂的变量类型处理

1.教学要求

掌握枚举类型的定义和使用,掌握结构类型的定义和使用,掌握一维、二维数组的使用,理解隐式和显式类型转换,掌握.NET对字符串的处理常見功能,包括字符串的查找、替换、格式化、调整等。

2.教学内容

枚举的定义与使用,结构体的定义与使用,数组的定义与使用,类型转换,字符串处理。

第六章 函数

1.教学要求

掌握函数的定义和使用,理解可变参数函数,函数的参数,包括值参数、引用参数和输出参数,理解变量作用域概念,变量在不需要它们的代码块中可以隐藏起来,掌握结构化程序设计的方法和步骤。

2.教学内容

定义和使用简单函数,通过参数在函数之间传送数据,变量的作用域,结构化程序设计。

第七章 程序调试和异常处理

1.教学要求

掌握VS2008中程序调试方法,包括中断模式和非中断模式,使用try...catch... finally处理程序异常。

2.教学内容

VS中的调试方法,程序异常处理语句。

第八章 面向对象程序设计入门

1.教学要求

掌握类的定义,包括类成员的访问级别、函数定义及重载,掌握对象的使用,理解面向对象的基本思想,特别是封装性。

2.教学内容

什么是面向对象编程,类的定义,对象的使用,面向对象的基本思想。

第九章 类的定义和使用

1.教学要求

掌握构造函数的定义和使用,理解面向对象的继承性,掌握类中虚成员的定义和重写,理解类型的上传,了解类的层次结构和基类object,掌握类中属性的定义和使用,并理解其实现的封装性好处,了解静态类和类的静态成员,掌握运算符的重载。

2.教学内容

构造函数,面向对象的继承性,类的其他成员,包括属性、静态成员、运算符的重载等。

第十章 类的高级使用

1.教学要求

掌握抽象类和接口,理解两者的区别和适用情况,理解面向对象的多态性及其原理,掌握面向接口的编程。

2.教学内容

抽象类和接口的使用,创建类库,理解面向对象的多态性,使用面向接口的编程。

第十一章 集合、比较和转换及泛型

1.教学要求

掌握ArrayList集合,掌握自定义集合的方法,掌握多态状态下类型和值的比较及类型的转换,

掌握泛型的使用。

2.教学内容

ArrayList的使用,自定义集合,比较和转换,泛型。

第十二章 事件的定义和使用

1.教学要求

掌握委托及事件的定义和使用,理解事件和委托的区别,了解线程的使用。

2.教学内容

C#学生成绩管理系统课程设计剖析 篇4

一、实验目的和要求

(1)熟练掌握实体关系设计的方法。(2)通过需求分析结果,掌握E-R图。

二、实验内容和原理

实体关系设计是在需求分析的一个环节过程,在这一过程中产生E-R图,该图由实体、属性和联系三个要素构成。逻辑结构设计的任务就是把概念设计阶段建立的基本E-R图按照选定的系统软件支持的数据模型,转换成相应的逻辑模型。这种转换要符合关系数据模型的原则。

E-R图向关系模型转换时要解决如何将实体和实体间的联系转换为关系,并确定这些关系的属性和码,这种转换一般按下面的原则进行。

(1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个联系也转换为一个关系,联系的属性及联系所连接的实体的码都转换为关系的属性,但关系的码会根据联系的类型变化。

三、主要仪器设备

计算机一台、Powerdesinger运行环境

四、操作方法与实验步骤

在成绩管理系统中,需要管理学生、课程和成绩,以及它们之间的联系。因此在该系统的E-R图中,实体分别为学生、老师、课程。为了便于掌握,学生实体的属性分别有学号、姓名、性别;课程实体的属性有课程编号、课程名称、学期、课程学分;教师实体的属性有教师编号、姓名、性别。学生实体与课程实体有选课关系,而且一个学生可以选择多门课程,一门课程也可以被多个学生选择,因此学生和课程之间的联系是m:n联系。教师实体与课程实体有教授关系,一名教师可以教多门课程,一门课程也可以被多个教师教授,因此教师和课程之间的联系是m:n联系。学生在选课后会产生成绩,教师授课后会产生授课地点及授课学期。根据上述分析,绘出的E-R图如下图所示。

阶段1.2 成绩管理系统结构设计

一、实验目的和要求

1.了解数据库中列的属性以及各个属性的含义。2.掌握为不同的列选择不同的属性及范围。

二、实验内容和原理

在管理信息系统中,物理结构设计主要是指如何将通过逻辑结构设计所得的系统逻辑结构型转换为物理模型,并明确地指出系统的物理存储结构。本实验主要是利用CASE工具集PowerDesigner对成绩管理系统进行物理结构的设计。

三、主要仪器设备

计算机一台、Powerdesinger 运行环境、Oracle运行环境

四、操作方法与实验步骤

在物理结构设计中需要考虑为每列设计合适的数据类型。成绩管理系统中,学生(学号、姓名、性别)关系里,学号采用int来表示就可以了,而姓名设置成varchar2(20),性别只需要设置为char(2)。因为性别不是男就是女,因此只会占用两个字节。所以最终我们可以将其物理表结构设置为:t_student(stuid int,stuname varchar2(20),sex char(2)。依照上述,课程的物理表结构为:t_course(couid int,couname varchar2(20),term char(2),credit number(3,1))。教师的物理存储表结构为:t_teacher(teaid int,teaname varchar2(20),sex char(2))。选课的物理表结构为:t_selcour(sid int,cid int,score number.(4,2))。教课的物理表结构为:t_teacour(tid int,cid int,teaaddr varchar2(30),term char(2))。

(1)通过手动编写SQL语句方式建立数据库后台

上述创建了代表学生实体的表t_student,其中stuid设置为主键,唯一标识一个学生。

表t_course用来代表课程实体,其中采用couid来标识一门课程。当课程名称的长度大于20个字符时,varchar2可以自动扩展。

物理实体在物理结构中用t_teacher表来表示,teaid用来唯一标识一位教师,因此其不能空

选课表t_selcour中学生编号参考t_student表中的stuid,此时sid为外键,课程编号cid也作为外键参考t_course中的couid(2)通过PowerDesigner建立数据库后台。

第四步:到此,系统的概念模型就全部设计好了。接下来单击菜单“工具”→“生成物理属性模型”选项,就会弹出“物理数据模型生成选项”对话框,如下图:

在“常规”选项卡中选择“生成新的物理模型”单选钮,并选择DBMS为“OPACLE Version 10g”,“名称”文本“MyPhysicalDataModel”,并单击“确认”按钮,在弹出得到路径选择对话框中输入你想要放置生成的物理数据模型文件的位置,系统就会自动在指定的路径下生成一个名为“MyPhysicalDataModal.pdm”的文件,并生成系统的物理模型,如下图

CONGC

从菜单中选择 Database---Generate Database选项。PowerDesigner将会在指定的路径下生成一个名字为*.sql 的文本文件。里面存放可供Oracle 执行的用来建立数据库实体的SQL语句。

阶段1.3 成绩管路系统存储过程设计

一、实验目的和要求

(1)了解存储过程的设计目的以及方法。(2)掌握存储过程的创建。

二、实验内容和原理

存储过程是在数据中定义的程序块,它存放在数据库服务端数据字典里。采用存储过程可以提高过程代码程序的执行速度和代码共享度。具体有以下几个特点。(1)过程存放在服务器端,减少了网络传输的延时,提高了速度。(2)过程在执行一次之后,会驻留内存,后续的执行无需再经编译过程,提高了执行效率。

三、主要仪器设备

计算机一台,Oracle运行环境

四、操作方法与实验步骤

1、创建存储过程先向表t_student中插入数据,具体如下所示

2、每次向表t_student中插入数据时,只需要运行该过程就可以了。具体如下所示。表t_student中的列stuid被设置为主键,因此不可以存在重复值。在第二次运行时,因为输入的第一个参数id与表中已存在的数据相同,所以插入时出现错误。

3、继续向表中插入两条记录,其中当参数id不重复时,过程成功完成。

4、不仅可以通过存储过程向表中插入数据,也可以通过一般的SQL语句向表中插入数据,如下所示。

5、向表中插入数据时,需要注意数据类型以及长度都需要与表中定义的相符,否则会出现错误,具体如下所示。

6、t_course表中列term被定义为char且长度为2,因此在插入数据时该列最大长度为2,超过该值会出现错误。课程表中只有已经存在的课程编号才能被插入到选课表中,否则会出错,这样就保证了数据的一致性。

7、t_selcour表的另外一个外键为第一列sid,在插入时只有当该值存在于学生表中的学生编号时,才能被成功插入,否则也会出现错误,具体如下所示。

8、对于向表t_teacour中插入数据时,同样需要满足外键参考主键的约束条件,具体如下所示。

9、向表t_teacour中插入一行记录,其中tid存在于表t_teacher的列teaid中,cid存在于表t_course列couid中。如果插入的值不符合外键约束条件,会出现错误,具体如下所示。

10、在完成对表插入值后,可以关联表查询记录。比如:查询教师编号为1的教师所带的课程编号、教师姓名、课程名称、课程学分信息,具体如下所示。实现了查询编号为1的老师所带的课程编号、课程名称等信息。在查询时,为表命名别名时为了方便,各个表的连接通过主键外键约束来实现。

查看t_course及t_selcourse中的值

五、实验结果与分析

实验结果如上截图所示。

六、讨论、心得

grant select不支持对表中选定的几列授权,只能将整个表的select权限授权出去。所以实验中先建立了基于选课信息表的视图SelectiveInfo1,视图中包含成绩列,学号列以及班级列(不包含其他的列)再将对视图SelectiveInfo1的select权限授予角色teacher。

不同的用户可以创建相同的表格,teacher用户创建了table1,student用户也创建了table1,且这两个表格式完全相同的,那么其他用户需要用这两个表格时,可以用teacher.table1和student.table1加以区分。

C#学生成绩管理系统课程设计剖析 篇5

本设计说明是在学生宿舍分配软件需求规格说明书的基础上,详细描述系统的概要设计结果,作为详细设计的基础资料,为系统开发人员提供设计和开发依据。

1.2 背景

a.待开发的软件系统的名称:学生宿舍分配系统 b.本项目的任务提出者:宿舍管理中心 c.本项目的任务开发者:学校技术人员

d.本项目的任务用户:学生、班主任、辅导员、宿舍负责人、校领导、院领导。

1.3 术语

本文当中涉及的专业术语定义或解释,一般用表格形式给出,如表2-1所示。表2-1 术语定义或解释表

1.4 参考资料

学生宿舍分配系统需求规格说明书

马小军 张玉祥,《软件开发实训教程》,中国人民大学出版社,2015年8月

2.系统总体设计 2.1设计约束

2.1.1本系统应遵循的标准和规范

易用性、高效性、可靠性、可扩展性、安全性 2.1.2软硬件运行环境约束 Windows XP/win7/win8, Sql server 2008数据库 数据库服务器一台,CPU:Pentium900M,内存容量>512M 2.1.3接口约束 数据库访问接口

2.1.4用户界面约束 交互方式:人机交互

界面空间尺寸:可随浏览器大小自行调整 硬件级网络带宽:校园网带宽>10M 2.2体系结构设计

(系统的体系结构模型,如下)

2.3系统功能结构 主功能清单

2.4模块设计

2.4.1 学生住宿申请子系统——填报申请模块程序设计 2.4.1.1功能描述 学生在线填写住换宿申请,填写后提交。该模块提供住换宿申请的保存和提交功能。2.4.1.2性能 提交时间<1s 2.4.1.3输入项

住宿申请表内容包括:姓名、学号、性别、学院、班级、家庭地址、联系电话、电子邮件、申请日期、特殊说明。

2.4.1.4输出项

提交状态的宿舍申请表 2.4.1.5流程逻辑与算法描述(住宿申请顺序图,如下)

2.4.1.6接口 数据库访问接口 2.4.1.7单元测试计划 按照住宿申请顺序图即程序执行流程设计测试用例

2.4.2 学生住宿申请子系统——申请查询模块程序设计 2.4.2.1功能描述 针对学生在线提交的住换宿申请,实现申请书所处状态的具体查询并显示查询结果。2.4.2.2性能 提交时间<2s 2.4.2.3输入项 学号 2.4.2.4输出项

住宿申请表审核或批准的状态。2.4.2.5流程逻辑与算法描述(申请查询顺序图,如下)

2.4.2.6接口 数据库访问接口 2.4.2.7单元测试计划 按照申请查询顺序图即程序执行流程设计测试用例

2.4.3 辅导员审核子系统 2.4.3.1 功能描述 实现辅导员对接收到的学生住宿申请进行审核意见标注的操作 2.4.3.2 性能 审核提交时间<1s 2.4.3.3 输入项 学生住宿申请表 2.4.3.4 输出项 审核后的的住(换)宿舍申请表 2.4.3.5 流程逻辑与算法描述(辅导员审核顺序图,如下)学生 住(换)宿舍申请查询界面 住(换)宿舍申请审核界面 住(换)宿舍申请书 数据库 辅导员编号 查询辅导员负责班级的住宿申请表 显示全部申请 查询提交状态的申请 显示列表结果 选择列表中申请 查询结果列表 查询未审核的住宿申请列表 查询结果列表 调取申请表详情 申请表详情 查询 查询结果 调用审核界面 置审核标记 持久化 审核完成 返回成功 返回,关闭审核界面 标注审核信息 刷新页面 审核完成,退出 界面关闭

2.4.3.6 接口 数据库访问接口 2.4.3.7 单元测试计划 按照辅导员审核顺序图即程序执行流程设计测试用例 2.4.4 宿舍负责人工作子系统——批准住宿模块程序设计

2.4.5 宿舍负责人工作子系统——住宿统计程序设计 2.4.6 公共服务子系统——用户登录模块程序设计 2.4.7 公共服务子系统——住宿查询模块程序设计 2.4.8 系统管理子系统——用户管理模块程序设计 2.4.9 系统管理子系统——基础信息维护模块程序设计 3.数据结构设计(详细类图,如下)

高中数学成绩下降剖析及解决方法 篇6

智者形容数学:“思维的体操,智慧的火花”。“最能考察或验证一个人具备智慧多少的一门学问或学科”!在当今知识经济时代,数学正在从幕后走向台前,它与计算机技术的结合在许多方面直接为社会创造价值,推动了社会生产力的发展。数学是人类文化的重要组成部分之一,它已成为公民所必须具备的一种基本素质。数学在形成人类理性思维的过程中发挥着独特的、不可替代的作用。于是呼,冲刺高考时选学理者多多,且发誓要用数学拉动高考总成绩者众多。可喜可贺!作为衡量一个人能力的重要学科---数学。从小学到高中,对它情有独钟的大有人在,且大都投入了大量的时间与精力.然而我们也不能忽视另一种事实:并非人人都是成功者!许多小学、初中时期的数学成绩佼佼者,进入高中阶段,第一个跟头就栽在了数学上。对选学文科的成功者的一项调查也表明,虽然他们高中也很想学好数学,可数学成绩就是提不上来,于是折射形成了“最怕”见高中数学老师的现象。这种“惧怕”高中数学的现象目前是比较普遍的,应当引起重视。当然造成这种现象的原因是多方面的。本文仅就学生的学习状态方面浅谈一下影响高中数学成绩下降的原因及解决方法面对众多初中数学学习的成功者沦为高中学习的失败者,笔者对他们的学习状态进行了调研。结果表明:造成成绩滑坡的主要原因有以下几个方面.

1.被动学习.许多同学进入高中后,还像初中那样,有很强的依赖心理:跟随老师惯性运作。没有掌握学习的主动权.其表现有:不定计划,坐等上课,课前不预习,对老师要上课的内容不了解,上课忙于记笔记,没听到“门道”.一切的一切造成没能真正理解所学内容的无奈表态。

2.学不得法.老师上课一般都要讲述知识的来龙去脉,剖析概念的内涵,分析重点难点,突出思想方法.而一部分同学上课不能做到专心听讲,对要点听不清或听不全。于是笔记记了一大本,问题留了一大堆。而课后呢,又不能及时巩固、总结,找不到知识间的联系,只是一味地赶做作业,乱套题型。对概念、法则、公式、定理一知半解,死记硬背的结果是一味地“机械模仿”。也有的晚上加班加点,白天无精打采,或是上课根本不听,自己另搞一套。最终是事倍功半,收效甚微.

3.不重视基础.一些“自我感觉良好”的同学,常轻视基本知识、基本技能和基本方法的学习与训练,一贯做法是只求知道怎么做,不去认真演算书写。其心理诱因是仅对难题感兴趣,以示自己的“水平”高。这种好高鹜远,重“量”轻“质”的做法导致的结果是陷入题海,不自拔.而到正规作业或考试中却是演算出错或中途“卡壳”.

4.不具备进一步学习条件.高中数学与初中数学相比,知识的广度、深度更进一程,能力要求更进一步.这就要求必须掌握基础知识与基本技能,为进一步学习作好充分准备.高中数学很多地方难度大、方法新、分析能力要求高.如:二次函数在闭区间上的最值问题,函数值域的求法问题,实根分布与参变量方程,三角公式的变形与灵活运用,空间概念的形成,排列组合的应用和实际应用问题解答等.客观上,这些问题的能力要求就是数学学习的分化点,更何况有的数学知识点还是高、初中教材都不讲的脱节内容,如不采取补救措施,查缺补漏,分化是不可避免的.

所以,高中学生仅仅有想学的念头是不够的,还必须“会学”。要讲究科学的学习策略和方法,以此提高学习效率,变被动学习为主动学习.针对学生学习中出现的上述情况,教师应当采取以加强学法指导为主,化解分化点为辅的对策:

1.加强学法指导,培养良好学习习惯。良好的学习习惯包括制定计划、课前自学、专心上课、及时复习、独立作业、解决疑难、系统小结和课外学习几个方面.

(1)制定学习计划能促使学习目的明确,时间安排合理。以求不慌不忙,稳扎稳打。制定学习计划是推动学生主动学习和克服困难的内在动力.但计划一定要切实可行,且既有长远打算,又有短期安排。更重要的是在执行过程中要严格要求自己,磨炼学习意志.

(2)课前自学是学生上好新课,取得较好学习效果的基础.课前自学不仅能培养自学能力,而且能提高学习新课的兴趣,掌握学习的主动权.自学不能搞走过场,要讲究质量,力争在课前把教材弄懂,上课着重听老师讲课的思路,以求把握重点,突破难点,尽可能把问题解决在课堂上。另一方面,我们知道上课是理解和掌握基本知识、基本技能和基本方法的关键环节.“学然后知不足”,经验表明:课前自学过的同学上课更能专心听课,他们知道什么地方该详,什么地方可略;什么地方该精雕细刻,什么地方可以一带而过。该记的地方才记下来,而不是全抄全录,顾此失彼.

(3)复习要及时。古人说的好,温故方知新。及时复习是得新知、获悟性的常法,也是高效率学习的重要一环。通过反复阅读教材,多方查阅有关资料,来强化对基本概念知识体系的理解与记忆。同时将所学的新知识与有关旧知识联系起来,进行有效分析比。一边复习一边将复习成果整理在笔记上,是对所学的新知识由“懂”到“会”的必经过程或途径。

(4)独立做作业是学生通过自己的独立思考,灵活地分析问题、解决问题,进一步加深对所学新知识的理解和对新技能的掌握的必有过程,而且这一过程也是对学生意志毅力的考验。通过运用使学生完成对所学知识由“会”到“熟”的过程.

(5)解决疑难是指对独立完成作业过程暴露对知识理解的错误或由于思维受阻遗漏解答,通过点拨使思路畅通,补遗解答的过程.解决疑难一定要有锲而不舍的精神,做错的作业一定要再做一遍.对出错的地方要反复思考直至弄清楚,实在解决不了的要请教老师和同学,并要经常把易错的地方拿出来复习强化:作适当的重复性练习。把求教老师或求助同学获得的东西消化掉,变成自己的知识。长期的坚持必能对所学知识做到由“熟”到“活”.

(6)系统小结是学生通过积极思考,达到全面系统深刻地掌握知识和发展认识能力的重要环节.小结要在系统复习的基础上附以教材为依据,并参照笔记与有关资料,通过分析、综合、类比、概括,揭示知识间的内在联系.以达到对所学知识融会贯通的目的.经常进行多层次小结,能做到对所学知识由“活”到“悟”.

(7)课外学习包括阅读课外书籍与报刊,参加学科竞赛与讲座,走访高年级同学或和老师交流学习心得等.课外学习是课内学习的补充和继续,它不仅能丰富学生的文化科学知识,加深和巩固课内所学的知识,而且能满足和发展他们的兴趣爱好,培养独立学习的意识和提高学习效率,激发求知欲与学习热情.

2.循序渐进,防止急躁

由于学生年龄较小,阅历有限,为数不少的高中学生容易急躁,有的同学贪多求快,囫囵吞枣;有的同学想靠几天“冲刺”一蹴而就;有的取得一点成绩便洋洋自得,遇到挫折又一蹶不振.针对这些情况,教师要让学生懂得学习是一个长期的巩固旧知识、发现新知识的积累过程,决非一朝一夕可以完成。高中要上三年而不是三天就是一个说明。许多优秀的同学能取得好成绩,其中一个重要原因是他们的基本功扎实,他们的阅读、书写、运算技能达到了自动化或半自动化的熟练程度.

3.研究学科特点,寻找最佳学习方法

数学学科担负着培养学生运算能力、逻辑思维能力、空间想象能力,以及运用所学知识分析问题、解决问题的能力重任.它的特点是具有高度的抽象性、逻辑性和广泛的适用性,对能力要求较高.学习数学一定要讲究“活”:只看书不做题不行,埋头做题不总结积累不行。对课本知识既要能钻进去,又要能跳出来,结合自身特点,寻找最佳学习方法.华罗庚先生倡导的“由薄到厚”和“由厚到薄”的学习过程就是这个道理.方法因人而异,但学习的四个环节(预习、上课、整理、作业)和一个步骤(复习总结)是少不了的.

4.加强辅导,化解分化点

学生成绩管理系统设计 篇7

现在的社会日新月异,发展的非常快。学校的发展也是非常的快了,而且每年都有不同的要求。学生的量也非常的大,资料可能经常性的发生更换,原来手工的管理模式就显的不怎么的合适了。而且手工的数据是存放在多处的,数据整理非常的麻烦,通过作一些相似的报表,这样不但降低了工作效率,而且非常的容易出错。在这种条件下,使用微机管理就显的非常的合适了。只要你正确的录入,统计,报表输出一点问题都没有的。

2 功能与模块设计

包括成绩的总体管理系统、成绩管理子系统、查询子系统、成绩输出子系统等,四个方面都是必须要满足:基本情况录入:输入本系统所需的基本数据。输入学生的基本情况,采用学号各班级号来区分学生。学生异动处理:处理学生转学、基本信息变动情况。

3系统功能结构图

实现功能:(1)获得登陆界面传递的权限信息、设置用户是否可以使用(增加学生、课程管理、输入成绩、系统操作、保存、修改、删除)这些操作。

(2)进入学生成绩管理主窗口、设置等待操作状态。

4 学生数据处理

数据初始化是对程序中所使用的表格进行颜色和表格间距的处理,并绑定数据源为进行到下一步操作做准备。实现功能:(1)执行学生信息表的全查询、获得所有字段名称、通过字段名称来分配数据列表的列数。(2)执行数据初始化、因使用的图表控件附带下拉列表框、日期选择框等功能、可以很方便的进行即时操作、所以数据的初始化是针对数据来确定哪一列的宽度与文本框的属性。(3)给图表控件的第一列赋值、赋值对象是学生信息表的各字段名称。(4)统计所有表内信息、得出行数、以行数进行数据分页(目的:由于数据的日渐增多、而所有数据一次性显示在表格内、会影响系统的正常使用)(5)开始根据分页内容给图表控件赋值、同时设置状态、即不可保存、可修改、可删除。

5 课程与成绩数据处理

实现功能:数据初始化是对程序中所使用的表格进行颜色和表格间距的处理,并绑定数据源为进行到下一步操作做准备。实现功能:(1)执行学生成绩表的全查询、获得所有字段名称、通过字段名称来分配数据列表的列数。(2)执行数据初始化、因使用的图表控件附带下拉列表框、日期选择框等功能、可以很方便的进行即时操作、所以数据的初始化是针对数据来确定哪一列的宽度与文本框的属性。(3)给图表控件的第一列赋值、赋值对象是学生信息表的各字段名称。(4)统计所有表内信息、得出行数、以行数进行数据分页(目的:由于数据的日渐增多、而所有数据一次性显示在表格内、会影响系统的正常使用)(5)开始根据分页内容给图表控件赋值、同时设置状态、即不可保存、可修改、可删除。

6 结语

本文通过用V B面向对象的编程环境编写学生成绩管理系统,利用软件工程原理,采用生命周期方法学,根据3NF的关系模式设计数据库表,用模块化设计方式将系统的各个功能模块层层分解,设计出系统的模块化结构,并根据系统的具体要求和需要实现的功能,详细地定义了各个模块的具体功能。

摘要:在现今信息时代,生活速度的加快,使得人们越来越向信息化、数字化发展,管理信息系统(MIS)是一个由人、计算机等组成的能进行信息的收集、传递、储存、加工、维护和使用的系统,必然能代替过去大量、繁杂的手工操作。本文通过用VB面向对象的编程环境编写学生成绩管理系统,用模块化设计方式将系统的各个功能模块层层分解,设计出系统的模块化结构,并根据系统的具体要求和需要实现的功能,详细地定义了各个模块的功能。

关键词:管理,功能,系统设计,数据处理

参考文献

[1]周佩德.《数据库原理及应用》.电子工业出版社.

[2]刘炳文等,VISUAL BASIC程序设计——数据库篇,1999.

研究生课程学习及成绩管理办法 篇8

一、研究生课程的选修

1.根据培养计划选修研究生课程。研究生入学后应在导师指导下,按所在学科的培养要求,制订个人的课程(及环节)学习计划,并根据培养计划和课程目录,在学校注册中心规定的时限内,正式办理选课手续。研究生课程的正常选修安排在每学期开学初。选课具体时间见注册中心的通知。

2.补选和退选。研究生可以在学校注册中心规定的时限内按有关规定补选和退选研究生课程,逾期不予办理。研究生课程的正常补、退选安排在每学期的开学初;研究生课程的期中退选安排在每学期第九周,并需交纳期中退课费,退选的课程将从成绩单中移去。每学期办理补、退选课程的具体时间见注册中心的通知。

3.选课、成绩与学分。凡已正式办理选课手续的课程,其成绩一律记入研究生的课程学习成绩单。研究生完成课程的各教学环节,且考核合格,方能取得相应课程的学分。未正式办理选课手续而旁听的课程,研究生不得参加考试,不计学分。若研究生未在规定时限内办理退选手续、无故不参加考核者,或未按教师要求完成课程的教学环节,成绩记“0”分或“不通过”。

4.选修外校研究生课程。研究生根据需要可选修外校的研究生课程作为学位要求的课程,填写“选修外校研究生课程申请表”,须得到导师同意、所在学科学位评定分委员会认可并签字。选修课程后,应完成所选课程要求的教学环节,并参加考核,成绩单须由开课校研究生管理部门盖章,经我校院(系、所)研究生管理部门审核后,交注册中心登记备案,方能取得学分。

5.正式入学前选修的研究生课程。我校本科生在本科期间选修研究生课程,须征得导师或所在院(系、所)主管主任同意,正式办理选课手续。一经选课,即按照研究生课程学习及成绩管理办法执行。研究生入学后,经所在单位研究生管理部门核实后,可认定相应的研究生课程学分。研究生课程学分不能与本科生的学分重复计算。

外校考入我校的研究生,在入学前经正式手续随本校研究生修过我校研究生课程且考试成绩合格者,入学后,经所在单位研究生管理部门核实后,可认定学分。

6.补修课程。研究生选修的本学科专业的大学本科课程一般只作为补修课程,记非学位要求学分。

7.免修课程(或环节)。凡符合免修条件的课程(或环节),可免修,直接获得学分。

二、课程考核及成绩确定

1.研究生课程的考核方式。

研究生课程按考核方式分为考试和考查两类。考试课程成绩采用百分制,考试成绩在60分以上者为合格;考查课程成绩可以采用百分制,也可以记“通过”或“不通过”。研究生课程可采用笔试、口试、笔试与口试结合、闭卷或开卷、课程论文、完成课程规定的项目等形式进行考核。任课教师应根据课程大纲的要求,确定考核方式。学科专业基础课一般采用考试方式。

2.考核安排与有关要求

研究生课程考试一般安排在每学期期末最后两周内。公共课首先安排考试日期,由注册中心和开课单位协商确定后,通知各院(系、所)。随后,各院(系、所)再安排其他课程的考试日期,与课表室协商教室后,尽早通知任课教师和研究生。

1)公共课程

政治理论课:按课程要求参加考核。博士生的课程论文按有关规定完成。

外语课:见研究生外语课程的有关规定。

2)学科专业要求课程

按各院(系、所)确定的考核方式进行。

3)必修环节

学术活动、论文选题与文献综述、博士生资格考试和社会实践等环节必须由有关教师给出考核成绩或写出评语,考核合格方能取得学分。社会实践要求写出思想小结和技术报告。

3.重修、重考

研究生课程考核不及格者,允许“重修”或“重考”一次。“重修”课程的研究生应参加下一次课程的学习,按要求完成课程的教学环节,并参加考核。“重考”的研究生不需参加课程的全程学习,只参加下一次研究生课程的考核。“重修”或“重考”课程的成绩记录方式与正常考试相同,但在成绩后注以“重考”或“重修”字样。办理“重修”或“重考”的研究生应填写“研究生课程重修、重考申请表”,在下一次开课学期初,在注册中心按有关规定正式办理相应手续,按学校有关规定交纳“重修”或“重考”费,并通知有关任课教师。申请“重考”的研究生须经任课教师签字批准。

研究生在全学程内一般只允许“重考”或“重修”一次。研究生在全学程内出现两门次学位要求课程不及格时,按学籍管理有关规定处理。

4.缓考

研究生因病不能按时参加考试者,可申请缓考。填写“研究生缓考申请表”,同时必须有清华大学校医院出据的证明,向所在单位研究生管理部门申请缓考,经主管主任批准后,申请书和医院证明原件留管理部门保存,以复印件通知任课教师和学校注册中心。因事一般不能申请缓考。缓考不单独安排考试,经批准缓考的研究生与下一次研究生课程考核同时进行,按正常考试记分。

5.考试冲突时的处置

研究生在两门课程考试时间发生冲突时,本人要尽快向所在单位研究生管理部门通报,以便协调安排。

6.研究生个人培养计划内的所有课程和环节(包括学位要求课程和非学位要求课程)须考核通过后,方能申请论文答辩。

7.研究生考试作弊者除按学籍管理规定处理以外,该门课程记为“0”分,以后视其表现,由所在院(系、所)决定是否准予重修。

三、课程成绩及试题和试卷的管理

1.研究生课程成绩的录入。研究生课程结束后,任课教师应在注册中心规定的时限内录入学生成绩,打印成绩单,经核实并签字后,交所在单位研究生业务办公室。

2.成绩更改。成绩一经任课教师签发,任何人无权随意更改。若确属判卷有误,任课教师应按注册中心的有关规定做修改。

3.试题与试卷管理。研究生课程结束后,任课教师应保存试题和试卷两年,研究生院将不定期地抽查研究生课程的试题与试卷,组织专家组评估,并通报抽查和评估结果。

四、课程编号与学分计算

1.课程编号由八位数字组成,具体含义如下:

第一位:课程级别;0-5号为本科生课程,6-9号为研究生课程(其中6号为全校研究生公共课;7号为学科专业基础类课程;8号为专业课;9号为博士生课程)

第二~四位:开课院(系、所)代码

第五~七位:开课院(系、所)同类课程顺序号(其中第五位为8号表示工程硕士课程)

第八位:课程学分数

2.学分计算

C#学生成绩管理系统课程设计剖析 篇9

西校(2010)453号

关于印发西南大学本科课程成绩评定与管理办法的通知

各单位:

《西南大学本科课程成绩评定与管理办法》已经学校研究通过,现印发给你们。请各单位组织有关人员认真学习,并严格按照本办法有关要求开展相应工作。

附件:西南大学本科课程成绩评定与管理办法

二〇一〇年十二月三十日

西南大学本科课程成绩评定与管理办法

第一章总 则

第一条为了规范学生学习成绩管理,确保学生成绩的真实、有效,依据教育部《普通高等学校学生管理规定》以及其他法律法规,结合我校实际,特制定本办法。

第二条本办法所称本科课程是指本科培养方案所规定的课程。

第三条本校在籍本科学生应当参加所修课程考核,考核结果记入学生成绩记载表,并归入本人档案,成绩合格者可获得相应学分。

第二章成绩评定

第四条成绩评定

(一)课程考核分为考试和考查两种类型。考试采用百分制评分,考查采用百分制或五级分制评分(优秀记为A、良好记为B、中等记为C、及格记为D、不及格记为E)。

百分制与五级分制的换算:90~100分为优秀;80~89分为良好;70~79分为中等;60~69分为及格;60分以下为不及格。

五级分制在绩点计算时均转换为百分制,转换时成绩均以中值转换。

(二)课程考核成绩由平时考核成绩和课终考核成绩两大部分构成,具体比例按教学大纲执行。

(三)对于既有理论教学又有实验教学的课程,其理论教学与实验教学成绩的百分比,原则上根据学时数折算。

(四)任课教师应在开课初向学生公布课程考核和成绩评定方式。各门课程的总评成绩应呈正态分布。

(五)为便于信息化管理,凡缓考、缺考(旷考)、违纪,在该课成绩记载表“总评成绩”栏记为“0”分,并在“考试状态”栏分别注明“缓考”、“缺考(旷考)”、“违纪”字样。

(六)课程缓考成绩和重修重考成绩以实际考核得分登录,不记平时成绩,但课程有实验成绩的可以记实验成绩;补考成绩以实际考核得分登录补考栏,成绩合格的均按“60”分统计。

(七)免修课程不计平时成绩,以实际考核成绩为准,按程序报教务处确认、备案。

(八)学生被推荐代表学校参加校级以上比赛等重大活动,与所修课程考核时间发生冲突时,可以申请课程缓考或免考,获准免考的课程成绩,按学校有关规定予以认定和登录。

(九)少数民族地区的少数民族学生必修课程成绩在50-59分范围内,可申请总评成绩加到60分。2011级及以后入学学生,少数民族地区的少数民族学生只有外语成绩在50-59分范围,可申请总评成绩加到60分,其他课程不再加分。

(十)学生跨校修读课程,按学校有关规定予以认定和登录。

(十一)选课后未正式办理退课手续,又不参加课程学习和考核,成绩以“0”分计。

第三章成绩登载

第五条 登载方式。所有成绩由任课老师评定后,按要求在网上录入。

第六条 登载期限。所有成绩应在每学期放假一周内录入完毕(毕业生成绩在5月下旬录入完毕),放假一周后成绩录入系统将关闭。

第四章 成绩管理

第七条成绩审核与报送。

(一)任课教师应在课程考核后一周内完成成绩评定工作,并将学生成绩按系统要求统一录入教务系统,后打印纸质成绩记载表和成绩记载责任书,在完成有关审核和签字手续后将纸质成绩记载表、成绩记载责任书于期末放假第一周星期二以前送交所在学院教学秘书,并填写《西南大学成绩提交记载表》。

(二)教学秘书将成绩记载表复制数份,一份由教师本人留存,一份于放假一周内交学生所在学院;同时将补(缓)考学生和课程名单分别报送本学院和教务处。

(三)教师未按时送交所任课程的成绩时,应提出书面情况说明及相关证明材料,分清责任,经教学主管院长签字后,于开学前一周星期二以前报送教务处。

第八条查卷与成绩查询、更正。

(一)学生对考核成绩有异议时,可以提出查卷申请。申请课终考核成绩复查的学生,应当在下一学期开学第一周前向任课学院教学秘书提出书面申请,填写《西南大学本科生查卷申请表》,经任课学院主管领导批准,由学院指定教师和教学秘书在学院办公室核查试卷。按程序核查试卷后,确系教师判卷或统分有误,需

更正成绩的,经任课学院明确责任,于开学前一周将表和试卷报送教务处认定教学事故等级后,由教务处修正录入。教师需修改已提交的学生成绩,可填写《西南大学本科学生成绩更改申请表》,经学院审核及教学事故认定、教务处复核后,由教务处在网上更正。

(二)学生可通过校园网等方式查阅自己的课程考核成绩。

(三)课程考核成绩不张榜公布,但学院应于期末放假后第二周内将本期考核成绩告知学生本人和家长,成绩不合格需补考的学生必须逐一通知学生和家长。

第九条成绩档案保存与移交。

(一)送交的成绩记载表由学院统一保存,不得遗失、涂改,未经批准不得随意查阅。

(二)学生毕业时归档的成绩单由教务处统一打印,成绩在学生完成最高学习年限后全部移交学校档案馆。

(三)在校学生成绩单由学院打印。学生成绩单经学院审核教学秘书签字、盖章后方可加盖教务处的印章。毕业后学生成绩单由学校档案馆出具。

第十条学生因留(降)级、休(复)学等原因,进入下一年级学习时,如果培养方案中课程设置有变化,应以学生当前就读年级的培养方案为准,对已经修过的相同课程,成绩有效;对已经开过但未修读的个别课程,需要补修,且要取得合格成绩。

第十一条对于随意更改成绩,或成绩管理不善造成不良后果的,要追究责任,从严处罚。

第十二条成绩转换。学校安排到境内、外学校修读课程的成绩按《西南大学本科学生赴境外大学修读课程成绩认定及学分转换暂行办法》(西校〔2006〕368号)由学院相应课程组审核备案后,交学院教学秘书登录。

第五章 其它

第十三条借读学生的成绩管理可参照本办法执行。

C语言课程设计学生选课系统 篇10

一、学生选课管理系统

第一部分:课程设计名称、目的、要求

第二部分:程序总体设计思路

第三部分:程序功能划分、图示及流程图

第四部分:程序设计数据、运行结果

第五部分:程序的优缺点

第六部分:心得体会

第七部分:附录(源程序)

第八部分:附录(参考文献)

目录

..............................................................................第一部分:课程设计名称、目的、要求

名称:学生选修课程系统设计

目的:运用C语言提高解决实际问题的能力 实验环境:Microsoft Visual C++ 6.0 内容:

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。【功能】

系统以菜单方式工作

课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出

查询功能:(至少一种查询方式)--算法 按学分查询 按课程性质查询 学生选修课程(可选项)

第二部分:程序总体设计思路

由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。

具体的设计思路如下:

程序的要求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。然后定义各种函数的功能包括查看,查询,删除等。另一个为学生登陆界面,该界面学生可以进行课程选择和浏览查询等操作。在进行该操作之前需要对管理员保存的文件进行读取,然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保存于相应的文件中,以便下次进行修改。通过函数的层层调用来实现程序的逻辑结构。中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。

整个程序的设计思路到此结束。

第三部分:程序功能划分、图示及流程图

【功能模块划分及其流程图】

本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这9个部分来完成。这9个部分依次是:

1.登录界面函数;void login()2.学生登录界面据函数:void stu_login()3.管理员登录界面函数:void man_login()4.退出界面函数:void bye_sys()

5.课程选择函数:void c_select()6.课程浏览函数:void c_view()7.课程查询函数:void c_search()8.课程增加函数:void c_add()9.课程删除函数:void c_delete()10.菜单函数:void index()11.主函数部分; main()

总体设计:

学生选课系统管理员登录学生登录新增课程删除课程课程浏览查询课程学生选课课程浏览课程查询c_add函数c_delete函数c_view函数c_search函数c_select函数c_view函数c_search函数

系统功能模块图

部分函数流程图:

1、课程选择函数:

开始输入要选择的课程的编号j=0;j

2、课程查询函数

开始输入要查询的课程的编号j=0;j

3、课程增加函数

开始输入要增加的课程的编号j=0;j

4、课程删除函数

开始输入要删除的课程的编号nj=0;j

本程序是一款应用软件,故数据设计、程序运行结果应在程序的

运用中得以体现,现在通过一个程序的运用事例来对程序运行结果进行演示与实现。【软件运用举例】

1、程序开始界面如下:

选择某个选项,如进行管理员登录,进行课程的增加 进入管理员界面:

2、再选择所要进行的操作,如进行课程增加,结果如下:

下面可以进行继续增加课程或者退出:

3、选择课程浏览,可以分页查看相应的课程信息: 第一页:

第二页:

4、课程查询

查找结果:

4、管理员课程删除操作:

删除后可以进行浏览,观察删除后的结果:

可见删除后只有一条记录。删除操作完成正确。下面进行学生操作的使用方法:

1、学生登陆界面:

2、选择学生选课选项:

3、学生登陆也可进行课程浏览和查询函数,其结果与管理员登陆相同,不再演示。

第五部分:程序的优缺点

【程序的优点】

算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。

[算法上的优点]主要体现在以下三点:

1.程序采用main主函数方式设计,程序的主体的功能大都由该功能

完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。

2.程序对文件数据的读写采用了fread和fwrite块读写函数,能够将文件中的数据完全读出,然后赋到定义的数组中,再在相应的数组中进行一系列操作,最终再写入文件。

3.插入操作在本程序中将课程信息直接插入数组最后一个节点,从而减少了数据的相互移动,节省了时间。

[功能上的优点] 主要体现在以下两点:

1. 简洁明了的程序菜单。程序主要采用了层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。2. 人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地看懂程序并进行操作。

【程序的缺点】 主要表现在以下两点:

1、本程序没有进行相应的密码操作,所以对于使用者来说可能存在比较大的不保密性。需要改善。

2、本程序没有使用文本读写函数fscanf和fprintf,所以的到的课程文件和选课文件都是二进制形式。

第六部分:心得体会

选课系统程序比起通讯录程序来讲好写一些,由于本程序用到了数组,对于数组的操作掌握的比较熟练,所以在编写程序的时候困难没有那么多。

本程序在编写的过程中用到了许多通讯录中的模块化设计和函数互相调用的思想,使得编写比较方便和好用。

通过该系统的课程设计分析,我掌握了模块化设计的方法,理解和运用了结构化程序设计的思想和方法,掌握和提高了运用C语言进行程序设计的能力。

程序设计的过程,实际上是确定解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后采取逐步细化的方法实现整个程序。

对于一个较大的应用程序,一般不可能一次就设计出一个很完善的系统。通常要先设计满足基本要求的系统,然后再测试或者在使用的过程中不断完善,慢慢地做成一个功能很完善选修课程管理系统。所以在进行调试的时候需要对许多变量理解和掌握其变化规律等,这对于我更好的掌握visual C中调试的工具有很大的帮助。

总之经过这次课程设计,我对c语言的使用和理解都有了很大的加深,对于编程的思想也有了很多新的理解和感受。

第七部分:附录

一、参考文献:

1、李丽娟主编,C语言程序设计教程(第二版),人民邮电出版社

2、严蔚敏主编,数据结构(C语言),清华大学出版社

3、崔单主编,C语言程序设计案例精粹,电子工业出版社

4、谭浩强主编,程序设计(第三版),清华大学出版社

二、源程序

#include“stdio.h” #include“stdlib.h” #include“windows.h” #include“string.h”

void index();//首页 void login();void bye_sys();//退出界面

void stu_login();//学生登录菜单

void c_select();void c_view();//课程浏览

void c_add();//增加课程 void c_delete();void c_searchs();//学生查询函数 void c_searchm();//管理员查询函数 void c_viewm();//管理员浏览函数 void c_views();//学生浏览函数

struct course//定义课程结构体

{

int c_num;

char c_name[20];

int c_score;

int c_nelepeo;//课程已选人数

int c_melepeo;//课程人数上限 };struct student { char s_number[10];

char s_password[10];};struct manager { char m_name[10];char m_password[10];};

void index()//首页 {

char input;

printf(“nnttt*****************************n”);

printf(“ttt

湖南大学学生选课系统n”);

printf(“ttt*****************************nnn”);

printf(“ttt*****************************nnn”);

printf(“ttt*****************************nnn”);

printf(“ttt*****************************nnn”);

printf(“ttt**********设计者:刘晓斌******nnn”);

input=getchar();

system(“cls”);} void login()//登陆界面

{

void stu_login();

void man_login();

void bye_sys();

int input;

do

{

system(“cls”);

printf(“nnnt1.学生登录n”);

printf(“t2.管理员登陆n”);

printf(“t3.退出本系统n”);

printf(“t请选择服务类别:”);

scanf(“%d”,&input);

if(input!=1&&input!=2&&input!=3)//输入数不等于选项的时候打印画面

{

printf(“nt输入出错!请重新选择~n”);

printf(“nt按任意键返回选择页面~nt”);

getchar();getchar();

system(“cls”);

}

if(input==3)//如果输入3退出系统

{

bye_sys();

}

}while(input!=1&&input!=2&&input!=3);

switch(input)

{

case 1:stu_login();break;

case 2:man_login();break;

} }

void bye_sys()//退出界面 { exit(0);}

void man_login(){

void c_add();

void c_delete();

void c_view();

void c_searchm();

int in;

do

{

system(“cls”);

printf(“nnt1.新增课程n”);

printf(“t2.删除课程n”);

printf(“t3.课程浏览n”);

printf(“t4.课程查询n”);

printf(“t5.退出n”);

printf(“nnt请选择服务种类:”);

scanf(“%d”,&in);

if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)

{

printf(“nt没有这项服务t按任意重新选择”);

getchar();getchar();

}

}while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);

switch(in)

{

case 1:c_add();break;

case 2:c_delete();break;

case 3:c_viewm();break;

case 4:c_searchm();break;

case 5:login();break;

} }

void stu_login()//学生登录菜单

{

void c_select();

void c_view();

void c_searchs();

void login();

int input;

do

{

system(“cls”);

printf(“nnnt--学生登陆--”);

printf(“nnt1.学生选课n”);

printf(“t2.课程浏览n”);

printf(“t3.课程查询n”);

printf(“t4.退出n”);

scanf(“%d”,&input);

if(input!=1&&input!=2&&input!=3&&input!=4)

{

printf(“nt没有这项服务~n”);

printf(“t按任意键重新选择”);

getchar();

getchar();

}

}while(input!=1&&input!=2&&input!=3&&input!=4);

switch(input)

{

case 1:c_select();break;

case 2:c_views();break;

case 3:c_searchs();break;

case 4:login();break;

} }

void c_select(){

int n,in,i=0,j;int flag=0;

FILE *fp;

FILE *fp1;

char input;

struct course courses[10];

if((fp=fopen(“course.dat”,“rb”))==NULL)//判断是否存在课程

{

printf(“nnnt课程不存在nn”);

printf(“t<按任意键返回管理菜单>nt”);

input=getchar();

input=getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

}

printf(“nntt请输入你要选课程的编号:”);

scanf(“%d”,&n);

if((fp1=fopen(“courseselect.dat”,“rb”))==NULL)

{

fp1=fopen(“courseselect.dat”,“wb”);

}

else

{

fclose(fp1);

fp1=fopen(“courseselect.dat”,“ab”);

}

for(j=0;j

if(courses[j].c_num==n)

flag++;

if(flag==0)

{

printf(“nntt不存在对应课程n”);

printf(“nntt继续选课请按1,退出请按2:n”);

scanf(“%d”,&in);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:

printf(“输入错误,将返回登录界面!n”);

login();break;

}

}

else

{

fwrite(&courses[j],sizeof(struct course),1,fp1);

fclose(fp1);

printf(“nntt选课成功t请选择:”);

printf(“nntt1.继续选课”);

printf(“nntt2.退出,返回登录界面!”);

scanf(“%d”,&in);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:break;

}

} }

void c_viewm()//课程浏览

{

void stu_login();

void c_view();

int

inp,i=0,n=0;

FILE *fp;

char input;

struct course courseview[10];

if((fp=fopen(“course.dat”,“rb”))==NULL)//判断是否存在课程

{

system(“cls”);

printf(“nnnt课程不存在nn”);

printf(“t<按任意键返回管理菜单>nt”);

getchar();getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

do

{

system(“cls”);

if(i==1)

{

printf(“nnnttt没有记录!n”);

getchar();getchar();

man_login();

}

else

{

printf(“nt------共有%d条记录-------”,i-1);

printf(“nnt课程编号: %dn”,courseview[n].c_num);

printf(“nnt课程名字: %sn”,courseview[n].c_name);

printf(“nnt课程学分: %dn”,courseview[n].c_score);

printf(“nnt课程已选人数: %dn”,courseview[n].c_nelepeo);

printf(“nnt课程人数上限: %dn”,courseview[n].c_melepeo);

printf(“nnt1.上一页t2.下一页t3.回目录”);

printf(“n请选择:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(“nt已到达首页 t按任意键返回”);

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(“nt已到达尾页t按人意见返回”);

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{man_login();break;}

default:

{

printf(“nt操作错误t按任意键返回”);

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_views()//课程浏览

{

void stu_login();

void c_view();

int

inp,i=0,n=0;

FILE *fp;

char input;

struct course courseview[10];

if((fp=fopen(“course.dat”,“rb”))==NULL)//判断是否存在课程

{

system(“cls”);

printf(“nnnt课程不存在nn”);

printf(“t<按任意键返回管理菜单>nt”);

getchar();getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

do

{

system(“cls”);

if(i==1)

{

printf(“nnnttt没有记录!n”);

getchar();getchar();

stu_login();

}

else

{

printf(“nt------共有%d条记录-------”,i-1);

printf(“nnt课程编号: %dn”,courseview[n].c_num);

printf(“nnt课程名字: %sn”,courseview[n].c_name);

printf(“nnt课程学分: %dn”,courseview[n].c_score);

printf(“nnt课程已选人数: %dn”,courseview[n].c_nelepeo);

printf(“nnt课程人数上限: %dn”,courseview[n].c_melepeo);

printf(“nnt1.上一页t2.下一页t3.回目录”);

printf(“n请选择:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(“nt已到达首页 t按任意键返回”);

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(“nt已到达尾页t按人意见返回”);

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{stu_login();break;}

default:

{

printf(“nt操作错误t按任意键返回”);

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_searchs(){

void stu_login();

void c_searchs();

int id,i=0,j,inp,k;

int flag=0;

FILE *fp;

struct course coursesear[10];

if((fp=fopen(“course.dat”,“rb”))==NULL)

//判断课程信息是否存在 {

system(“cls”);

printf(“nnt课程不存在t按任意键返回”);

getchar();getchar();

stu_login();

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system(“cls”);

printf(“nnttt请输入你要查询的课程编号:”);

scanf(“%d”,&id);

do//检查输入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system(“cls”);

printf(“nnt课程编号:%dn”,coursesear[k].c_num);

printf(“nnt课程名字:%sn”,coursesear[k].c_name);

printf(“nnt课程学分:%dn”,coursesear[k].c_score);

printf(“nnt课程已选人数:%dn”,coursesear[k].c_nelepeo);

printf(“nnt课程人数上限:%dn”,coursesear[k].c_melepeo);

getchar();getchar();

printf(“nnt1.回目录继续查询t2.退出查询系统n”);

printf(“请选择:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(“nt没有这项服务t请按任意键重新输入”);

getchar();getchar();

}

}

}

else

{

system(“cls”);

printf(“nnt不存在对应记录n”);

printf(“nnt1.回目录继续查询t2.退出查询系统n”);

printf(“请选择:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(“nt没有这项服务t请按任意键重新输入”);

getchar();getchar();

}

}

}

}while(inp!=1);

}

void c_searchm(){

void stu_login();

void c_searchm();

int id,i=0,j,inp,k;

int flag=0;

FILE *fp;

struct course coursesear[10];

if((fp=fopen(“course.dat”,“rb”))==NULL)

//判断课程信息是否存在 {

system(“cls”);

printf(“nnt课程不存在t按任意键返回”);

getchar();getchar();

stu_login();

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system(“cls”);

printf(“nnttt请输入你要查询的课程编号:”);

scanf(“%d”,&id);

do//检查输入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system(“cls”);

printf(“nnt课程编号:%dn”,coursesear[k].c_num);

printf(“nnt课程名字:%sn”,coursesear[k].c_name);

printf(“nnt课程学分:%dn”,coursesear[k].c_score);

printf(“nnt课程已选人数:%dn”,coursesear[k].c_nelepeo);

printf(“nnt课程人数上限:%dn”,coursesear[k].c_melepeo);

getchar();getchar();

printf(“nnt1.回目录继续查询t2.退出查询系统n”);

printf(“请选择:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(“nt没有这项服务t请按任意键重新输入”);

getchar();getchar();

}

}

}

else

{

system(“cls”);

printf(“nnt不存在对应记录n”);

printf(“nnt1.回目录继续查询t2.退出查询系统n”);

printf(“请选择:”);

scanf(“%d”,&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(“nt没有这项服务t请按任意键重新输入”);

getchar();getchar();

}

}

}

}while(inp!=1);}

void c_add()//增加课程 {

void c_add();

void man_login();

int i=0,j,inp;

FILE *fp;

struct course course_new;

struct course courses[10];

system(“cls”);

printf(“nntt请输入课程信息”);

printf(“nntt1.课程编号:”);

scanf(“%d”,&course_new.c_num);

printf(“nntt2.课程名字:”);

scanf(“%s”,course_new.c_name);

printf(“nntt3.课程学分:”);

scanf(“%d”,&course_new.c_score);

printf(“nntt4.课程已选人数:”);

scanf(“%d”,&course_new.c_nelepeo);

printf(“nntt5.课程人数上限:”);

scanf(“%d”,&course_new.c_melepeo);

if((fp=fopen(“course.dat”,“rb”))!=NULL)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

for(j=0;j<=i-1;j++)

if(course_new.c_num==courses[j].c_num)

{

system(“cls”);

printf(“nnttt对不起,这个编号已经使用过nntt按任意键返回管理菜单”);

getchar();getchar();

man_login();

break;

}

}

if((fp=fopen(“course.dat”,“rb”))==NULL)

{

fp=fopen(“course.dat”,“wb”);

}

else

{

fclose(fp);

fp=fopen(“course.dat”,“ab”);

}

fwrite(&course_new,sizeof(struct course),1,fp);

fclose(fp);

printf(“nntt信息输入完毕t按任意键继续”);

getchar();getchar();

do

{

system(“cls”);

printf(“nntt1.继续输入”);

printf(“nntt2.返回管理菜单”);

printf(“nntt请选择”);

scanf(“%d”,&inp);

if(inp!=1&&inp!=2)

{

printf(“输入不符合要求t按任意键重新选择”);

getchar();getchar();

}

}while(inp!=1&&inp!=2);

switch(inp)

{

case 1:c_add();break;

case 2:man_login();break;

} }

void c_delete()//查询后删除 {

FILE *fp;

int i=0,j,n,k,flag=0;

struct course courses[10];

void c_delete();

void man_login();

printf(“nntt请输入你要删除的课程编号:”);

scanf(“%d”,&n);

if((fp=fopen(“course.dat”,“rb”))!=NULL)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

else

{

printf(“nntt不存在任何课程t按任意键返回”);

getchar();getchar();

man_login();

}

for(j=0;j

{

if(courses[j].c_num==n)

{

flag=1;

fp=fopen(“course.dat”,“wb”);

for(k=0;k

fwrite(&courses[k],sizeof(struct course),1,fp);

fclose(fp);

fp=fopen(“course.dat”,“ab”);

for(k=j+1;k

{

fwrite(&courses[k],sizeof(struct course),1,fp);

}

printf(“nntt记录已删除!t按任意键返回ntt”);

getchar();getchar();

man_login();

fclose(fp);

}

}

if(flag==0)

{

printf(“nntt不存在对应的课程t按任意键返回”);

getchar();getchar();

man_login();

} // printf(“nntt记录已删除!t按任意键返回ntt”);

}

int main(){

上一篇:全县小学教育教学工作现场会主持词下一篇:优雅女人座右铭