C语言大作业

合集下载

黑河学院c语言大作业

黑河学院c语言大作业

黑河学院c语言大作业
题目:学生管理系统设计
功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、出生年月、专业、班级、家庭地址、宿舍号码等。

系统要求实现以下功能:
1、输入功能:录入学生信息(包括学生学号、姓名、性别、出生年月、专业等)。

2、显示功能:完成学生记录的显示。

3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

2、完成信息的录入和显示(即通过编程创建文件,输入学生信息并可将文件内容显示出来)。

3、完成修改功能,即输入学号,可修改该学生的信息。

4、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。

要求:
1、用C语言实现程序设计;
2、利用结构体数组、链表等实现学生信息表达、查询等,充分体现数据结构的知识;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序要有注释;
5、程序中所用到的排序查找方法需采用数据结构中所学方法实现,要求方法实用效率高。

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程序可以包含的函数。

A.一个B.多个C.若干D.任意2.下面不可以使用来编译和连接一个C 程序。

A.TurboCB.VC++C.C语言编译器D.BC3.C语言的程序一行写不下时,可以。

A.用逗号换行B.用分号换行C.在任意一空格处换行D.用回车符换行4.C控制语句有种。

A.6B.9C.32D.345.复合语句是用一对界定的语句块。

A.{}B.[]C.()D.”6.一个C程序的执行总是从该程序的函数开始,在函数最后结束。

A.第一个、最后一个B.main、mainC.主函数、最后一个D.第一个、第一个7.C语言提供的合法的数据类型关键字A.FloatB.ignedC.integerD.Char8.在以下各组标识符中,合法的标识符是(1)A.B01B.table_1C.0_tD.k%(2)A.Fat_B.voidC.pblD.(3)A.某y_B.longdoubleC.某pD.CHAR(4)A.jB.IntC._某yD.w_y239.C语言的标识符里不能有A.大小写字母B.数字C..D.下划线二.填空题1.C程序是由构成的,一个C程序中至少包含因此,是C程序的基本单位。

2.C程序注释是由和所界定的文字信息组成的。

3.函数体一般包括和4.算法是解决问题的和的描述。

5.C程序的注释部分可以出现在程序的位置,它对程序的编译和运行作用,但是可以增加程序的第二章C语言数据类型、基本运算及简单程序设计一.选择题1.不合法的字符常量是A.‘\\t’B.“A”C.‘a’D.’\\某32’2.逻辑运算符两侧运算对象的数据类型。

A.只能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据3.下列表达式中,不满足“当某的值为偶数时值为真,为奇数时值为假”的要求。

A.某%2==0B.!某%2!=0C.(某/2某2-某)==0D.!(某%2)4.下面选项中,不是合法整型常量的是A.160B.-0某cdgC.-01D.-0某48a5.能正确表示“当某的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。

c语言大作业

c语言大作业

大作业:编写和调试一个具有能对用一维数组建立的顺序表进行各种操作的应用程序。

训练目的
1.提高综合应用流程控制语句的能力;
2.提高对复杂流程结构的程序的编写能力和调试能力;
3.掌握利用数组的组织存储数据以及一些实用的算法。

4.掌握对文件的操作。

步骤
1.写程序显示如下菜单
1. 插入 (插入一个数据)
2. 删除 (删除一个数据)
3. 排序 (排序)
4. 输出 (输出表中所数据)
0. 退出 (退出程序)
2. 用输入函数输入菜单选择的数字(0-4)对其他输入要提示错误信息流程控制结构如图1所示。

3.顺序表的数据类型自选,可以先使用基本类型,在此基础上修改使用结构体类型。

4.每个功能模块要求用函数实现。

5.在菜单中增加“写入文件”和“读取文件”选项,能将顺序表中的数据写入文件和从文件读取数据。

图1
作业提交内容:
1 解题思路
2 算法流程图
3 源代码
4 实验结果。

C语言程序设计大作业

C语言程序设计大作业

学年学期:20xx - 20xx 学年 1 学期课程名称:C语言程序设计综合训练课程学分:2分考核形式:大作业任课教师:xx题目:学生成绩统计程序学院:xx学院__________________________________ 专业班级:xx_______________________________________ 学号:_______ 学生姓名:提交日期:目录目录 (2)引言 (3)1. 学生成绩管理系统 (4)1.1系统简介 (4)1.2相关代码及知识点介绍 (4)2. 添加学生成绩功能 (5)3. 查找学生成绩功能 (6)4. 排序学生成绩功能 (7)5. 展示学生成绩功能 (9)6. 删除学生成绩功能 (10)7. 附页代码 (11)引言C语言是一种比较常见的计算机语言,许多大型应用软件都是用C语言编写而成的。

其简洁紧凑,灵活方便,数据结构丰富。

在一定程度上,C语言比汇编语言更实用,具有结构化语句,实现了结构化编程,使程序编写变得更容易、更快捷,可以编写出各种类型的程序。

同时,C语言是一门实践性强的学科,在学习的过程中,利用所学知识,编写一些与生活、学习相关的应用程序来提高程序编写能力,增强学习兴趣。

本次使用C语言设计一个学生成绩管理系统,可以实现学生成绩的添加,查找,排序及展示。

在作业中使用的是函数的模块化设计,将四个程序使用四个函数来实现。

与此同时,增加用户界面的交互,可供用户选择想要的功能,实现增删查排等操作。

1. 学生成绩管理系统1.1系统简介该系统主要实现学生成绩的添加,查找,排序,展示和删除五个功能,添加学生成绩主要有6个输入值组成,其中包括学号,姓名,语文,数学,英语,政治等。

查找学生成绩主要通过学号查询。

对学生成绩进行排序,可以分别通过学号,语文,数学,英语,政治,平均分,总分等进行排序。

第四项功能是对学生成绩以表格的形式进行展示。

删除学生成绩是按照学号对表格中的数据进行删除。

大学C语言程序设计大作业题目

大学C语言程序设计大作业题目

1数据处理系统一、软件开发目的该软件主要是使用C语言设计开发数据处理程序,实现对数据的排序、查找、插入、计算、输出等功能。

二、数据结构定义一个11*10的二维数组。

三、软件功能说明1.生成100个随机数:调用库函数rand()或random()产生100个随机数,并存储在二维数组中的前十行。

2.选择法排序:用选择法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

3.冒泡法排序:用冒泡法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

4.插入法排序:用插入法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

5.查找数据:输入待查找数据, 在二维数组中逐个查找,若找到输出数据所在位置的行列号,若无该数值则输出“无此数”。

6.转换二进制:将数组中数据转换为二进制并转存到另一数组中输出。

7.转换为素数之和:对于原数组中的数进行判断:若为偶数,则表示成两个素数的和,并输出。

8.插入数据:输入一个数,将该数插入原数组中,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。

9.删除数据输入一个数,若原数组中存在该数,则删除该数,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。

10.退出系统,结束任务。

四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。

系统菜单功能项:1生成100个随机数2选择法排序3冒泡法排序4插入法排序5查找数据6转换二进制7转换为素数之和8插入数据9删除数据10退出系统注意:要求每执行一个具体的功能之后,程序将重新显示菜单。

2.系统要有一定的可靠性、稳定性,能够实现各功能模块。

2图书借阅管理系统一、软件开发目的该软件主要是使用C语言设计开发一个简单的图书借阅管理系统,实现对图书的借书,还书的管理和数据统计。

C语言大作业全

C语言大作业全

#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct student) #define NULL 0int n,m;int k=1;struct student{char num[20];char name[20];int age;char profession[50];int maths;int english;int C_program;float ave;struct student * next;};float ave(struct student * p1){float ave;ave=(float)(p1->maths+p1->english+p1->C_program)/3;return ave;}void save(struct student *head){struct student *p1 = head;FILE *outFile;outFile = fopen("stu.bin", "wb");if (outFile == NULL) {printf("\nFile error.");}else {while(p1 != NULL){fwrite(p1, sizeof(struct student), 1, outFile);p1 = p1->next;}fclose(outFile);}}//将数据存入文档中void check(struct student * head,struct student * p1) {struct student *h=head;for(m=0;m<n;m++,h=h->next ){if(strcmp( h->num,p1->num)==0){printf("输入号码重复\n");printf("请重新输入学号:");scanf("%s",p1->num);getchar();check(head,p1);}}}//检验学号是否重复struct student * creat(){struct student * head;struct student *p1,*p2;n=0;p1=p2=(struct student *)malloc(LEN); printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);head=NULL;while(strcmp(p1->num,"0")!=0){n=n+1;if(n==1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);//检查输入的学号是不是重复且是不是重复输错 printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);}p2->next=NULL;save(head);return(head);}//录入数据并将其保存至文档void print(struct student *head){struct student * p;printf("\n这%d个学生的成绩为:\n",n);printf("学号姓名年龄专业数学英语 C语言平均成绩\n");p=head;if(head==NULL)printf("The info error\n");if(head!=NULL)while(p!=NULL){p->ave=ave(p);printf("%s%8s%8d%13s%9d%10d%9d%10.2f",p->num,p->name,p->age,p->profession,p->maths,p->engl ish,p->C_program,p->ave);printf("\n");p=p->next;}}//输出链表//struct student* read(){struct student *head = NULL;struct student *p2 = head;struct student record;FILE *infile;infile = fopen("stu.bin", "rb");n=1;if(infile == NULL){printf("\nFile error.");}else {head = (struct student *)malloc(sizeof(struct student));fread(head, sizeof(*head), 1, infile);p2 = head;while(fread(&record, sizeof(record), 1, infile))//fread返回数据个数,结束和出错返回0;{p2->next = (struct student *)malloc(sizeof(struct student));memcpy(p2->next, &record, sizeof(record)); //复制结构体数据p2 = p2->next;n=n+1;}p2->next=NULL;fclose(infile);}return head;}//从文件中读取数据struct student * search_num(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->num)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此学号不存在\n");return(head);}//按学号查询数据//]struct student * search_name(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->name)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->name)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此姓名不存在\n");return(head);}//按姓名查询数据//struct student * change(struct student * head,char array[20]){struct student *p1;p1=head;if(head==NULL){printf("打开错误!");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)) {p1=p1->next;} //找到相应的学号if(strcmp(array,p1->num)==0){printf("请输入更改的学号:\n");printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);save(head);}else printf("所查学号不存在\n");return(head);}//修改数据//struct student * del(struct student * head,char array[20]) {struct student * p1,* p2;if(head==NULL){printf("\nlist null!\n");return head;}p1=head;while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}//找到相应的学号、if((strcmp(array,p1->num)==0)){if(strcmp(array,head->num)==0)head=p1->next;elsep2->next=p1->next;}elseprintf("你查询的学号(%s)不存在!",p1->num);save(head);return(head);}void add(struct student * head){struct student *p1;printf("\n请输入添加学生的信息:\n");p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);FILE *outFile;outFile = fopen("stu.bin", "ab");if (outFile == NULL) {printf("\n打开错误.");}fwrite(p1, sizeof(struct student), 1, outFile);fclose(outFile);}void sta(struct student * head,char array[20],int max,int min) {struct student *p1=head;int k=0;if(strcmp(array,"maths")==0){while(p1!=NULL){if(p1->maths>=min&&p1->maths<=max)k++;p1=p1->next;}printf("数学科目在%d到%d之间的人数为:%d\n",min,max,k);}else if(strcmp(array,"english")==0){while(p1!=NULL){if(p1->english>=min&&p1->english<=max)k++;p1=p1->next;}printf("英语科目在%d到%d之间的人数为:%d\n",min,max,k); }else if(strcmp(array,"C_program")==0){while(p1!=NULL)if(p1->C_program>=min&&p1->C_program<=max)k++;p1=p1->next;}printf("C语言科目在%d到%d之间的人数为:%d\n",min,max,k); }}void exit(){printf("\t\t");printf("**********************\n");printf("\t\t");printf("*******感谢使用*******\n");printf("\t\t");printf("**********************\n");k=0;}void Chooseproject(int i){ struct student * head=NULL;if(i==1){head = read();print(head);else if(i==2){int p=1 ;printf("请选择按学号查询(1)还是按姓名查询(0):");scanf("%d",&p);while(p!=1&&p!=0){printf("输入错误!");printf("请选择学号查询(1)还是姓名查询(0)");scanf("%d",&p);}if(p==1){head = read();char num[20];printf("请输入查询的学号:\n");scanf("%s",num);head=search_num(head,num);while(strcmp(num,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n");scanf("%s",num);if(strcmp(num,"0")==0)break;head=search_num(head,num);}}else if(p==0){head = read();char name[20];printf("请输入查询的学号:\n");scanf("%s",name);head=search_name(head,name);while(strcmp(name,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n"); scanf("%s",name);if(strcmp(name,"0")==0)break;head=search_name(head,name);}}}else if(i==3){ head = read();char num[20];printf("请输入要更改的学号:\n");scanf("%s",num);getchar();head=change(head,num);print(head);while(strcmp(num,"0")!=0){printf("是否继续更改(是就输学号,否就输0):\n"); scanf("%s",num);getchar();if(strcmp(num,"0")==0)break;head=change(head,num);print(head);}}else if(i==4){head=read();add(head);}else if(i==5){char num[20];head=read();printf("请输入要删除的学号:\n");scanf("%s",num);getchar();head=del(head,num);print(head);}else if(i==6){head = read();int i;printf("\t\t");printf("************1.学号排序;********************\n");printf("\t\t");printf("************2.平均成绩排序;****************\n");printf("\t\t");printf("************3.数学成绩排序;****************\n"); printf("\t\t");printf("************4.英语成绩排序;****************\n"); printf("\t\t");printf("************5.C语言成绩排序;***************\n");printf("请输入相应的排序代号:");scanf("%d",&i);sort_down(head,i);}else if(i==7){head=read();int min,max;char subject[20];printf("\t\t");printf("************数学(maths);***************\n");printf("\t\t");printf("************英语(english);*************\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();while((strcmp(subject,"maths")!=0&&strcmp(subject,"english")!=0&&strcmp(subject,"C_pro gram")!=0)){printf("输入错误!");printf("\t\t");printf("************数学(maths);***********\n");printf("\t\t");printf("************英语(english);***********\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();}printf("请输入分数段的区间:");printf("区间上限:");scanf("%d",&max);printf("区间下限:");scanf("%d",&min);while(min>=max){printf("输入的下限大于等于上限,错误!");printf("请重新输入分数段的区间:");printf("区间上限:");scanf("%d",max);printf("区间下限:");scanf("%d",min);}sta(head,subject,max,min);}else if(i==8){printf("\t\t");printf("************************************\n");printf("\t\t");printf("**************感谢使用**************\n");printf("\t\t");printf("************************************\n");k=0;}}//选择功能void menu(){int i;printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息排序;***********\n");printf("\t\t");printf("***********7.信息统计;***********\n");printf("\t\t");printf("***********8,退出系统;***********\n");printf("请选择项目:");scanf("%d",&i);while(i<1||i>8){printf("输入错误,请重新输入:\n");printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息统计;***********\n");printf("\t\t");printf("***********7,退出系统;***********\n");printf("请重新选择项目:");scanf("%d",&i);}Chooseproject(i);}int _tmain(int argc, _TCHAR* argv[]){ struct student *head = NULL;printf("\t\t");printf("************************************************************\n");printf("\t\t");printf("*********************学生管理系***************************\n");printf("\t\t");printf("************************************************************\n" );printf("是否已经录入信息?\n");char c;printf("请输入 'y' 或 'n':");c=getchar();getchar();while(c!='n'&&c!='y'){printf("输入错误,请重新输入( 'y' 或 'n'):\n");c=getchar();getchar();}if(c=='n'){printf("请输入学生成绩:\n");head=creat();}while(k!=0){menu();}system("pause");return 0;}。

c语言大作业课程设计

c语言大作业课程设计

c语言大作业课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C语言进行程序设计和开发。

具体来说,知识目标包括:掌握C语言的基本语法、数据结构、运算符、控制语句、函数等基本概念;了解C语言的编程环境和开发工具。

技能目标包括:能够使用C语言编写简单的程序,解决实际问题;能够阅读和理解C语言的程序代码。

情感态度价值观目标包括:培养学生的编程兴趣,提高学生解决问题的能力,培养学生的团队合作意识和创新精神。

二、教学内容教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、控制语句、函数等,共4课时。

2.数据结构:包括数组、链表、栈、队列、树等,共6课时。

3.算法:包括排序算法、查找算法、递归算法等,共4课时。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识。

2.讨论法:通过分组讨论,让学生共同探讨问题,培养学生的团队合作意识和创新精神。

3.案例分析法:通过分析实际案例,使学生更好地理解C语言的应用和编程技巧。

4.实验法:通过编写和调试程序,使学生掌握C语言的编程方法和技巧。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。

2.参考书:《C语言编程思想》、《C语言实战》等。

3.多媒体资料:教学PPT、视频教程、在线编程练习等。

4.实验设备:计算机、编程软件(如Visual Studio、Code::Blocks等)、网络等。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

平时表现主要评估学生的出勤、课堂参与度、提问和回答问题的情况,占总评的20%。

作业包括课后练习和编程任务,每两次作业计10分,占总评的30%。

考试包括期中和期末考试,各占总评的30%。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学院
目录
1 摘要 (3)
1.1设计题目 (3)
1.2设计内容 (3)
1.3开发工具 (3)
1.4应用平台 (3)
2 详细设计 (3)
2.1程序结构 (3)
2.2主要功能 (3)
2.3函数实现 (4)
2.4开发日志 (4)
3 程序调试及运行 (5)
3.1程序运行结果 (5)
3.2程序使用说明 (6)
3.3程序开发总结 (6)
4 附件(源程序) (6)
1 摘要
1.1 设计题目
(1)数学型大作业4.歌星大奖赛。

(2)数学型大作业6. 高次方数的尾数.
1.2 设计内容
(1)在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分,选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。

(2)求13的13次方的最后三位数。

1.3 开发工具
开发工具为Microsoft Visual C++ 6.0.
1.4 应用平台
Windows XP32位。

2 详细设计
2.1 程序结构
(1)整体包括一个主函数和一个自定义函数,首先在主函数中输入10个分数,在输出函数中调用自定义函数,在调用过程中向自定义函数传递实参。

在自定义函数中实现了平均分的计算。

然后返回到主函数输出。

(2)程序整体上是用到一个主函数和一个自定义函数。

程序先运行主函数,然后在主函数中调用自定义函数Thr,Thr函数实现了求13的13次方的最后三位尾数。

调用Thr函数时将实参(13,13)传递到自定义函数的形参中,从而实现了对问题的求解。

2.2 主要功能
(!)该程序主要用于求解去除最高分和最低分的平均分。

该功能的实现是在自定义的函数中实现的,即用选择法先对10个分数进行排序,排序中用的是选择法,即从第i+1至第n个数中选出比第i个数小的,
然后和其交换,如都大于第i个数,则不进行交换。

从而实现从小到大的排序。

然后只计算第2至第n-1个数的平均值,计算结果即为最后得分。

(2)该程序的主要功能为实现高次方数的尾数的求解。

高次方数的结果一般较大,超过了计算机的内存,由乘法的运算性质知其最后的尾数只与每次最后三位的乘积有关,于是每次只运行最后三位的乘积即可,然后截取即可,这样就避免了内存不足这一缺陷,程序便可得到正确的结果。

2.3 函数实现
(1)输入和输出是直接调用标准库函数,平均分的计算是在自定义函数中实现的,在输出时调用自定义函数。

然后将返回值返回输出。

(2)该程序不用外部输入,输出是在主函数中实现的。

输出时调用了自定义函数Thr,通过调用该函数,实现了输出。

在自定义函数中,进行13的13次方运算,用一个for循环,循环13次后结束,每循环一次,就截取一次最后三位尾数,则最后即得正确结果。

2.4 开发日志
6月8日完成程序和报告的书面写作。

6月9日上机运行,发现“歌星大奖赛”无法得到小数部分值,经调试发现是自定义函数的基类型为整型,无法输出平均分的小数部分,于是将其修改为double型,经运行与结果完全相符。

并完成了报告的其它部分。

3 程序调试及运行3.1 程序运行结果
歌星大奖赛运行结果
(2)高次方数的尾数运行结果
3.2 程序使用说明
(1)在VC6.0下运行该程序,首先输入10个评委的分数,各个分数的输入中间间隔用空格键,输入完毕按回车键即可。

(2)只要打开程序在VC6.0下运行即可
3.3 程序开发总结
编写该大作业使我对规范化编写程序有了了解,也使我对程序的调试有所了解,知道了如何写程序报告。

这对我们的程序理解有很大的帮助,能使我们对自己编写的程序有更深的了解,使我们更了解自己的算法思想。

4 附件(源程序)
(1)cxsj_01 math_04 歌星大奖赛
#include<stdio.h>
void main()
{
double aver(int a[],int n);
int i, a[10];
printf("Please enter the scores.\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("The average score is %.2lf.\n",aver(a,10)); }
double aver(int a[],int n)
{
int i,j,k,m,t;
double ave,sum=0;
for(i=0;i<n-1;i++) /*选择法排序*/
{
k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(m=1;m<n-1;m++)
sum=sum+a[m];
ave=sum/(n-2);
return(ave);
}
(2)cxsj_02 math_06.cpp 高次方数的尾数
#include<stdio.h>
void main()
{
int Thr(int,int); /*函数声明*/
printf("13的13次方的最后三位尾数?\n");
printf("%d.\n",Thr(13,13)); /*函数调用*/
}
int Thr(int m,int n) /*定义Thr函数*/ {
int i,p=1;
for(i=0;i<n;i++)
{
p=p*m%1000;
}
return(p);
}。

相关文档
最新文档