ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:58.51KB ,
资源ID:2070718      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2070718.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(重庆高考数学试题及答案理科.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

重庆高考数学试题及答案理科.docx

1、重庆高考数学试题及答案理科课 程 设 计 报 告课程名称 C语言程序设计 课题名称 班级成绩管理系统 专 业 班 级 学 号 姓 名 指导教师 2012 年 1月09 日 湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 班级管理系统 专业班级 学生姓名 学 号 指导老师 王颖 审 批 任务书下达日期 2011年12月28日任务完成日期2012年1月 09 日一、设计内容与设计要求1.课程设计目的:全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养

2、使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。2.课题题目班级成绩管理系统班级档案管理系统飞机订票系统猜数字游戏电子英汉词典设计心算抢答系统运动会分数统计系统小学生心算CAI系统3.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。具体要求如下:设计课题题目:每位同学根据自己学号除以8所得的余数加一选择相应题号的课题。换题者不记成绩。根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的

3、与意义;系统功能需求;输入输出的要求。完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。调试分析以及设计体会:测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。关键源程序(带注释)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。不得

4、抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。设计课题一:班级成绩管理系统一、问题描述:对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。二、功能要求:1、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。2、本系统显示这样的菜单:请选择系统功能项:a、 成绩录入b、 成绩显示c、 成绩保存d、 成绩排序e、 成绩修改(要求先输入密码)f、 成绩统计(1) 显示每门课程成绩最高的学生的基本信息(2) 显示每门课程的平均成绩(3) 显示超过某门课程平均成绩的学生人数g、 退出系统3、执行一个具体的功能之

5、后,程序将重新显示菜单。4、将学生成绩保存到文件中。三、算法提示:1、数据结构:结构体类型数组。2、数据库结构:下表构成该系统的基本数据库。 姓名学号课程名称1课程名称2charCharfloatfloat四、测试数据:学生人数N=10课程门数M=4课程名:数学、语文、英语、政治五、其它对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。目 录一: 需求分析: 7二:概要设计: 8三详细设计 10四:程序调试 16五心得体会 17一: 需求分析:1程序的功能 学生成绩管理系统有13种功能。可以把每个功能写成各个子函数,共有13个子函数。在主函数当中设计一个菜单对这13个子函数进行

6、管理,以便实现对整个系统的操作。2输入输出的要求。 根据课题的要求。每一个学生的包括姓名(char)、学号(char)、M门课程的成绩(float),.再加上系统功能上的要求每一学生的信息还要总分和名次等。所以想到要用结构体来定义每一个学生的信息结构。然后用链表把它们组成一个有序的整体,用对链表的操作来实现对所有学生信息的统一管理(成绩显示、成绩排序、成绩修改等)。最后为了以后按照处理后的顺序保存到文件中。二:概要设计:1程序的模块组成及各函数的主要功能主函数: int main() 新建函数:STUDENT *init() 输入函数 :STUDENT *create() 显示函数: void

7、 print(STUDENT *head) 删除函数::STUDENT *delete(STUDENT *head) 按名字寻找函数::void lookup(STUDENT *head)保存函数: void save(STUDENT *head)按总分排序函数: STUDENT *sort(STUDENT *head) 计算总分和均分函数: void computer(STUDENT *h)修改函数: STUDENT *Modify(STUDENT *head,STUDENT *new) 按学号排序函数: STUDENT *index(STUDENT *h) 菜单函数:int menu_se

8、lect()各函数的主要功能:输入函数: 随时输入数据。 菜单函数:显示系统主菜单。 显示函数: 显示所有学生的信息。 寻找函数: 方便学生查找自己的成绩。 删除函数: 删除某学生的信息。 排序函数: 按总成绩排序。 按学号排序函数: 按学号排序。插入函数: 可以插入新的信息。 保存函数: 保存好学生成绩,以免丢失。统计函数: 1显示每门课程成绩最高的学生的基本信息。 2显示每门课程的平均成绩。 3显示超过某门课程平均成绩的学生人数。2课题的功能模块的划分:开始菜单界面功能选择初始化函数输入学生信息删除学生信息显示学生信息查找学生信息按成绩排序保存到文件从文件读数据插入学生成绩分类合计退出系统

9、结束三详细设计1定义相关的数据类型整个系统除了主函数外,另外还有14个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。各个函数的详细设计说明分别如下:主函数 main()利用无限次循环for(;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。菜单选择函数 int menu_select()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,返回菜单。2各函数的C类算法显示记录函void print(STUDENT *head)算法:先将

10、p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。查找记录函数 void lookup(STUDENT *head)算法:采用线性查找法往下一个结点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p-name,s) & p != NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。删除记录函数 STUDENT *delete(STUDENT *h)算法:主函数链表的头指针,用一个输出语句printf

11、(Input your password:);提示用户输入密码。在输入过程中如果需要用到退格。putchar(8);putchar( ); putchar(8);来达到视觉和功能上的要求。如果密码错误,则两秒后自动返回主菜单。正确后输入要删除的学生学号,进行删除。修改函数 STUDENT *Modify(STUDENT *head)算法:首先向系统申请一块空间,用于存放输入的信息。程序会跟据用户输入的学号。采用线性查找法往下一个结点查找。设一个指针变量p,先指向第一个结点,当strcmp(p-name,s) & p != NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。如果

12、有该学生就修改。并出现提示信息*Modify success!*。如果没有该学生则出现“*Find out No.%s student*”提示。并2秒后返回主菜单。3代码设计和流程图初始化函数 STUDENT *init()这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head的值为NULL和一个清屏语句。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行 显示功能的时候会显示一些乱码!输入记录函数 STUDENT *create()这是一个无参函数,用来执行学生成绩记录的输入,当学生为时停止输入,函数结束后,带回一个链表头的指针指向一下个学生的信息插在表头。N-S流

13、程图如下:head=NULL 无条件循环 指针p指向新开辟的单元 指针p是否为空 是否输入学号p-num输出p- num是否为内存溢出 是否输入姓名p-name停止 for(i=0;isum=s;p-average=(float)s/3;p-order=0; p-next=head;head=p;返回菜单显示记录函void print(STUDENT *head)N-S流程图如下:保存数据到文件函数 void save(STUDENT *head) 这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。N-S流程图如下:输入要保存记录的文件地

14、址outfile 文件不能打开 否是p=head;当p不为空时 fwrite(p,LEN,1,fp); (写入一条记录) p=pnext; (指针后移) fclose(fp); (关闭文件)输出一个出错信息,并返回菜单查找记录函数 void lookup(STUDENT *head)这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。N-S流程图如下:输入要查找的学生的学号sp=head,使p指向第一结点当记录的学号不是要找的,或指指针不为空p=p-next p!=NULL如果指针不为空 是否 输出p所指向的结点显示没有该学生删除记录函数 S

15、TUDENT *delete(STUDENT *h)这是一个有返回值的有参函数。形参为“链表头的指针”,在核对密码后。实现对所要删除学生按学号进行查找。找到后显示该学生的信息。按任意键进行删除。N-S流程图如下:传递头指针;输入密码; 密码正确 否是printf(Passwordis mistakeTowseconds to return!);输入要删除学生的学号 有该学生的信息 否printf(Password ismistake Tow seconds toreturn!); 是显示该学生信息printf(n have deleted No %s studentn,s)printf(Don

16、t forget saven); sleep(2);clrscr();按任意键确认删除修改函数 STUDENT *Modify(STUDENT *head)这是一个有参函数,一个是“链表头的指针”修改之后,并返回链表的头指针。q=head原来的链表是空的是否两秒后返回菜单当记录的学号不是要找的,或指针不为空时info指向q位置 q向后移一个结点!strcmp(p-no,info-no)是否info-next=p-next;q-next=info;printf(Dont forget saven)从文件读数据函数 STUDENT *load()这是一个不返回值的有参函数,形参为“链表头的指针”,

17、根据输入的文件地址进行读取。N-S流程图如下:定义两个指针变量p1,p2输入要打开的记录文件地址infile 文件不能打开否是 开辟一个新单元返回菜单 指针p1是否为空 否读入记录是fclose(fp); (关闭文件)按部分排序函数 STUDENT *sort(STUDENT *head)这是一个有参函数,形参为“链表头的指针”,按学生成绩的平均分高低进行排序,还可以显示名次。N-S流程图:temp=head-next,head-next=NULL当temp!=NULL时当t-averageaverage&p1!=NULL时t=temp;temp=temp-next;p1=head;p2=he

18、ad; p2=p1;p1=p1-next; p1=p2 是 否 t-next=p1; t-next=p1;head=t; p2-next=t; p1=head; 当p1!=NULL时 i+;p1order=i;p1=p1next;输出“排序成功” 四:程序调试1程序调试中遇到的问题以及解决问题的方法。开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。解决的这个问题的办法是调整。最后还是在学姐的帮助下找到了问题的所在for 循环的次超过了链表中结点的数量。再就是自定义函数时由于课本的概念不清楚,多写了空格键,以至函数调用不出来。又如:在设计修改学生信息时的密密码时。当用户发现输入密码错误按

19、了退格键后,因为“*”并没有消去。导致用户再次按退格键,又出现前面的情况。最终导致输入密码错误。所以用了两次退格键:putchar(8); /*退格键*/putchar( ); /*以空格代替*/putchar(8); /*再次退格*/。在对链表操作时,要特别链表指针的移动(p=p-next)和链表尾的判断 (p= =NULL)。没有指针的移动,就很容易出现死循环。而在运行过程中不能控制。所以你就会认为是死机。如果没有链表尾的判断。就会在运行过程出现想不到的错误。如:在显示链表信息时,后面就会出现乱码。一个系统的菜单和提示信息非常重要。如果没有这些用户根本不知道怎么用你设计的这个系统。在设计的

20、调试过程中也无法顺利的完成调试工作。有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。五心得体会通过半学期的C语言程序设计的学习,使自己对计算机方面的认识,如果用文学词汇说,那就使从感性认识上升到了理性认识。以前,我只知道计算机用途很广,但不知道它为什么能这样作,通过学习才知道这是程序在指挥着计算机的运作。 刚接触到这门课程,我由于底子差,感觉到了它的难度,但通过渐渐的学习,我认识到了它的重要性,更认识到这是一种能力的培养,我下定决心要把它学好。经过几次的上机操作,看到自己设计的程序能运行出正确的结果,我对C语言产生了兴趣。刚拿到课程设计时,心里十分的没底,不知道该如何下手,怕

21、自己完成不了任务。原因便是自己没把知识真正学到手,不敢找出自己的问题并解决它,不知道到底学了些什么,更别说问出什么问题。但学习就是要不断的发现问题,才能不断的解决问题,不然不会有什么成效,更谈不上进步啦。实际上,问题是最好的老师,是学生学习的引导没有问题便没有深入。在C程序设计过程中,我们就是在问题解决中学习,即提出问题,老师也留了大量的时间给我们思考、讨论、解决问题,从而更深入地展开学习。这样就充分的调动了我们学习的积极性和主动性。这次实验课题,老师给了我们大量的时间让我们准备,让我们自己发现问题,并通过自己最大的努力解决问题。在准备的过程中,我们查阅书籍,请教同学,其实就是一个对知识进行运

22、用的过程,也是自己发现问题并解决问题的最好体现。C语言课程设计不仅能提高教学质量、增强教学效果、而且能培养和提高我们分析问题、解决问题能力和创新能力。老师在给我们定制的任务书中中,围绕我们的所学的书本的基本知识点引导引导我们思考和探索,是我们的思想活跃起来。经过自己的努力,问题一个接一个的被我解决了,课程知识也逐渐在自己脑海里形成了一体系,使自己读课程知识有了一次全面的认识。老师教给学生正确的学习方法,给我们这么好的机会,让我们掌握程C语言的的思想精髓在这次的实践过程中我独立的思考着这些问题,自己试着设计着这些比较有趣的课题,把课堂上学的for,Switch和while语句还有结构体的使用和指

23、针的用法与作用都有了进一步的认识。 这次课题中,遇到的最大问题便是文件的使用。在自己的程序中由于没有建立文件,使得删除功能和查找功能不能实现。但在老师的引导下,我发现了问题,在老师的帮助下我建立了文件,成功的运行了删除功能和查找功能。还有就是密码的设置,自己设置的密码不能运行,但在自己查阅书籍后,引用了一个比较函数,便能实行了。 通过这次课程设计,使我认识到,课本上的知识只是给自己对知识的理论认识,要真正掌握知识,必须得通过实践操作。自己对知识的不熟悉,使得自己不敢去发现自己的问题,由于怕困难,使得自己不敢去解决问题,最终使得自己不能完成任务,这不是自己没能力完成,而是自己能完成却没去完成。

24、通过这次课题,我对课程的认识加深了,使自己对课程有了一个整体的把握,也提高了自己发现问题,分析问题,解决问题的能力,更对程序设计产生了更大的兴趣。 这次课题的设计不仅是知识能力的体现,而且也反映了一个人的做事态度。要勇于发现问题,不逃避问题;面对困难要勇于克服,而不是遇难而退;遇到麻烦要冷静思考,不要心烦气躁,那只能失败。附1 源代码源程序清单:#include stdio.h /*I/O函数*/#include stdlib.h /*其它说明*/#include string.h /*字符串函数*/#include conio.h /*屏幕操作函数*/#include mem.h /*内存操

25、作函数*/#include ctype.h /*字符操作函数*/#include alloc.h /*动态地址分配函数*/#include dos.h#define N 4 /*定义常数*/typedef struct z1 /*定义数据结构*/ char no12; char name20; int scoreN; float sum; float average; int order; struct z1 *next;STUDENT;/*以下是函数原型*/STUDENT *init(); /*初始化函数*/STUDENT *create(); /*创建链表*/STUDENT *delete

26、(STUDENT *h); /*删除记录*/void print(STUDENT *h); /* 显示所有记录*/void lookup(STUDENT *h); /*查找*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void computer(STUDENT *h); /*计算总分和均分*/STUDENT *Modify(STUDENT *h); /*修改记录*/void append(); /*追加记录*/STUDENT *sort(STUDENT *h); /*按总分排序*/STUDENT *index(STUDENT *h); /*按学号排序*/int menu_select(); /*菜单函数*/*主函数开始*/main() int i; STUDENT *head; /*链表定义头指针*/ printf(nnnnnnnnn); printf( * * * * * * * * * n); printf( * * * * * * * * * * * n); pri

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2