课程设计学生总结

2022-03-26 版权声明 我要投稿

年复一年,日复一日,当一段工作完成后,或是一个项目结束后,回首工作与项目的过程,从中反思不足之处,可获得宝贵的成长经验。因此,我们需要写一份工作报告,但如何写出重点突出的总结呢?今天小编为大家精心挑选了关于《课程设计学生总结》,供大家参考借鉴,希望可以帮助到有需要的朋友。

第一篇:课程设计学生总结

c语言课程设计 学生选修课程系统设计

题目:学生选修课程系统设计

功能:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息。试设计一选修课程系统。

分步实施:

1、 初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;

2、 建立一个文件,将每条记录信息写入文件中并能显示于屏幕上

3、完成上述添加、查找(课程编号、课程名称、课程性质等)、修改等功能。

4、进一步要求:学生选修课程(可选项)

要求:

1、用C语言实现程序设计;

2、利用结构体数组实现信息的数据结构设计;

3、系统的各个功能模块要求用函数的形式实现;

4、界面友好(良好的人机交互),程序加必要的注释。

课程设计实验报告要求:

1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分 。

2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、

小结等。

第二篇:C语言课程设计学生成绩管理系统个人总结

C语言课程设计——学生成绩管理系统

个人心得体会

(徐州工程学院 14计嵌1班 07组 张凯)

这一周以来的课程设计,不仅让我明白了C语言的确是一门很有用的,但是又是不容易的一门课程。起初刚开始做课程设计时,以为这个课程设计不会有多难,只不过是把多个函数组合起来就好了,但是,经过这一星期的编程,发现要完完整整把程序按照要求编出来是一件很不容易的事情。然而在这一周以来的学习中,也对C语言这门课程有了更加的了解和学习。

在整个编程的过程中,可以说遇到了很多难题,但是让我印象最深刻的是在编写从某文件中读取学生信息这个程序时所遇到的困难。起初,程序时编写出来了,在组建时也没有错误,但是就是实现不了这个功能,接着就是整整一天的苦战;终于,能够读取文件中的信息了,可是,新问题又来了,在显示读取的信息时出现了乱序。另外在编写加密代码的时候竟然忘记了将其放在主函数中运行闹了笑话,在指导老师的帮助下最后解决了这个问题。

每天看到一行行代码着实有时让人头大。然而在这个程序完整地编写下来,我觉得编写程序需要很大的耐心,一个稍微大点的程序就有个几百甚至上千行,没有耐心是很难做得成功的。当然细心也很需要,在编程的过程中有很多错误都是自己的粗心造成的,有时甚至自己多次检查都看不出来,这样一来,会造成时间的大量浪费。

这次的课程设计也是一次很好的对自我的检查。它让我知道了自己在C语言的学习上还不够认真刻苦,很多知识点还是没有很好的掌握,甚至有些知识点很生疏,这也许就是我在编写从某文件中读取学生信息这一函数时老碰壁的原因所在!从这一点上来看,发现我对待学习的态度还不够端正,有待加强。

不管怎么说,经过这一次课程设计,在C语言方面的收获最大,让我读代码的能力大大提升了不少,也巩固了很多知识。同时也受到了指导老师刘云、邹文辉的细心指导,非常感谢!

第三篇:嵌入式系统设计课程设计大纲(给学生)

《嵌入式系统设计》课程设计大纲

【课程编号】:11278131

【适用专业】:电子、电信

【学 分 数】:1

【总 学 时】:30

一、课程设计的目的

1、 通过“嵌入式系统”课程设计,学习、体会、熟悉嵌入式系统相关的项目研究开发的完整过程:课题的提出与论证、调研、文献阅读、方案比较与选择、嵌入式系统程序编写与调试,报告撰写、课题答辩。

2、 掌握综合运用所学知识分析、解决实际问题的一般方法。

3、 培养学生综合分析问题、解决问题和独立工作的能力。

4、通过课程设计及答辩全过程的训练,加强老师与学生之间学生与学生之间知识的相互交流,互相渗透,培养勤奋求实的良好学风。

二、课程设计要求

1、要求同学们以满腔的热情、科学的态度,严谨的作风、高度的责任感从事课程设计工作;不得敷衍了事、马马虎虎、得过且过;提倡周密思考、大胆创新,反对生搬硬套、墨守陈规;提倡共同研究,反对相互抄袭。

2、要求遵守作息时间,遵守学校的各项规章制度,确保设计顺利、高质量地完成。

三、课程设计安排

学生每人选择一个题目,每个题目为1个学分。

1. 题目1:基于嵌入式系统下的室内温度/湿度调节系统设计

2. 题目2:嵌入式智能家居系统:图像采集与存储

3. 题目3:嵌入式系统下的MP3制作

4. 题目4:嵌入式系统GPS定位系统

5. 题目5:嵌入式GPRS短信收发

6. 题目6:嵌入式IC卡读写系统设计

7. 题目7:蓝牙无线通信系统设计

8. 题目8:红外通信系统设计

9. 题目9:基于CAN总线的现场总线网络设计

10. Web远程监控系统1: -web嵌入式服务器设计

11. Web远程监控系统2: -远程控制接口

四、选题原则:学生根据自己的实际情况在给定题目中选一个题目(1学分)进行设计,或者自行选择感兴趣的课题。若题目相同,内容不可雷同。

五、成绩评定:

指导教师依课程设计说明书撰写情况及整个课程设计中学生的表现,综合给出成绩。

六、相关参考资料

教材:

Rick Grehan等.32位嵌入系统编程,中国电力出版社,2001.

参考书:

桑楠.嵌入式系统原理及应用开发技术,北航出版社,2002.

第四篇:大学本科课程设计要求及规定(学生)

西安建筑科技大学本科课程设计(论文)管理规定(试行)

一、目的及要求

课程设计(论文)是实践教学环节的重要组成部分,其目的是通过课程设计(论文)加深学生对本课程基本知识的理解,提高综合运用知识的能力;掌握本课程的主要内容、工程设计或撰写论文的步骤和方法;提高制图能力,学会应用有关设计资料进行设计计算和理论分析的方法,以提高学生独立分析问题、解决问题的能力,逐步增强实际工程训练。

课程设计(论文)要求学生在认真复习教材的基础上,阅读有关规范、设计手册及资料,独立按时完成任务;课程设计的说明书、计算书、论文要求简洁、通顺、计算正确,图纸表达内容完整、清楚、规范。

二、选题要求

课程设计(论文)的选题应尽量覆盖本课程教学的主要内容,其题目应当满足该课程教学大纲的要求,达到课程设计(论文)的目的,使学生得到较全面的综合训练; 题目的深度、广度和难易程度适当,使学生在计划时间内经努力能够完成任务。

三、任务书及指导书

1.课程设计(论文)任务书及指导书由指导教师编写,教研室主任审定,课程设计(论文)的题目也可由学生自拟,但必须报教研室主任审批,同意后方可在课程设计(论文)开始之前印发给学生。

2.任务书应包括设计(论文)题目、目的与要求、主要任务、参考资料(参考格式见附件1)。对相关资料的查阅及设计成果有明确要求。

3. 指导书是学生进行课程设计(论文)的指导性文件,应包括以下内容:

(1)课程设计(论文)的类别、目的、内容;

(2)课程设计的设计步骤、设计要点;

(3)课程设计(论文)中所涉及主要技术的关键性分析和解决方案。

四、说明书(论文)的要求和撰写规范

对课程设计的成果一般由设计说明书和图纸(或其他作品)两部分组成,对工科类课程设计,一般要至少完成Al 图纸1 张,另撰写课程设计说明书1份(原则上不少于3000字);对于理、文、管、经等类的课程设计或论文,要撰写一篇完整报告或论文(原则上不少于6000字)。

课程设计说明书(论文)应包括封面(见附件2)、任务书、设计总说明或摘要(约300 字左右)和关键词(仅对论文,一般为3~5个)、目录、正文及参考文献(资料)等内容。

课程设计说明书(论文)手写、打印均可,手写要用统一的西安建筑科技大学论文用纸,用蓝墨水或黑墨水工整书写;打印统一用16K纸,具体格式参照如下:

(1)字体设置要求为:

①题目:二号黑体居中,题目一行排不下时可排两行,行间距为1.5lines;

②班级、学生姓名及指导教师姓名等:三号黑体居中,行间距为1.5lines;

③设计总说明或摘要:“设计总说明或摘要”为四号字体居中,内容为小四号宋体字,首行缩进二个字。“关键词”为小四号黑体字,其后为关键词(小四号宋体字),各关键词之间用逗号分开,最后一个关键词后面无标点符号。

④目录:“目录”为三号黑体字居中。下空二行为章、节、小节及其开始页码,为小四号宋体。

⑤正文:

大标题(章) 1 绪论 黑体小三号

一级节标题 4.1 实验装置和试验方法 黑体四号

二级节标题 4.2.2 实验装置 黑体小四号

正 文 宋体小四号

表题与图题 宋体五号

⑥参考文献及致谢等: 宋体小四号

⑦页眉字号为小四号,页脚字号为五号字。

(2)页眉中输入“西安建筑科技大学课程设计(论文)”,居中;页脚中输入“第 页 共 页”,居中。

(3)公式

公式应居中书写,公式的编号用圆括号括起放在公式右边行末,公式和编号之间不加虚线。

(4)表格

每个表格应有表序和表题,表序和表题应写在表格上方正中,表序后空一格书写表题。

(5)插图

插图必须精心制作,线条粗细要合适,图面要整洁美观。每幅插图应有图序和图题,图序和图题应放在图位下方居中处。

(6)各类参考文献的书写格式如下:

连续出版物:[序号]作者.书名.刊名,年,卷号(期号):起~止页码

专(译)著:[序号]作者.书名.(译者).出版地:出版者,出版年.起~止页码

论 文 集:[序号]作者.文章名.文集名.会议地点,年.起~止页码

学 位 论文: [序号]姓名.学位论文题目:[XX学位论文],授予单位所在地:授予单位,授予年

专 利:[序号]申请者.专利名.国名,专利文献种类,专利号,出版日期

技 术 标准:[序号]发布单位.技术标准代号.技术标准名称.出版地:出版者,出版日期

六、对学生的基本要求 1.学习态度

(1)课程设计(论文)期间,学生要学习态度端正、勤于思考、刻苦钻研、独立完成,对有抄袭他人设计图纸(论文)或找他人代画设计图纸、代做论文等行为的弄虚作假者,一律按不及格记成绩,并根据学校有关规定给予学籍处理。

(2)所作的课程设计(论文)应概念清楚,设计计算正确,结构设计合理,实验数据可靠,软件程序运行良好,绘图符合标准,说明书(论文)撰写规范。

(3)要敢于创新,勇于实践,注意培养自己的创新意识和工程意识。 2.学习纪律

要严格遵守学习纪律和作息时间,不得迟到、早退和旷课。如因事、因病不能上课,则需请假,凡未请假或未获准请假而擅自不上课者,均按旷课论处。 3.公共道德 要爱护公物,搞好环境卫生,保持设计室整洁、卫生、文明、安静。严禁在设计室内吸烟、嬉戏、打闹以及其它破坏设计室秩序的行为。

九、课程设计成绩评定

1.答辩结束后,应及时确定学生的答辩成绩。课程设计的成绩建议由平时成绩(占20%)、成果成绩(占60%)和答辩成绩(占20%)三部分组成,三部分的最终权重由各教研室自行制定。

2. 课程设计(论文)的成绩分为优秀、良好、中等、及格、不及格五个等级,评为优秀的学生人数一般不超过25%。

3. 学生的课程设计(论文)成绩登记表(见附件4)应由指导教师和教研室主任审核签字,交学生所在学院(系)存档。对答辩成绩不及格者,可在一个月后重新答辩。

十、课程设计(论文)的归档

课程设计(论文)的成果及相关资料由授课教研室或学院(系)负责保管,一般保管3 年,对于有示范意义的优秀课程设计图纸及说明书(论文)保管期限可适当延长。

装入档案袋中的资料包括课程设计说明书(论文)、课程设计的成果、西安建筑科技大学课程设计(论文)成绩登记表、教研室课程设计(论文)工作总结。如学生课程设计硬件成果无法放入档案袋内,可以另存它处,但必须在档案袋封面上注明存放地。课程设计说明书(论文)的装订顺序为封面、任务书、目录、设计总说明或摘要、正文、参考文献。

教 务 处

二○○五年十二月十五日

教务处 2006-5-26 10:04:14

第五篇:语言课程设计-学生成绩管理系统

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语言课程设计学生选课系统

题目

一、学生选课管理系统

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

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

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

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

第五部分:程序的优缺点

第六部分:心得体会

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

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

目录

... ........... . ..... ............... ................... ............. ...........

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

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

目的:运用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(" ***************************** ");

printf("

湖南大学学生选课系统 ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" **********设计者:刘晓斌****** ");

input=getchar();

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

{

void stu_login();

void man_login();

void bye_sys();

int input;

do

{

system("cls");

printf(" 1.学生登录 ");

printf(" 2.管理员登陆 ");

printf(" 3.退出本系统 ");

printf(" 请选择服务类别:");

scanf("%d",&input);

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

{

printf(" 输入出错!请重新选择~ ");

printf(" 按任意键返回选择页面~ ");

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(" 1.新增课程 ");

printf(" 2.删除课程 ");

printf(" 3.课程浏览 ");

printf(" 4.课程查询 ");

printf(" 5.退出 ");

printf(" 请选择服务种类:");

scanf("%d",&in);

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

{

printf(" 没有这项服务 按任意重新选择");

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(" --学生登陆--");

printf(" 1.学生选课 ");

printf(" 2.课程浏览 ");

printf(" 3.课程查询 ");

printf(" 4.退出 ");

scanf("%d",&input);

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

{

printf(" 没有这项服务~ ");

printf(" 按任意键重新选择");

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(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

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(" 请输入你要选课程的编号:");

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(" 不存在对应课程 ");

printf(" 继续选课请按1,退出请按2: ");

scanf("%d",&in);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:

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

login();break;

}

}

else

{

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

fclose(fp1);

printf(" 选课成功 请选择:");

printf(" 1.继续选课");

printf(" 2.退出,返回登录界面!");

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(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

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(" 没有记录! ");

getchar();getchar();

man_login();

}

else

{

printf(" ------共有%d条记录-------",i-1);

printf(" 课程编号: %d ",courseview[n].c_num);

printf(" 课程名字: %s ",courseview[n].c_name);

printf(" 课程学分: %d ",courseview[n].c_score);

printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);

printf(" 课程人数上限: %d ",courseview[n].c_melepeo);

printf(" 1.上一页 2.下一页 3.回目录");

printf(" 请选择:");

scanf ("%d",&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(" 已到达首页 按任意键返回");

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(" 已到达尾页 按人意见返回");

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{man_login();break;}

default:

{

printf(" 操作错误 按任意键返回");

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(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

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(" 没有记录! ");

getchar();getchar();

stu_login();

}

else

{

printf(" ------共有%d条记录-------",i-1);

printf(" 课程编号: %d ",courseview[n].c_num);

printf(" 课程名字: %s ",courseview[n].c_name);

printf(" 课程学分: %d ",courseview[n].c_score);

printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);

printf(" 课程人数上限: %d ",courseview[n].c_melepeo);

printf(" 1.上一页 2.下一页 3.回目录");

printf(" 请选择:");

scanf ("%d",&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(" 已到达首页 按任意键返回");

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(" 已到达尾页 按人意见返回");

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{stu_login();break;}

default:

{

printf(" 操作错误 按任意键返回");

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(" 课程不存在 按任意键返回");

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(" 请输入你要查询的课程编号:");

scanf("%d",&id);

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

{

for(j=0;j

{

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

{

flag++;

k=j;

}

}

if(flag==1)

{

system("cls");

printf(" 课程编号:%d ",coursesear[k].c_num);

printf(" 课程名字:%s ",coursesear[k].c_name);

printf(" 课程学分:%d ",coursesear[k].c_score);

printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);

printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);

getchar();getchar();

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

else

{

system("cls");

printf(" 不存在对应记录 ");

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

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(" 课程不存在 按任意键返回");

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(" 请输入你要查询的课程编号:");

scanf("%d",&id);

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

{

for(j=0;j

{

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

{

flag++;

k=j;

}

}

if(flag==1)

{

system("cls");

printf(" 课程编号:%d ",coursesear[k].c_num);

printf(" 课程名字:%s ",coursesear[k].c_name);

printf(" 课程学分:%d ",coursesear[k].c_score);

printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);

printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);

getchar();getchar();

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

else

{

system("cls");

printf(" 不存在对应记录 ");

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

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(" 请输入课程信息");

printf(" 1.课程编号:");

scanf("%d",&course_new.c_num);

printf(" 2.课程名字:");

scanf("%s",course_new.c_name);

printf(" 3.课程学分:");

scanf("%d",&course_new.c_score);

printf(" 4.课程已选人数:");

scanf("%d",&course_new.c_nelepeo);

printf(" 5.课程人数上限:");

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(" 对不起,这个编号已经使用过 按任意键返回管理菜单");

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(" 信息输入完毕 按任意键继续");

getchar();getchar();

do

{

system("cls");

printf(" 1.继续输入");

printf(" 2.返回管理菜单");

printf(" 请选择");

scanf("%d",&inp);

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

{

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

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(" 请输入你要删除的课程编号:");

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(" 不存在任何课程 按任意键返回");

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(" 记录已删除! 按任意键返回 ");

getchar();getchar();

man_login();

fclose(fp);

}

}

if(flag==0)

{

printf(" 不存在对应的课程 按任意键返回");

getchar();getchar();

man_login();

} // printf(" 记录已删除! 按任意键返回 ");

}

int main() {

index(); login(); return 0; }

上一篇:开工发言稿下一篇:课题开题报告