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语言简介及算法一.选择题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语言大作业报告
C语言大作业
猜数字游戏
信安三班
孙麒 2009302530088
戈丽萍 2009302530066
分工
戈丽萍:A、B、Win函数,流程图孙麒:main、Guess函数、程序调试
一、游戏说明
1、系统随机产生一组不重复的4位数字
2、游戏者输入所猜的不重复数字,并按回车提交。
3、系统将提交的数与它自动产生的数进行比较,输出结果“*A*B”形式。
其
中A代表数字正确相应位置也正确,B代表数字正确但位置不正确。
如:1A3B 表示游戏者有1个数字的位置正确且数值也正确,除此以外,游戏者还猜对了3个数字,但位置不对,即游戏者已经猜出4位数据,但有3个数据位置不对!
4、游戏者有限定的8次的猜测机会,在规定次数内完成,则游戏成功,否则,
游戏失败。
5、游戏成功后,将根据游戏者猜测所需要的次数对其进行评价:第一次猜出为perfect,第二——第四次猜出为great
二、详细流程
1、main函数
、
2、win函数(判断输赢)
3、A函数(判断数字且位置正确的个数)
A (char m[4],char n[4])
B(char m[4],char n[4],in a)
4、B函数(判断数字对但是位置不对的个数)
5、主函数Guess(char right[4])
三、总结经验
在确定了设计的内容之后,经历了很长时间的思考想出了算法。
但是在设计中反复出现错误,特别是B函数,检查很多遍之后觉得算法并无问题。
就分块进行调试。
后来偶然发现原来是整个过程中的“==”都写成了赋值“=”,导致错误,今后一定要细心才可以。
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语言大作业
①高次方数的尾数#include<stdio.h>#include <math.h>int main (){intx,n,i;intXn=1;printf("\t\t\t\t高次方数的尾数\n");printf("请按照提示进行操作\n\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n");printf("一、请输入底数:\n");scanf("%d",&x);printf("二、请输入指数:\n");scanf("%d",&n);for(i=1;i<=n;i++){Xn=Xn*x;if(Xn>=1000)Xn=Xn%1000;}printf("三、结果:%d的%d次方的尾数为%d\n\n",x,n,Xn);printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n");printf("感谢使用。
\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n");return 0;}②排序算法程序#include<stdio.h>#include<stdlib.h>#include<math.h>#include <time.h>#include<windows.h>void quick_sort(int *x, int low, int high) /*快速排序法*/{int i, j, t;if (low < high) /*要排序的元素起止下标,保证小的放在左边,大的放在右边。
C语言大作业
#include<stdio.h>#include<string.h>#include<stdlib.h> //exit()的头文件#include<conio.h> //屏幕操作函数#define N 100 //控制学生记录的容量#define M 3 //控制课程数#define LEN 9void menu();void browse();typedef struct student //定义学生结构体{char num[11]; //把学号定义成字符数组类型,一来学号可能比较长,二来可直接用strcmp来比较,确保无雷同char name[20];int score[M];double ave;}STU;STU stu[N]; //定义一个外部学生结构体变量/*****以写的方式保存数据到文件的函数【原数据将被覆盖】*****/int save(int n) //保存函数,保存n个记录{FILE *fp;int i;if((fp=fopen("zhouhao.txt","wb"))==NULL)//以二进制写的方式打开,在此前的记录被覆盖{printf("无法打开文件!\n任意键退出程序... ...\n");getch(); //预防闪屏return 0;}for(i=0;i<n;i++)if(stu[i].ave!=0) //在后面的del()函数中通过将stu[i].ave=0来表示该记录被删除了if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)//开始写入文件printf("文件写入发生错误\n");fclose(fp);return 0; // 注意下这个地方,我只是随便赋的值,只是为了消除一个警告}/********【拷贝函数单纯的将一个文件拷贝到另一个文件中】*******/void copy(){char outfile[20],infile[10]; //保存源文件名和目标文件名FILE *sfp,*tfp; //定义指向源文件(sourcefile)和目标文件(targetfile)的指针STU *p=NULL; //定义临时指针,暂存读出的记录system("CLS"); //清屏;printf("请输入需要被复制的文件名(默认数据处理在zhouhao.txt中):\n");scanf("%s",infile); //输入源文件名if((sfp=fopen(infile,"rb"))==NULL)//以二进制方式打开源文件{printf("无法打开文件!\n任意键退出程序... ...\n");//显示不能打开文件的信息getch();return;}printf("另存为...,比如:hao.txt:\n"); //提示输入目标文件名scanf("%s",outfile); //输入目标文件名if((tfp=fopen(outfile,"wb"))==NULL)//以二进制写方式打开目标文件{printf("无法打开文件!\n\n");//显示不能打开文件的信息getch();return; //退出程序,同exit(0)}while(!feof(sfp)) //读文件直到文件尾fputc(fgetc(sfp),tfp); //从stp复制文件到tfpfclose(sfp); //关闭源文件fclose(tfp); //关闭目标文件printf("\n复制成功!!!\n"); //显示拷贝成功信息printf("\n输入任意键返回主菜单");getch();menu();}/***【加载记录或可以计算记录个数的函数】***/int load(){FILE *fp;int i;if((fp=fopen("zhouhao.txt","rb"))==NULL) //以二进制读的方式打开{printf("无法打开文件!\n任意键退出程序... ...\n"); //显示不能打开文件的信息getch(); //预防闪屏return 0;}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp); //将文件数据读入学生结构体fclose(fp);return(i-1); //返回目前总的记录个数,注意是i-1}/***【一个任务结束时的选择浏览还是返回的函数】***/void printf_back(){int w;printf("\n\t操作成功!^_^\n");printf("\t接着干什么?\n\t1).立刻浏览全部数据\t2).返回:[ ]\b\b");scanf("%d",&w);if(w==1)browse();elsemenu();}/***【显示数据结构项目函数】***/void printf_face(){printf("\n\t学号\t姓名\t\t 数学\t 英语C语言平均分\n"); //显示行头}/***【求平均分函数】因为后面在修改数据中要专门重算平均数***/void average(int i){int j,sum;for(sum=0,j=0;j<M;j++)sum+=stu[i].score[j];stu[i].ave=sum*1.0/M;}/*******【学号长度处理函数】********/void no_deal(int i){int j,l,a;l=strlen(stu[i].num);if(l<LEN){for(j=LEN-l,a=0;j<LEN;j++){stu[i].num[j]=stu[i].num[a++];}stu[i].num[i]='\0';for(a=0;a<LEN-l;a++)stu[i].num[a]='0';}if(l>LEN)stu[i].num[l]='\0';}/*******【学号输入函数】*******/int no_input(int i,int n) //i表示第i个学生信息,n表示比较到第n个学生{int j,k,w1;do{w1=0;printf("学号:\t\t 【%d位,低于%d位前面补0,长的截尾处理!】\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b",LEN,LEN);scanf("%s",stu[i].num);no_deal(i);for(j=0;stu[i].num[j]!='\0';j++) //学号输入函数,作了严格的规定if(stu[i].num[j]<'0' || stu[i].num[j]>'9') //判断学号是否为数字{puts("别开玩笑!只能输入0——9.好吧,再给你一次机会,别让我失望!\n");w1=1; //这个w1=1,表示学号中输入了不是数字的字符break;}if(w1!=1) //w1!=1,确保验证时学号已经是由0-9的数组成的for(k=0;k<n;k++) //比较到第n个学生if(k!=i && strcmp(stu[k].num,stu[i].num)==0)//判断学号是否有雷同{puts("已经存在啦!重来一次!\n");w1=1; //w1=1,表示学号存在雷同break;}}while(w1==1); //总之,w1=1代表学号输入又问题,要重新输入return 0;}/***【分数输入函数】***/int score_input(int i){int j;for(j=0;j<M;j++){printf("分数%d:",j+1);scanf("%d",&stu[i].score[j]);}return 0;}/***【输入一整条记录的函数】***/void input(int i){no_input(i,i); //调用输入学号的函数printf("姓名:");scanf("%s",stu[i].name); //输入姓名score_input(i); //输入分数average(i); //计算平均分}/***【显示一整条记录的函数】***/void printf_one(int i){int j;printf("%11s %-14s",stu[i].num,stu[i].name); //输出学号和姓名for(j=0;j<M;j++)printf("%9d",stu[i].score[j]); //输出分数printf(" %9.2f\n",stu[i].ave); //输出平均分}/*【显示----函数顶部】*/void topput___(){printf("\n 记录浏览");printf("\n--------------------------------------------------------------------------------\n");}/*【显示----函数底部】*/void puts___(){printf("\n\n--------------------------------------------------------------------------------\n");}/*【修改记录函数】*/int modify_data(int i,int n) //修改数据函数,修改第i个记录{int c,w1;do{puts("\n你想修改什么: =>\n\n1).学号\t2).姓名\t3).数学\t4).英语\t5).C语言\n6).重输所有分数\t7).重输所有记录\t8).取消并返回");printf("想好就输,快:[ ]\b\b");scanf("%d",&c);if(c>8 || c<1)puts("\n选择失误!严肃点,再来一次!");//判断选择是否错误,若是则重新选择getchar(); //当输入时字符时可以防止死循环,觉得这个很重要,老师也没提过}}while(c>8 || c<1);do{switch(c) //选择要修改的项目{case 1:no_input(i,n);break;case 2:printf("姓名:");scanf("%s",stu[i].name);break;//调用学号输入函数case 3:printf("数学:");scanf("%d",&stu[i].score[0]);break;case 4:printf("英语:");scanf("%d",&stu[i].score[1]);break;case 5:printf("C语言:");scanf("%d",&stu[i].score[2]);break;case 6:score_input(i);break;case 7:input(i);break;case 8:menu(); //break; 在最后,有没有无所谓}if(c>2 && c<7)average(i); //由于3,4,5,6项改变的同时也把平均分动了,必须修正一下puts("\n现在:\n");printf_face();printf_one(i); //显示修改后的数据printf("\n你确定你目前的决定?\n\n\t1).当然啦! \t2).不不不,重修改一下!\n\t3).算了还是走吧,别保存了![ ]\b\b");//是否确定scanf("%d",&w1); //选择2则表示这次修改错误要重新修改}while(w1==2);return w1; //返回控制值}/* * * * * * * * * * * * 输入模块* * * * * * * * * * * */void enter(){int i,n;system("CLS"); //引用外部清屏,clrscr()在VC++中不好用printf("输入你要记录的学生数吧:(1~%d)?\t['0'返回]:\n",N);scanf("%d",&n); //要输入的计入个数if(n==0)menu(); //输0 的时候返回else{printf("\n\t好的!开始输入...\n");for(i=0;i<n;i++)printf("\n请输入第%d个的记录.\n",i+1);input(i); //调用输入函数}if(i!=0)save(n); //调用保存函数printf_back();} //一个任务结束时让用户选择是浏览还是返回}/*******************************追加模块*************************************/ int add(){int i,n,m,k;FILE *fp;system("CLS");n=load(); //获得总记录的个数,并加载记录printf("你需要加入多少学生:(0 ~ %d)?:",N-n);scanf("%d",&m); //输入要追加记录的个数if(m==0)menu();else{k=m+n;for(i=n;i<k;i++){printf("\n请输入第%d个的记录.\n",i-n+1);input(i); //调用输入函数}if((fp=fopen("zhouhao.txt","ab"))==NULL)//以ab方式打开,追加保存{printf("文件打不开!\n"); //显示不能打开文件的信息getch();return 0;}for(i=n;i<k;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件写入错误!\n");fclose(fp);printf_back(); //一个任务结束时让用户选择是浏览还是返回}return 0;}/***************************** 修改模块*************************/{struct student s;int i,n,k,w0=0,w1,w2=0;n=load(); //获得总记录的个数,并加载记录do{system("CLS");k=-1;/*****给用户看所有的记录以便用户确认要修改的记录*****/topput___();printf_face();for(i=0;i<n;i++)printf_one(i); //调用显示一个记录的函数puts___();/*****给用户看所有的记录以便用户确认要修改的记录*****/do{printf("\n\n输入你要修改记录的学号! 学号. :\t【'Ctrl-z' 退出】");if(scanf("%s",s.num)!=1) //输入要修改数据的学号menu();for(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.num,stu[i].num)==0){k=i; //找到要修改的记录s=stu[i]; //把stu[i](即把当次修改的学生记录)备份给s,以便用户反悔时恢复}if(k==-1)printf("\n\n不存在! 请重新输入~");}while(k==-1); //当K=-1表示没有找到printf_face(); //调用显示数据结构项目函数printf_one(k); //显示查找的记录w1=modify_data(k,n); //修改学生记录并且返回保存控制值w1,w1=1则表示用户已确认修改[w1只能是1或3(1代表确认修改,3代表不保存返回)] if(w1==1) //w1=1代表确认修改{printf("\n操作成功!\n\n决定修改别的吗?\n\n\t1).是的\t2).不!保存并返回\t[ ]\b\b");scanf("%d",&w0);w2=1; //来控制保存,使w2=1是标记已有过修改}else //此时w1=3,表示不保存返回{w0=0;if(w2==1) //w2=1表示已有过修改stu[k]=s; //反悔了,将修改前的值复原}if(w0!=1 && w2==1) //w0不等于1则表示正常返回,w2=1表示在此之前有修改过,这时就保存用户已确认修改的并返回save(n); //w2不等于1表示在此之前没有修改过,而又反悔这次修改,则不保存,保存时覆盖原先数据}while(w0==1);menu(); //返回主菜单}/*******************************删除模块*************************/void del(){struct student s;int i,k,n,c,w0=1;system("CLS");n=load(); //获得总记录的个数,并加载记录do{system("CLS");k=-1;/*给用户看全部记录以便确认要删除的记录*/topput___();printf_face(); //调用显示数据结构项目的函数for(i=0;i<n;i++)if(stu[i].ave!=0)printf_one(i); //显示所有数据puts___();/*给用户看全部记录以便确认要删除的记录*/do //输入要删除记录的学号,并寻找{printf("\n\n输入你要删除记录的学号! NO.:\t【'Ctrl-z' 退出】");if(scanf("%s",s.num)!=1)menu();for(i=0;i<n;i++)if(strcmp(s.num,stu[i].num)==0){k=i; //重赋k值表示找到寻找的数据s=stu[i];}if(k==-1) //k=-1表示没找到相同的printf("\n\n不存在! 请重新输入!");}while(k==-1);puts("\n");printf_face();printf_one(k); //显示要删除的记录printf("\n你确定?\n\t1).确定2).不,我要删除其他的3).不保存退出[ ]\b\b");//给用户一次反悔的机会scanf("%d",&c);if(c==1){stu[k].ave=0; //这是很重要的,通过stu[k].ave=0,通知保存的时候忽略掉,不进行保存printf("\n\n操作成功!\n\n要继续删数据吗?\n\t1).继续2).返回主菜单\t[ ]\b\b");scanf("%d",&w0);}if(c==3)w0=0; //w0=0不删除直接返回if(w0!=0 && c!=3) //只有当确认删除后返回才保存,不删除直接返回则不保存,且不保存在此之前删除过的记录save(n);}while(w0==1);menu();}/**************************************浏览(全部)模块*****************************************/void browse(){int i,n;n=load(); //获得总记录的个数,并加载记录system("CLS");topput___();printf_face(); //调用显示数据结构项目的函数for(i=0;i<n;i++) //循环输出所有学生的信息printf_one(i);puts___();printf("\n\t 这里一共有%d 个记录!\n",n);printf("\n\t 输入任意键返回主菜单... ...");getch();menu();}/*******************************查找模块************************************/ void search(){int i,n,k,w1=1,w2,w3,w4;struct student s;system("CLS");n=load(); //获得总记录的个数,并加载记录do{do{k=-1;printf("\n\n输入你要查找记录的主人公! 姓名:");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,stu[i].name)==0){k=i;printf_one(k); //考虑到同名的情况,可能输出不只一个,把所有的记录都查找一下}if(k==-1) //k=-1表示没找到相同的{printf("\n\n不存在! 请重新输入!");printf("\n\n要继续吗?\n\t1).继续\t 2).不,我要返回\t[ ]\b\b");scanf("%d",&w1);}}while(k==-1 && w1!=2); //k=-1表示没找到要查找的对象,w1!=2表示继续查找w4=w3=0; //初始化w4=w3=0if(k!=-1){printf("\n\n接着干什么?\n\t1).再次查找2).修改3).删除4).返回主菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 2:w3=modify_data(k,n);break;case 3:{printf("\n\n你确定了吗?\n\t1).确定2).不,还是返回吧! \t[ ]\b\b");scanf("%d",&w4);if(w4==1) //w4=1,表示确定删除stu[k].ave=0; //表示删除,当stu[k].ave=0,在save()中就不保存该数据,表示删除break;}}if(w3==1 || w4==1){save(n);printf("\n\n操作成功!");printf("\n\n接着干什么?\n\t1).再次查找2).返回[ ]\b\b");scanf("%d",&w2);}}}while(w2==1);menu();}/*******************************排序模块(按平均成绩)*********************************/void order(){int i,j,k,n;struct student s;system("CLS"); //清屏n=load(); //获得总记录的个数,并加载记录for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(stu[j].ave>stu[k].ave) //选择法排序,按平均分降序k=j;s=stu[i];stu[i]=stu[k];stu[k]=s;}save(n);puts("\n\n");printf_back();}/**********************************主界面************************************/ void menu(){int n,w1;do{system("CLS");;puts("\n\t\t\t\t学生信息管理系统\n");puts("\t ------- 周浩\n");puts("\t ************************ 主菜单*********************\n\n");puts("\t\t\t 1.初始数据输入(会覆盖已有数据)");puts("\t\t\t 2.可选择个数的数据添加");puts("\t\t\t 3.数据部分修改");puts("\t\t\t 4.数据部分删除");puts("\t\t\t 5.数据查看与浏览");puts("\t\t\t 6.数据查找(按姓名)");puts("\t\t\t 7.数据排序(按平均分降序)");puts("\t\t\t 8.已有文件文件拷贝");puts("\t\t\t 0.退出系统");puts("\n\n\t ****************************************************\n");printf("\t输入你的选择(0~8):[ ]\b\b");scanf("%d",&n);if(n<0 || n>8){w1=1;printf("\t你的选择不再0 到8 之间,按任意键重新输入!");getch();}elsew1=0;}while(w1==1);switch(n){case 1:enter();break;case 2:add();break;case 3:modify();break;case 4:del();break;case 5:browse();break;case 6:search();break;case 7:order();break;case 8:copy();break;case 0:exit(0);break;}}/************************************主函数***************************************/void main(){menu();}。
C语言课外大作业
《高级语言程序设计》课外实习作业为了达到熟练掌握C语言的编程,适应以后毕业设计、工作、信息化社会等要求,希望同学们在课外加强自学,查找资料,相互探讨,完成一项课外作业练习。
请选择下列题目中的一个,画出程序流程图,用C语言编写程序,并在自己的计算机上完成调试和运行。
把程序文档、程序代码和运行结果发到老师的邮箱。
一、设计一个全班的同学录管理系统:设计相关的信息字段,最好用照片;要有录入、修改、删除、搜索、查看等编辑功能;所有数据信息存入到一个文件或者一个数据库之中;有打印功能(或选择打印功能)。
可自行设计一些功能,自行设计一些图形化界面等。
二、设计一个班级成绩管理系统,能够管理平时作业成绩、考勤次数、实验成绩、期末考试成绩,并按照设定的比例计算总成绩。
能够进行各项成绩的统计分析。
要有录入、修改、删除、搜索、查看等编辑功能;所有数据信息存入到一个文件或者一个数据库之中;有打印功能(或选择打印功能)。
可自行设计一些功能,自行设计一些图形化界面等。
三、设计一个非对称加密程序:应用歌德巴赫猜想的原理,即任何一个大于2的偶数,都可以分解为两个不同的质数之和。
任意输入一个一定范围内的偶数,计算出它的两个质数。
用其中的一个质数,设计一种简单的加密方法,对一组字符串信息进行加密。
然后,只有输入另一个质数,反算出加密的质数,才能解密。
用程序实现和演示加密过程。
四、设计一个简单的数学表达式分析程序:直接通过一个输入界面输入的数学表达式,是一个字符串,计算机不能直接识别它,因此也不能完成相应的计算。
设计一个简单的数学表达式分析程序,通过键盘直接输入一些简单的数学表达式,然后分解成计算机可以实现相应计算的程序。
用程序实现和演示整个过程。
C语言实训大作业
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语言大作业
#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"int look(); /*声明查看函数*/int save(); /*声明保存函数*/int search_name(); /*声明按姓名查看函数*/int search_number(); /*声明按学号查看函数*/int order(); /*声明排序函数*/int del(); /*声明删除函数*/int openl(); /*声明打开函数*/int welcome(); /*声明我的个人信息函数*/int type(); /*声明输入函数*/int see(); /*声明打开并查看文件函数*/struct student /*定义学生信息的结构体类型*/{char num[15]; /*学号*/char name[20]; /*姓名*/char sex[4]; /*性别*/int chinese; /*语文成绩*/int english; /*英语成绩*/int math; /*数学成绩*/int science; /*科学成绩*/int phy; /*体育成绩*/float aver; /*平均成绩*/float sum; /*总成绩*/}stu[100];int n; /*声明一个全局变量*/int main() /*主函数即用户的操作界面*/{system("color 1E"); /*设计文本颜色*/int b,flag=0; /*声明局部变量*/while(1) /*循环输出以下信息*/{printf("\n\t\t\t欢迎来到学生成绩管理系统!\n");printf("\n\t\t\t\t 赵仓龙、刘铄制作\n");printf("\t\t\t-------------------------------\n");printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/printf("\t\t\t3.按姓名查看学生的信息\n\n"); /*按姓名查看学生的信息*/ printf("\t\t\t4.按学号查看学生的信息\n\n"); /*按学号查看学生的信息*/ printf("\t\t\t5.按平均成绩排序\n\n"); /*排序*/printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/printf("\t\t\t7.保存学生信息\n\n"); /*保存*/printf("\t\t\t8.打开文件\n\n");/*打开文件*/printf("\t\t\t9.我的个人信息\n\n"); /*我的个人信息*/printf("\t\t\t0.退出\n\n"); /*退出*/printf("\t\t\t请输入你的选择:");scanf("%d",&b);switch(b){case 1:type();break; /*调用键入学生信息函数*/case 2:look();break; /*调用查看函数*/case 3:search_name();break; /*调用姓名查看函数*/case 4:search_number();break; /*调用学号查看函数*/case 5:order();break; /*调用排序函数*/case 6:del();break;/*调用删除函数*/case 7:save();break;/*调用保存函数*/case 8:see();break;/*调用打开文件函数*/case 9:welcome();break;/*调用我的个人信息函数*/case 0:flag=1;break;/*退出SWITCH语句*/default :printf("错误!");}if(flag) break; /*如果选择0就退出循环*/}}int welcome() /*我的个人信息函数*/ {system("CLS");printf("\n\n\t\t------------个人信息------------"); /*在屏幕上输出一下信息*/printf("\n\n\n\n\t\t姓名: ");printf("\t\t\tSex:m\n");printf("\t\t年龄:20\n");printf("\n\n\n\n\t\t姓名: ");printf("\t\t\tSex:m\n");printf("\t\t年龄:20\n");printf("\n\n\t\t按任意键返回欢迎屏幕!");getch(); /*按任意键返回主函数*/}int type() /*定义键入学生信息函数*/ {system("CLS");int i; /*定义局部变量*/printf("\t\t输出你想输入的学生信息个数:");scanf("%d",&n);for(i=0;i<n;i++) /*输入每个学生的信息*/{printf("\n\t\t\t----------------\n" );printf("\t\t\t学号:");scanf("%s",&stu[i].num); /*输入学号*/printf("\t\t\t姓名:");scanf("%s",&stu[i].name); /*输入姓名*/printf("\t\t\t性别:");scanf("%S",&stu[i].sex); /*输入性别*/printf("\t\t\t语文:");scanf("%d",&stu[i].chinese); /*输入英语成绩*/printf("\t\t\t数学:");scanf("%d",&stu[i].math); /*输入数学成绩*/printf("\t\t\t英语:");scanf("%d",&stu[i].english); /*输入语文成绩*/printf("\t\t\t科学:");scanf("%d",&stu[i].science);printf("\t\t\t体育:");scanf("%d",&stu[i].phy);}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}int save() /*建立保存文件函数*/{system("CLS");FILE *fp; /*定义文件型指针*/int i;if((fp=fopen("C语言大作业测试数据.txt","wb"))==NULL) /*打开输出文件*/{printf("不能打开文件!\n");return 0; /*终止程序*/}for(i=0;i<n;i++) /*向student文件中写入信息*/if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)printf("文件写入错误\n");fclose(fp); /*关闭文件*/printf("\n\n\n\n\t\t\t学生信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}int look() /*定义查看函数*/{system("CLS");int i;//n=openl(); /*调用openl函数*/ printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%12s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%3.1f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}int search_name() /*按姓名查看函数*/ {system("CLS");int i;char name[20]; /*声明字符数组*/printf("\t\t\t请输入学生姓名:\n");scanf("%s",name);printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0)/*将输入的姓名与结构体中的姓名进行比较*/{printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%3.1f\n",stu[i].num,stu[i].na me,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);printf("\n\n\n\t\t\t按任意键返回菜单");}getch();}int search_number() /*定义按学号查看函数*/{system("CLS");int i;char number[15]; /*声明字符数组printf("\t\t\t请输入学号:\n");scanf("%s",number);printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)if(strcmp(stu[i].num,number)==0) /*将输入的学号与结构体中的学号进行比较*/printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%d\t%d\t%3.1f\n",stu[i].num,stu[i].na me,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);printf("\n\n\n\t\t\t按任意键返回菜单");getch();}int order() /*定义排序函数*/system("CLS");int i,j;char a;struct student temp; /*声明结构体变量*/printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++) /*对数据进行排序*/{for(j=i+1;j<n;j++)if(stu[i].sum<stu[j].sum){temp=stu[i];stu[i]= stu[j];stu[j]=temp;}printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);}getch();printf("是否保存(y or n)");getchar();scanf("%c",&a);if(a=='y') /*是否保存排序后的文件*/save();elseprintf("退出");getch();}int del() /*定义删除学生信息函数*/ {int i;char a;char name[20];system("CLS");printf("\t\t\t输入学生名字:\n");scanf("%s",name);system("CLS");printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0){printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%3.1f\n",stu[i].num,stu[i].na me,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);getch();printf("真的删除?(y or n)");getchar();scanf("%c",&a);if(a=='y') /*是否删除该信息*/{for(;i<n;i++)stu[i]=stu[i+1];n=n-1;printf("你已经删除信息");}elseprintf("退出");getch();}save();}int openl() /*定义打开文件函数*/ {system("CLS");int i;FILE *fp;if((fp=fopen("C语言大作业测试数据.txt","rb"))==NULL){printf("Cannot open file.\n");exit(0);}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp);fclose(fp);return(i-1);}int see() /*打开并查看文件*/{system("CLS");int i;n=openl();printf("文件打开成功!\n");printf("按任意键查看!\n");getch();printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%3.1f\n",stu[i].num,stu[i].na me,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}。
c语言课程设计大作业
c语言课程设计大作业一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,具备使用C语言进行程序设计的能力。
具体目标如下:1.知识目标:学生能够理解并掌握C语言的基本语法、数据结构和常用算法。
2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。
3.情感态度价值观目标:学生能够体验到编程的乐趣,培养对计算机科学的兴趣。
二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。
具体安排如下:1.C语言的基本语法:包括变量、运算符、控制结构、函数等。
2.数据结构:包括数组、链表、栈、队列、树等。
3.算法:包括排序算法、查找算法、递归算法等。
三、教学方法为了达到课程目标,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体方法如下:1.讲授法:用于讲解C语言的基本语法、数据结构和算法。
2.讨论法:用于引导学生探讨编程问题,培养解决问题的能力。
3.案例分析法:通过分析实际案例,使学生更好地理解C语言的应用。
4.实验法:让学生动手编写程序,提高编程能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:《C语言程序设计》。
2.参考书:提供相关的编程资料和算法教程。
3.多媒体资料:制作课件和教学视频,辅助学生学习。
4.实验设备:提供计算机实验室,让学生进行编程实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试。
具体评估方式如下:1.平时表现:通过学生在课堂上的参与度、提问和讨论,评估其对C语言的理解和应用能力。
2.作业:布置编程作业,评估学生对C语言语法和算法的掌握程度。
3.考试:进行期中和期末考试,评估学生对C语言的整体掌握情况。
评估方式应客观、公正,能够全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保学生掌握C语言的基本语法、数据结构和算法。
c语言大作业课程设计
c语言大作业 课程设计一、课程目标知识目标:1. 理解C语言中数组、函数、指针等基本概念,掌握其应用方法;2. 学会使用C语言编程解决实际问题,如数值计算、数据处理等;3. 了解C语言程序设计中常用的算法与数据结构,如排序、查找等;4. 掌握C语言编程规范,提高代码质量。
技能目标:1. 能够独立设计并编写具有实际意义的C语言程序,具备一定的编程能力;2. 学会运用调试工具,如GDB,对程序进行调试,找出并解决程序中的错误;3. 能够阅读和理解C语言源代码,具备一定的代码阅读能力;4. 具备团队协作能力,与他人共同完成复杂的编程任务。
情感态度价值观目标:1. 培养学生对C语言编程的兴趣,激发学习热情,树立编程自信心;2. 培养学生严谨、认真的学习态度,养成良好的编程习惯;3. 培养学生面对编程难题时的耐心与毅力,具备解决问题的决心;4. 培养学生的创新意识,鼓励尝试新方法,勇于挑战自我。
本课程针对高年级学生,课程性质为实践性较强的编程课程。
在教学过程中,要求学生具备一定的C语言基础,能够通过本课程的学习,将所学的理论知识运用到实际编程中,提高解决实际问题的能力。
课程目标的设定旨在使学生能够通过本课程的学习,掌握C语言的核心知识,培养编程技能,同时注重情感态度价值观的培养,全面提高学生的综合素质。
后续教学设计和评估将围绕这些具体学习成果展开。
二、教学内容本章节教学内容主要包括以下几部分:1. C语言基础回顾:数组、函数、指针等基本概念及其应用;- 数组:一维数组、二维数组、字符数组;- 函数:函数定义、调用、传值与传址;- 指针:指针的概念、指针与数组、指针与函数。
2. 算法与数据结构:排序、查找等常用算法;- 排序:冒泡排序、选择排序、插入排序;- 查找:顺序查找、二分查找。
3. 编程规范与调试技巧:C语言编程规范、GDB调试工具的使用;- 编程规范:命名规则、代码格式、注释;- 调试技巧:设置断点、单步执行、查看变量值。
c语言大作业
#include""#include""#include""#include""intlook();/*声明查看函数*/intsave();/*声明保存函数*/intsearch_name();/*声明按姓名查看函数*/intsearch_number();/*声明按学号查看函数*/intorder();/*声明排序函数*/intdel();/*声明删除函数*/intopenl();/*声明打开函数*/ intwelcome();/*声明我的个人信息函数*/ inttype();/*声明输入函数*/intsee();/*声明打开并查看文件函数*/ structstudent/*定义学生信息的结构体类型*/{charnum[15];/*学号*/charname[20];/*姓名*/charsex[4];/*性别*/intchinese;/*语文成绩*/intenglish;/*英语成绩*/intmath;/*数学成绩*/intscience;/*科学成绩*/intphy;/*体育成绩*/floataver;/*平均成绩*/floatsum;/*总成绩*/}stu[100];intn;/*声明一个全局变量*/intmain()/*主函数即用户的操作界面*/ {system("color1E");/*设计文本颜色*/ intb,flag=0;/*声明局部变量*/while(1)/*循环输出以下信息*/{printf("\n\t\t\t欢迎来到学生成绩管理系统!\n");printf("\n\t\t\t\t赵仓龙、刘铄制作\n");printf("\t\t\t-------------------------------\n");printf("\t\t\t1.键入学生的信息\n\n");/*键入学生的信息*/printf("\t\t\t2.查看录入的学生信息\n\n");/*查看录入的学生信息*/printf("\t\t\t3.按姓名查看学生的信息\n\n");/*按姓名查看学生的信息*/ printf("\t\t\t4.按学号查看学生的信息\n\n");/*按学号查看学生的信息*/ printf("\t\t\t5.按平均成绩排序\n\n");/*排序*/printf("\t\t\t6.删除学生信息\n\n");/*删除学生信息*/printf("\t\t\t7.保存学生信息\n\n");/*保存*/printf("\t\t\t8.打开文件\n\n");/*打开文件*/printf("\t\t\t9.我的个人信息\n\n");/*我的个人信息*/printf("\t\t\t0.退出\n\n");/*退出*/printf("\t\t\t请输入你的选择:");scanf("%d",&b);switch(b){case1:type();break;/*调用键入学生信息函数*/case2:look();break;/*调用查看函数*/case3:search_name();break;/*调用姓名查看函数*/case4:search_number();break;/*调用学号查看函数*/case5:order();break;/*调用排序函数*/case6:del();break;/*调用删除函数*/case7:save();break;/*调用保存函数*/case8:see();break;/*调用打开文件函数*/case9:welcome();break;/*调用我的个人信息函数*/case0:flag=1;break;/*退出SWITCH语句*/default:printf("错误!");}if(flag)break;/*如果选择0就退出循环*/}}intwelcome()/*我的个人信息函数*/{system("CLS");printf("\n\n\t\t------------个人信息------------");/*在屏幕上输出一下信息*/printf("\n\n\n\n\t\t姓名:");printf("\t\t\tSex:m\n");printf("\t\t年龄:20\n");printf("\n\n\n\n\t\t姓名:");printf("\t\t\tSex:m\n");printf("\t\t年龄:20\n");printf("\n\n\t\t按任意键返回欢迎屏幕!");getch();/*按任意键返回主函数*/}inttype()/*定义键入学生信息函数*/ {system("CLS");inti;/*定义局部变量*/printf("\t\t输出你想输入的学生信息个数:");scanf("%d",&n);for(i=0;i<n;i++)/*输入每个学生的信息*/{printf("\n\t\t\t----------------\n" );printf("\t\t\t学号:");scanf("%s",&stu[i].num);/*输入学号*/printf("\t\t\t姓名:");scanf("%s",&stu[i].name);/*输入姓名*/printf("\t\t\t性别:");scanf("%S",&stu[i].sex);/*输入性别*/printf("\t\t\t语文:");scanf("%d",&stu[i].chinese);/*输入英语成绩*/printf("\t\t\t数学:");scanf("%d",&stu[i].math);/*输入数学成绩*/printf("\t\t\t英语:");scanf("%d",&stu[i].english);/*输入语文成绩*/printf("\t\t\t科学:");scanf("%d",&stu[i].science);printf("\t\t\t体育:");scanf("%d",&stu[i].phy);}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}intsave()/*建立保存文件函数*/{system("CLS");FILE*fp;/*定义文件型指针*/inti;if((fp=fopen("C语言大作业测试数据.txt","wb"))==NULL)/*打开输出文件*/ {printf("不能打开文件!\n");return0;/*终止程序*/}for(i=0;i<n;i++)/*向student文件中写入信息*/if(fwrite(&stu[i],sizeof(structstud ent),1,fp)!=1)printf("文件写入错误\n");fclose(fp);/*关闭文件*/printf("\n\n\n\n\t\t\t学生信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}intlook()/*定义查看函数*/{system("CLS");inti;um,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}intsearch_name()/*按姓名查看函数*/ {system("CLS");inti;charname[20];/*声明字符数组*/printf("\t\t\t请输入学生姓名:\n");scanf("%s",name);printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0)/*将输入的姓名与结构体中的姓名进行比较*/{printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);printf("\n\n\n\t\t\t按任意键返回菜单");}getch();}intsearch_number()/*定义按学号查看函数*/{system("CLS");inti;charnumber[15];/*声明字符数组*/printf("\t\t\t请输入学号:\n");scanf("%s",number);printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)if(strcmp(stu[i].num,number)==0)/*将输入的学号与结构体中的学号进行比较*/printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);printf("\n\n\n\t\t\t按任意键返回菜单");getch();}intorder()/*定义排序函数*/{system("CLS");inti,j;chara;structstudenttemp;/*声明结构体变量*/printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)/*对数据进行排序*/{for(j=i+1;j<n;j++)if(stu[i].sum<stu[j].sum){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);}getch();printf("是否保存(yorn)");getchar();scanf("%c",&a);if(a=='y')/*是否保存排序后的文件*/save();elseprintf("退出");getch();}intdel()/*定义删除学生信息函数*/{inti;chara;charname[20];system("CLS");printf("\t\t\t输入学生名字:\n");scanf("%s",name);system("CLS");printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0){printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].math,stu[i].english,stu[i].science,stu[ i].phy);getch();printf("真的删除(yorn)");getchar();scanf("%c",&a);if(a=='y')/*是否删除该信息*/{for(;i<n;i++)stu[i]=stu[i+1];n=n-1;printf("你已经删除信息");}elseprintf("退出");getch();}save();}intopenl()/*定义打开文件函数*/{system("CLS");inti;FILE*fp;if((fp=fopen("C语言大作业测试数据.txt","rb"))==NULL){printf("Cannotopenfile.\n");exit(0);}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(structstudent) ,1,fp);fclose(fp);return(i-1);}intsee()/*打开并查看文件*/{system("CLS");inti;n=openl();printf("文件打开成功!\n");printf("按任意键查看!\n");printf("\t学号\t姓名\t性别\t语文\t数学\t英语\t科学\t体育\n");for(i=0;i<n;i++)/*输出所有的学生信息*/{printf("%10s\t%s\t%2s\t%d\t%d\t%d\t %d\t%d\t%\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].chinese,stu[i].ma th,stu[i].english,stu[i].science,stu[ i].phy);}printf("\n\n\n\t\t\t按任意键返回菜单");。
C语言大作业报告书
C语言大作业报告书一、目的1)巩固练习C语言的基础知识2)综合运用C语言的编程方法3)针对抽象的解题思路,设计程序结构4)基于VC6调试、测试与修改程序二、内容2.1、阅读程序,推导结果。
1、#include<iostream>using namespace std;int a = 200;int main(){int s=0;for(int i=1; i<=5; i++)s+=++a;cout<<s<<endl;return 0;}运行结果:10152、#include<iostream>using namespace std;int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};void main(){cout<<a[0][1] + b[1][0] << ' ';cout<<a[1][0] + b[0][1] << endl;}运行结果:0 43、#include<iostream>using namespace std;void main(){int num=0,i=10;do{i--;num+=i;}while(--i);cout<<num<<endl;}运行结果:252.2、应用编程1、由键盘输入5个整数,输出其中最大、最小的数与它们的平均值。
提示:设置2个指示变量,分别记录最大、最小的数的下标;指示变量先设置为0,然后遍历数组,刷新指示。
解:#include <iostream>void main(){int a[5],i,s=0;float arry;for(i=0;i<5;i++)cin>>a[i];for(i=0;i<5;i++){for(int j=i+1;j<5;j++){if(a[i]>a[j]){int t=a[j];a[j]=a[i];a[i]=t;}}}cout<<"最小数="<<a[0]<<endl;cout<<"最大数="<<a[4]<<endl;for(i=0;i<5;i++){s=s+a[i];}arry=s/5;cout<<"平均值="<<arry<<endl;}输入:3 4 5 7 16输出:最小数=3最大数=16平均值=72、输出以下图案。
c语言课程设计大作业
c语言课程设计大作业一、课程目标知识目标:1. 理解C语言中数组、函数、指针等基本概念,掌握其应用方法。
2. 学会运用结构体、文件操作等C语言高级特性进行程序设计。
3. 掌握程序调试与优化的基本方法,提高代码质量。
技能目标:1. 能够根据需求,设计并实现具有实用价值的C语言程序。
2. 培养良好的编程习惯,编写规范、可读性强的代码。
3. 提高问题分析能力,能够针对实际问题设计合适的算法和数据结构。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发自主学习动力。
2. 培养学生面对困难和挑战时,保持积极心态,勇于尝试,善于合作,克服困难。
3. 增强学生的创新意识,鼓励学生敢于发表自己的观点,尊重他人的意见。
课程性质:本课程为C语言课程设计大作业,旨在巩固和拓展学生所学知识,提高实际编程能力。
学生特点:学生已具备一定的C语言基础,对编程有一定兴趣,但在实际应用中可能存在编程思路不清晰、代码规范意识不足等问题。
教学要求:结合学生特点,注重实践,引导学生从实际问题出发,培养解决复杂问题的能力。
教学过程中,注重激发学生兴趣,培养良好的编程习惯,提高团队协作能力。
通过本课程的学习,使学生在知识、技能和情感态度价值观等方面取得具体的学习成果。
二、教学内容1. 复习C语言基础知识:数组、函数、指针、控制结构等。
教材章节:第二章、第三章、第四章内容:数组的应用、函数的定义与调用、指针的概念与用法、程序流程控制。
2. C语言高级特性学习:结构体、文件操作、动态内存分配等。
教材章节:第六章、第七章、第十章内容:结构体的定义与使用、文件读写操作、动态内存分配与释放。
3. 程序设计与实现:根据实际需求,设计并实现具有实用价值的C语言程序。
教材章节:全书内容:综合运用所学知识,进行程序设计、编写代码、调试与优化。
4. 编程规范与调试技巧:培养良好的编程习惯,提高代码质量。
教材章节:附录内容:代码规范、调试方法、性能优化。
C语言大作业全
#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_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;}}息浏览;***********\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)。
C语言大作业题目1电话簿管理程序存储的数据包括:人名、工作单位、电话号码和E-mail地址等。
程序要求具有如下功能:①加入一个新电话号码;②删除一个电话号码;③显示保存的所有电话号码。
④修改功能;⑤排序功能,包括按照电话号码排序和按照姓名字母序排列;⑥查询功能,包括按人名查询电话号码和按电话号码查询人名。
⑦保存信息到文件。
⑧从文件读取信息。
课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。
用户选用哪条功能,就调用哪项功能。
2班级同学信息管理程序存储的数据包括:姓名,学号,宿舍,QQ号码和电话号码等。
程序要求具有以下功能:①加入一个同学的记录;②删除一个同学的记录;③显示所有同学的记录。
④排序功能,包括按照学号排序和按照姓名字母序排序显示所有同学的纪录。
⑤查询功能,包括按学号查询同学的信息或者其他。
⑥修改功能。
⑦保存信息到文件。
⑧从文件读取信息。
课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。
用户选用哪条命令,就调用哪项功能。
3职工信息管理系统职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
提供以下功能:①加入一个职工的记录;②删除一个职工的记录;③显示所有职工的记录。
④排序功能,包括按照学号排序和按照姓名字母序排序显示所有职工的纪录。
⑤查询功能,包括按工号或姓名查询职工的信息或者其他。
⑥修改功能。
⑦保存信息到文件。
⑧从文件读取信息。
课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。
用户选用哪条命令,就调用哪项功能。
4图书信息管理系统图书信息包括:图书号、书名、作者名、分类号、出版单位、出版时间、价格等。
提供以下功能:①加入一本图书;②删除一本图书;③显示所有图书。
④排序功能,包括按照书名排序所有图书。
⑤查询功能,包括按书名查询图书。
⑥修改功能⑦保存信息到文件。
⑧从文件读取信息。
课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。
用户选用哪条命令,就调用哪项功能。
5图书借阅管理系统图书信息包括:图书名称、图书编号、单价、作者、存在状态、借书证号、姓名、性别。
提供以下功能:①新进图书基本信息的输入。
②显示所有图书信息。
③对撤消图书信息的删除。
④图书基本信息的查询。
⑤办理借书手续。
⑥办理还书手续⑦保存信息到文件。
⑧从文件读取信息。
课程设计要求:程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。
用户选用哪条命令,就调用哪项功能。
6实验设备管理系统设备信息包括:设备编号,设备名称,设备价格,设备所属实验室。
提供以下功能:①加入一个设备;②报废一个设备;③显示所有设备。
④排序功能,包括按照编号排序所有设备。
⑤查询功能,包括按编号查询设备。
⑥修改功能⑦保存信息到文件。
⑧从文件读取信息。
7学生成绩管理系统学生成绩信息包括:学号,班别,姓名,三门课程成绩(语文、数学、英语),总分。
其中总分需在录入或修改中由程序求得。
提供以下功能:①录入一个学生成绩信息;②删除一个学生成绩信息;③显示所有学生成绩信息。
④排序功能,包括按照总分排序。
⑤查询功能,包括按学号和姓名查询设备。
⑥修改功能⑥统计功能:计算各科平均分。
⑦保存信息到文件。
⑧从文件读取信息。
8课程管理系统每门课程信息包括:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,学分,开课学期等信息。
提供以下功能:①录入一个课程信息;②删除一个课程信息;③显示所有课程信息。
④排序功能,包括按课程编号,课程名称排序。
⑤查询功能,包括按课程编号,课程名称查询设备。
⑥修改功能⑦保存信息到文件。
⑧从文件读取信息。
9车辆信息管理系统车辆信息包括:车牌号,车型,车主姓名,总里程,购买日期。
10航班信息管理系统航班信息包括:航班号,起点,终点,里程,票价,出发时间,到达时间。
11个人收支管理系统信息包括信息:如工资卡号、姓名、基本工资、职务工资、津贴、水电费、公积金、税金。
税金按我国个人所得税征收办法处理,公积金按收入8%扣除12 高考成绩管理系统考生信息为准考证号、姓名、性别、所在学校以及数学、语文和外语、综合。
除了基本处理外,可考虑显示每科最高分,以及输入分数线,列出上线人数及信息等。
26数据出勤1、说明库卡数在一个计算机化管理的企业中,每人都配有一张磁卡或IC卡。
卡中包括职工编号、姓名、所在部门、职务据管等信息。
其中职工编号(m)是惟一的。
本练习仅涉及有关出勤卡数据处理部分。
理每个职工每天早晨上班时要在读卡机上刷卡。
一旦刷卡完毕,该职工的编号和刷卡时间这两个数据就形成一个记录存入出勤情况punchln文件中。
假设该企业最多有500名职工。
在该厂的计算机化管理中,含有一个职工基本信息文件EmpBasic,其中包含职工编号、姓名、性别、出生日期、职务级别、所在部门等信息。
另外包含一个职工月出勤情况文件Attendance,其中包含职工编号、迟到次数、请假天数、旷工天数等。
还有许多文件,在本程序中不用。
假设规定正点上班时间为早上8点,早上9点准时关闭读卡机。
为奖罚有据,该企业对出勤有如下规定:对于全体职工,每旷工一天就扣发当月工资的10%。
旷工指当日出勤文件中不出现的职工(编号)或迟到1小时及以上的职工;迟到10分钟以下记录迟到1次;若迟到10分钟以上、20分钟以下记录迟到2次,依此类推。
每迟到一次就扣发当月工资的0.5%。
对于超过允许请假天数之外的,每请假1天扣发当月工资的5%。
女职工每月可请假3天(免扣工资)。
55岁以上的男职工每月可请假2天(免扣工资)。
每个职工生日所在月份可请假一天(免扣工资)。
全勤的职工一次性奖励400元(只要有请假就不算全勤)。
2、课程设计要求1)只有关闭读卡机后才能读取punchln文件中的数据。
2)当读取punchln文件时,要求同时记录职工的迟到次数、旷工天数并累计写入月出勤情况文件中。
3)punchln文件的内容为职工编号、时、分、秒。
每个数据项均是整数类型的。
4)为简化设计,职工基本信息文件中仅含职工编号、姓名、性别、出生日期四项数据。
5)程序要用菜单形式提供以下的查询功能:按职工编号查询当日到厂时间、当月出勤情况(列出该职工迟到次数、请假天数、旷工天数);列出所有全勤职工的清单(含职工编号、姓名、性别、出生日期)、请假天数(减去允许请假天数以后)超过5天的职工情况(含职工编号、姓名、性别、出生日期、请假天数)、有旷工行为的全体职工的情况(含职工编号、姓名、性别、出生日期、迟到次数、请假天数、旷工天数)。
6)程序要用菜单形式输入请假职工的编号(输入后要把请假一天的信息写入月出勤文件中,并与原请假天数累计,同时从旷工天数中减1)。
7)用菜单形式提供以下统计功能,即计算当前职工总数、当月全勤职工总数及占全体职工的百分比、当日最长的迟到时间、当月最大的请假天数、当月最大的迟到次数、当月旷工的最大天数、当日迟到的职工总数及占职工总数的百分比。
8)用菜单形式提供以下与排序相关的功能,即列出最早到厂的职工的编号和姓名、按出生日期的升序列出全体职工的基本信息、按出生日期的降序列出全体女职工的基本信息。
(提示:出生日期的内部存储形式可用一个数字字符串表示,如“19850211”表示出生日期为1985年2月11日),9)当日出勤情况文件使用后,要先将全体数据添加到月逐日出勤情况文件MonthPUnehl27数据期末1、说明库学生在期末考试结束后,任课老师把学生成绩单交教学办公室的教务员。
教务员汇总后把学生成绩录入计算成绩机,并记入学生成绩文件中。
对于学生来说,还有一个学生基本情况文件记载着学生的学号、姓名、性管理别、出生日期、入学日期和奖罚等信息。
假设学生成绩文件由学号、计算机成绩、高等数学成绩、外语成绩、体育成绩和平均成绩组成。
对于期末平均成绩达到85以上的给予一次性奖励:平均成绩85分以上(含85分)至90分(不含90分)的每人奖励400元,90分以上(含90分)至95分(不含95分)的每人奖励800元,95分以上(含95分)的每人奖励1200元,并将受奖次数记人学生基本情况文件中。
期末成绩不及格的学生应通知补考,而且计算机、高等数学和外语三门功课均不及格应发出通知直接留级。
补考、留级的信息要记入学生基本情况文件中。
若留级次数达到2次或补考次数达到8次均通知退学。
应能计算期末每门功课的平均分,求每门功课的最高分和最低分,统计每门功课优(90分以上)、良(80-89分)、中(70—79分)、及格(60-69分)和不及格(不足60分)的各级别的人数,统计留级、退学的人数。
程序中,应提供按学号查询学生基本情况或查询学生成绩的功能;能列出期末成绩一览表,表中含学号、姓名、各科成绩和平均成绩;能按平均成绩从高到低排序输出成绩一览表;能列出受奖情况等。
2、课程设计要求1)设学生总人数在100之内。
2)学生基本情况文件和学生成绩文件均应设计为等长记录的文本文件。
3)各项功能应用菜单形式选择执行。
4)录入期末成绩时,一次录入一个学生的全体成绩并计算平均分,录入后就存入学生成绩文件中。
5)为统计、查询方便,应建立一个一维数组Students。
该数组应含有学号、姓名、各科成绩和平均分等各项。
6)受奖情况应含受奖学生的学号、姓名、各科成绩、平均成绩、受奖金额。
2008年12月11日共10页,第6页-----------------------页面7-----------------------编号类型题目要求28数据银行1、说明库账目此处的账目管理是整个银行业务中的一小部分,主要包括借款、还款、存款业务。
管理为了管理账户,设立两个文件:一是账户基本信息文件,包括账户的账号、姓名、身份证号、建账日期等信息;另一个是账户余额文件,包括账户的账号和当前余额两项数据。
本程序能够执行账户的开户、借款、还款、存款、清户(删除)等操作,而且能够实现对账户信息的查询统计功能、按借款户的余额从大到小排序功能、按存款户的余额从大到小排序功能和按开户日期从小到大排序功能等。
2、课程设计要求1)账户基本信息文件和账户余额文件均为随机存取文件。
2)开新户时,用户只输入姓名、身份证号、金额、日期四个数据,由程序自动生成账号并通知用户,并将相关数据同时存人上述两个文件中。
,3)余额为负数表示借款额,为正数表示存款额。
4)能够按账号查询账户的基本信息和当前余额,能够列出最大借款额账户和最大存款额账户的基本信息和当前余额。
5)删除账户时,暂将账号部分置为—1,对文件不作其他处理。
6)程序中专门提供对两个文件进行“紧缩”的处理,即清除账号为—1的全体记录。
7)为排序方便,对日期数据重载“<”运算符。
8)程序能够统计当前账户个数、当前借款总额、当前还款总额以及借款总额与存款总额的差额。