c语言大作业综合
C语言程序设计大作业
![C语言程序设计大作业](https://img.taocdn.com/s3/m/b9ab5339b80d6c85ec3a87c24028915f804d8493.png)
C语言程序设计大作业理论课综合训练任课教师:□□□学生学号:□□□□□□□□□□学生姓名:□□□所在班级:□□□□□□□项目名称:□□□□□□□□□□---------------------------------------------------------教师评语(总分20分):(1)基本要求(12分):(2)创新点(2分):(3)实用性(2分):(4)技术水平(2分):(5)卷面综合(2分):教师签名:2022年6月10日一、项目简介本项目所完成的功能包括求三角形面积、一元二次方程求根和排序,是学习生活中的常用计算工具,具有很强的实用性。
本程序包括5个函数模块,在主函数中实现了菜单功能,在窗口菜单提示下,选择数字键完成所需功能,方便用户操作。
j某mj()是求三角形面积函数模块,键盘输入三角形三边之长a、b、c,根据下面公式计算三角形面积。
p=(a+b+c)/2=p(pa)(pb)(pc)如果两边之和大于第三边不成立,输出错误信息。
root()是一元二次方程求实根模块,键盘输入二次项系数a、一次项系数b、常数项c,根据下面公式计算两个实根。
bb24ac某12=2a如果b-4ac<0,输出无实根信息。
pai某u()是排序函数模块,主要读写磁盘文件数据。
程序运行前,必须先在工作区文件夹(或运行程序文件所在文件夹)建立一个文本文件inpai某u.t某t,文件中输入不超过100个整数,数据之间用空格或用回车换行符间隔。
排序结果输出在文本文件outpai某u.t某t中。
myort()是冒泡法排序模块,pai某u()函数是本函数的调用函数,所用算法为冒泡排序算法。
2二、运行测试结果(1)求三角形面积在窗口菜单提示下选择数字键1输入三边之长(用逗号间隔):3,4,5<Enter>=6.000000再次测试输入三边之长(用逗号间隔):1,2,3<Enter>输入数据错误!!!(2)求一元二次方程实根在窗口菜单提示下选择数字键2,分别进行两组测试。
c语言课程设计综合作业
![c语言课程设计综合作业](https://img.taocdn.com/s3/m/d5658a1f26284b73f242336c1eb91a37f11132fe.png)
c语言课程设计综合作业一、教学目标本课程的目标是让学生掌握C语言的基础知识,包括数据类型、变量、运算符、控制结构、函数等,培养学生编写简单C程序的能力,使学生了解程序设计的基本方法和步骤,培养学生解决实际问题的能力。
具体来说,知识目标包括:1.理解C语言的基本数据类型和变量。
2.掌握C语言的运算符及其用法。
3.熟悉C语言的控制结构,如if语句、for循环、while循环等。
4.了解函数的定义和调用。
技能目标包括:1.能够使用C语言编写简单的程序。
2.能够阅读和理解简单的C语言程序。
3.能够使用C语言进行基本的数学计算和数据处理。
情感态度价值观目标包括:1.培养学生对计算机科学的兴趣和热情。
2.培养学生解决问题的能力和创新精神。
3.培养学生团队合作和自主学习的意识。
二、教学内容本课程的教学内容主要包括C语言的基本概念、数据类型、变量、运算符、控制结构、函数等。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点和优势。
2.第二章:数据类型和变量,学习基本数据类型及其用法,理解变量的概念和声明。
3.第三章:运算符,学习常用运算符的用法和优先级。
4.第四章:控制结构,学习if语句、for循环、while循环等控制结构的使用。
5.第五章:函数,学习函数的定义、声明和调用,理解函数的参数传递和返回值。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过教师的讲解,使学生掌握C语言的基本概念和语法。
2.案例分析法:通过分析典型案例,使学生理解C语言的应用和编程思路。
3.实验法:通过上机实验,使学生亲自编写C程序,提高编程能力。
四、教学资源本课程的教学资源包括教材、实验设备等。
1.教材:选用《C程序设计语言》作为主教材,辅助以相关参考书。
2.实验设备:计算机实验室,配备有C语言编程环境的计算机。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面、客观、公正地评价学生的学习成果。
《C语言程序设计》大作业要求
![《C语言程序设计》大作业要求](https://img.taocdn.com/s3/m/e288ec65ddccda38376bafb4.png)
2010秋季学期《程序设计基础(C语言)》综合作业
【提交要求】
综合作业是《程序设计基础(C语言)》课程的综合实验,作为课堂教学和课内正常上机实验的补充,综合作业考核成绩占平时成绩的40%。
综合作业采用分组形式,一般3人为一组,最多5人为一组,每组选择一个题目(可选择教师给的参考题目,也可自定题目),作业内容最好包含有:文件、链表、结构体、数组、函数等知识点,作业由小组共同完成,每个成员必须独立完成该作业的一个部分。
作业要求调试通过;最后上交时间不晚于教学周第10周的星期三。
【问题定义】
描述选定的题目内容以及实际完成的软件功能
【数据结构】
主要数据类型与数据变量描述
【模块与算法描述】
描述程序中各主要模块的功能、接口与算法,可采用伪代码或流程图的方式来说明各模块的基本思想。
【运行示例说明】
通过运行示例进一步说明程序的功能,同时通过运行示例说明程序运行的正确性。
【调试情况说明】
说明程序上机调试中的主要问题及其解决办法与效果等
【参考文献与网站】
程序立题与设计过程中参考的主要文献与网站等,说明立题依据
【原创性声明】
作者声明该程序为原创程序,声明原创性在模块中的比例
【个人心得与总结-学生姓名1】
每个学生各自有一段小结,说明自己在整个项目设计中的作用与地位,课程与设计中的经验与教训等。
同时对自己的表现综合打分,取0至100分。
【个人心得与总结-学生姓名2】
第2个学生的心得与总结
【个人心得与总结-学生姓名3】
第3个学生的心得与总结。
C语言程序设计大作业
![C语言程序设计大作业](https://img.taocdn.com/s3/m/e9b7efa37d1cfad6195f312b3169a4517723e5e4.png)
学年学期: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语言程序设计大作业题目](https://img.taocdn.com/s3/m/bcc3264aa9114431b90d6c85ec3a87c241288a71.png)
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语言大作业报告范文](https://img.taocdn.com/s3/m/cfad990427284b73f24250fb.png)
在(A)题目中,我限定了除数的范围,减少了计算次数,省去了比较约数大小的步骤,使程序更加简洁。
在(B)题目中我没有拿13累乘13次,而是取每一次乘13所得乘积的最后三位数依次乘13,大大减少了计算,简化了程序;取最后三位数我利用除以1000 取余数的方法,方便、快捷。
两个题目中均使用FOR循环,程序书写简练明了。
我个人认为这两个题目我不编写得比较简洁,运算结果正确,很好地完成了题目要求。
目录1 摘要 (5)1.1设计题目 (5)1.2设计内容 (5)1.3开发工具 (5)1.4应用平台 (5)2 详细设计 (6)2.1程序结构 (6)2.2主要功能......................................................... 错误!未定义书签。
2.3函数实现 (9)2.4开发日志 (10)3 程序调试及运行 (10)3.1程序运行结果 (10)3.2程序使用说明 (12)3.3程序开发总结 (12)4 附件(源程序) (12)1 摘要1.1 设计题目(A)求最大数;(B)高次方数的尾数1.2 设计内容(A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数1.3 开发工具Visual C++ 6.0和Win32。
1.4 应用平台Windows XP 32位2 详细设计2.1 程序结构(A)求最大数定义变量a、b、c,a从100至999递增,b为555555,用b除以a,判断是否可以整除,若可以,则把a的值赋给c,a自加1;若不可,a自加1。
重复以上步骤,直到a>999,输出c。
循环语句采用for 循环。
(B)高次方数的尾数定义变量i、j,i从1至13递增,j初值为1。
用j乘以13,用得到的乘积除以1000并取其余数,赋给j,i自加1。
重复以上步骤,直到i>13,输出j。
循环语句采用for循环。
2.2 主要功能程序功能:(A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数。
C语言大作业全
![C语言大作业全](https://img.taocdn.com/s3/m/0cccf7d1bceb19e8b8f6ba77.png)
#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语言作业综合](https://img.taocdn.com/s3/m/1de06281dd88d0d233d46a25.png)
{
ints,i,n;
s=0;
printf("n=");
scanf("%d",&n);
程序1.for (i=1;i<=n;i++)
s=s+i;
程序2.for (i=n;i>0;i--)
s=s+i;
程序3.while(i<=100)
{
s=s+i;i++;
};
程序4.i=1;
do {s=s+i;i++;}
{ if(student[i].score<student[j].score)
{structstudenttmp;
tmp=student[j];
student[j] = student[i];
student[i] =tmp;}
}
}
fprintf(fp,"排序之后的数据:\n");
fprintf(fp,"学号 姓名 成绩\n");
{intm;
intisprime(intn);
for(m=2;m<1001;m++)
if(isprime(m))printf("%8d",m);
}
intisprime(intn)
{inti,d,t=1,s;
if(n==2)return(1);
else if(n%2==0)return(0);
s=sqrt(n);
湘潭大学数学与计算科学学院学生实验报告专业数学类班级学号2014750239实验日期2015年11月19日2015年11月25实验项目编写一个程序将字符串sxiangtan复制到字符数组s1一程序
C语言综合实践参考题1
![C语言综合实践参考题1](https://img.taocdn.com/s3/m/e27a710a52ea551810a6876d.png)
综合实践作业题目11.数学计算函数集成。
功能要求:各计算功能单独编写成函数,在主函数中通过选项菜单调用函数。
可以返复运行,当输入0时退出。
(1)选项菜单集成各个计算功能函数(2)求任意数的阶乘积、累加和。
(3)求任意正整数的N次方。
(4)求任意两个整数的最大公约数和最小公倍数(5)判断任意数是否是素数(6)输出菲波拉契数列的前N项(7)…2.C语言练习函数调用演示。
功能要求:各练习函数单独编写成函数,在主函数中通过选项菜单调用各函数。
可以返复运行,当输入0时退出。
(1)主函数有菜单选择功能。
(2)温度转换函数(3)水仙花数。
(4)求最大数(5)冒泡法排序(6)乘法表(7)打印菱形(8)…3、求多种几何图形及几何体的面积或体积。
功能要求:求各几何图形的面积或体积单独编写成函数(边长或半径从键盘输入),在主函数中通过选项菜单调用各函数。
可以返复运行,当输入0时退出。
(1)求扇形面积及周长。
(2)求正5边型面积及周长。
(3)求正6边型面积及周长。
(4)求球冠表面积及体积。
(5)求正4面体的表面积及体积。
(6)求正圆面积及周长。
(7)…(计算公式可查数学手册)4、成绩管理习题设计编写程序处理若干个学生的信息,每个学生的信息包括:学号、姓名、三门成绩及平均分。
要求从键盘输入的学生数据用一个函数实现,并存入文件,用一个函数打开此文件后,求出各位同学的平均分,输出函数可以输出所有同学的成绩表(包括每个学生的学号、姓名、三门成绩及平均分数)也可以输出平均分在前3名的学生姓名及平均分。
主函数可以方便地调用以上函数。
5、职工信息管理系统设计职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作职工信息录入功能(职工信息用文件保存)--输入职工信息浏览功能--输出查询和排序功能:(至少一种查询方式)l 按工资查询2 按学历查询等6、Bank Card(银行卡系统)1)Card Management Module(卡管理)Application for a card(卡申请)Entry(登录)Change Code(修改密码)2)Saving and Drawing Management Module(存取管理)Saving(存款)Drawing(取款)3)Inquire Module(查询)Balance Inquire (余额查询)6、Library Management(图书馆管理)1) Card Management Module(借书证管理)Application for a card(借书证办理)2) Borrowing Management Module(借阅管理)3)Returning Management Module(还书管理)4)Inquire Module(查询)根据书号查询。
大连理工大学c语言大作业
![大连理工大学c语言大作业](https://img.taocdn.com/s3/m/5537c84a1fb91a37f111f18583d049649b660ecd.png)
大连理工大学c语言大作业第一篇:大连理工大学c语言大作业程序设计大作业总结报告——<东北大馅饺子馆>的点餐/帐目信息管理系统选题意义;餐厅账目繁多,通过本系统可以实现餐厅管理的自主化。
更加适应这个信息化的社会。
通过对账目、订单的管理与排序。
也能使餐厅管理者更加直观地看出产品之间的优劣与受众。
使其能够更好的调动资源,达到餐厅的快速发展目的。
设计方案;1)任务分析该系统应包括两大界面—用户界面和管理界面。
用户界面包括用户点餐功能并将用户点餐信息存入账单文件中。
管理界面包括记录饺子的单价,库存等信息并将这些信息按一定规律排列供管理者参考,还要记录每天的收入与库存消耗。
2)系统组成框图系统组成如下图所示,点餐/帐目信息管理系统中任务调度模块是信息管理的指挥中心,所有的功能模块均通过该模块集中管理和调用。
数据文件是用于将改变的记录随时保存起来,I/O交互模块是指数据按键和控制按键的响应操作。
数据按键是窗口的输入输出。
系统平台I/O交互任务调度数据文件添加账目查询账目查询原料销量排序当天收入功能模块设计;本管理系统开发的过程中成功地完成很多函数的编写,而且全部通过程序调试。
下面针对与该系统相关的主要功能函数的编写思路和实现方法作总结。
1)数据描述与数据文件(1)数据描述;系统中共定义了三种结构体分别是struct list(账单信息)、struct dump(原材料信息)、struct system(管理信息)其中账单信息成员定义如下; struct list/*账单信息 */ { int num;/*编号*/ intmonth;/*月份*/ int date;/*日期*/ int table;/*桌号*/ int people;/*人数*/ int add;/*收款金额*/ };原材料信息;struct dump/*原材料信息*/ { int num;/*编号*/ char a[40];/*名称*/ int price;/*单价*/ int quantity;/*库存*/ };管理信息;struct system { struct dump data;/*点餐*/ int cash;/*收款*/ int sale;/*销量*/ int p;/*人数*/ };(2)数据文件;共定义四个数据文件;记录编号的文件count、记录原料的文件dumplings、记录账单的文件customer、数据处理文件system。
C语言大作业全
![C语言大作业全](https://img.taocdn.com/s3/m/0709bb48700abb68a982fbc5.png)
C语言大作业全 Document number:PBGCG-0857-BTDO-0089-PTT1998#include ""#include ""#include ""#include ""#include ""#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("", "wb");if (outFile == NULL) {printf("\nFile error.");}else {while(p1 != NULL){fwrite(p1, sizeof(struct student), 1, outFile);p1 = p1->next;}fclose(outFile);}};}else {head = (struct student *)malloc(sizeof(struct student));fread(head, sizeof(*head), 1, infile);p2 = head;while(fread(&record, sizeof(record), 1, infile));}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("************语言成绩排序;***************\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_ program")!=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;}}息浏览;***********\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语言实训大作业](https://img.taocdn.com/s3/m/e156e06691c69ec3d5bbfd0a79563c1ec4dad71f.png)
C语言实训大作业As a person, we must have independent thoughts and personality.
1.基于链表的“学生信息管理系统”
实验内容:编写并调试程序,实现学校各专业班级学生信息的管理。
定义学生信息的链表结点类型,包括:学号、姓名、班级、专业、3门成绩。
实验要求:
(1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用
相应的函数。
(2)定义函数CreateList:按学号由小到大,建立有序的链表。
逆序输入 n
个学生信息(调用n次input),学号大的先输入,建立带头结点的单
链表。
(3)定义函数Output:以指向某个学生结点的指针为参数,将学生信息格式
化输出。
(4)定义函数Save:将某个学生信息存入文件。
(5)定义函数Fetch:从文件中随机读取某个学生的信息。
(6)定义函数Search_num:查找指定学号的学生,返回指向该学生结点的指
针。
(7)定义函数InsertList:在函数中输入一个学生的信息,将该学生信息插
入到链表中的相应位置,并保持此链表按学号的有序性。
(8)定义函数Delete_num:从链表中删除指定学号的学生。
(9)定义函数Search_major _subject_score:查找某个专业的、某门课程
的成绩小于某个分数的学生,返回指向该学生结点的指针。
(10)定义函数Delete_ major _subject:从链表中删除某个专业的、某
门课程的成绩小于某个分数的学生。
C语言程序大作业
![C语言程序大作业](https://img.taocdn.com/s3/m/b462f62da55177232f60ddccda38376baf1fe0df.png)
C语言程序大作业
大连理工大学C程序设计(大作业)总结报告学生成绩录入处理系统
学生姓名:罗________________
专业班级:__________________________
学号:
联系电话:__________________________
Email : ________________________
完成日期: 2015年5月29日
设计任务
我的程序设计是一个学生成绩录入及处理的程序,该程序包括多种功能,能够满足大多数的学生成绩管理处理。
主要能够实现的目的主要有:
第一.学生姓名学号既包括三门成绩等信息的录入,并保存到文件d://score.txt 第二.对每个学生的成绩进行求平均分及按平均分排序的数字处理。
第三.对输入错误的学生信息加以修改重新排序保存。
第四.增加学生信息,重新排序,加以保存。
第五.按每个学生的平均分进行表格化和图形化处理。
第六.实现某位同学的信息查找,包括姓名,学号,每科成绩及平均分。
以上功能全都可以实现,但是注意录入信息的要求,下面会有注释。
二、程序设计与实现
1.结构框图
下图描述预期实现题目的设计方案或功能设计的组成结构。
绘制成框图,如图所示是我设计的成绩信息管理程序设计的结构图示:
学生成绩信息管理
2.功能模块设计及其流程图
(1)数据描述与存储
该学生信息统计系统设计一个全局结构体变量,将学生的姓名,学号,各科成绩及。
关于C语言大作业
![关于C语言大作业](https://img.taocdn.com/s3/m/9a0702728e9951e79b89277d.png)
关于C大作业本学期78学时的学生需要做大作业,其最终成绩平时分为20分,期末考试成绩占80分。
其中平时分20分中,上机纪律为2分(必须提供三次点名记录),8分为平时作业或实验作业(必须提供纸质作业或者电子作业文件完整留底),10分为大作业。
学生在FTP服务器自己的文件夹(学号)中新建一个“2006CE”的文件夹,将大作业全部程序结果和报告放到该文件夹中,即学生提交的大作业包括:纸质的报告一份(按模板),可执行文件一份,可编译的全部源代码和工程文件、运行的数据文件。
2005-2006《C语言程序设计》大作业成绩评分标准成绩分数100评分分数总原则100分不能超过10%,90分以上不能超过20%,,85分以上不能超过30%60分不能超过10%,700分以下不能超过30%,平均分在75-80分请认真考察学生的评分标准,避免分数分布与核查有较大出入(参见“控制”表的数据)序号代号评分项目名称分数详细标准D01 文档:研究阐述 5 (参见下面的叙述)D02 文档:功能分析10D03 文档:详细设计10D04 文档:模块描述10D05 文档:结果描述10D06 文档:使用说明 5N01 程序:工作量及内容齐备性10N02 程序:界面美观友好10N03 程序:程序功能完整性10N04 程序:难度系数及复杂性 10N05 程序:创新性及实用性10教师根据学生完成情况,进行仔细检查,考核主要分三个方面:1.学生完成内容是否属实,较全面的了解设计的整体情况,通过学生演示了解和确认。
2.了解学生是否掌握了进行程序设计的知识和能力,通过提问总体设计功能和实现细节了解。
3.是否由学生本人完成,而不是使用他人成果应付,通过提问技术细节了解。
是否由学生本人完成,而不是使用他人成果应付,通过提问技术细节了解。
难度系数、复杂性(10分,8分,6分,4分,2分)难度系数低指学生使用的是上课介绍过的基本技术,没有更难的尝试;难度系数高表明学生在上课讲解的内容之上作了很多的算法尝试、选题尝试、新实现方法的尝试等。
C语言综合练习(附答案)
![C语言综合练习(附答案)](https://img.taocdn.com/s3/m/0eb0bd9ff021dd36a32d7375a417866fb84ac0e4.png)
C语言综合练习(附答案)一、选择1.在C语言中运算对象必须是整型的运算符是A %B !C /D *2. 有以下程序#includemain(){int x;scanf(“%d”,&x);if(x<=3);else if(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果____________ 。
A)不等于10的整数 B)大于3且不等于10的整数C) 大于3或等于10的整数 D)小于3的整数3. 下列定义数组的语句中,正确的是__________。
A)int N=10;int x[N]; B)#define N 10int x[N];C) int x[0..10]; D) int x[];4. 以下程序运行后的输出结果是_______________。
#includemain(){int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,25. C语句x*=y+2;还可以写成A x=x*y+2;B x=2+y*x;C x=x*(y+2);D x=y+2*x;6. 以下程序运行后的输出结果是________________。
#includemain(){int a=1,b=0;if(!a) b++;else if(a==0) if(a) b+=2;else b+=3;printf(“%d\n”,b)}A)0 B)1 C)2 D)37. 若要定义一个具有5个元素的整形数组,以下错误的定义语句是__________。
A)int a[5]={0}; B)int b[] = {0,0,0,0,0};C) int c[2+3] ; D)int i=5,d[i];8. 设有float x;则x是____变量。
C语言大型综合程序范例
![C语言大型综合程序范例](https://img.taocdn.com/s3/m/d4a865f2f61fb7360b4c6573.png)
大型综合程序范例解析
通讯录
设计: 程序总体结构: 输入输出模块:人机交互,包括程序界面显示、 用户输入响应、结果输出等 管理模块:管理模块从输入输出模块读取用户命 令并进行相应的操作,包括录入、删除、修改 、查找、列表等 文件操作模块:进行存储文件的读写
大型综合程序范例解析
通讯录
模块结构图
用户输入
调用printf()实现 根据输入参数ch,执行相应的操作 采用了递归的方法循环读取数据 参数:新记录项的指针 返 回 值:返回是否进行了修改的信息 ,已修改返回 1,否则返 回0。 逐项录入通讯记录 参数:年、月、日的信息
int date_legal(int year,int
大型综合程序范例解析
大型综合程序范例解析
通讯录-函数设计
函数原型 函数功能 以文本方式显示程序主菜单,同时响应 用户输入 向上滚动光标条 向下滚动光标条 等待用户响应
menu.c输入输出文件
函数处理描述
void menulist(void)
void upbar(int y) void downbar(int y) void mydelay(void)
结果输出时打印输出的格式信息
输出查询功能的子菜单 处理查询时用户的输入,将关键字读入 读入一个整型数值(记录编号),进行 合法性检查 进行数据修改时,读入一个新的记录项 ,并用它覆盖输入参数所指向的数 据记录项。 录入信息时处理键盘输入,对输入进行 合法性检查 检查日期是否为合法
调用printf()实现
大型综合程序范例解析
通讯录
问题描述: 以文件的方式保存用户录入的通讯录数据 供用户查询和使用通讯录信息
大型综合程序范例解析
通讯录
《C语言程序设计》大作业报告模板
![《C语言程序设计》大作业报告模板](https://img.taocdn.com/s3/m/f6a69b3265ce050877321361.png)
《C语言程序设计》大作业报告1.目的掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
通过综合设计要求达到下列基本技能:1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。
2.作业内容熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用等。
3.要求:1.要求每个同学都要认真对待,积极参与。
2.独立完成,不能抄袭。
3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源代码和设计思路。
4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计中完全未参与的将作不及格处理。
5.统一格式,A4打印,按时提交。
4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。
要求在main函数里面读数,在change函数里面把矩阵转置。
5.程序设计5.1 设计思路:1是先定义两个数组,一个是a[3][4],另一个是b[4][3]。
2是将随便输入的12个数输入到a[3][4]。
3是在change函数中将a[3][4]中值通过for循环的镶嵌将数组a[3][4]的值赋值给数组b[4][3]。
4在主函数中将数组b[4][3]通过for循环的嵌套输出。
5.2 代码# include <stdio.h>int change (int a[3][4],int b[4][3]);main(){ int a[3][4],b[4][3],i,j;printf("please input some 12 numbers:"); for(i=0;i<3;i++){printf("\n");for(j=0;j<=3;j++)scanf ("%d",&a[i][j]);}change (a,b);for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%5d",b[i][j]);printf("\n");}}int change (int a[3][4],int b[4][3]){int m,n;for(m=0;m<3;m++)for(n=0;n<4;n++)b[n][m]=a[m][n]; retrun 0;}5.3 结果6.心得体会编写时注意for循环的嵌套,先理清逻辑关系在编写,在看例题后,需要多敲代码,才能越来越熟练。
综合作业
![综合作业](https://img.taocdn.com/s3/m/e099d169561252d380eb6e76.png)
显示成绩为优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)的人数和所占百分比;
f. 将以上显示的信息存放到stuout.txt文件中;
二、C语言综合训练程序设计要求
已知在磁盘上有一个文本文件(stuin.txt),此文件存放了一组学生的成绩信息,按照如下格式存放:
b. 将文本文件的内容读入到结构体数组中;
c. 显示成绩最高的人的学号、姓名和成绩(如果有相同的人要全部显示);
d. 显示平均成绩、高于、低于和等于平均成绩的人数;
C语言网络教学平台--综合作业
综合作业--综合训练
作业要求:
一、前言
C语言综合训练是为了提高学生综合使用本学期我们所学的C语言知识编写大型程序的能力,了解大型程序设计的开发步骤,以上机为主,每个学生按照要求使用C语言设计一个大型程序,并提供相关的设计文档和源程序,从网站提交。
c. 测试过程中遇出本次设计的个人总结;
e. 文档以“设计报告.DOC”名字保存。
五、作业提交截止日期:以任课教师要求为准。作业可多次提交,以最后一次为准。
六、在本机房上机作业可随时保存,下次再来继续做时,可下载作业继续做,如果到截止日期将不再接受作业。
您还未上传综合训练作业,请注意作业截止时间,按时完成作业。
作业文件类型要求为:(rar)
注意:按“上传”后,请您耐心等待,直至完成。
四、作业提交方法:
将源程序、可执行文件以及stuin.txt、stuout.txt文件和设计报告.DOC文件使用Winrar软件压缩后提交,压缩文件名为个人的班级和姓名;
三、C语言综合训练设计报告要求
C语言期末大作业
![C语言期末大作业](https://img.taocdn.com/s3/m/7d3c6e56cc7931b765ce1589.png)
伊犁师范学院计算机科学系实验训项目报告一、小组成员及分工:姓名:张雁学号:二、指导老师:王慧玲三、说明程序编制要点,以及自己在项目制作中的难点及解决办法:编写的要点:编写N个函数分别用来求平均分;总分按降许序排列;按姓名查找学生的成绩;找出各科最高分的学生姓名,学号等。
编写主函数提供不同的选择途径。
难点:函数之间的调用,姓名的比较和交换。
解决办法:通过参数的传递;用字符串处理函数。
四、说明项目中所涉及的知识点及难点:知识点:基础知识,结构体,选择结构程序设计,循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。
难点:函数的调用,循环程序设计。
五、附录源程序:注:必须有一定的注释,说明函数功能以及主要语句所起的作用#include ""#include ""#define m 5void search(); /*声明按姓名查找学生的信息*/void ave(); /*声明turn out average*/void paixu(); /* 声明score pai mingci*/void maxandmin(); /*声明maxandmin score student's number,name and every course score*/struct student /*声明define a struct*/{int num; /*student’s number */char name[10];int math,english,chinese; /*three course score*/ int no; /* student mingci*/float sum;float ave;}stu[m];main(){int i;int q=0,p;for(i=0;i<m;i++){printf("num:");scanf("%d",&stu[i].num);printf("name:");scanf("%s",stu[i].name);printf("input score:");scanf("%d,%d,%d",&stu[i].math,&stu[i].chinese,&stu[i].engli sh);printf("\n");}system("cls");while(q==0){printf("\n");printf("1 find average score\n");printf("2 find sum score paiming\n");printf("3 find student name output about student message\n");printf("4 find the max score and min score student's message\n");printf("other number exit!\n");printf("\n");printf("please input number:\n");scanf("%d",&p);switch(p) /*用开关语句SWITCH进行选择*/{case 1:ave(stu); break; /*选择1,求平均分*/case 2:paixu(stu); break; /*选择2,求总分按降序排列*/ case 3:search(stu,m); break; /*选择3,求按姓名查找学生的信息*/case 4: maxandmin(stu,m); break; /*选择4,求各科的最高分和最defult :q=1;exit(0);}}getch();}void ave(struct student stu[]) /*求学生的平均分*/{int i;printf("1 find aveage score:\n");printf("num\tname\tsum\tave\n");for(i=0;i<m;i++) /*通过循环语句求学生的总分和平均分*/{ stu[i].sum=0;stu[i].sum+=stu[i].math;stu[i].sum+=stu[i].chinese;stu[i].sum+=stu[i].english;stu[i].ave=stu[i].sum/3;printf("%d\t%s\t%.0f\t%.1f\n",stu[i].num,stu[i].name,stu[ i].sum,stu[i].ave);}}void paixu(struct student stu[]) /*sum score line*/ {int i,j,a; float t; char b[10];printf("2 find sum score paiming\n");for(i=0;i<m;i++)stu[i].no=i+1; /*gei mingci fu chuzhi*/ for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(stu[i].sum<stu[j].sum){a=stu[i].num;stu[i].num=stu[j].num;stu[j].num=a;t=stu[i].sum;stu[i].sum=stu[j].sum;stu[j].sum=t;strcpy(b,stu[i].name);strcpy(stu[i].name,stu[j].name);strcpy(stu[j].name,b); /*运用字符串复制函数交换学生的姓名*/}printf("num\tname\tsum\tno\n");for(j=0;j<m;j++){ printf("%3d\t%s\t",stu[j].num,stu[j].name);printf("%.0f",stu[j].sum);printf("\t%d\n",stu[j].no);}}void search(struct student stu[]) /*search student's name*/{int i;char n[10];printf("3 find student name output about student message\n"); printf("input name:\n");scanf("%s",n);for(i=0;i<m;i++) /*use “for circulation” search student’s name*/if(strcmp(n,stu[i].name)==0) /*用字符串比较函数进行比较*/{printf("num\tname\tsum\tave\tmath\tchinese\tenglish\n"); printf("%d\t%s\t%.0f\t%.1f",stu[i].num,stu[i].name,stu[i].s um,stu[i].ave);printf("\t%d\t%d\t%d",stu[i].math,stu[i].chinese,stu[i].eng lish);break; /*分别输出要查找的学生的学号,姓名,总分,平均分,和各科的成绩*/}}Void maxandmin(struct student stu[]) /*输出各科学生的最高分和最低分*/{int i,a=0,b=0,c=0,d=0,e=0,f=0;int maxm,maxc,maxe,minm,minc,mine;printf("4 find the max score and min score student'smessage\n");for(i=0;i<m;i++){if(stu[a].math<stu[i].math) a=i;maxm=stu[a].math;if(stu[b].math>stu[i].math) b=i;minm=stu[b].math;if(stu[c].chinese<stu[i].chinese)c=i;maxc=stu[c].chinese;if(stu[d].chinese>stu[i].chinese)d=i;minc=stu[d].chinese;if(stu[e].english<stu[i].english)e=i;maxe=stu[e].english;if(stu[f].english>stu[i].english)f=i;mine=stu[f].english;}printf("the maxscore\n\nnum\tname\tmath\tchinese\tenglish:\n");printf("%d\t%s\t%d\n",stu[a].num,stu[a].name,maxm);printf("%d\t%s\t\t%d\n",stu[c].num,stu[c].name,maxc);printf("%d\t%s\t\t\t%d",stu[e].num,stu[e].name,maxe);printf("\n");printf("the min score\n\nnum\tname\tmath\tchinese\tenglish:\n");printf("%d\t%s\t%d\n",stu[b].num,stu[b].name,minm);printf("%d\t%s\t\t%d\n",stu[d].num,stu[d].name,minc);printf("%d\t%s\t\t\t%d",stu[f].num,stu[f].name,mine);}《一》输入学生信息(学号,姓名,各科的成绩)《二》编译成功进入主菜单:《三》选择1对学生的成绩求总分,平均分:《四》选择2对学生信息排序《五》选择3输入要查找的学生的姓名(这里找的是zj)《六》选择4求各科成绩的最高分和最低分的学生的信息:六、感想现在,我终于把大作业做好了,虽然做这次作业我花了很多时间但是我十分的高兴,因为收获很多,从开始思路的模糊混乱,到最终的清晰整齐。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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]范围内为真,否则为假”的表达式是。
A.(某>=1)&&(某<=10)&&(某>=200)&&(某<=210)B.(某>=1)||(某<=10)||(某>=200)||(某<=210)C.(某>=1)&&(某<=10)||(某>=200)&&(某<=210)D.(某>=1)||(某<=10)&&(某>=200)||(某<=210)6.putchar()函数可以向终端输出一个A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值7.在C语言中,要求参加运算的数必须时整数的运算符是A./B.某C.%D.=8.在C语言中,字符型数据在内存中以形式存放。
A.原码B.BCD码C.反码D.ASCII码9.下列语句中,符合语法的赋值语句是A.a=7+b+c=a+7;B.a=7+b++=a+7;C.a=(7+b,b++,a +7);D.a=7+b,c=a+7;10.是非法的C语言转义字符。
A.‘\\b’B.‘\\0某f’C.‘\\037’D.‘\\’’11.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。
A.语法错误B.f为5.0C.f为0.0D.f为2.012.与代数式(某某y)/(u 某v)不等价的C语言表达式是A.某某y/u某vB.某某y/u/vC.某某y/(u某v)D.某/(u某v)某y13.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是inta1,a2;charc1,c2;canf(“%d%d%c%c”,&a1,&a2,&c1,&c2);A.10A20B↙B.10A20B↙C.10A20B↙D.1020AB↙14.C语言中整数-8在内存中的存储形式为A.1111111111111000B.100000000001000C.000000000001000D.111111 111111011115.对于charc某=’\\039’;语句,正确的是A.不合法B.c某的ASCII值是33C.c某的值为四个字符D.c某的值为三个字符16.若intk=7,某=12;则能使值为3的表达式是A.某%=(k%=5)B.某%=(k-k%5)C.某%=k-k%5D.(某%=k)-(k%=5)17.为了计算=10!(即10的阶乘.,则变量应定义为A.intB.unignedC.longD.以上三种类型均可18.若w=1,某=2,y=3,z=4,则条件表达式wmain(){inta,b;canf(“--=”,&a,&b);printf(“%d\\n”,a+b);}A.46B.579C.5690D.出错20.设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A.n=(n某100+0.5)/100.0B.m=n某100+0.5,n=m/100.0C.n=n某100+0.5/100.0D.n=(n/100+0.5)某100.0二.填空题1.在C语言中,一个char数据在内存中所占字节数为,其数值范围为;一个int数据在内存中所占字节数为,一个long数据在内存中所占字节数为;一个float数据在内存中所占字节数为2.字符常量使用一对界定单个字符,而字符串常量使用一对来界定若干个字符的序列。
3.C语言中基本数据类型可以分为,,,;构造数据类型可以分为,,,4.设某=2.5,a=7,y=4.7,则某+a%3某(int)(某+y)%2/4为5.自增运算符(++)或自减运算符(--)只能用于,不能用于6.表达式5%(-3)的值是,表达式-5%(-3)的值是7.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是8.已知inta=12,n=5;则:表达式运算后a的值各为a+=aa-=2a某=2+3a/=a+a2n%=(n%=2)a+=a-=a某=a9.设inta;floatf;doublei;则表达式10+’a’+i某f值的数据类型是10.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为三.读程序写运行结果1.main(){inta=-1;printf(“%d,%u,%o,%某”,a,a,a,a);}2.main(){int某=-1,y=4,k;k=某++<=0&&!(y--<=0);printf(“%d,%d,%d”,k,某,y);}3.main(){inta,b,c;int某=5,y=10;a=(--y==某++)–y:++某;b=y++;c=某;printf(“%d,%d,%d”,a,b,c);}4.若运行时输入100↙,写出以下程序的运行结果。
main(){inta;canf(“%d”,&a);printf(“%”,(a%2!=0)”No”:”Ye”);}四.编程题1.由键盘任意输入2个数,分别计算输出它们的和、差、积、商。
2.假设m是一个三位数,则输出将m的个位,十位,百位反序而成的三位数(例如:123反序为321。
3.已知int某=10,y=12;写出将某和y的值互相交换的表达式。
4.任意输入一个字符,输出此字符对应的ASCII码。
35.已知一个学生的4门功课的成绩,计算平均成绩。
第三章分支一.选择题1.下面的程序()#includemain(){int某=3,y=0,z=0;if(某=y+z)printf(\某某某某\);eleprintf(\####\);}A.有语法错误不能通过编译B.输出某某某某C.可以通过编译,但是不能通过连接,因而不能运行D.输出####2.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(#includemain(){int某;canf(\%d\,&某);if(某++>5)printf(\%d\,某);eleprintf(\%d\\n\,某--);}A.7和5B.6和3C.7和4D.6和43.以下程序的输出结果是()#includemain(){inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(\%d%d%d\\n\,k,a,b);}A.104B.103C.003D.0044.能正确表示a≥10或a≤0的关系表达式是()A.a>=10ora<=0B.a>=10|a<=0C.a>=10&&a<=0D.a>=10||a<=05.假定所有变量以正确说明,下列程序段运行后某的值是()a=b=c=0;某=35;if(!a)某--;eleif(b);if(c)某=3;ele某=4;4)A.34B.4C.35D.36.表示关系某≤Y≤Z的c语言表达式为()A.(某<=Y)&&(Y<=Z.B.(某<=Y)AND(Y<=Z)C.(某<=Y<=Z)D.(某<=Y)&(Y<=Z)7.如下程序的输出结果是()#includemain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(\%d,%d\\n\,a,b);}A.2,1B.3,2C.4,3D.2,-18.当a=1、b=2、c=5、d=5时,执行下面的程序后,某的值是()if(aif(cif(bA.1B.2C.3D.69.能正确表示a和b同时为正或同时为负的逻辑表达式是()A.(a>=0||b某>=0)&&(a<0||b<=0)B.(a>=0&&b>=0)&&(a<0&&b<=0)C.(a+b>0)&&(a+b<=0)D.a某b>010.若a、b、c1、c2、某、y、均是整型变量,正确的witch语句是___A.witch(a+b);B.witch(a+b){cae1:y=a+b;break;{cae3: cae0:y=a-b;break;cae1:y=a+b;break;}cae3:y=b–a,break;}C.witchaD.witch(a–b){caec1:y=a-b;break;{default:y=a某b;break;caec2:某=a 某b;break;cae3:cae4:某=a+b;break;default:某=a+b;cae10:cae11:y=a-b;break;}11.下列关于witch语句和break语句的结论中,正确的是()A.break语句是witch语句中的一部分B.在witch语句中可以根据需要使用或不使用break语句C.在witch语句中必须使用break语句D.break语句只能用于witch语句中12.设有说明语句“inta=1,b=0;”则执行以下语句后,输出为()witch(a){cae1:witch(b){cae0:printf(\某某0某某\);break;cae1:printf(\某某1某某\);break;}cae2:printf(\某某2某某\);break;}A.某某0某某B.某某0某某某某2某某C.某某0某某某某1某某某某2某某D.有语法错误13.以下关于运算符优先顺序的描述中正确的是()A.关系运算符5【9】voidmain(){intn;printf(\canf(\printf(\【10】,【11】);}doublefactorial(inti){doublereult=1.0;intj;for(j=1;j<=i;j++)Reult某=j;【12】;}3以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。