C语言程序设计课程设计报告
c语言课程设计报告模板及范文

c语言课程设计报告模板及范文一、引言引言部分在课程设计报告中扮演了导读的角色,通常包括以下内容:•背景:简要介绍课程设计的背景和目的。
•目的:阐述课程设计的目标和意义。
•项目概述:对设计项目的总体概况进行描述。
•报告结构:简要介绍后续报告的组织结构。
二、需求分析需求分析是课程设计过程中的重要环节,它用于明确项目的目标和功能,通常包括以下内容:•问题定义:对设计中需要解决的问题进行明确定义。
•功能需求:详细描述设计项目需要实现的各项功能。
•性能需求:根据设计的要求,确定设计项目的性能指标。
•接口需求:描述设计项目与其他模块或系统之间的接口要求。
三、设计方案设计方案部分是课程设计报告的核心,通常包括以下内容:•总体设计思路:对设计方案的总体思路进行简要介绍。
•模块划分:按照功能将设计项目分成各个模块,并描述各个模块的功能和关系。
•模块设计:对各个模块进行详细的设计说明,包括算法、数据结构等。
•界面设计:如果设计项目包含界面,需要对界面进行详细的设计说明。
•流程图:结合文字和图表展示设计项目的流程。
四、实现与测试实现与测试部分是课程设计报告中比较实际的内容,通常包括以下内容:•开发环境:列出完成设计的开发环境和所使用的工具。
•代码实现:详细描述设计项目的代码实现方法。
•测试方法:列出设计项目的测试方法和测试样例。
•测试结果:给出设计项目在测试样例下的实际运行结果。
五、总结与展望总结与展望部分对整个课程设计进行总结,并对未来的优化和拓展提出展望,通常包括以下内容:•成果总结:对整个课程设计的成果进行总结和评价。
•存在问题:对设计项目中存在的问题和不足进行归纳和总结。
•改进方向:针对存在问题提出改进的方向和思路。
•未来展望:对设计项目未来的拓展和优化方向进行展望。
六、参考文献在课程设计报告中,如果有引用的书籍、论文或网络资源,需要列出参考文献。
范文示例:```c #include <stdio.h>void main() { printf(。
大一c语言程序课程设计

大一c语言程序课程设计一、课程目标知识目标:1. 理解C语言程序设计的基本概念,掌握数据类型、变量、运算符、表达式等基础知识;2. 学会使用顺序结构、分支结构、循环结构进行程序设计;3. 掌握数组和函数的使用,理解指针的概念及其应用;4. 了解结构体、联合体和枚举类型的使用。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 能够分析问题,运用逻辑思维进行程序设计;3. 能够阅读和理解他人编写的C语言程序;4. 能够对程序进行调试和优化,提高程序效率。
情感态度价值观目标:1. 培养学生的编程兴趣,激发学习积极性;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 培养学生的创新精神,敢于尝试新思路和方法;4. 培养学生严谨的学术态度,遵循编程规范。
课程性质:本课程为大一C语言程序设计的基础课程,旨在使学生掌握C语言的基本知识和编程技能,为后续专业课程打下坚实基础。
学生特点:大一学生刚接触编程,对编程知识有一定好奇心,但缺乏实际操作经验。
教学要求:结合学生特点,注重理论与实践相结合,通过案例分析和实际操作,使学生熟练掌握C语言编程技巧。
在教学过程中,注重培养学生的编程兴趣和创新能力,提高学生分析问题和解决问题的能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. C语言概述:介绍C语言的发展历程、特点和应用领域,理解编程的基本概念。
相关教材章节:第一章2. 数据类型与运算符:讲解基本数据类型、变量定义、常量声明,运算符及其优先级。
相关教材章节:第二章3. 顺序结构程序设计:学习基本输入输出函数,编写简单的顺序结构程序。
相关教材章节:第三章4. 分支结构程序设计:介绍if语句、switch语句,学会编写分支结构程序。
相关教材章节:第四章5. 循环结构程序设计:讲解for循环、while循环、do-while循环,掌握循环结构编程。
相关教材章节:第五章6. 数组:介绍一维数组、二维数组的使用,学会存储和操作批量数据。
C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)

河南城建学院《高级语言程序设计》课程设计报告设计题目:用一个字符数组保存一个英文句子专业:计算机科学与技术班级:设计人员:指导教师:计算机科学与工程学院2015年06 月25日一、课程设计题目13.用一个字符数组保存一个英文句子。
二、设计要求1)删除该英文句子中的前导空格,后导空格,并删除句子中多余的空格(单词之间只留一个空格);2)统计该句子中,单词出现的频率;3)查找并替换某个单词。
三、程序介绍1.去除字符组中间空格。
void zhongjian(char a[]){int i,j,k; /*定义整形变量i,j,k。
i,j 作为函数内循环的控制变量。
定义k用于字符组长度存放。
*/ k=strlen(a); /*将字符组a的长度存放于k 中。
(字符组a即待处理的字符组)*/for(i=0;i<k;) /*循环控制,从第一位循环到字符组结束。
*/if(a[i]!=' 'i++; /*条件控制,若当前字符不为空格,跳到下一位再进行循环。
*/else if(a[i]==' ')if(a[i+1]==' ') /*当连续出现两个空格,需要去除一个空格*/{k=k-1; /*字符串总长度减一。
*/ for(j=i;j<k;j++)a[j]=a[j+1]; /*从第一个空格开始,后续所有字符前提一位,即去除第一个空格。
*/a[k]='\0'; /*去除空格后字符组长度减一,原字符组最后一位需要变为\0。
*/continue; /*去除空格后,继续从该位检测,直至不符合该循环条件。
*/}elsei++; /*若不是连续两个空格,则跳到下个字符再进行循环。
*/printf("%s\n",a); /*输出处理后的字符组。
*/ }2.导入及导出函数void daoru(){FILE *p; /*定义一个指针函数,用于指向需要打开的文件。
C语言程序设计课程设计报告

C语言程序设计课程设计实验报告一、设计名称:学生成绩治理查询系统实验项目性质:综合性所涉及课程:C语言程序设计打算学时:实验学时12二、设计目的:1.通过本课程设计,培育上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,把握工程软件设计的大体方式,强化上机动手能力,闯过编程关;2.为后续各门运算机课程的学习打下坚实基础。
3.明白得程序设计的思路,把握结构化程序设计的方式,综合利用C语言进行程序编写,巩固常常利用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培育。
提高编写程序解决实际问题的能力、调试程序的技术。
三、设计环境(软件、硬件及条件)1.硬件:PC机2.软件:Turbo C++四、设计说明:程序系统的结构:用一系列图表列出本程序系统内的每一个程序(包括每一个模块和子程序)的名称、标识符和它们之间的层次结构关系。
主程序:新建:输入记录(遇#号时停止输入)。
插入:在指定位置插入记录。
显示:列出所有记录。
查询:一、按学号查询;二、按名字排序。
删除:一、按学号删除;二、按名字删除;3、删除所有记录。
排序:一、按语文成绩排序;二、按英语成绩排序;3、按数学成绩排序。
保留:保留为任意名字,系统自动加后缀名为.txt。
读取:读取程序目录下的后缀名为.txt的文件。
退出:退出程序。
五、各功能模块的具体实现,用图表表示。
输入记录显示开始:输入学号输入的学号是否为#Y N 结束,返回主菜单输入记录循环输入结束开始p=hp!=NULL输出学生信息;p=p->next结束按学号(姓名)查询信息Y N读取文件六、各模块(函数)的功能介绍,数据结构设计描述,参数说明等。
STUDENT *init(); /*初始化链表*/STUDENT *create(); /*新建链表*/STUDENT *del_no(STUDENT *h);/*按学号删除信息*/STUDENT *del_name(STUDENT *h); /*按姓名删除信息*/void print(STUDENT *h); /*显示信息函数*/void search_no(STUDENT *h); /*按学号搜索*/void search_name(STUDENT *h); /*按姓名搜索*/STUDENT *insert(STUDENT *h); /*插入信息函数*/void sort(STUDENT *h);/* 排序函数*/void save(STUDENT *h);/*保留数据到文件*/void load(STUDENT *h); /*从文件读取数据*/int menu_main(); /*菜单函数*/void inputs(char *prompt,char *s,int count);/*输出信息*/七、程序代码:Enter records\n");printf(" 2. Add records\n");printf(" 3. List records\n");printf(" 4. Search records\n");printf(" 5. Delete records\n");printf(" 6. Sort records\n");printf(" 9. Quit\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~9):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>9); /*选择项不在1~9之间重输*/return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Search records on number\n");printf(" 2. Search records on name\n");printf(" 3. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~3):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>3);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Chinese\n");printf(" 2. English\n");printf(" 3. Math\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Delete records on number\n");printf(" 2. Delete records on name\n");printf(" 3. Delete all records\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}.");/*提示*/getch(); /*读入任意字符*/}.\n");getch(); /*读入任意字符*/if(p==h)h=p->next;elseq->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s); }printf("\nPress any key to continue..."); getch(); /*读入任意字符*/return h;}.\n");getch();if(p==h)h=p->next;else q->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s);}printf("\nPress any key to continue...");getch(); /*读入任意字符*/return h;}.");getch(); /*读入任意字符*/}.");getch(); /*读入任意字符*/}xt"};STUDENT *p;FILE *fp; /*指向文件的指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"wb"))==NULL) /*打开文件,并判定打开是不是正常*/ {printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;while(p!=NULL){if(fwrite(p,sizeof(STUDENT)-sizeof(p->next),1,fp)!=1){printf("Error!\n");exit(1);} /*写入*/p=p->next;}fclose(fp); /*关闭文件*/printf("\n------OK------\n");printf("Press any key to continue...");getch(); /*读入任意字符*/}xt"};STUDENT *p,*a1=NULL,*a2=NULL;FILE *fp;/*概念文件指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"rb"))==NULL)/*打开文件*/{printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;a1=a2=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp); while(!feof(fp)){n++;if(n==1)h=a1;else a2->next=a1;a1=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);}a2->next=NULL;printf("\n------OK------\n");printf("Press any key to continue...");getch(p); /*读入任意字符*/}///////////////////////////////////////////void sort(STUDENT *h) /*排序函数*/{int i=0,j;STUDENT *p,*q,*t,*h1,*z;clrscr(); /*清屏*/printf("Enter you choice :\n");scanf("%d",&j);z=h;h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;h1=h1->next;q=h;while(t->score[--j]<p->score[--j]&&p!=NULL){q=p;p=p->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t;}}p=h;while(p!=NULL){i++;p=p->next;}h=z;printf("------OK------\n");}//////////////////////////////////////////////////九、体会、总结本课程设计完成了设计一个学生成绩治理系统,学生的学习成绩进行治理,具有查询和检索功能,而且能够对指定文件操作。
C语言课程设计-书店管理系统精选全文

计算机程序设计(C语言)课程设计报告题目:图书管理系统学院:专业:班级:学号:姓名:指导教师:设计日期:2013年06月24日一、选题背景:设计一个图书管理系统,管理员通过登陆账号来进行下一步,使用错误账号和密码会被视为非法登陆。
图书信息包括:每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等;读者信息包括:借书证记录有借阅者的姓名、密码、所在单位和类别等;读者凭借书证借书二、设计思想:(1)整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。
(2)、Cbook();这是一个指针函数,它主要实现了链表的创建,并且在创建过程中从文件读取信息到链表中,以用于后面其他函数的操作。
它返回的时一个单向链表的头。
其他函数调用时只需调用它返回的头即可。
(3)、mainmenu();、menu1();、glm enu();、cxmenu();、jhmenu();这五个函数时整个图书管理系统的全部菜单函数,mainmenu();为系统主界面,进入时可选择进入程序和退出程序。
menu1();为进程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。
glmenu();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。
cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。
jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。
操作完成后按提示信息进行文件的保存操作。
三、程序流程图会员登陆系统系统管理界面收银系统管理系统报表系统退出系统四、主要解决问题的方法及技术关键通过自己定义的函数和声明一个结构,主要方法是先使用int函数定义,不同的选择进入不同的定义函数,通过for语句进行判断,然后使用heart数组的各种方式打开此文件,然后通过while函数和for函数关闭文件,在不同的取用数值里,分别使用for,while语句进行判断是否进行下条语句。
c语言课程设计+报告+源代码

西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。
二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。
用户密码的修改。
而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。
三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。
2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。
3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。
4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。
5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。
6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。
b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。
C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。
7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。
8.输出现有职工的信息: 会显示现在记录的职工的各项信息。
C语言课程设计报告(学生成绩管理系统)

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。
二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。
同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。
五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1)来实现。
找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。
其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。
C语言程序设计课程设计报告

《C语言程序设计》课程设计报告(2011— 2012学年第 1 学期)专业:计算机科学与技术班级:姓名学号:指导教师:成绩:计算机科学与技术系2011 年12月31日目录一、课程设计的目的与要求 (3)二、方案实现与调试 (3)2.1 掷骰子游戏 (3)2.2 汽车加油 (6)2.3 大优惠 (8)2.4 金币 (9)2.5小型通讯录设计 (12)三、课程设计分析与总结 (14)附录程序清单 (14)一、课程设计的目的与要求(含设计指标)(1)实验目的C语言是一种编程灵活,特色鲜明的程序设计语言。
C语言除了学习必须的基本知识,如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这是学习语言的最终目的。
结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。
达到如下目的:1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;2.让学生扎实掌握C程序设计语言的相关知识;3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。
(2)设计要求根据实验内容的要求自由选定题目。
编写程序要求遵循如下基本要求:●模块化程序设计●锯齿型书写格式●必须上机调试通过二、方案实现与调试2.1掷骰子游戏•2.1.1 题目内容的描述两人玩骰子,游戏规则如下:1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。
2) 将每人每次的分值累加计分3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。
4) 结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的两倍。
最后显示双方分数并判定优胜者。
•2.1.2输入数据类型、格式和内容限制和输出数据的说明输入数据类型:整型数格式:srand(time(0));输入数=rand()%6+1;内容限制:产生最多十次随机数输出数据说明:掷骰子的获胜者•2.1.3主要模块的算法描述2.1.4调试过程及实验结果出现的问题:每次循环产生的随机数相同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计课程设计报告内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)《C语言程序设计》课程设计报告(2013— 2014学年第 3 学期)题目: C语言课程设计专业:软件工程班级:软件工程技术2班姓名学号: 1林燕萍指导教师:吴芸成绩:计算机科学与技术系2014 年6月23日目录一、课程设计的目的与要求 (1)二、方案实现与调试 (3)2.1 掷骰子游戏 (5)2.2 射击游戏 (7)2.3 计算存款本息之和 (8)2.4肇事逃逸 (10)2.5 礼炮 (12)2.6 汽车加油 (14)2.7 大优惠 (16)2.8 金币 (19)三、课程设计分析与总结 (23)附录程序清单 (25)一、课程设计的目的与要求(含设计指标)C语言是一种编程灵活,特色鲜明的程序设计语言。
C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。
这是学习语言的最终目的。
结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。
达到如下目的:1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;2.让学生扎实掌握C程序设计语言的相关知识;3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。
编写程序要求遵循如下基本要求:①模块化程序设计②锯齿型书写格式③必须上机调试通过二、方案实现与调试2.1掷骰子游戏2.1.1 题目内容的描述1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。
2) 将每人每次的分值累加计分3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。
4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。
最后显示双方分数并判定优胜者。
2.1.2输入数据类型、格式和内容限制和输出数据的说明数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方2.1.3主要模块的算法描述本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。
程序流程图图1 掷骰子游戏2.1.4调试过程及实验结果编辑过程中遇到的困难有:编程思路正确,但是无法正确编写出程序和编程过程缺乏。
图2 掷骰子游戏2.2射击游戏2.2.1题目内容的描述在程序运行时屏幕上方第一行随机出现一个符号,要求游戏者输入一个1-80之间的整数,当用户输入一个整数后,一个*立即从屏幕底端的该整数列向上移动,若移动到屏幕的顶端能撞上符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。
提示:1)输入符号可以采用printf("%c",'\1')2)显示*号向上移动:输出一些空行;输出*号;以循环的方式增加延时(for(i=0;i<100000;i++););clrscr()清屏重新绘制*号。
2.2.2输入数据类型、格式和内容限制和输出数据的说明System(“cls”);清楚屏幕,2.2.3主要模块的算法描述本算法的思路过程:首先清楚屏幕,然后循环每行输出* ,依次循环,判断是否击中目标,最后 5次输入结束,或者击中目标结束。
程序流程图图3 射击游戏2.2.4调试过程及实验结果该程序在调试过程中出现的问题是:该题中大体循环是以次数,还是循环的结果作为判断,弄不清楚图4 射击游戏2.3计算存款本息之和:以“存款利率”为关键字上网搜索目前我国整存整取不同期限我国的银行存款利率,只计算一年(3%)、三年(4.25%)和五年(4.75%)三种期限。
问题:1) 要求输入存钱的本金和期限,求到期能从银行得到的利息与本金合计。
2)假设存款期限为三十年本金为10万,比较一年、三年和五年滚存三十年后的本息金额。
261036.844 332020.963 359146.175*1)数据类型:长整型;2)内容限制:键入本金与年限;3)输出数据:本息和PI2.3.3主要模块的算法描述本算法的语言描述:输入限定之内的年份与存款金额,选择对应的年利率计算本息和程序流程图2.3.4调试过程及实验结果图6 计算存款本息之和图7 计算存款本息之和2.4肇事逃逸2.4.1题目内容的描述某部闽DT的出租车交通肇事逃逸,现场无人看清后面的四位数字,但三位目击群众提供信息如下:1) 车牌号后两位相同;2) 车牌号前两位相同;3) 车牌号是一个整数的平方。
请编程查出肇事逃逸车辆的车牌号。
2.4.2输入数据类型、格式和内容限制和输出数据的说明1)数据类型:整型;2)内容限制:前两位相同,后两位相同,整数的平方; 3)输出数据:四位整数2.4.3主要模块的算法描述本算法的思路描述:前两位,后两位相同,则前两位用i表示,后两位用均表示,用k是100以内的两位整数,l表示这个四位数,用循环语句依次判断结果适合公式:k*k=l=1000*i+100*i+10*j+j,即为肇事车牌号!图8肇事逃逸2.4.4l,由于字母i与数字1比较像,结果导致混淆。
图9 肇事逃逸2.5礼炮:2.5.1题目内容的描述鸣放礼炮起源于英国。
据说400多年前英国海军用的是火炮。
当战舰进入友好国家的港口之前,或在公海上与友好国家的舰船相遇时,为了表示没有敌意,便把船上大炮内的炮弹统统放掉,对方的海岸炮舰船也同样做以表示回报。
这种做法以后就逐渐成为互致敬意的一种礼仪。
由于当时最大的战舰装有大炮21门,所以鸣炮21响就成了一种最高礼节。
有四艘战舰ABCD开始鸣放礼炮各21响,已知A战舰每隔5秒放一次,B战舰每隔6秒放一次, C战舰每隔7秒放一次, D战舰每隔8秒放一次.假设各炮手对时间掌握非常准确,请问观众共可以听到几次礼炮声?2.5.2输入数据类型、格式和内容限制和输出数据的说明2.5.3主要模块的算法描述本算法的思路过程:根据条件“A战舰每隔5秒放一次,B 战舰每隔6秒放一次, C战舰每隔7秒放一次, D战舰每隔8秒放一次”确定可能车加满油后可行驶N公里,且旅途中有K个加油站。
接下来的1 行中,有K+1 个整数,表示第K个加油站与第K-1 个加油站之间的距离。
第0 个加油站表示出发地,汽车已加满油。
第K+1 个整数表示第K个加油站与目的地的距离。
输出:将编程计算出的最少加油次数输出。
如果无法到达目的地,则输出 No Solution。
(注意:No和Solution之间有一个空格)。
例如:输入:8 83 2 3 6 54 2 7 2输出:52.6.2输入数据类型、格式和内容限制和输出数据的说明1)数据类型:数组类型;2)内容限制:键入数据:3)用到的主要语句:循环条件判断;4)输出数据:加油次数(整型)2.6.3主要模块的算法描述本算法的语言描述是:按题目要求输入数据;首先判断可行驶的路程是否足够汽车到达加油站;如果不能到达,则需要加油,在此处记录一次并循环;得出累计加油次数之和算得出结果。
图12 礼炮*2.6.4调试过程及实验结果实验中所遇到的困难是:循环条件判断错误。
图13 礼炮2.7大优惠2.7.1题目内容的描述中国移动推出最新的手机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以获赠1元,一开始Tom有M元,问最多可以用多少天?输入的测试数据为一行,实例包括2个整数M, K(2 <= K <= M <= 1000)。
输出一个整数,表示M元可以用的天数。
10 10 1150 20 522.7.2输入数据类型、格式和内容限制和输出数据的说明整型,算法的应用,内容数字的限定;2.7.3程序流程图否是图14–简要的语言描述思考数据间的关系;分析K与天数的关系;按M值递减的方式运算;2.7.4调试过程及实验结果实验中所遇到的困难是:没有注意到题目中给定的限制范围。
注意大小写图152.8金币2.8.1题目内容的描述国王用金币奖励他忠诚的侍从。
第一天侍从工作结束后,国王奖励了他一个金币;接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天侍从工作中(第四天,第五天,第六天)的每一天,国王奖励了他三个金币;接着的四天侍从工作中(第七天,第八天,第九天,第十天)的每一天,国王奖励了他四个金币。
这种奖励的模式将是固定不变的,即在N天侍从工作中的每一天,国王将奖励他N个金币;接着的N+1天的侍从工作中的每一天,国王将奖励他N+1个金币。
要求在给定的天数时,你的程序能够统计国王总共奖励了侍从多少金币。
2.8.2输入数据类型、格式和内容限制和输出数据的说明整型,算法的应用,内容数字的限定;2.8.3主要模块的算法描述–以程序流程图的方式给出。
分析天数与获得金币的关系(类金字塔);进行总求和;2.8.4调试过程及实验结果实验中所遇到的困难是:循环条件的出口判断不明确;求和处理不简约;三、课程设计分析与总结由于上学期在语言的学习方面还有很多不足之处,因此,这次课程设计显得特别吃力,很多不足都暴露了出来。
不过最终还是基本完成了此次课程设计的内容。
在各个实验中解决问题的基本流程是:分析问题→分析解决问题的基本流程→选择合适的算法语句→书写程序→调试修改→按要求书写实验报告。
在这些过程中,我认为分析问题的解决流程最为重要,分析好解决流程之后,就可以清楚的知道自己这一步要干什么,下一步要干什么,思路就显得十分清楚,按照这个流程解决问题是我感觉做得好的一面。
不过也有很多不足,例如:好久没碰C语言了,for, while之类的循环语句的基本功能都模糊了,在选择运用时还要在课本、网络上熟悉这些内容,还有一点就是自己对函数、模块化的思想掌握不够,按照实验要求需运用模块化的方式来解决问题,自己却很少使用这种思想,这就是实验中的不足之处。
总而言通过这次5天的课程设计我进一步了解C程序设计语言的编程功能,握C程序设计语言的相关知识,体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。
众多不足之处我会课余时间进一步加固,力争将这门基础课真正的学好、用好,摆正思想,为以后的专业课的学习大好基础!最后感谢谢老师的一而再再而三的严格要求及耐心指导,感谢感谢同学们的帮助,谢谢你们!附录程序清单2.1掷骰子游戏:#include <stdio.h>#include <stdlib.h>#include <time.h>void main(){int i,j,k,b,n,m,add1=0,add2=0;srand( (unsigned)time( NULL ) ); //生成随机数发生器for(i=1; i<11; i++){printf("第一个人第%d次投出的数\n",i);j=rand()%6+1;printf("%d\n",j);k=rand()%6+1;printf("%d\n",k);if(k==j==6) add1=add1+8;if(k==j==5||k==j==4||k==j==3||k==j==2||k==j==1)add1=add1+7;elseif(k>j)add1=add1+j;elseadd1=add1+k;printf("第二个人第%d次投出的数\n",i);m=rand()%6+1;printf("%d\n",m); //rand()产生随机数 - 12 -n=rand()%6+1;printf("%d\n",n);if(n==6||m==6) add2=add2+8;if(n==m==5||n==m==4||n==m==3||n==m==2||n==m==1)add2=add2+7;elseif(n>m)add2=add2+m;elseadd2=add2+n;if(i==6)if(add1==2*add2||add2==2*add1)i=10;}printf("第一个人分值累加计分%d\n",add1);printf("第二个人分值累加计数%d\n",add2);if(add1>add2)printf("第一个人胜利");if(add2>add1)printf("第二个人胜利");2.2射击游戏#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){int i,j,n,t,m;long int k;printf("*****************Welcome*****************");printf("\nGame Begin:\n");srand((unsigned)time(NULL));n=rand()%80+1;for(i=0;i<n;i++)printf(" ");printf("%c\n",'\1');for(m=0;m<5;m++){scanf("%d",&t);for(j=10;j>0;j--){system("cls");for(i=0;i<80;i++){if(i==n) printf("%c",'\1');else printf(" ");}for(i=1;i<j;i++)printf("\n");for(k=0;k<80;k++){if(k==t) printf("*");else printf(" ");}for(k=0;k<100000;k++);}if(t==n){printf("Your Winner\n");break;}if(m==4)printf("You Lose\n");}}2.3计算存款本息之和#include <stdio.h>void main(){float m,n,PI;//定义m存款本金,n存款年限,printf("Please input the principal:");scanf("%f",&m);printf("Please input the years:");scanf("%f",&n);if(n==1){PI=m*(1+0.03*1);}else if(n==3){PI=m*(1+0.425*3);}else if(n==5){PI=m*(1+0.475*5);}printf("You save:%f\n",PI);}2.3.2#include<stdio.h>#include<stdlib.h>main(){float i,save,total,profit,term;while(1){printf("total=");scanf("%f",&total);if(total==0){break;printf("Please input the principal:"); scanf("%f",&save);printf("Please input the years:"); scanf("%f",&term);if(term==5){for(i=1;i<=30;i=i+term){save=0.0475*save*term+save;}printf("You save:%f\n",save);}else if(term==3){for(i=1;i<=30;i=i+term){save=0.0425*save*term+save;}printf("You save:%f\n",save);}elsefor(i=1;i<=30;i=i+term){save=0.03*save*term+save;}printf("You save:%f\n",save);}}}2.4肇事逃逸#include<stdio.h>#include<stdlib.h>main(){int i,j,k,c;for(i=0;i<=9;i++){for(j=0;j<=9;j++){c=1000*i+100*i+10*j+j;for(k=1;k<=(c/2);k++){if((k*k)==c)printf("肇事逃逸车辆的车牌号为:%d\n",c);}}}}2.5礼炮#include<stdio.h>#include<stdlib.h>main(){int i,j=1;for(i=1;i<=168;i++){if(i<=100){if((i%5==0)||(i%6==0)||(i%7==0)||(i%8==0)) j=j+1;}else if(i<=120 && i>100){if((i%6==0)||(i%7==0)||(i%8==0)) j=j+1;}else if(i<=140 && i>120){if((i%7==0)||(i%8==0)) j=j+1;}else{if(i%8==0) j=j+1;}}printf("%d\n",j);}2.6汽车加油#include<stdio.h>void main(){int K,N,i,j,i[999],x=0,y=0; //i表示第几个加油站;j为第K 个加油站与第K-1个加油站直接的距离;x表示总距离;*/ printf("输入N K:");scanf("%d%d",&N,&K);for(i=0;i<=K;i++){scanf("%d",&j);l[i]=j;}for(i=0;i<=K;i++){if(N<l[i]){printf("No Solution.\n");break;}elsex=x+l[i];if(N<x){y++;x=l[i];}if(i==K)printf("输出最少加油次数:%d\n",y);}}2.7大优惠#include<stdio.h>main(){int M,K,i=0;printf("Please input M and K\n(2<=K<=M<=1000)\n");scanf("%d%d",&M,&K);if(2<=K<=M<=1000){while(M>0){i++;M=M-1;if(i%K==0) M=M+1;}printf("可用天数%d\n",i);}else{printf("Input is error");}}2.8金币#include<stdio.h>#include<stdlib.h>main(){int i,j,money=0,sum=0,days;printf("please input days=");scanf("%d",&days);for(i=1;i<=days;i++){for(j=1;j<=i;j++){money=money+i;sum=sum+1;if(sum==days){printf("%d\n",money);break;}}}}(注:指导教师评语和成绩所在表格另起一页)2.1。