C语言程序设计大作业设计说明书
c语言大作业课程设计
c语言大作业课程设计一、课程目标知识目标:1. 学生能掌握C语言的基本语法,包括变量定义、数据类型、运算符、控制结构等;2. 学生能理解函数的定义和调用,灵活运用函数实现模块化编程;3. 学生能掌握数组、指针、结构体等C语言高级特性,并应用于实际编程中;4. 学生了解文件操作的基本方法,能够读写文件,实现数据的持久化存储。
技能目标:1. 学生能够运用C语言编程解决实际问题,具备独立分析和解决问题的能力;2. 学生能够运用所学知识,设计并实现一个小型的C语言项目;3. 学生能够通过编程实践,提高逻辑思维能力和编程技巧;4. 学生能够熟练使用集成开发环境(IDE),调试程序并优化代码。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习计算机科学的热情;2. 学生养成合作、探究的学习习惯,培养团队协作能力;3. 学生通过编程实践,体验解决问题的成就感,增强自信心;4. 学生遵循编程规范,注重代码质量,培养良好的编程习惯。
课程性质:本课程为C语言大作业课程设计,旨在巩固和拓展学生对C语言知识的掌握,提高学生的编程能力和实践能力。
学生特点:学生已经掌握了C语言的基本知识,具备一定的编程基础,但缺乏实际项目经验。
教学要求:注重实践,引导学生通过动手编程解决问题,培养学生独立思考和解决问题的能力。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. 复习C语言基础知识,包括变量、数据类型、运算符、控制结构等,参考教材第1-4章;2. 函数的定义、调用、参数传递及作用域,引用教材第5章;3. 数组、字符串、指针的概念及应用,深入讲解教材第6-7章;4. 结构体、联合体、枚举类型的使用,分析教材第8章;5. 文件操作,包括文件的打开、读写、关闭,依据教材第9章;6. 面向过程的编程思想,以实际项目为例,引导学生运用所学知识设计程序;7. 编程规范和调试技巧,培养学生的良好编程习惯;8. 小型项目实践,分组进行项目设计和开发,涵盖整个C语言知识体系。
c语言大作业课程设计
c语言大作业课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C语言进行程序设计,提高学生的编程能力和逻辑思维能力。
具体分解为以下三个目标:1.知识目标:学生能够理解并掌握C语言的基本语法、数据结构和常用算法,了解C语言的编程环境和开发工具。
2.技能目标:学生能够熟练使用C语言进行程序设计,具备一定的编程能力和问题解决能力。
3.情感态度价值观目标:学生通过完成C语言程序设计,增强对计算机科学的兴趣和热情,培养良好的编程习惯和团队协作精神。
二、教学内容教学内容主要包括C语言的基本语法、数据结构和算法。
具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、控制结构、函数等,共4课时。
2.数据结构:包括数组、链表、栈、队列、树等,共6课时。
3.算法:包括排序算法、查找算法、递归算法等,共4课时。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体安排如下:1.讲授法:用于讲解C语言的基本语法、数据结构和算法,共12课时。
2.讨论法:用于引导学生探讨编程问题,提高学生的思考和解决问题的能力,共4课时。
3.案例分析法:通过分析实际案例,使学生更好地理解和掌握C语言编程,共4课时。
4.实验法:让学生动手编写C语言程序,培养学生的编程能力和实践能力,共8课时。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C语言程序设计》,用于引导学生学习C语言的基本语法、数据结构和算法。
2.参考书:《C Primer Plus》、《C和指针》,为学生提供更多的学习资料和参考。
3.多媒体资料:包括教学PPT、视频教程等,用于辅助教学,提高学生的学习效果。
4.实验设备:计算机、编程软件(如Visual Studio、Code::Blocks等),用于实验教学,培养学生的编程能力和实践能力。
C语言设计说明书
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录一、设计题目 (1)二、设计目的 (1)三、设计分析 (1)四、总体设计 (1)五、详细设计 (2)六、设计总结 (9)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计题目简单的图书销售系统的设计二、设计目的1.运用已学过的知识进行一个简单的应用程序的开发。
2.基本掌握设计课题的基本步骤和方法。
3.掌握应用系统开发中的需求分析与数据库设计方法。
4.基本掌握应用系统开发中设计文档的编制。
三、设计分析对图书信息(包括书名、书号、作者、出版社、价格、从书名)进行管理,包括图书的信息添加、修改、查询、删除、显示、写入、退出.将各每本图书信息进行记录,信息内容包含:(1)图书书名(2)图书号(3)图书作者(4)图书出版社(5)图书价格。
现在收集一些图书信息,要求用C语言编写一个简单的图书销售管理系统,可进行录入、查询和浏览等功能。
学习相关开发工具和应用软件,熟悉系统建设过程。
对图书信息的添加、修改、查询、删除、显示、写入、退出是图书销售管理的重要组成部分,图书信息包括:其内容较多,为了简化讨论,要求设计的图书管理系统能够完成以下功能:1.每一条记录包括一个图书信息的书名、书号、作者、出版社和价格、从书名2.图书信息添加功能:图示添加信息用文件保存,可以一次完成若干条记录的添加。
3.图书信息显示浏览功能。
4.查询功能:完成按书号、书名、价格查找课图书记录,并显示。
5.图书信息的删除:按书号、书名进行删除某图书的信息。
6.应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
四、总体设计该设计的主要功能包括:添加信息功能、查询信息功能、修改信息功能、删除信息功能、显示部分或全部信息、退出等功能。
设计图如图1所示。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊五、详细设计1.各函数的功能和实现(1)添加图书模块:通过定义一个函数添加。
C语言程序设计说明书
荆楚理工学院课程设计说明书题目:NBA球队战绩统计系统院系:计算机工程学院专业班级:计算机应用技术一班学号:学生姓名:谢芳,秦曼,张海霞,张雅勤,宁菊梅高锐指导教师:胡玉荣2010年 6月24日1. 球队战绩管理系统的分析与设计为了完成球队战绩的管理,首先明确系统的定义。
球队战绩统计系统就是统计球队的战绩,通过数据分析球队本年来实力的提升与否,方便大家浏览,进而为来年球队的调整做好准备。
(1)用户需求分析。
用户需求分析阶段完成对用户需求的理解、抽象,详细描述用户的要求,为规划系统功、定义软件系统模块做前期准备,并完成可行性分析。
根据战绩统计的需求,将该系统需要完成的工作归纳如下:1)球队战绩表的组织。
根据NBA里的规定30个球队分为两部分,15支球队分为东部球队(east),另外的15支球队作为西部球队(west)。
并且战绩的统计,球队的排名都在自己所属的部(东部或西部)内进行,东西部之间的球队不进行比较。
每个球队的战绩里应该包括球队名字,比赛胜利的场数,比赛失败的场数和这个赛季球队的胜率。
2)球队战绩的录入。
完成球队战绩的录入,按照上述定义的字段逐一输入球队的战绩并以适当的格式存储。
3)球队战绩的修改。
对录入的错误,可以修改数据的记录。
4)球队战绩的添加。
添加新的记录到统计表中。
5)显示/打印战绩表。
按一定的格式美观地将战绩表显示在屏幕上或者输出到打印机上。
(2)概要设计。
根据以上分析,可以归纳NBA战绩统计系统的各功能模块,如下图所示。
各个功能模块定义如下:1)主控模块。
系统入口应设计友好用户交互界面,这里采用菜单模式,即以菜单形式在屏幕上显示各个功能,通过选择转向执行对应功能模块的子程序。
2)战绩录入模块。
从键盘先输入东部球队记录,在输入西部球队记录,并分别按一定格式创建并保存到两个不同名称的数据文件中。
3)战绩浏览模块。
先选择要浏览的是东部球队的战绩还是西部球队的战绩,之后球队按一定格式由屏幕显示球队战绩数据文件的所有记录。
C语言程序设计大作业设计说明书-简单计算器
高级语言程序设计大作业设计说明书简单计算器学院电子信息工程学院专业班级级通信工程班学生姓名xxxx学号*********指导老师xxxxxx1.概述:本程序是在C++6.0环境下开发的一款集整数与小数的四则运算和求余运算为一体的简单计算器。
主要运用了赋值、计算、选择结构(switch语句实现多分支选择结构)、条件运算、循环计算、函数调用等原理。
2.程序概要设计:前实现的功能:程序已经可以完成整数、小数的基本加减乘除;整数基本求余运算;二进制,八进制,十进制,十六进制的相互转换,并可以对输入者的输入错误提出错误警告;程序可以循环运行,也可以自我实现退出菜单的功能(需要按2次回车)。
目前发现的BUG有:1、在整数输入数字的时候,如果输入的是小数的话会一直循环菜单,不会出现结果,也不会提示输入者输入错误,也不会有结果。
2、在整数求余功能中,如果输入的是小数或者输入不合理也会出现一直循环菜单的情况,同样不会提示输入者输入错误,也不会有结果。
目前没有实现的功能有:1.给出一个二进制数,不可以计算它的原码、补码和反码。
2.整数,小数的基本运算和整数求余的运算出现错误无法提示,函数不是十分完整。
3.全部进制的函数输入的数字个数都是有限制(数字个数不能大于100),超范围就会输出错误结果,无法实现无限制的输入而得出正确结果。
4.每次算完第一次不能按回车,只能按其他按键,否则会退出,因为按两次回车就会退出程序。
5.每次算完,按非回车键都会出现一级菜单,有点繁琐,再次选择整数、小数、进制运算。
流程图:3.程序详细设计:在主函数中设置了全局变量,以实现功能选择,并用char函数实现循环输入。
运用do while语句控制结束程序,即在运算过后,如由键盘输入回车键则结束程序。
之后进入功能选择菜单,先调用写好的menu函数(回车2次可退出程序)。
输入提示及输入控制:若输入的数字不是1-3,则提示输入错误,重新输入:(运用选择结构进行判断)其中,整数、小数、及进制转换计算功能分别使用了另一个switch语句嵌套,实现选择功能。
C语言综合程序设计说明书
C语言综合程序设计说明书一、设计目的用C语言设计一个具有输入成绩、打印成绩表功能的综合程序,以巩固和加深对C语言的学习。
二、设计要求1、输入1时完成输入姓名及各科成绩;2、输入2时完成打印输出总表;3、输入3时完成打印学号,成绩表,总分和名次;4、输入4时,完成退出功能。
注:每执行完一个功能,屏幕必须清屏。
三、设计思路将设计要求中的1、2、3分别定义为具有相应功能的子函数,再在主函数中进行调用。
1、根据设计要求,设计需要用到结构体数组。
因此,首先需要定义一个结构体数组,并将其中的学号赋值为从10101~10105。
2、定义一个具有输入成绩功能的子函数,用循环语句和scanf 语句相结合,完成每个学生的信息输入。
3、另外定义一个子函数对结构体中的总分进行比较,排出学生名次。
4、定义一个输出总表函数,用printf语句和循环语句结合使用,使该函数可以输出结构体中的各项数据。
根据设计要求,可将定义的输出总表的函数中的输出姓名项删除,即可得到打印学号、成绩表、总分和名次的函数。
四、程序设计环境Windows操作系统 Win-tc五、程序功能模块图六、程序功能流程图输入子函数--完成信息的录入 输出子函数—完成打印表排名子函数--完成名次的排列 退出子函数--完成退出功能七、程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>struct student{ int num;char name[20];float score[5];float sum;int mingci;}st[6]={{0},{10101},{10102},{10103},{10104},{10105}};int shuru(){ int i;system("cls");printf("成绩录入\n\n\n\n");printf("\t\t本程序只能输入5个学生的信息\n\t\t为使系统正常工作请按提示操作\n\n\t\t注意:每输入成一项信息后按Enter键确认!\n\n\n\n");printf("\n\n");sqrt(0); /*打开win tc浮点数支持*/for(i=1;i<=5;i++) /*这个循环是输入数据*/{printf("请输入学号为%d学生的姓名:",st[i].num);scanf("%s",st[i].name);printf("请输入该生的数学成绩:");scanf("%f",&st[i].score[1]);printf("请输入该生的英语成绩:");scanf("%f",&st[i].score[2]);printf("请输入该生的计算机成绩:");scanf("%f",&st[i].score[3]);printf("请输入该生的哲学成绩:");scanf("%f",&st[i].score[4]);st[i].sum=st[i].score[1]+st[i].score[2]+st[i].score[3]+st[i].score[4]; }printf("\n您已经完成了5位学生信息的录入\n\n\t\t请按任意键返回主菜单\t"); getch();}int mingci(){ int i,j;for(i=1;i<=5;i++){ st[i].mingci=1;for(j=1;j<=5;j++)if(st[i].sum<st[j].sum) st[i].mingci++;}}int shuchu(){ int i;printf("打印输出总表");printf("\n\n\n");printf("\t\b\b\b_______________________________________________________________ _________\n");printf("\t学号\t姓名\t\t数学\t英语\t计算机\t哲学\t总分\t名次\n");printf("\t\b\b\b_______________________________________________________________ _________\n");for(i=1;i<6;i++) /*这个循环是输出数据*/{printf("\t%d\t%8s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t %d\n",st[i].num,st[i].name, st[i].score[1],st[i].score[2],st[i].score[3],st[i].score[4],st[i].sum,st[i].min gci);printf("\t\b\b\b_______________________________________________________________ _________\n");}printf("\n\n\n\n");printf("您还想完成哪项操作,请选择功能键 1,2,3,4后按 Enter\n");printf("\n");printf("\t1.录入成绩 2.打印输出总表 3.打印学号、成绩表、总分和名次 4.退出\n"); }int shuchu1(){ int i;printf("打印学号、成绩表、总分和名次");printf("\n\n\n");printf("\t\t\t\b\b\b\b\b\b\b\b\b\b\b\b\b\b_____________________________________ __________________________\n");printf("\t\t学号\t数学\t英语\t计算机\t哲学\t总分\t名次\n");printf("\t\t\t\b\b\b\b\b\b\b\b\b\b\b\b\b\b_____________________________________ __________________________\n");for(i=1;i<6;i++) /*这个循环是输出数据*/{printf("\t\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t %d\n",st[i].num,st[i].score[1] ,st[i].score[2],st[i].score[3],st[i].score[4],st[i].sum,st[i].mingci);printf("\t\t\t\b\b\b\b\b\b\b\b\b\b\b\b\b\b_____________________________________ __________________________\n");}printf("\n\n\n\n");printf("您还想完成哪项操作,请选择功能键 1,2,3,4后按 Enter\n");printf("\n");printf("\t1.录入成绩 2.打印输出总表 3.打印学号、成绩表、总分和名次 4.退出\n"); }int tuichu(){ char m;while(1){system("cls");printf("\n\n\n\n\n");printf("\t\t\t您确认要退出吗?(y/n)\n");printf("\n\n");printf("\t\t\ty 确认退出\n");printf("\t\t\tn 返回主菜单\n\n\n\n");printf("\t\t请选择功能键 y 或 n 后按 Enter\t");scanf("%c",&m);if(m=='y') exit(0);else if(m=='n') main();}}main(){ int i,j;char n;system( "graftabl 936 ");system("cls");printf(" 08-09学年第2学期c语言综合程序设计*****应用电子技术08-1班:肖红福丁传飞*****\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~\n");printf("\n\n\n\n");printf("\t\t\t1.录入成绩\n\t\t\t2.打印输出总表\n\t\t\t3.打印学号、成绩表、总分和名次\n\t\t\t4.退出\n\n\n\n\n");printf("\t\t请选择功能键 1,2,3,4后按 Enter\t");while(1){scanf("%c",&n);switch(n){case '1':system("cls");shuru();mingci();main();break;case '2':system("cls");shuchu();break;case '3':system("cls");shuchu1();break;case '4':tuichu();default : printf("对不起!您输入的数字不是功能键,请从新选择\n");}}}八、程序运行结果注:本程序因调用函数system( "graftabl 936 "),因此直接用Win-tc的英文环境即可运行。
C语言作业要求及设计说明书(初学者)
程序设计说明书姓名:***班级:轮机136学号:************2023-12-27AHA-C语言程序设计大作业要求一、作业目的1、驾驭用C语言进行程序设计的基本方法。
2、娴熟驾驭window限制台应用程序的编写。
3、初步完成一个应用程序的设计、编码、调试,了解程序设计过程,熬炼实际应用实力。
二、作业内容猜数字嬉戏:计算机随机生成没有重复的n个数,用户从键盘输入揣测的数。
每猜一次,电脑给出提示信息。
假如用户输入的数跟计算机生成的数,数值和位置都完全相等,则胜出。
基本功能要求:1.随机生成没有重复的4个数。
(每个数字在0-9范围内)。
2.用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有x个数数值和位置都相同!有y个数数值相同,但位置不同。
”3.限制用户的尝试次数为10次。
4.计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。
5.有操作菜单,能依据不同选择运行不同功能:1:起先嬉戏!2:查看上次成果!3:输出帮助信息!0:退出程序!扩展功能要求:1.对用户输入的数字进行检查,假如用户输入重复的数,给出提示,要求重新输入。
2.能对嬉戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。
(1)修改要猜的数字的个数n,依据修改后的n值,计算机可随机生成n个数,用户进行n个数的揣测嬉戏。
(2)修改可以尝试的次数。
3.若嬉戏胜出且成果在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。
操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名成果及用户姓名显示出来。
4.能对积分榜的成果进行排序和输出。
提示:(1)生成一个0~9的随机数,运用rand函数:#include<stdio.h>#include<stdlib.h> //运用rand函数必需运用此头文件#include<time.h>int main(){int a;srand(time(0)); //生成一个种子。
C语言程序设计大作业--图书管理系统
C语言程序设计大作业设计报告一.设计方案本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。
二.模块说明及代码分析1.主函数:源代码:void main(){int a;printf("\n");printf("\n");printf(" ( ^_^ ) WELCOME!\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");do {printf("1.借书 2.还书 3.新书录入4.查询 0.退出");printf("\n");printf("\n");printf("\n");printf("\n");printf("请选择序号:");scanf("%d",&a);switch(a){case 1:jieshu();break;case 2:huanshu();break;case 3:xinshu();break;case 4:chaxun();break;case 0:break;default:printf("请选择正确的序号!\n");printf("\n");}}while(a!=0);printf("谢谢使用图书管理系统!\n");}主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。
《C语言大作业》设计说明书 (2)
CHANGZHOU INSTITUTE OF TECHNOLOGY课 程 设 计 说 明 书课程名: 《C 语言大作业》题 目: 通 讯 录 管 理 系 统二级学院: 计算机信息工程学院专 业: 软件工程 班 级: 12 软 件 卓 越 学 号: 12030427 姓 名: 许 彦 文 指导教师: 曹 中 心2013年 7 月KC021-11.课程认识目的:加深对《C程序设计》课程所学知识的理解,进一步巩固C语言的编程方法。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。
任务:根据要求电话簿数据以文本文件存放在文件中,并按要求实现通讯录最基本的功能。
2.课题选择在这个信息化时代,手机已成为最通俗的交流工具,通讯录日常生活中不可缺少的,且编写此系统中要用到的函数大多数是我们学过的,在我们的能力掌握范围内,一开始我们也只想到了通讯录的基本功能,后来我们通过各方面的努力,尽量使整个系统的功能更加齐全。
3.见组长(王扣慈)4.模块详细设计我负责的是注册、添加、删除的功能。
注册:运行此功能时,有用户名限制(仅限字母)、密码限制(仅限数字或字母),注册时密码要输出两次但如果第二次输密码时输错超过两次就意味着注册失败。
(如图4-1)添加:加入你所需要的数据,数据包括姓名、电子邮箱、电话号码、分类、编号。
(如图4-2)删除:输入名字,找到欲删除的那个人的名字后,会自动删除他(她)的记录内容。
(如图4-3)图4-1 注册用户流程图图4-2 添加用户流程图图4-3删除用户流程图5.主要实现方法我编写的最重要的应该是注册,而注册中最重要的就是实现用户名、密码的权限 void zhuce( ) { FILE *fp;if((fp=fopen("mima.dat","wb"))==NULL) //建一个新的文件夹 { printf("cannot open file!\n"); exit(0);}int sign=1; int k=1;Yint j,i=1;int m=1;int len=0;char code1[N],code2[N],user[N];printf("用户名仅限于字母"); //设定用户名权限while(m!=0) //用户名如果不符合要求就继续输入,输对就跳出循环{printf("\n输入用户名\n");getchar();gets(user);len=strlen(user);for(j=0;j<len;j++){if(!((user[j]>='a'&&user[j]<='z')||(user[j]>='A'&&user[j]<='Z'))){m=1;printf("用户名格式不符,请重新输入");}else m=0;}}printf("密码权限仅限数字或字母"); //设定密码权限while(k!=0) //密码不符合要求就继续输入,输对就跳出循环{printf("输入密码\n");gets(code1);len=strlen(code1);for(j=0;j<len;j++){if(!((code1[j]>='a'&&code1[j]<='z')||(code1[j]>='A'&&code1[j]<='Z')||(code1[j]>='0'& &code1[j]<='9'))){k=1;printf("密码格式不符,请重新输入\n");}else k=0;}}while(sign!=0){printf("再输入一次密码\n");//再输入一次密码看两次是否一样gets(code2);if(!strcmp(code1,code2)){printf("注册成功\n");//两次输出密码相等,就注册成功sign=0;}else{sign=1;printf("密码出错,与第一次不符");i++;}if(i>3){printf("\n你已经超过2次输错密码,已无法输入,再见");break; //如果超过两次输错密码,系统将会阻止再次输入}}fputs(user,fp);fputs(code1,fp);//将输入的用户名,密码存放到文件夹中,以便用于登陆fclose(fp);}6.课程设计总结问题:我出现的问题主要还是出现在注册中,其他两个程序虽然也有问题,但都能通过自己和小组成员之间的交流慢慢解决,类如在添加时选择是否继续添加下去时,运行时系统会不理你的选择继续叫你加下去,然后和小组成员讨论后在选择是否添加前面加了个getchar()问题就解决了。
C语言大作业说明书
CHANGZHOU INSTITUTE OF TECHNOLOGYC 语言大作业设计说明书2015年 7月题目: 学生档案管理系统二级学院(直属学部):计算机信息工程学院 专业:软件工程 (中英合作) 班级:14软件三 姓名: 梁文昊 学号: 14030515 姓名: 邹琦 学号: 14030540目录1概述----------------------------------------------1 1.1 小组构成及分工--------------------------------1 1.2 设计内容--------------------------------------1 1.3 开发工具--------------------------------------1 1.5 应用平台--------------------------------------1 2系统设计------------------------------------------2 2.1 功能模块设计----------------------------------2 2.2 数据结构设计----------------------------------3 2.3 函数功能描述----------------------------------4 3实现与测试----------------------------------------5 3.1 关键技术实现----------------------------------53.2 测试运行结果----------------------------------64 开发日志-----------------------------------------115 总结---------------------------------------------116 参考文献-----------------------------------------111 概述1.1小组构成及分工小组构成:梁文昊(组长)、邹琦分工:梁文昊负责录入、查询模块及更新模块中修改学生信息部分与实验报告书。
c程序设计大作业
c程序设计大作业C程序设计大作业C程序设计是一门实践性很强的课程,大作业是检验学生对C语言掌握程度的重要方式。
本次大作业的目的在于通过实际编程练习,加深对C 语言基础语法、数据结构、算法设计和程序调试等方面的理解,同时培养学生的编程思维和解决实际问题的能力。
一、大作业要求1. 题目选择:学生可以从以下题目中任选一题完成:- 学生信息管理系统- 图书馆管理系统- 简易计算器- 字符串处理工具- 图形界面的五子棋游戏2. 功能实现:每个题目都应实现基本功能,例如:- 学生信息管理系统:添加、删除、修改、查询学生信息。
- 图书馆管理系统:图书借阅、归还、查询等。
- 简易计算器:实现基本的加减乘除运算。
- 字符串处理工具:实现字符串的复制、连接、查找、替换等操作。
- 图形界面的五子棋游戏:实现基本的下棋逻辑和胜负判断。
3. 代码规范:代码应遵循良好的编程规范,包括但不限于:- 明确的函数分工,每个函数应有简短的注释说明其功能。
- 变量命名应清晰,避免使用无意义的缩写。
- 代码结构清晰,逻辑性强。
4. 文档编写:提交的作业应包括:- 程序设计说明书:介绍程序的功能、设计思路、实现过程等。
- 源代码:按照题目要求编写的C语言代码。
- 用户手册:简要说明如何使用程序。
5. 提交方式:所有材料应以电子文档形式提交,包括设计说明书、源代码和用户手册。
二、大作业流程1. 选题:学生在教师的指导下选择适合自己能力的题目。
2. 需求分析:明确程序需要实现的功能和性能要求。
3. 设计:设计程序的总体结构和各个模块的详细设计。
4. 编码:根据设计文档编写程序代码。
5. 测试:对编写的程序进行测试,确保功能正确无误。
6. 调试:根据测试结果进行必要的调试,修正程序中的错误。
7. 文档编写:编写程序设计说明书和用户手册。
8. 提交:按照要求提交所有材料。
三、评分标准1. 功能实现:程序是否实现了题目要求的所有功能。
2. 代码质量:代码是否规范、清晰、易读。
C语言程序课程设计说明书.
C语言程序课程设计说明书一、设计任务与要求《C语言程序课程设计》是计算机科学与技术各专业本科生在完成《C语言程序设计》课程学习后进行的一门专业实践课程,是培养学生综合运用所学知识解决专业相关问题的重要环节,是对学生实际工作能力的具体训练和考察过程。
本次课程设计的题目均设想采用C语言来开发。
希望题目简单到学生可以独立完成,又可以达到锻炼学生编写复杂程序的课程设计目的。
最重要的是希望能避免抄袭,让学生真正锻炼自我。
要求每个学生必须参加,并完成如下各项课程设计任务:1. 要求每个学生认真阅读本C语言课程设计说明书,理解课程设计的目的和任务。
2. 要求学生通过自学理解和掌握本说明书附录2中给出的程序实例,读懂其中程序的设计功能,设计思想,设计结构,设计技巧,设计的不足等情况,提高阅读较大并且较为复杂程序源代码的能力,也可以通过实例理解本次课程设计要求的设计任务的规模和难度。
3. 要求每个学生根据自己的实际情况选择一个题目,实际动手完成这个题目,编写出程序代码,并调试通过。
4 每个同学选择一个题目,原则上不允许多名同学选择同一个题目。
多名同学选择同样题目时,独立完成,程序代码不可相同。
5. 要求每个学生完成课程设计后撰写《C语言程序课程设计报告》,可以按照任务书后面附带的课程设计报告模版的格式实际撰写。
6.要求每位学生必须在上机前做好充分准备,每次上机必须目的明确,必须事先编写好程序代码,然后在规定的时间和地点上机调试。
二、学生选题原则1 题目分四大类,根据学生自身情况选择其中一类题目,抽取其中一道题,作为课程设计选题,每个同学有两次选题机会,最终确定题目。
2 允许学生在给出可供选择题目之外自己选择题目,但要经指导教师同意。
三、课程设计实施过程1在课程设计开始时,公布此课程设计说明书。
2.教师根据需要安排合适的时间、地点进行答疑。
3.教师要认真检查学生完成的程序进展情况。
4 教师要指导学生撰写符合规范的《C程序课程设计报告书》。
c语言大作业课程设计
c语言大作业 课程设计一、课程目标知识目标:1. 理解C语言中数组、函数、指针等基本概念,掌握其应用方法;2. 学会使用C语言编程解决实际问题,如数值计算、数据处理等;3. 了解C语言程序设计中常用的算法与数据结构,如排序、查找等;4. 掌握C语言编程规范,提高代码质量。
技能目标:1. 能够独立设计并编写具有实际意义的C语言程序,具备一定的编程能力;2. 学会运用调试工具,如GDB,对程序进行调试,找出并解决程序中的错误;3. 能够阅读和理解C语言源代码,具备一定的代码阅读能力;4. 具备团队协作能力,与他人共同完成复杂的编程任务。
情感态度价值观目标:1. 培养学生对C语言编程的兴趣,激发学习热情,树立编程自信心;2. 培养学生严谨、认真的学习态度,养成良好的编程习惯;3. 培养学生面对编程难题时的耐心与毅力,具备解决问题的决心;4. 培养学生的创新意识,鼓励尝试新方法,勇于挑战自我。
本课程针对高年级学生,课程性质为实践性较强的编程课程。
在教学过程中,要求学生具备一定的C语言基础,能够通过本课程的学习,将所学的理论知识运用到实际编程中,提高解决实际问题的能力。
课程目标的设定旨在使学生能够通过本课程的学习,掌握C语言的核心知识,培养编程技能,同时注重情感态度价值观的培养,全面提高学生的综合素质。
后续教学设计和评估将围绕这些具体学习成果展开。
二、教学内容本章节教学内容主要包括以下几部分:1. C语言基础回顾:数组、函数、指针等基本概念及其应用;- 数组:一维数组、二维数组、字符数组;- 函数:函数定义、调用、传值与传址;- 指针:指针的概念、指针与数组、指针与函数。
2. 算法与数据结构:排序、查找等常用算法;- 排序:冒泡排序、选择排序、插入排序;- 查找:顺序查找、二分查找。
3. 编程规范与调试技巧:C语言编程规范、GDB调试工具的使用;- 编程规范:命名规则、代码格式、注释;- 调试技巧:设置断点、单步执行、查看变量值。
C语言程序设计说明书
C语言程序设计说明书一、简介C语言是一种通用、高效的编程语言,被广泛用于系统软件和应用程序的开发。
本说明书旨在详细介绍C语言程序设计的基本原理和技巧,帮助读者快速掌握C语言程序设计的核心概念和操作方法。
二、开发环境1. 软件安装为了开始C语言程序设计,您需要安装相应的开发环境。
推荐使用以下软件进行安装:- 编译器:gcc或者MinGW- 集成开发环境(IDE):Code::Blocks、Dev-C++或者Visual Studio2. 配置环境变量安装完成后,需要配置环境变量以便系统能够正确找到编译器和相关的库文件。
请按照软件提供商的官方文档来进行正确的配置。
三、基本语法1. 数据类型C语言提供了多种数据类型,包括整型、浮点型、字符型等。
在声明变量时,需要指定其数据类型。
例如:int num = 10;char ch = 'A';2. 运算符C语言支持各种基本运算符,如加法、减法、乘法、除法等。
还有逻辑运算符、关系运算符等。
运算符的使用可以帮助实现各种计算和逻辑判断。
3. 控制流程C语言提供了多种控制流程语句,如条件语句(if-else)、循环语句(for、while、do-while)等。
通过这些语句可以实现程序的分支和循环执行,增加程序的灵活性和功能性。
四、函数和模块化编程1. 函数的定义和调用函数是C语言程序设计中的重要组成部分,可以实现代码的重用和模块化。
通过函数的定义和调用,可以将程序划分为多个模块,使程序结构清晰明了。
2. 函数参数和返回值函数可以带有参数和返回值。
参数可以是各种数据类型,用来向函数传递数据。
返回值则可以将函数的结果传递给调用者。
3. 递归函数C语言支持递归函数,即函数可以调用自身。
递归函数在解决某些问题时非常有用,但需要小心控制递归的深度,以避免堆栈溢出等问题。
五、数组和指针1. 数组的定义和使用数组是一种容器,可以存储多个相同类型的元素。
通过定义和使用数组,可以方便地处理大量数据和实现复杂的算法。
C语言大作业报告书
C语言大作业报告书一、目的1)巩固练习C语言的基础知识2)综合运用C语言的编程方法3)针对抽象的解题思路,设计程序结构4)基于VC6调试、测试与修改程序二、内容2.1、阅读程序,推导结果。
1、#include<iostream>using namespace std;int a = 200;int main(){int s=0;for(int i=1; i<=5; i++)s+=++a;cout<<s<<endl;return 0;}运行结果:10152、#include<iostream>using namespace std;int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};void main(){cout<<a[0][1] + b[1][0] << ' ';cout<<a[1][0] + b[0][1] << endl;}运行结果:0 43、#include<iostream>using namespace std;void main(){int num=0,i=10;do{i--;num+=i;}while(--i);cout<<num<<endl;}运行结果:252.2、应用编程1、由键盘输入5个整数,输出其中最大、最小的数与它们的平均值。
提示:设置2个指示变量,分别记录最大、最小的数的下标;指示变量先设置为0,然后遍历数组,刷新指示。
解:#include <iostream>void main(){int a[5],i,s=0;float arry;for(i=0;i<5;i++)cin>>a[i];for(i=0;i<5;i++){for(int j=i+1;j<5;j++){if(a[i]>a[j]){int t=a[j];a[j]=a[i];a[i]=t;}}}cout<<"最小数="<<a[0]<<endl;cout<<"最大数="<<a[4]<<endl;for(i=0;i<5;i++){s=s+a[i];}arry=s/5;cout<<"平均值="<<arry<<endl;}输入:3 4 5 7 16输出:最小数=3最大数=16平均值=72、输出以下图案。
C语言程序设计说明书与实验报告
C 语言程序设计实验报告学院:资源加工与生物工程专业:无机非金属材料工程班级:0501姓名:金光龙学号:0302050107指导老师:金胜明制作日期:05年7月9日C语言程序设计说明书目录一程序设计目的及任务;二程序设计的内容;三源程序;四程序说明;五实践心得;一程序设计目的及任务1、学会数据文件的建立在实验室试验和现场生产过程中,经常要存储、处理许多数据(试验数据和生产数据),在没有在线检测的条件下,这些数据都要进行人工的输入,建立数据文件。
以前,我们都是编写建立数据文件的程序来建立数据文件,当某个数据输入错误时就要重新输入或编写数据文件修改程序,比较麻烦。
直接在编辑状态下(TC,TP等)编写数据文件简单、直观、实用。
2、理解并且学会运用文件操作函数3、学会用线性回归法建立数学模型二程序设计的内容一、数据文件1.文件操作函数(1)文件的打开 fopen#include<stdio.h>FILE *fopen(char *filename, char *type);filename—文件名,字符串变量;type—文件打开的方式(r,w,a)函数功能:打开由文件filename指定的文件,并把一个stream与它联系起来。
返回一个指针,该指针用来识别随后操作的文件stream。
若成功地完成打开,则返回最近打开的文件stream,若出现错误,则返回NULL。
(2) 文件的关闭 fclose#include<stdio.h>int fclose(FILE *stream);filename—文件名,字符串变量;type—文件打开的方式(r,w,a)函数功能:关闭指定的流式文件。
(3)fscanf—从流中执行格式化输入#include<stdio.h>int fscanf(FILE *stream, char *format[,argument,…]);函数功能:从指定的输入流中按规定的格式把数据读入由地址参数&arg1,…&argn给定的单元中。
C语言程序的设计说明书
C语言程序设计说明书一、C语言概述1、C语言出现的历史背景:C语言是国际上广泛流行的计算机高级语言,既可用来写系统软件,也可用来写应用软件。
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。
1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。
1963年英国的剑桥大学推出了CPL (combined programming language)语言。
CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现。
1967年英国剑桥大学的Matin Richards对CPL语言做了简化,推出了BCPL (basic combined programming language) 语言。
1970年美国贝尔实验室的Ken Thompson 以BCPL语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的B语言 (取BCPL的第一个字母),并用B语言写了第一个UNIX操作系统,在PDP7上实现。
1971年在PDP11/20上实现了B语言,并写了UNIX操作系统。
但B语言过于简单,功能有限。
1972年至1973年间,贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。
C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。
最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
1973年,K.Thompson 和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版。
原来的UNIX 操作系统是1969年由美国的贝尔实验室的K.Thompson和D.M.Ritchie开发成功的,是用汇编语言写的。
后来,C语言多次做了改进,但主要还是在贝尔实验室部使用。
直到1975年UNIX第6版公布后,C语言的突出优点才引起人们的普遍注意。
c语言程序设计大作业
C语言程序设计大作业一、引言C语言是一种高级编程语言,广泛应用于计算机科学和软件开发领域。
在C语言程序设计大作业中,学生需要设计和实现一个完整的C语言程序,以展示对C语言的理解和掌握程度。
本文将深入探讨C语言程序设计大作业的要求和技巧,帮助读者更好地完成这一任务。
二、任务要求C语言程序设计大作业有以下要求:1.设计和实现一个功能完整的C语言程序。
2.程序应具备良好的用户交互性。
3.程序应包括错误处理和异常处理机制。
4.程序代码应遵循良好的编程规范和代码风格。
三、程序设计思路完成C语言程序设计大作业需要进行以下步骤:1. 确定程序主题首先,需要确定程序的主题和功能。
可以根据个人兴趣和实际需求选择一个合适的主题,如学生管理系统、图书管理系统等。
2. 分析需求在确定程序主题后,需要详细分析程序的需求,包括功能需求和性能需求。
功能需求指程序需要实现的功能,性能需求指程序需要满足的性能指标,如响应时间、并发处理等。
3. 设计程序架构在分析需求后,需要设计程序的架构。
程序架构应包括模块组织结构、数据结构和算法等。
可以使用面向对象的方法进行设计,将程序拆分为多个模块,并建立模块之间的关联关系。
4. 实现程序根据程序设计思路,开始编写程序代码。
编写过程中应注意代码的可读性和可维护性,遵循良好的编程规范和代码风格。
5. 测试和调试完成程序编写后,需要进行测试和调试工作。
通过测试,确保程序能够正常运行,并满足需求。
四、关键技巧完成C语言程序设计大作业需要掌握以下关键技巧:1. 理解C语言基础知识在C语言程序设计中,需要掌握C语言的基础知识,包括数据类型、流程控制、函数等。
只有理解这些基础知识,才能进行程序设计和实现。
2. 熟悉常用库函数C语言提供了丰富的库函数,如输入输出函数、字符串处理函数等。
熟悉常用库函数的使用方法,可以提高程序的开发效率。
3. 错误处理和异常处理在程序设计过程中,要考虑错误处理和异常处理机制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计大作业设计说明书概述:处在Microsoft Visual C++软件下的Developer Studio集成开发平台中进行开发。
已实现了基本功能中的:1、随机生成没有重复的4个数。
(每个数字在0-9范围内)。
2、用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有x个数数值和位置都相同!有y个数数值相同,但位置不同。
”3、控制用户的尝试次数为10次。
4、计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。
5、有操作菜单,能根据不同选择运行不同功能:1:开始游戏!2:查看上次成绩!3:输出帮助信息!4:游戏设置!0:退出程序!还实现了扩展功能里的:1.对用户输入的数字进行检查,如果用户输入重复的数,给出提示,要求重新输入。
2.能对游戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。
(1)修改要猜的数字的个数n,根据修改后的n值,计算机可随机生成n个数,用户进行n个数的猜测游戏。
(2)修改可以尝试的次数。
未实现的功能是扩展功能里的:1、若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。
操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名成绩及用户姓名显示出来。
2、能对积分榜的成绩进行排序和输出。
经多次运行尝试,虽然编辑、编译、连接都没有错误,可以运行,但是在运行的时候有时会卡住,要等一会才会显示出来。
程序概要设计:程序流程是:开始运行到主界面,在主界面中可选择:1:开始游戏!2:查看上次成绩!3:输出帮助信息!0:退出程序!,然后选择开始游戏后,程序会生成4个不重复且在0-9之间的随机数,然后玩家需输入4个不同的数0-9之间的数,接着程序会判断玩家输入的4个数与程序生成的随机数的数值和位置是否相同,并提示4个数的数值跟位置相同和不同有几个,就这样一直循环到4个数的数值和位置都正确,或玩家尝试次数已超过10次。
程序会在循环结束时显示出玩家的得分,并提示输入0返回主菜单;选择查看上次成绩后,程序会显示您的上次得分并提示输入0返回主菜单;选择帮助信息后,程序会显示一段游戏规则并提示输入0返回主菜单;选择游戏设置,程序会先清屏,再显示出新的界面,让玩家设置猜数个数和可尝试次数,并提示输入0返回主菜单;选择退出游戏后,程序会直接关闭。
程序流程图如下:所包含的函数如下:1、exit(1);功能是终止程序,关闭文件。
2、system("cls");功能是执行一个MS DOS命令,在这里就是起清屏作用。
3、printf("%d",a[m]);功能是输出数组a里面的值。
4、scanf("%d",&z);功能是扫描输入的z值。
5、rand()%10;功能是生成一个随机数。
6、srand(time(0));功能是生成一个种子,初始化随机数产生器。
7、int main();功能是软件执行的入口,在函数所在的程序头部包含可部分系统必须的头文件和完成其他功能的源文件。
在该函数中还提供了系统功能选择的平台,提示用户系统可用的功能有哪些和这些功能的选项代码。
并给用户提供输入功能选项代码的接口,当用户输入选项代码后,即显示给用户相应的功能处理界面或结果。
8、void begin();功能是显示主界面。
9、void help();功能是显示帮助信息的内容。
10、void set();功能是显示游戏设置的界面。
程序详细设计:关键代码分析如下:1、srand(time(0)); //生成一个种子。
整个程序只写一次即可。
for(i=0;i<=f-1;i++) //循环的次数(f)和赋予数组a[]的值(i)。
{a:a[i]=rand()%10; //生成i个随机数。
for(j=0;j<i;j++) // {保证在生成随机数不重复,重复情况下将用goto转到a:{if(a[j]==a[i]) 出口,再生成随机数,直至随机数不重复。
goto a;}} // }//for(m=0;m<=f-1;m++)//printf("%d",a[m]); //输出a[]数组中的随机数。
本段代码的功能主要是产生不重复的并在0-9之间的随机数,而变量f可以控制所产生随机数的数量。
在设计过程中,刚开始是为了实现基本功能时,用4代替f,用printf("%d%d%d%d".a[0],a[1],a[2],a[3]);代替printf("%d",a[m]);设计过程十分顺利,而在进行扩展功能中的游戏设置设计中,遇到了一点小麻烦。
为了检验随机数产生是否符合要求,设计了printf("%d",a[i]);运行后发现产生的随机数不是随机的。
经过翻查课本后,才发现再弄个变量m 给数组a[]输出,可以解决这个问题。
基本上能实现随机数的产生和设置随机数的数目。
2、laber:if(x>g-1) //laber:为goto的出口;{printf("本次游戏结束,没有猜对,本次得分为:0分!\n"); //用if语句判断尝试次数并给予提示printf("正确答案是:"); //分数和正确答案for(m=0;m<=f-1;m++)printf("%d",a[m]); //正确答案输出。
printf("\n输入0返回上级菜单:");scanf("%d",&z);if(z==0){system("cls"); //清屏main();}} //输出函数main()else{x++;}h=100-((x-1)*10); //分数设定printf("输入您猜测的4位不同的数<0~9之间>(用空格隔开):");for(n=0;n<=f-1;n++)scanf("%d",&b[n]);for(k=0;k<=f-1;k++) //设置输入数字的数量{for(j=0;j<k;j++){if(b[j]==b[k]) //判断输入数字的重不重复{printf("输入错误,有相同的数,请重新输入!\n\n");goto laber;} //返回上面的laber:if(b[k]<0||b[k]>9) //判断输入数字是不是在0-9之间{printf("输入错误,数字不在0~9之间,请重新输入!\n\n");goto laber;}}} //返回上面的laber:for(i=0,w=0;i<=f-1;i++) //{利用for语句循环确定产生的随机数if(a[i]==b[i]) w++; //跟玩家输入数字的数值和位置的关系for(o=0,r=0;o<=f-1;o++) //并每次给予提示。
}for(p=0;p<=f-1;p++)if(a[o]==b[p]) r++;if(w==f) //制定循环和设置循环出口{printf("恭喜!猜对了!!\n"); //提示玩家已猜对并结束循环printf("本次得分是:%d\n\n",h);printf("输入0返回上级菜单:");scanf("%d",&z);if(z==0){system("cls");main();}}else{printf("有%d个数的数值和位置相同!有%d个数数值相同但是位置不同!\n\n",w,r-w);}goto laber; //返回上面的laber:本段代码的功能主要是:实现玩家尝试猜数字次数控制在10次,若10次以内猜对数字,则根据尝试次数的多少确定分数和保存分数,并跳出循环,若10次后也没猜对数字,也跳出循环;变量g可以控制玩家尝试猜数字的次数;确保玩家输入数字是不重复并且在0-9之间的;程序能对玩家输入的数与随机生成的数的数值和位置进行匹配,并给出提示信息:“有w个数数值和位置都相同!有r-w个数数值相同,但位置不同。
”在设计这段代码的时候,用设计确保随机数不重复和在0-9之间的代码直接放到玩家输入数字上,很快就实现了此功能。
在设计程序对玩家输入的数与随机生成的数的数值和位置进行匹配时,刚开始用if语句来判断w、r的数值,写出来的代码不仅仅长,而且十分乱,经常少加中括号或多加中括号,导致代码无法编译。
花费了大量的时间纠正了后,但是w、r的值不对应,又花费了大量的时间寻找错误,在久久不可纠正的情况下,我虚心向周围的同学请教,他们说用for语句可以很好的实现这功能,我才将if语句改为for语句。
用了for语句,短短时间内就解决这个功能。
在设计玩家得分时,刚开始直接用变量h来定义,然而因为变量的位置放在循环外面,导致玩家得分一成不变。
修改过后,在查看上一次成绩的时候变量h无法转到case 2:去,导致查看上一次成绩时显示的分数固定不变。
在询问了几个同学后,用指针*h来定义得分,然而还是不行。
最后在帮其他同学寻找程序错误时,发现他的变量直接放在最上面,不受主函数循环影响。
因此才实现了查看上一次成绩的功能。
使用情况:1、随机生成没有重复的4个数。
(每个数字在0-9范围内)。
2、用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有x个数数值和位置都相同!有y个数数值相同,但位置不同。
”3、控制用户的尝试次数为10次。
4、计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。
5、有操作菜单,能根据不同选择运行不同功能:1:开始游戏!2:查看上次成绩!3:输出帮助信息!0:退出程序!6、对用户输入的数字进行检查,如果用户输入重复的数,给出提示,要求重新输入。
7、能对游戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。
(1)修改要猜的数字的个数n,根据修改后的n值,计算机可随机生成n个数,用户进行n个数的猜测游戏。
(2)修改可以尝试的次数。
总结:程序经过多次调试,现在可以良好的运行。
曾经在调试过程中出现不能退出循环的情况,或者出现两次循环之后两次猜数字得到的结果无故相加,造成结果错误,再或者完成修改之后发现不能运行,但经过多次修改后,如今猜数字游戏程序可以顺利运行。
这个程序的优点就是代码清晰,无运行错误;缺点是无法实现扩展功能里的:1、若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。