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语言程序设计大作业

学年学期: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语言程序设计大作业题目

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语言大作业

学院目录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)该程序的主要功能为实现高次方数的尾数的求解。
高次方数的结果一般较大,超过了计算机的内存,由乘法的运算性质知其最后的尾数只与每次最后三位的乘积有关,于是每次只运行最后三位的乘积即可,然后截取即可,这样就避免了内存不足这一缺陷,程序便可得到正确的结果。
C语言大作业

学院目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (3)2 详细设计 (3)2.1程序结构 (3)2.2主要功能 (10)2.3函数实现 (10)2.4开发日志 (17)3 程序调试及运行 (18)3.1程序运行结果 (18)3.2程序使用说明 (19)3.3程序开发总结 (20)4 附件(源程序) (20)1 摘要1.1 设计题目A题算法型:折半查找算法演示程序B题空间桁架结构节点位移求解1.2 设计内容A题:本程序是一个演示折半查找算法的演示程序。
当用户输入查找数据表列和要查找的数据时,程序会演示折半法查找该数的详细过程,并且支持多次查找、错误提示等功能。
B题:空间桁架结构节点位移求解1.3 开发工具Code Blocks 12.11(内置MinGW)1.4 应用平台Windows 7 64位2 详细设计2.1 程序结构A题:程序功能模块:本程序主要包含六大模块:程序说明模块、输入模块、排序模块、折半法查找模块、选择模块和程序退出模块。
工程文件结构:本程序的工程含有6个文件,其中main.cpp、print_stars.cpp、judge.cpp、sort.cpp、putout.cpp5个cpp 文件和include.h1个头文件(参见下图),两者共同存在于工程“折半法查找演示程序”中。
其中main.cpp 文件包含了程序的主体部分,程序说明模块、输入、排序、折半查找、选择、程序退出模块按线性排列。
其中输入、排序模块执行一次,这般查找、选择模块可多次执行,直到程序退出模块执行。
六大模块说明:(1) 程序说明模块:给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。
此部分模块主函数源代码如下:int a[N];/*存储要查找的数表,用户输入*/int i,n,num,count;/*count为折半次数计数器,n为数表数据个数,num存储所查数据*/int top,bottom,mid;char c;/*存储选择函数中的输入的字符y或n*/int flag=1;/*折半法循环标志变量*/int loc=-1;/*存储所查找数据位置*/double k=0;p_s(76);puts("\n");/*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文)printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n");puts("\n");/*程序欢迎语*/p_s(13);printf("制作者:Haidong Chen***");/*作者信息*/p_s(4);printf("**Email:1562353594@");/*电子邮件*/p_s(11);puts("\n");p_s(76);puts("\n");/*再次引用p_s函数,程序说明部分结束*/附:print_star.cpp文件源代码#include<stdio.h>void p_s(int k){int i;for(i=1;i<=k;i++)/*连续输出ka个'*'*/printf("*");}(2) 输入模块:引导使用者输入要在其中查找数据的数表的数据个数和数表数据。
c语言大作业

2、教学事务管理系统
该系统在磁盘上存储如下信息: 1。注册信息,每个学期的注册信息应包括每个已注册学生的班级代号、学号、姓 名、注册的学期。 2。选课信息。包括已注册的每个学生每个学期所选课程。本程序仅限一年级2个学 期。 3。成绩。 每个学生所选的课程的考核成绩,包括补考成绩。 该系统的功能: 1。能输入注册信息,选课信息和(含学号,姓名,成绩) 2)某门课程全年级前5名的学号,姓名,成绩 3)某门课程的选修者名单; 4)某个学生本学期的成绩单 5)某门课程每个班的总平均粉(从高到低排列) 6)某门课程某班的成绩单(按学号排列)
3、篮球赛个人技术统计系统
设某篮球联赛要统计20名著名球员个人技术数据。要求用高级语言实现篮 球联赛个人技术数据处理系统。该系统在磁盘上存储如下信息: 1。每场球赛的个人技术数据。一场球一个人的技术数据包括:姓名,所属 球队,三分球个数,篮板球个数,扣篮成功次数,抢断次数,得分,比 赛日期。 2。个人技术数据汇总表。表中反映了每个人的技术数据的累计结果。表羡 为:姓名,三分球总数,篮板球总数,扣篮成功总次数,抢断总次数, 得分总数,比赛场数。 本系统功能如下: 1。创建存储每常球赛个人技术数据的存储系统(第一次输入个人技术数据 时),然后自动创建存储个人技术数据汇总表的存储系统。 2。每场比赛后,添加个人技术数据,然后自动修改个人技术数据汇总表 3。能输出当前的个人技术数据汇总表 4。能输出指定技术项目平均每场数据较高的前三名运动员的姓名,所在队 名和平均每场的单项数据。
短学期上机时间安排如下:
第一周:周五晚; 第二周:周一、五晚; 第三周:周一、四晚; 第四周:周一、四、五晚。
1、工资管理系统
该系统在磁盘上储存了某单位上月全体员工的工资信息,对于每一位职工存储以 下信息: 月份,职工编号,基本工资,津贴,岗贴,补贴,房贴,交通补贴,应发数,房 租,储蓄,会费,个人所得税,应扣数,实发数。 个人所得税计算方法设定为:工资少于800元为0,800-1000元的部分为5%, 1000-5000元的部分为10%,5000元以上的部分为20%。 该系统功能如下: 1)创建存储职工工资信息的存储系统。 2)添加职工的工资信息(增加新职工时用) 3)删除某职工的工资信息(职工离职或者死亡时用) 4)修改某职工的部分工资信息(当月开始增加或减少某些项工资或扣款数变化) 5)输出指定编号职工的工资信息(查询用) 6)输出当月全体职工的工资信息(发工资用)
C语言作业及参考答案

C语言及实验作业参考做法分支程序设计1.输入4个整数,按从小到大的顺序输出2.根据月份判断季节。
输入月份,输出春/夏/秋/冬。
要求用switch语言实现3.学生学习两门课:必修课成绩为course1,选修课成绩为course2,若两门都及格,打印pass,必修课不及格,打印fail4.从键盘输入一个年份,判该年是否是闰年,是闰年就输出yes,否则输出no 5.从键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
6.商店卖西瓜,10斤以上每斤0.8元, 8斤以上每斤0.6元, 6斤以上每斤0.4元,4斤以上每斤0.3元, 4斤以下每斤0.15元,输入西瓜重量和所付的钱数,输出应付的货款和应找的钱数循环程序设计1.从键盘上输入10个整数,计算这些整数的和2.水仙花数。
一个3位数,若其各位数字之和等于它本身,这个数就称为水仙花数.输出所有的水仙花数。
(如153)#include<stdio.h>int main()//方法一{ int num,bai,shi,ge;for(num=100; num<1000; num++){bai=num/100;shi=num/10%10;ge=num%10;if(num==bai*bai*bai+shi*shi*shi+ge*ge*ge)printf("%d\n",num);}return 0;}//方法二int main(){int i,j,k;for(i=1; i<10; i++)for(j=0; j<10; j++)for(k=0; k<10; k++)if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("%d\n",100*i+j*10+k);return 0;}3.计算分数序列2/1,3/2,5/3,8/5,13/8,21/13,.....前20项之和。
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;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验综合练习一打印万年历(1)已知公元1年1月1日是星期一,计算输入的年月日是星期几?编程如下:#include <stdio.h>void main(){int i,year,month,day,day_of_year,day_of_month;long sumday=0;printf("请先输入年、月、日,中间以空格或换行符间隔:\n");scanf("%ld%ld%ld",&year,&month,&day);for(i=1;i<=year-1;i++){if(i%400==0||i%100!=0&&i%4==0)day_of_year=366;elseday_of_year=365;sumday=sumday+day_of_year;}for(i=1;i<=month-1;i++){if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)day_of_month=31;else if(i==4||i==6||i==9||i==11)day_of_month=30;else if(i==2){if(year%400==0||year%100!=0&&year%4==0)day_of_month=29;elseday_of_month=28;}sumday=sumday+day_of_month;}sumday=sumday+day;i=sumday%7;if(i==0)i=7;printf("%ld年%ld月%ld日是星期%d\n",year,month,day,i);}为了使输出的星期为大写且将星期7变成星期天,可作如下改动:#include <stdio.h>void main(){int i,year,month,day,day_of_year,day_of_month;long sumday=0;printf("请先输入年、月、日,中间以空格或换行符间隔:\n");scanf("%ld%ld%ld",&year,&month,&day);for(i=1;i<=year-1;i++){if(i%400==0||i%100!=0&&i%4==0)day_of_year=366;elseday_of_year=365;sumday=sumday+day_of_year;}for(i=1;i<=month-1;i++){if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)day_of_month=31;else if(i==4||i==6||i==9||i==11)day_of_month=30;else if(i==2){if(year%400==0||year%100!=0&&year%4==0)day_of_month=29;elseday_of_month=28;}sumday=sumday+day_of_month;}sumday=sumday+day;i=sumday%7;switch(i){case 0: printf("%ld年%ld月%ld日是星期日",year,month,day); break;case 1: printf("%ld年%ld月%ld日是星期一",year,month,day); break;case 2: printf("%ld年%ld月%ld日是星期二",year,month,day); break;case 3: printf("%ld年%ld月%ld日是星期三",year,month,day); break;case 4: printf("%ld年%ld月%ld日是星期四",year,month,day); break;case 5: printf("%ld年%ld月%ld日是星期五",year,month,day); break;case 6: printf("%ld年%ld月%ld日是星期六",year,month,day); break;}printf("\n");}当然也可以这样编程:#include <stdio.h>int leap_year(int year){if(year%400==0 || year%100!=0 && year%4==0)return 1;elsereturn 0;}void main(){long year, month, day;char *a[7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};printf("请先输入年、月份、日,中间以空格或换行符间隔:\n");scanf("%ld%ld%ld",&year,&month,&day);int i, xq=0,sumday=0;for(i=1;i<=year-1;i++){sumday=sumday+365+leap_year(i);}for(i=1;i<=month-1;i++){if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)sumday=sumday+31;else if(i==4||i==6||i==9||i==11)sumday=sumday+30;else if(i==2)sumday=sumday+28+leap_year(year);}sumday=sumday+day;i=sumday%7;printf("%ld年%ld月%ld日是%s\n",year,month,day,a[i]);}(2)输入年份,在屏幕上输出该年的年历(已知1900年第一天也是星期一)。
#include<stdio.h>void main(){int year,i,j,k,sumday,yuandan,weekday,day,day_of_year,day_of_month;printf("Please input the year:\n");scanf("%d",&year);printf("\n");for(i=1,sumday=0;i<=year-1990;i++){if(i%400==0||i%100!=0&&i%4==0)day_of_year=366;elseday_of_year=365;sumday=sumday+day_of_year;}yuandan=(sumday+1)%7;weekday=yuandan;printf(" 公元%d年\n",year);for(i=1;i<=12;i++){printf(" %d月\n",i);printf(" Sun Mon Tue Wed Thu Fri Sat\n");for(j=0;j<weekday;j++)printf(" ");if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)day_of_month=31;else if(i==4||i==6||i==9||i==11)day_of_month=30;else if(i==2){if(year%400==0 || year%100!=0 && year%4==0)day_of_month=29;elseday_of_month=28;}day=day_of_month;for(k=1;k<=day;k++){printf("%4d",k);weekday=(weekday+1)%7;if(weekday==0)printf("\n");}printf("\n\n");}}#include<stdio.h>void main(){int year,i,j,k,sumday,yuandan,weekday,day,day_of_year,day_of_month;printf("Please input the year:\n");scanf("%d",&year);printf("\n");for(i=1,sumday=0;i<=year-1;i++){if(i%400==0||i%100!=0&&i%4==0)day_of_year=366;elseday_of_year=365;sumday=sumday+day_of_year;}yuandan=(sumday+1)%7;weekday=yuandan;printf(" 公元%d年\n",year);for(i=1;i<=12;i++){switch(i){case 1:printf(" January\n"); break;case 2:printf(" February\n"); break;case 3:printf(" March\n"); break;case 4:printf(" April\n"); break;case 5:printf(" May\n"); break;case 6:printf(" June\n"); break;case 7:printf(" July\n"); break;case 8:printf(" August\n"); break;case 9:printf(" September\n"); break;case 10:printf(" October\n"); break;case 11:printf(" November\n"); break;case 12:printf(" December\n");break;}printf(" Sun Mon Tue Wed Thu Fri Sat\n");for(j=0;j<weekday;j++)printf(" ");if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) day_of_month=31;else if(i==4||i==6||i==9||i==11)day_of_month=30;else if(i==2){if(year%400==0 || year%100!=0 && year%4==0) day_of_month=29;elseday_of_month=28;}day=day_of_month;for(k=1;k<=day;k++){printf("%4d",k);weekday=(weekday+1)%7;if(weekday==0)printf("\n");}printf("\n");}}或者:#include<stdio.h>void main(){int year,i,j,k,sumday,yuandan,weekday,day,day_of_year,day_of_month;cha*a[13]={"","January","February","March","April","May","June","July","Au gust","September","October","November","December"};printf("Please input the year:\n");scanf("%d",&year);printf("\n");for(i=1,sumday=0;i<=year-1990;i++){if(i%400==0||i%100!=0&&i%4==0)day_of_year=366;elseday_of_year=365;sumday=sumday+day_of_year;}yuandan=(sumday+1)%7;weekday=yuandan;printf(" 公元%d年\n",year);for(i=1;i<=12;i++){printf(" %s\n”,a[i]);printf(" Sun Mon Tue Wed Thu Fri Sat\n");for(j=0;j<weekday;j++)printf(" ");if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)day_of_month=31;else if(i==4||i==6||i==9||i==11)day_of_month=30;else if(i==2){if(year%400==0 || year%100!=0 && year%4==0)day_of_month=29;elseday_of_month=28;}day=day_of_month;for(k=1;k<=day;k++){printf("%4d",k);weekday=(weekday+1)%7;if(weekday==0)printf("\n");}printf("\n\n");}}当然也可以定义函数和调用定义的函数:#include<stdio.h>int leap_year(int year){if(year%400==0 || year%100!=0 && year%4==0)return 1;elsereturn 0;}int day_of_month(int i,int year){if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)return 31;else if(i==4||i==6||i==9||i==11)return 30;else if(i==2)return 28+leap_year(year);}void main(){int year,i,j,k,sumday,firstday,weekday,day;char*a[13]={"","January","February","March","April","May","June","July","A ugust","September","October","November","December"};printf("Please input the year:\n");scanf("%d",&year);printf("\n");for(i=1,sumday=0;i<=year-1990;i++)sumday=sumday+365+leap_year(i);firstday=(sumday+1)%7;weekday=firstday;printf(" %d年\n",year);for(i=1;i<=12;i++){printf(" %s\n",a[i]);printf(" Sun Mon Tue Wed Thu Fri Sat\n");for(j=0;j<weekday;j++)printf(" ");day=day_of_month(i,year);for(k=1;k<=day;k++){printf("%4d",k);weekday=(weekday+1)%7;if(weekday==0)printf("\n");}printf("\n");}}运行结果实例如下:2001JanuarySun Mon Tue Wed Thu Fri Sat1 2 3 4 5 67 8 9 10 11 12 13……February……实验综合练习二(1)输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。