barriers / 阅读 / 详情

c语言程序设计的内容简介

2023-09-09 17:40:42
共1条回复
苏州马小云

本书采用“案例引导,任务驱动”的编写方式,深入浅出地讲解了C程序设计的基本方法;通过“案例展示—归纳总结—模仿练习—自主设计”的学习模式,使读者循序渐进地掌握C语言的编程方法和思想,提高动手能力。全书案例按照“任务要求—问题分析—程序详解—归纳总结”顺序组织,注重培养读者先进行算法描述后进行编程实践的良好编程习惯,使读者逐步掌握用计算机解决实际问题的方法。全书叙述严谨,实例丰富,内容详尽、难易适中、重点突出,并将指针等较难理解的知识分解到多章讲解,降低了读者学习的难度。

全书分为8章,主要内容包括C语言基础知识、算法、C程序的控制结构、数组与指针、函数、结构体与共用体、文件操作和C语言课程设计。

本书适合作为高等院校计算机专业学生的教材,也可作为自学C语言程序设计的参考用书。

c语言课程设计总结

相关推荐

c语言课程设计论文

我写过此论文,不过成绩不理想。难的是参考书籍不多。
2023-09-01 22:11:161

c语言课程设计的课程介绍

通过学习C语言程序设计,掌握高级语言程序设计的基本知识,掌握面向过程程序设计和软件开发的基本方法,学会用C语言解决本专业的实际问题,提高分析问题和解决问题的能力。1、课程性质 ,《C语言程序设计》是电子信息相关专业的专业能力模块课程。2、课程与系列产品或项目设计与开发流程的关联该课程是嵌入式系列产品程序设计的基础。3、课程目标通过“篮球赛计时计分系统程序设计”等5个案例的学习与实践,培养学生运用C语言程序设计的知识,解决常用嵌入式系统程序开发问题的能力。4、与前后续课程的关系后续课程:《模块电路功能编程》、《机器人编程与控制》。
2023-09-01 22:11:321

学生成绩记录薄 c语言 课程设计报告

C语言程序设计报告课题名称:学生成绩管理1 系统概述:本程序为一个学生成绩管理系统,对学生的成绩进行管理,学生的信息包括学号,姓名,学期,三门课程的成绩,输入这些信息,本程序可以自动计算总成绩,可以按高分到低分进行排名,并对输入信息的人数进行汇总.2 数据结构设计: (1)结构体; (2)数组的设计:运用指针代替数组,使用指针来建立线性表,使程序更加简洁,可读性更强.3 各函数的设计:函数原型:void InitList(SqLinkList &L);功能: 创建一个空的线性链表;入口参数:L为要创建的线性链表;出口参数:创建链表的L.head为空,L.length为0;返回值: 无; 函数原型:void EmptyLinkList(SqLinkList &L);功能: 清空整个线性链表;入口参数:L为要清空的链表名称;出口参数:若清空成功则链表长度L.length为0;返回值: 无; 函数原型:int ScanE(ElemType &e);功能: 输入学生信息;入口参数:e为要输入信息的学生名称;出口参数:e.num保存学号,e.name保存姓名,e.team保存所在学期,e.s1,e.s2,e.s3分别保存三门课程的成绩;返回值: 输入合法返回1,否则返回0;错误处理:若学号、姓名等输入不合法会有提示及重输; 函数原型:Status SqLinkListAppend(SqLinkList &L,ElemType e);功能: 追加一个结点到线性链表中;入口参数:e为所追加的结点名称,L为e所追加到的线性链表的名称;出口参数:若追加成功,则e为头结点,链表长度L.length增1;返回值: 若追加成功返回1; 函数原型:Link SearchNode(SqLinkList L,int NUM);功能: 查找学号为NUM的学生;入口参数:查找的链表名称L,学号NUM;出口参数:若找到结点指针p指向该结点,否则指向空结点;返回值: 结点指针p; 函数原型:void SearchTeam(SqLinkList L,int team);功能: 查找学期为team的所有记录并输出其信息;入口参数:查找的链表名称L,要查找的学期team;出口参数:无;返回值: 无; 函数原型:void SearchUnpass(SqLinkList L,float s1,float s2,float s3);功能: 查找所有有挂科记录的学生并输出其信息;入口参数:查找的链表名称L,要查找的各门学科成绩s1,s2,s3;出口参数:无;返回值: 无; 函数原型:void SqLinkListSearch(SqLinkList L);功能: 对链表进行分类查找;入口参数:要查找的链表名称L;出口参数:无;返回值: 无; 函数原型: void inputData(SqLinkList &L);功能: 输入数据,并追加一个结点;入口参数: L为要追加结点的链表名称;出口参数: 无;返回值: 无; 函数原型:void SqLinkListTraverse(SqLinkList L);功能: 输出链表中所有学生成绩列表;入口参数:L为要输出信息的链表名称;出口参数:无;返回值: 无; 函数原型:void PrintE(ElemType e);功能: 输出一个结点的所有信息;入口参数:要输出的结点名称e;出口参数:无;返回值: 无;4 使用程序的说明:本程序为一个学生成绩管理系统。对学生的成绩信息进行管理,学生的信息包括学号、姓名、学期、三门课程的成绩、平均成绩、名次。本管理系统实现学生的学号、姓名、学期、每门课程的成绩的录入,并自动按平均分排名,使用时按屏幕上的提示,输入使用代码.如下图所示: 例如:输入代码数字”1”,程序执行”输入学生成绩或已存在的学生成绩进行修改”这条小程序.输入学生个人信息后,如下图所示: 如此分别输入相应的程序代码,就执行相应的程序段. 如下的程序是按学号进行成绩排名: 当输入”6”时,执行相应的程序,即汇总一共输入学生的人数: 5 总结和体会:通过对C语言学习,尤其是这学期本班开展C语言双语教学,体会到学习难的同时,也真正了解到C语言作为一门高级的计算机语言的强大功能,特别是在当今实际生活,生产,办公,信息管理等方面的强大作用. 这次合作我们遇到了许多的困难。时间的紧迫,知识的不足,给我很大的压力。最终我还是还是完成了任务。团结就是力量是我这次最真切的感受。6 程序代码: void InitList(SqLinkList &L) { // 构造一个空的线性表L;L.head = 0; //头指针为空;L.length = 0; //长度初始为0;} void EmptyLinkList(SqLinkList &L){ //入口参数为整个线性表的数据,功能为清空线性表;Node *p;if(!L.head)printf("系统中不存在记录。 "); //头指针为空时没有学生录入;else { while (L.head){ //每个循环将下一结点赋值给头指针,并释放本结点空间,直至线性表清空; p=L.head; L.head=p->next; free(p); } //end while;L.length=0; //长度为0;printf("该管理系统学生信息已清空。 ");}//end else;} int ScanE(ElemType &e){ //输入一个学生的成绩数据结点。返回0为无效结点数据,1为有效结点数据;printf(" 学号:");scanf("%d",&e.num);if(e.num==0){ //学号为0输入不合法,重新输入; printf("学号输入不合法. "); return 0; }printf(" 姓名:");scanf("%s",&e.name);printf(" 学期:");scanf("%d",&e.team);while(e.team>12){ //系统只记录小于12的学期数; printf("输入的学期不能大于12,请重新输入:"); scanf("%d",&e.team);}printf(" 成绩A:");scanf("%f",&e.s1);printf(" 成绩B:");scanf("%f",&e.s2);printf(" 成绩C:");scanf("%f",&e.s3);return OK;} Status SqLinkListAppend(SqLinkList &L,ElemType e){ //追加一个结点到线性表中;Node *p;p=SearchNode(L,e.num); //查找学号为e.num的记录并将其地址赋给指针p; if (p==0){ //若不存在添加学号相同的结点,追加一个结点; p=(Node *)malloc(sizeof(Node)); if (!p) return ERROR; memcpy(&(p->data),&e,sizeof(ElemType)); p->next=L.head ; L.head=p; //追加的一个结点为首结点; L.length++; //表长度加1;}else { //如果该学号记录已存在,则进行修改操作;memcpy(&(p->data),&e,sizeof(ElemType));printf("该学生记录已经存在,已完成修改操作。 "); }return OK;} Link SearchNode(SqLinkList L,int NUM){ //查找学生记录,该学生的学号为NUM;Node *p;p=L.head; //p先指在头结点;while (p&& p->data.num !=NUM ) p=p->next; //如果该学生的学号不为NUM则查找下一个结点;return p;} void SearchTeam(SqLinkList L,int team){ //按学期查找并输出所有该学期存在的记录;Node *p;p=L.head;int n,sum=0; //sum记录该学期的学生总人数;printf("请输入您要查询的学生的学期:");scanf("%d",&n); printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 ");while(p&&p->next){ //如果p结点和它的下一结点不为空,且该结点的学期等于要查找学期,则格式输出所有该学期学生信息;if(p->data.team==n){PrintE(p->data);sum++; //查找到一个该学期的学生记录计数加1; } p=p->next; //转向下一结点;} //end while;if(p->data.team==n){ //如果p的下一结点为空,且本结点学期为n,则格式输出该结点信息;sum++;PrintE(p->data);}if(sum==0)printf("没有这学期的记录。 ");if(sum)printf("该学期共有%d人的记录. ",sum);} void SearchUnpass(SqLinkList L,float s1,float s2,float s3){ //查找并输出有挂科的学生信息;Node *p;p=L.head;int sum=0; //sum计数挂科总人数,初始为0;printf("以下是有一门以上不及格科目的学生的成绩: "); printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 "); while(p&&p->next){ //如果p及其下一结点为真,且该结点有一门以上科目分数低于60则输出该结点成绩并使sum计数加1; if((p->data.s1<60)||(p->data.s2<60)||(p->data.s3<60)) { PrintE(p->data); sum++; } //end if; p=p->next; //转到下一结点; } //end while; if((p->data.s1<60)||(p->data.s2<60)||(p->data.s3<60)){ //查看最后一个结点,若有挂科,sum加1并格式输出结点信息; sum++; PrintE(p->data); } if(sum==0)printf("没有不及格的记录。 "); if(sum)printf("共有%d人的挂科记录. ",sum);} void SqLinkListSearch(SqLinkList L){ //分类查找学生记录;Node *p;p=L.head;int n,reg; //reg为查询方式的指令; printf("1--按学号查询 2--按学期查询 3--挂科学生信息列表 ");printf("请您输入查询方式:");scanf("%d",&reg);if(L.length){if(reg>3)printf("对不起没有您要求的选项。 "); //若reg>3则输入不合法;else if(reg==1){ //reg==1按学号查询;printf("请输入您要查询的学生的学号:");scanf("%d",&n);while(p&&p->next&& p->data.num !=n) p=p->next; //当p和他下一结点为真时且结点数据不为要查找数据时转向下一结点; if(p->data.num==n){ //找到所要查询结点,格式输出;printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 ");PrintE(p->data); }else printf("没有您要查找的学号。 ");} //end reg==1 if ;else if(reg==2)SearchTeam(L,p->data.team); //reg==2,调用SearchTeam函数按学期查询并输出;else if(reg==3)SearchUnpass(L,p->data.s1,p->data.s2,p->data.s3); //reg==3,调用SearchUnpass函数,输出全部有挂科记录的学生信息;}//end if;else printf("系统中无记录. ");} void inputData(SqLinkList &L){ //请求输入学生成绩,则追加一个结点并输入;ElemType e;if (ScanE(e)) SqLinkListAppend(L,e); //输入数据,追加一个结点;} void SqLinkListTraverse(SqLinkList L){ //所有学生信息列表输出;Node *p;char c;p=L.head;if(p) //非空表;{printf(" 学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩 ");for (p=L.head ;p;p=p->next )PrintE(p->data); //从第一个结点开始输出所有信息直到结点为空; }else printf("系统中无记录。 "); //空表;c=getchar();} void PrintE(ElemType e){ //输出各科成绩和平均成绩;printf("%d %s %d %f %f %f %f ",e.num,e.name,e.team,e.s1,e.s2,e.s3,(e.s1+e.s2+e.s3)/3);//格式输出学生的学号、姓名、学期、A、B、C三门成绩以及平均成绩;}
2023-09-01 22:11:521

c语言的课程设计问题该怎么做?

有偿帮助解决,如有需要请浏览主页联系~
2023-09-01 22:12:184

C语言课程设计

已调通,大致功能相当#include <stdio.h> #include <stdlib.h> /*其它说明*/ #include <string.h> /*字符串函数*/ #include <time.h>#define LEN sizeof(STUDENT) typedef struct stu /*定义结构体数组用于缓存数据*/ { char num[6]; char name[5]; int score[3]; int sum; float average; int order; struct stu *next; }STUDENT; /*初始化函数*/ STUDENT *Init() { return NULL; /*返回空指针*/ } /*菜单选择函数*/ int Menu_Select() { int n; struct tm *pt; /*定义时间结构体*/ time_t t; t=time(NULL); pt=localtime(&t); /*读取系统日期并把它放到结构体中*/ printf(" 按任一键进入主菜单...... "); /*按任一键进入主菜单*/ //getch(); /*从键盘读取一个字符,但不显示于屏幕*/ system("pause"); system("cls"); /*清屏*/ printf("******************************************************************************** "); printf(" 欢迎 Welcome to "); printf(" 使用学生管理系统1.0 "); printf("*************************************MENU*************************************** "); printf(" 1. 输入学生成绩记录 Enter the record "); /*输入学生成绩记录*/ printf(" 2. 显示 Print the record "); /*显示*/ printf(" 3. 寻找 Search record on name "); /*寻找*/ printf(" 4. 删除 Delete a record "); /*删除*/ printf(" 5. 排序 Sort to make New a file "); /*排序*/ printf(" 6. 插入 Insert record to list "); /*插入*/ printf(" 7. 保存 Save the file "); /*保存*/ printf(" 8. 读取 Load the file "); /*读取*/ printf(" 9. 退出 Quit "); /*退出*/ printf(" ******************************************************************************** "); printf(" 当前系统日期:%d-%d-%d ",pt->tm_year+1900,pt->tm_mon+1,pt->tm_mday); /*显示当前系统日期*/ do { printf(" 输入你的选择Enter your choice(1~9):"); fflush(stdin); scanf("%d",&n); }while(n<1||n>9); /*如果选择项不在1~9之间则重输*/ return(n); /*返回选择项,主函数根据该数调用相应的函数*/ } /*输入函数*/ STUDENT *Create() { int i,s; STUDENT *head=NULL,*p; /* 定义函数.此函数带回一个指向链表头的指针*/ system("cls"); for(;;) { p=(STUDENT *)malloc(LEN); /*开辟一个新的单元*/ if(!p) /*如果指针p为空*/ { printf(" 输出内存溢出. Out of memory."); /*输出内存溢出*/ return (head); /*返回头指针,下同*/ } printf("输入学号Enter the num(0:list end):"); scanf("%s",p->num); if(p->num[0]=="0") break; /*如果学号首字符为0则结束输入*/ printf("输入名字Enter the name:"); scanf("%s",p->name); printf("请输入3门成绩Please enter the %d scores ",3); /*提示开始输入成绩*/ s=0; /*计算每个学生的总分,初值为0*/ for(i=0;i<3;i++) /*3门课程循环3次*/ { do { printf("成绩score%d:",i+1); scanf("%d",&p->score[i]); if(p->score[i]<0 || p->score[i]>100) /*确保成绩在0~100之间*/ printf("数据错误,请重新输入 Data error,please enter again. "); }while(p->score[i]<0 || p->score[i]>100); s=s+p->score[i]; /*累加各门成绩*/ } p->sum=s; /*将总分保存*/ p->average=(float)s/3; /*先用强制类型转换将s转换成float型,再求平均值*/ p->order=0; /*未排序前此值为0*/ p->next=head; /*将头结点做为新输入结点的后继结点*/ head=p; /*新输入结点为新的头结点*/ } return(head); } /* 显示全部记录函数*/ void Print(STUDENT *head) { int i=0; /* 统计记录条数*/ STUDENT *p; /*移动指针*/ system("cls"); p=head; /*初值为头指针*/ printf(" ************************************STUDENT************************************ "); printf("------------------------------------------------------------------------------- "); printf("| Rec | Num | Name | Sc1 | Sc2 | Sc3 | Sum | Ave | Order | "); printf("------------------------------------------------------------------------------- "); while(p!=NULL) { i++; printf("| %3d | %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f | %-5d| ", i, p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); p=p->next; } printf("------------------------------------------------------------------------------- "); printf("**************************************END************************************** "); } /*查找记录函数*/ void Search(STUDENT *head) { STUDENT *p; /* 移动指针*/ char s[5]; /*存放姓名用的字符数组*/ system("cls"); printf("请输入个姓名来查找. Please enter name for searching. "); scanf("%s",s); p=head; /*将头指针赋给p*/ while(strcmp(p->name,s) && p != NULL) /*当记录的姓名不是要找的,或指针不为空时*/ p=p->next; /*移动指针,指向下一结点*/ if(p!=NULL) /*如果指针不为空*/ { printf(" *************************************FOUND************************************ "); printf("------------------------------------------------------------------------------- "); printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order | "); printf("------------------------------------------------------------------------------- "); printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d| ", p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); printf("------------------------------------------------------------------------------- "); printf("***************************************END************************************** "); } else printf(" 没有该学生 There is no num %s student on the list. ",s); /*显示没有该学生*/ } /*删除记录函数*/ STUDENT *Delete(STUDENT *head) { //int n; STUDENT *p1,*p2; /*p1为查找到要删除的结点指针,p2为其前驱指针*/ char c,s[6]; /*s[6]用来存放学号,c用来输入字母*/ system("cls"); printf("请输入要删除的学号 Please enter the Deleted num: "); scanf("%s",s); p1=p2=head; /*给p1和p2赋初值头指针*/ while(strcmp(p1->num,s) && p1 != NULL) /*当记录的学号不是要找的,或指针不为空时*/ { p2=p1; /*将p1指针值赋给p2作为p1的前驱指针*/ p1=p1->next; /*将p1指针指向下一条记录*/ } if(strcmp(p1->num,s)==0) /*学号找到了*/ { printf("**************************************FOUND************************************ "); printf("------------------------------------------------------------------------------- "); printf("| Num | Name | sc1 | sc2 | sc3 | Sum | Ave | Order | "); printf("------------------------------------------------------------------------------- "); printf("| %4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d| ", p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->sum,p1->average,p1->order); printf("------------------------------------------------------------------------------- "); printf("***************************************END************************************** "); printf(" 是否要删除,输入Y删除,N则退出 Are you sure to Delete the student Y/N ?"); /*提示是否要删除,输入Y删除,N则退出*/ for(;;) { scanf("%c",&c); if(c=="n"||c=="N") break; /*如果不删除,则跳出本循环*/ if(c=="y"||c=="Y") { if(p1==head) /*若p1==head,说明被删结点是首结点*/ head=p1->next; /*把第二个结点地址赋予head*/ else p2->next=p1->next; /*否则将一下结点地址赋给前一结点地址*/ //n=n-1; printf(" 学号为(Num): %s 学生以被删除(student have been Deleted.) ",s); printf("别忘了保存. Don"t forget to Save. ");break; /*删除后就跳出循环*/ } } } else printf(" 没有这个学生在表上 There is no num %s student on the list. ",s); /*找不到该结点*/ return(head); } /*排序函数*/ STUDENT *Sort(STUDENT *head) { int i=0; /*保存名次*/ STUDENT *p1,*p2,*t,*temp; /*定义临时指针*/ temp=head->next; /*将原表的头指针所指的下一个结点作头指针*/ head->next=NULL; /*第一个结点为新表的头结点*/ while(temp!=NULL) /*当原表不为空时,进行排序*/ { t=temp; /*取原表的头结点*/ temp=temp->next; /*原表头结点指针后移*/ p1=head; /*设定移动指针p1,从头指针开始*/ p2=head; /*设定移动指针p2做为p1的前驱,初值为头指针*/ while(t->average<p1->average&&p1!=NULL) /*作成绩平均分比较*/ { p2=p1; /*待排序点值小,则新表指针后移*/ p1=p1->next; } if(p1==p2) /*p1==p2,说明待排序点值大,应排在首位*/ { t->next=p1; /*待排序点的后继为p*/ head=t; /*新头结点为待排序点*/ } else /*待排序点应插入在中间某个位置p2和p1之间,如p为空则是尾部*/ { t->next=p1; /*t的后继是p1*/ p2->next=t; /*p2的后继是t*/ } } p1=head; /*已排好序的头指针赋给p1,准备填写名次*/ while(p1!=NULL) /*当p1不为空时,进行下列操作*/ { i++; /*结点序号*/ p1->order=i; /*将结点序号赋值给名次*/ p1=p1->next; /*指针后移*/ } printf("排序成功 Sorting is sucessful. "); /*排序成功*/ return (head); } /*插入记录函数*/ STUDENT *Insert(STUDENT *head,STUDENT *New) { STUDENT *p0,*p1,*p2; //int n; int sum1,i; p1=head; /*使p1指向第一个结点*/ p0=New; /*p0指向要插入的结点*/ printf(" Please enter a New record. "); /*提示输入记录信息*/ printf("输入学号Enter the num:"); scanf("%s",New->num); printf("输入名字Enter the name:"); scanf("%s",New->name); printf("Please enter the %d scores. ",3); sum1=0; /*保存新记录的总分,初值为0*/ for(i=0;i<3;i++) { do { printf("成绩score%d:",i+1); scanf("%d",&New->score[i]); if(New->score[i]>100||New->score[i]<0) printf("数据错误Data error,please enter again. "); }while(New->score[i]>100||New->score[i]<0); sum1=sum1+New->score[i]; /*累加各门成绩*/ } New->sum=sum1; /*将总分存入新记录中*/ New->average=(float)sum1/3; New->order=0; if(head==NULL) /*原来的链表是空表*/ { head=p0; p0->next=NULL; } /*使p0指向的结点作为头结点*/ else { while((p0->average<p1->average)&&(p1->next!=NULL)) { p2=p1; /*使p2指向刚才p1指向的结点*/ p1=p1->next; /*p1后移一个结点*/ } if(p0->average>=p1->average) { if(head==p1)head=p0; /*插到原来第一个结点之前*/ else p2->next=p0; /*插到p2指向的结点之后*/ p0->next=p1; } else { p1->next=p0; p0->next=NULL; } /*插到最后的结点之后*/ } //n=n+1; /*结点数加1*/ head=Sort(head); /*调用排序的函数,将学生成绩重新排序*/ printf(" 学生Student %s 已被更新have been inserted. ",New->name); printf("不要忘了保存Don"t forget to Save the New file. "); return(head); } /*保存数据到文件函数*/ void Save(STUDENT *head) { FILE *fp; /*定义指向文件的指针*/ STUDENT *p; /* 定义移动指针*/ char outfile[10]; printf("输出文件例如:c:\score Enter outfile name,for example c:\score "); scanf("%s",outfile); if((fp=fopen(outfile,"w"))==NULL) /*为输出打开一个二进制文件,为只写方式*/ { printf("打不开文件Cannot open the file "); return; /*若打不开则返回菜单*/ } printf(" 保存中...Saving the file...... "); p=head; /*移动指针从头指针开始*/ while(p!=NULL) /*如p不为空*/ { fwrite(p,LEN,1,fp); /*写入一条记录*/ p=p->next; /*指针后移*/ } fclose(fp); /*关闭文件*/ printf("保存成功....Save the file successfully! "); } /* 从文件读数据函数*/ STUDENT *Load() { STUDENT *p1,*p2,*head=NULL; /*定义记录指针变量*/ FILE *fp; /* 定义指向文件的指针*/ char infile[10]; printf("倒入文件例如:c:\score Enter infile name,for example c:\score "); scanf("%s",infile); if((fp=fopen(infile,"r"))==NULL) /*打开一个二进制文件,为只读方式*/ { printf("打不开文件Can not open the file. "); return(head); } printf(" 寻找文件...Loading the file! "); p1=(STUDENT *)malloc(LEN); /*开辟一个新单元*/ if(!p1) { printf("内存溢出!Out of memory! "); return(head); } head=p1; /*申请到空间,将其作为头指针*/ while(!feof(fp)) /*循环读数据直到文件尾结束*/ { if(fread(p1,LEN,1,fp)!=1) break; /*如果没读到数据,跳出循环*/ p1->next=(STUDENT *)malloc(LEN); /*为下一个结点开辟空间*/ if(!p1->next) { printf("Out of memory! "); return (head); } p2=p1; /*使p2指向刚才p1指向的结点*/ p1=p1->next; /*指针后移,新读入数据链到当前表尾*/ } p2->next=NULL; /*最后一个结点的后继指针为空*/ fclose(fp); printf(" 你成功的从文件中读取了数据! You have success to read data from the file! "); return (head); } /*主函数界面*/ int main() { STUDENT *head,New; head=Init(); //链表初始化,使head的值为NULL for(;;) //循环无限次 { switch(Menu_Select()) { case 1:head=Create();break; case 2:Print(head);break; case 3:Search(head);break; case 4:head=Delete(head);break; case 5:head=Sort(head);break; case 6:head=Insert(head,&New);break; //&New表示返回地址 case 7:Save(head);break; case 8:head=Load(); break; case 9:exit(0); //如菜单返回值为9则程序结束 } } return 0;}
2023-09-01 22:12:341

C语言课程设计

告诉个邮箱 或者QQ 可以传的,粘贴不了
2023-09-01 22:12:513

C语言课程设计

3、班级通讯录管理系统设计与实现 以本班同学的具体数据为背景,设计一个本班同学实现以下功能: 1)通讯录编辑(添加、删除) ; 2)按不同的项进行查找; 3)对已存在的通讯录按不同的项排序; 4)将通讯录写入文件; 5)从文件读入通讯录。 备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。 链接: https://pan.baidu.com/s/1mq8kqN3BvK0IvZBEUP9Oag 提取码: 1111 6、成绩记录簿设计与实现 实现以下功能: 1)创建信息并以磁盘文件保存; 2)读取磁盘文件并显示输出所有学生的成绩; 3)按学号或姓名查询成绩; 4)添加成绩记录; 5)修改指定姓名或学号的学生的成绩并可存盘; 6)显示输出60分以下、60 79、80 89、90分以上各分数段的学生信息。 备注:每个学生信息包括:学号、姓名、C语言成绩。 链接: https://pan.baidu.com/s/1mq8kqN3BvK0IvZBEUP9Oag 提取码: 1111 7、学生籍贯信息记录簿设计与实现 实现以下功能: 1)创建信息并以磁盘文件保存; 2)读取磁盘文件并显示输出所有学生的籍贯信息; 3)按学号或姓名查询其籍贯; 4)按籍贯查询并输出该籍贯的所有学生; 5)能添加、删除和修改学生的籍贯信息; 6)显示输出四川籍和非四川籍学生的信息并可分别存盘。 备注:每个学生信息包括:学号、姓名、籍贯 链接: https://pan.baidu.com/s/1mq8kqN3BvK0IvZBEUP9Oag 提取码: 1111 9、图书信息管理系统设计与实现 实现以下功能: 1)系统以菜单方式工作; 2)图书信息录入功能(图书信息用文件保存); 3)图书信息浏览功能; 4)查询和排序功能; 备注:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。 链接: https://pan.baidu.com/s/1mq8kqN3BvK0IvZBEUP9Oag 提取码: 1111 10、学生信息管理系统设计与实现 实现以下功能: 1)系统以菜单方式工作; 2)学生信息录入功能(学生信息用文件保存) ; 3)学生信息浏览功能; 4)查询、排序功能(至少两种查询依据和两种排序依据); 5)学生信息删除、修改功能。 备注:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E- mail等。 链接: https://pan.baidu.com/s/1mq8kqN3BvK0IvZBEUP9Oag 提取码: 1111 12、职工工作量统计系统设计与实现 完成以下功能: 1)输入职工工号和完成的产品数量,程序允许同- -职工有多次输入,由程序对 其完成的产品数量实现累计; 2)按完成数量对职工排序,并确定名次; 3)按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们 的工号(工号由小到大顺序输出)。 链接: https://pan.baidu.com/s/1mq8kqN3BvK0IvZBEUP9Oag 提取码: 1111
2023-09-01 22:13:301

c语言课程设计(学生成绩管理)

1.用链表读入数据2.用冒泡法排序3.输出数据有不懂的再问我!
2023-09-01 22:13:423

C语言课程设计,贪吃蛇应该怎么做?

2.1程序功能介绍贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。2.2程序整体设计说明一个游戏要有开始部分,运行部分,结束部分(实际上开始部分与运行部分是一体的)。2.2.1设计思路这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块2.2.2数据结构设计及用法说明 开始部分:游戏是运行在图形模式下的,所以第一步一定是初始化图形模式,接着要有开始的界面,就像书有封面一样,我设置了一个游戏的标题画面,除了游戏标题画面我还设置了一个欢迎画面。标题画面以后,还要为游戏的运行部分作初始化,包括绘制游戏运行时的背景,对游戏某些重 要变量的初始化。运行部分:作为游戏的核心部分,这里包括的函数比较多,也就是模块比较多,首先让我模拟一下贪吃蛇的游戏模式:某个世界上突然出现一条蛇,它很短,它的运动神经异常,它没法停止自己的多动症在它的世界里就只有食物,它很饿,也很贪吃;同样在不明原因的情况下,食物从天而降,可惜的是没有落到嘴边;饥饿的主人公,不管它有没有毒,也不问食物的来历,径直向食物爬去;它吃到食物啦,它超出想象的同化能力让食物很快的成为自己身体的一部分,它的身子变长啦。当它吃到第一颗食物时,上帝有给它第二颗,于是它吃了第二颗,于是又变长了,于是又有第三颗……它的身子是一直的加长,它不管自己过长身体的麻烦——转身不便,继续吃下去,现在它是直接把巴张大,好让食物有个绿色通道。但是在某天的下午,它咬到了自己,它才想起自己是一条毒蛇,于是晕死过去(不是毒死);又或者它往食物冲锋的时候,它失去控制,撞到了墙上。第一轮循环:第一步,出现食物;第二步,蛇不停运动;第三步,检查蛇是撞到自己或墙壁;由第四步起游戏有两条支线(A、B):A :第四步,蛇没有碰到自己或墙壁,蛇继续前进,绘制蛇的动作;第五步,判断蛇是否吃到食物,如果蛇吃到食物,身子变长,原来的食物消失;第六步,让玩家输入控制指令,让蛇在下一轮循环的第二步改变运动方向;第七步,第二轮循环的第一步,重复第一轮的步骤;B:第四步,蛇碰到自己或墙壁,终止游戏。结束部分:游戏结束时,显示“GAME OVER”,已经是约定俗成的规律了,我的游戏也不例外。除了游戏结束画面外,我还设置了一个游戏退出画面,“善始善终”嘛。有了上述的大致划分,我把整个程序划分成(13+2)个模块(其实就是函数)2.2.3程序结构(流程图)图2.1流程图依据所需要处理的任务要求,规划输入数据和输出结果,决定存放数据的数据结构。C语言中数据结构集中体现在数据类型上,因此在进行C语言程序设计时,应统筹规划程序中所使用的变量,数组,指针等,以及它们的类型等。这点是很重要的,如果在此期间选择不合适的变量或者数组,将来修改就十分困难。现在分析一下贪吃蛇游戏中的元素,继而得出与它们对应的在程序中的描述:蛇:基本描述:长度,颜色,位置。对应数据与数据类型:长度—虽然可以用坐标表示,但是这样的话,运算量将很大,所以换算成较大的单位—节数,以固定长度的每节描述;坐标--整型;颜色--整型; 位置--X,Y坐标。增加的描述:蛇运动的方向,蛇的生命。对应数据与数据类型:这些描述是为了与程序的按键的输入部分与判断游戏结束部分相联系而设的。方向只有四个方向:上下左右。可以设置与之对应的四个整型数:3、4、2、1。生命就只有两种情况:死或生,对应0或1。食物: 基本描述:颜色,位置。对应数据与数据类型:由于颜色设成固定的,所以不再讨论。位置—X、Y坐标。增加的描述:食物的存在。对应数据与数据类型:这是为了避免重复出现食物而设置的,与绘制食物的函数有联系。只有两个值:0或1(没有食物或有食物)其他的元素:墙,由于它在显示上是作为背景而存在的,所以并没有什么说明实际的墙壁就是四条直线组成的边框,由坐标描述。还需要的变量:键盘键入的键值(作为全局变量,整型);经常要使用的循环变量;自定义的填充图案;说明文字的字符数组;游戏的记分;游戏的速度(蛇的速度)。图2.2蛇的不停运动的关键算法的流程图2.2.4各模块的功能及程序说明主要模块的实现思路和算法的流程图说明:关键所在——蛇不停移动的Snakemove():蛇的不停移动,就是蛇的下一节取代前一节的位置,在计算机中就是蛇下一节的位置坐标变成前一节的位置坐标。在上文中,已定义蛇的位置坐标为数组类型,一组坐标对应一节的位置,假设有i+1节,由0到i节,第i节的坐标取第i-1节的坐标,第i-1节的坐标取第i-2节的坐标……直到第1节取第0节的坐标。而第0节的坐标,即蛇头的坐标要往某个方向变化,变化量为蛇每节的长度。蛇的这种坐标轮换需要循环语句使其继续下去。 2.2.5程序结果运行程序得到如下初始界面图:图2.3程序结果图用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示:图2.4程序结果图蛇没有碰到自己或墙壁,蛇继续前进:图2.5程序结果图游戏结束时,显示“GAME OVER”图2.6程序结果图2.3程序源代码及注释#define N 200#include <graphics.h>#include <stdlib.h>#include <dos.h>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000;/*游戏速度自己调整*/struct Food{ int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/}food;/*食物的结构体*/struct Snake{ int x[N]; int y[N]; int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/}snake;void Init(void);/*图形驱动*/void Close(void);/*图形结束*/void DrawK(void);/*开始画面*/void GameOver(void);/*结束游戏*/void GamePlay(void);/*玩游戏具体过程*/void PrScore(void);/*输出成绩*//*主函数*/void main(void){ Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/}/*图形驱动*/void Init(void){ int gd=DETECT,gm; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,"c:\program files\winyes\tc20h\bgi"); cleardevice();}/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/void DrawK(void){/*setbkcolor(LIGHTGREEN);*/ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ for(i=50;i<=600;i+=10)/*画围墙*/ { rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ } for(i=40;i<=450;i+=10) { rectangle(50,i,59,i+10); /*左边*/ rectangle(601,i,610,i+10);/*右边*/ }}/*玩游戏具体过程*/void GamePlay(void){ randomize();/*随机数发生器*/ food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/ snake.life=0;/*活着*/ snake.direction=1;/*方向往右*/ snake.x[0]=100;snake.y[0]=100;/*蛇头*/ snake.x[1]=110;snake.y[1]=100; snake.node=2;/*节数*/ PrScore();/*输出得分*/ while(1)/*可以重复玩游戏,压ESC键结束*/ { while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/ { if(food.yes==1)/*需要出现新食物*/ { food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ food.x++; while(food.y%10!=0) food.y++; food.yes=0;/*画面上有食物了*/ } if(food.yes==0)/*画面上有食物了就要显示*/ { setcolor(GREEN); rectangle(food.x,food.y,food.x+10,food.y-10); } for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ { snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; } /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) { case 1:snake.x[0]+=10;break; case 2: snake.x[0]-=10;break; case 3: snake.y[0]-=10;break; case 4: snake.y[0]+=10;break; } for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ { if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) { GameOver();/*显示失败*/ snake.life=1; break; } } if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55|| snake.y[0]>455)/*蛇是否撞到墙壁*/ { GameOver();/*本次游戏结束*/ snake.life=1; /*蛇死*/ } if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ break; if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/ { setcolor(0);/*把画面上的食物东西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ snake.node++;/*蛇的身体长一节*/ food.yes=1;/*画面上需要出现新的食物*/ score+=10; PrScore();/*输出新得分*/ } setcolor(4);/*画出蛇*/ for(i=0;i<snake.node;i++) rectangle(snake.x[i],snake.y[i],snake.x[i]+10, snake.y[i]-10); delay(gamespeed); setcolor(0);/*用黑色去除蛇的的最后一节*/ rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } /*endwhile(!kbhit)*/ if(snake.life==1)/*如果蛇死就跳出循环*/ break; key=bioskey(0);/*接收按键*/ if(key==ESC)/*按ESC键退出*/ break; else if(key==UP&&snake.direction!=4)/*判断是否往相反的方向移动*/ snake.direction=3; else if(key==RIGHT&&snake.direction!=2) snake.direction=1; else if(key==LEFT&&snake.direction!=1) snake.direction=2; else if(key==DOWN&&snake.direction!=3) snake.direction=4; }/*endwhile(1)*/}/*游戏结束*/void GameOver(void){ cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch();}/*输出成绩*/void PrScore(void){ char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(str,"score:%d",score); outtextxy(55,20,str);}/*图形结束*/void Close(void){ getch(); closegraph();}第3章 课程设计总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之 后,我们把前面所学过的知识又重新温故了一遍。我做的是做贪吃蛇游戏。简单的一个,但对我一个初学者来说却是一个很大的困难。更加是第一次做课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以一下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。 经过一波三折,终于开始正式编程。编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。 通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过 程中,我会更加注视实践操作,使自己便好地学好计算机。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
2023-09-01 22:14:211

C语言课程设计

要许多时间来编啊
2023-09-01 22:14:344

C语言课程设计难吗?C语言这门课难还是课程设计难?

《乾隆抄本百廿回红楼梦稿》,咸丰年间于源题曰“红楼梦稿”,杨继振旧藏,亦称“杨藏本”、“脂稿本”。第78
2023-09-01 22:14:467

C语言课程设计任务——学生成绩统计程序设计

你好
2023-09-01 22:15:214

C语言课程设计-仓库货物管理系统

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct Info { char num[15]; char name[15]; double price; int number; }; char menu() { char x; puts(" Welcome to Cargo Warehouse Management Systerm "); puts(" ************************ MENU ************************ "); puts(" 1.Append inform "); puts(" 2.Display inform "); puts(" 3.Search inform "); puts(" 4.Modify inform "); puts(" 5.Delete inform "); puts(" 6.Exit "); puts(" ****************************************************** "); printf("Choose your number(1-6):[ ]"); while(1) { x=getchar(); getchar(); if(x<"1"||x>"6") printf("Input error,please input again(1-6):[ ]"); else break; } return x; 这个只是目录 具体的 你加 我
2023-09-01 22:15:411

C语言课程设计—学生成绩管理系统注意要求,谢谢

#include "stdio.h" #include "stdlib.h" #include "string.h" int shoudsave=0; /* */ struct student { char num[10];/* 学号 */ char name[20]; char class[10];char term[2];int ygrade;int cgrade; int mgrade; int egrade;int totle;int ave; char neartime[10];/* 最近更新时间 */ };typedef struct node { struct student data; struct node *next; }Node,*Link;void menu() { printf("********************************************************************************"); printf(" 1登记学生资料 2删除学生资料 "); printf(" 3查询学生资料 4修改学生资料 "); printf(" 5保存学生资料 0退出系统 "); printf("******************************************************************************** "); }void printstart() { printf("----------------------------------------------------------------------- "); } void Wrong() { printf(" =====>提示:输入错误! "); }void Nofind() { printf(" =====>提示:没有找到该学生! "); }void printc() /* 本函数用于输出中文 */ { printf(" 学号 姓名 班级 学期 语言成绩 英语成绩 数学成绩 C语言成绩 总分 平均分 ");}void printe(Node *p)/* 本函数用于输出英文 */ { printf("%-12s%s %s \%s %d %d %d %d %d ",p->data.num,p->data.name,p->data.class,p->data.term,p->data.ygrade,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);}Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */ { Node *r; if(strcmp(nameornum,"num")==0) /* 按学号查询 */{ r=l->next; while(r!=NULL) { if(strcmp(r->data.num,findmess)==0) return r; r=r->next; } } else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */{ r=l->next; while(r!=NULL) { if(strcmp(r->data.name,findmess)==0) return r; r=r->next; } } return 0; }void Add(Link l) /* 增加学生 */ { Node *p,*r,*s; char num[10]; r=l; s=l->next; while(r->next!=NULL) r=r->next; /* 将指针置于最末尾 */ while(1) { printf("请你输入学号(以"0"返回上一级菜单:)");scanf("%s",num);if(strcmp(num,"0")==0)break; while(s) { if(strcmp(s->data.num,num)==0){ printf("=====>提示:学号为"%s"的学生已经存在,若要修改请你选择"4 修改"! ",num); printstart(); printc(); printe(s); printstart(); printf(" "); return; } s=s->next; }p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num); printf("请你输入姓名:"); scanf("%s",p->data.name); getchar(); printf("请你输入班级:");scanf("%s",p->data.class);getchar(); printf("请你输入学期:");scanf("%s",p->data.term);getchar(); printf("请你输入语文成绩:");scanf("%d",&p->data.ygrade);getchar(); printf("请你输入c语言成绩:"); scanf("%d",&p->data.cgrade); getchar(); printf("请你输入数学成绩:"); scanf("%d",&p->data.mgrade); getchar(); printf("请你输入英语成绩:"); scanf("%d",&p->data.egrade); getchar(); p->data.totle=p->data.ygrade+p->data.egrade+p->data.cgrade+p->data.mgrade;p->data.ave=p->data.totle / 3; /* 信息输入已经完成 */ p->next=NULL; r->next=p; r=p; shoudsave=1;} }void Qur(Link l) /* 查询学生 */ { int sel; char findmess[20]; Node *p;if(!l->next) { printf(" =====>提示:没有资料可以查询! "); return;} printf(" =====>1按学号查找 =====>2按姓名查找 "); scanf("%d",&sel); if(sel==1)/* 学号 */ { printf("请你输入要查找的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf(" 查找结果 "); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else if(sel==2) /* 姓名 */ { printf("请你输入要查找的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { printf(" 查找结果 "); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else Wrong();}void Del(Link l) /* 删除 */ { int sel; Node *p,*r; char findmess[20]; if(!l->next) { printf(" =====>提示:没有资料可以删除! "); return; } printf(" =====>1按学号删除 =====>2按姓名删除 "); scanf("%d",&sel); if(sel==1) { printf("请你输入要删除的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf(" =====>提示:该学生已经成功删除! "); shoudsave=1; } else Nofind(); } else if(sel==2) { printf("请你输入要删除的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf(" =====>提示:该学生已经成功删除! "); shoudsave=1; } else Nofind(); } else Wrong(); }void Modify(Link l) { Node *p; char findmess[20]; if(!l->next) { printf(" =====>提示:没有资料可以修改! "); return; } printf("请你输入要修改的学生学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("请你输入新学号(原来是%s):",p->data.num); scanf("%s",p->data.num);printf("请你输入新姓名(原来是%s):",p->data.name);scanf("%s",p->data.name); getchar(); printf("请你输入新班级(原来是%s):",p->data.class);scanf("%s",p->data.class);getch();printf("请你输入新学期(原来是%s):",p->data.term);scanf("%s",p->data.term);getchar();printf("请你输入新的语文成绩(原来是%d分):",p->data.ygrade);scanf("%d",&p->data.ygrade);getchar(); printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade); scanf("%d",&p->data.cgrade); getchar(); printf("请你输入新的数学成绩(原来是%d分):",p->data.mgrade); scanf("%d",&p->data.mgrade); getchar(); printf("请你输入新的英语成绩(原来是%d分):",p->data.egrade); scanf("%d",&p->data.egrade); p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade; p->data.ave=p->data.totle/3; printf(" =====>提示:资料修改成功! "); shoudsave=1; } else Nofind();}void Disp(Link l) { int count=0; Node *p; p=l->next;if(!p) { printf(" =====>提示:没有资料可以显示! "); return; } printf(" 显示结果 "); printstart(); printc(); printf(" "); while(p) { printe(p); p=p->next; } printstart(); printf(" "); }void Tongji(Link l) { Node *pm,*pe,*pc,*pa; /* 用于指向不及格学生的接点 */Node *r=l->next; if(!r) { printf(" =====>提示:没有资料可以统计! "); return ; } pm=pe=pc=pa=r;while(r!=NULL) { if(r->data.ygrade<60)pa=r;if(r->data.cgrade<60)pc=r; if(r->data.mgrade<60)pm=r; if(r->data.egrade<60)pe=r; r=r->next;} printf("------------------------------统计结果-------------------------------- "); printf("语文不及格: %s %d分 ",pe->data.name,pe->data.ygrade);printf("英语不及格: %s %d分 ",pe->data.name,pe->data.egrade);printf("数学不及格: %s %d分 ",pm->data.name,pm->data.mgrade);printf("c语言不及格: %s %d分 ",pc->data.name,pc->data.cgrade);printstart(); }void Sort(Link l) { Link ll; Node *p,*rr,*s;ll=(Link)malloc(sizeof(Node)); /* 用于做新的连表 */ ll->next=NULL;if(l->next==NULL) { printf(" =====>提示:没有资料可以排序! "); return ; } p=l->next; while(p) { s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息 */ s->data=p->data; s->next=NULL;rr=ll; while(rr->next!=NULL && rr->next->data.totle>=p->data.totle) rr=rr->next; if(rr->next==NULL) rr->next=s; else { s->next=rr->next; rr->next=s; } p=p->next; } free(l); l->next=ll->next; printf(" =====>提示:排序已经完成! "); }void Save(Link l) { FILE* fp; Node *p; int flag=1,count=0; fp=fopen("c:\student","wb"); if(fp==NULL) { printf(" =====>提示:重新打开文件时发生错误! "); exit(1); } p=l->next;while(p) { if(fwrite(p,sizeof(Node),1,fp)==1) { p=p->next; count++; } else { flag=0; break; } } if(flag) { printf(" =====>提示:文件保存成功.(有%d条记录已经保存.) ",count); shoudsave=0; } fclose(fp); }void main() { Link l;/* 连表 */ FILE *fp; /* 文件指针 */ int sel; char ch; char jian;int count=0; Node *p,*r;l=(Node*)malloc(sizeof(Node)); l->next=NULL; r=l;fp=fopen("C:\student","rb"); if(fp==NULL) { printf(" =====>提示:文件还不存在,是否创建?(y/n) "); scanf("%c",&jian); if(jian=="y"||jian=="Y") fp=fopen("C:\student","wb"); else exit(0); } printf(" =====>提示:文件已经打开,正在导入记录...... ");while(!feof(fp)) { p=(Node*)malloc(sizeof(Node)); if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */ { p->next=NULL; r->next=p; r=p; /* 将该接点挂入连中 */ count++; } }fclose(fp); /* 关闭文件 */ printf(" =====>提示:记录导入完毕,共导入%d条记录. ",count);while(1) { menu(); printf("请你选择操作:"); scanf("%d",&sel);if(sel==0) { if(shoudsave==1) { getchar(); printf(" =====>提示:资料已经改动,是否将改动保存到文件中(y/n)? "); scanf("%c",&ch); if(ch=="y"||ch=="Y") Save(l); } printf(" =====>提示:你已经退出系统,再见! "); break; } switch(sel) { case 1:Add(l);break; /* 增加学生 */ case 2:Del(l);break;/* 删除学生 */ case 3:Qur(l);break;/* 查询学生 */ case 4:Modify(l);break;/* 修改学生 */ case 5:Save(l);break;/* 保存学生 */ case 9:printf(" ==========帮助信息========== ");break; default: Wrong();getchar();break; } } }
2023-09-01 22:16:383

c语言课程设计

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct record { char id[10]; char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; int num=0;//外部变量num为文件中的纪录数 FILE *fp; void mainmenu();//主菜单 void newrecord();//新添纪录 void searchmenu();//查询菜单 void searchbyid();//按学号查询 void searchbyname();//按姓名查询 void searchbyphone();//按电话查询 void deletemenu();//删除菜单 void deleteall();//删除所有 void deleteone();//删除单个 void showall();//显示所有 void readfromfile();//读取文件 void writetofile();//写入文件 void deletebyid();//按学号删除 void deletebyname();//按姓名删除 void listbyid();//按学号排序 void listbyname();//按姓名排序 void listmenu();//排序菜单 void main() { readfromfile(); while (1) { mainmenu(); } } void readfromfile()//从文件导入 { if((fp=fopen("student.bin","rb"))==NULL) { printf(" 通讯录文件不存在"); if ((fp=fopen("student.bin","wb"))==NULL) { printf(" 建立失败"); exit(0); } else { printf(" 通讯录文件已建立"); printf(" 按任意键进入主菜单"); getch(); return; } exit(0); } fseek(fp,0,2); /*文件位置指针移动到文件末尾*/ if (ftell(fp)>0) /*文件不为空*/ { rewind(fp); /*文件位置指针移动到文件开始位置*/ for (num=0;!feof(fp) && fread(&student[num],sizeof(struct record),1,fp);num++); printf(" 文件导入成功"); printf(" 按任意键返回主菜单"); getch(); return; } printf(" 文件导入成功"); printf(" 通讯录文件中无任何纪录"); printf(" 按任意键返回主菜单"); getch(); return; } void mainmenu()//主菜单 { char choic; system("cls"); printf(" ******************** 主菜单 ********************"); printf(" *********** 1-新添纪录 2-查询菜单 ************"); printf(" *********** 3-删除菜单 4-记录排序 ************"); printf(" *********** 5-保存退出 6-不保存退出***********"); printf(" ************************************************"); printf(" 请选择:"); choic=getch(); switch (choic) { case "1":newrecord();break; case "2":searchmenu();break; case "3":deletemenu();break; case "4":listmenu();break; case "5":writetofile();break; case "6":exit(0); default:mainmenu(); } } void searchmenu()//查询菜单 { char choic; system("cls"); printf(" ******************* 查询菜单 *******************"); printf(" ********** 1-显示所有 2-按学号查询 ************"); printf(" ********** 3-按姓名查询4-按电话查询 ************"); printf(" ********** 5-返回主菜单 ************"); printf(" ************************************************"); printf(" 请选择:"); choic=getch(); switch (choic) { case "1":showall();break; case "2":searchbyid();break; case "3":searchbyname();break; case "4":searchbyphone();break; case "5":mainmenu();break; } } void deletemenu()//删除菜单 { char choic; if(num==0) { printf(" 对不起,文件中无任何纪录"); printf(" 按任意键返回主菜单"); getch(); return; } system("cls"); printf(" ******************* 删除菜单 *******************"); printf(" *********** 1-删除所有 2-删除单个 ***********"); printf(" *********** 3-返回主菜单 ***********"); printf(" ************************************************"); printf(" 请选择:"); choic=getch(); switch (choic) { case "1":deleteall();break; case "2":deleteone();break; case "3":mainmenu();break; default:mainmenu();break; } } void deleteall()//删除所有 { printf(" 确认删除?(y/n)"); if (getch()=="y") { fclose(fp); if ((fp=fopen("student.bin","wb"))==NULL) { printf(" 不能打开文件,删除失败"); readfromfile(); } num=0; printf(" 纪录已删除,按任意键返回主菜单"); getch(); return; } else return; } void deletebyname()//按姓名删除 { int a=0; int findmark=0; int j; int deletemark=0; int i; char name[20]; printf(" 请输入要删除学生姓名:"); scanf("%s",name); for (i=a;i<num;i++) { if (strcmp(student[i].name,name)==NULL) { printf(" 以下是您要删除的学生纪录:"); findmark++; printf(" ________________________________"); printf(" 学号: %s",student[i].id); printf(" 姓名: %s",student[i].name); printf(" 电话: %s",student[i].phone); printf(" 地址: %s",student[i].adress); printf(" e-mail:%s",student[i].e_mail); printf(" ________________________________"); printf(" 是否删除?(y/n)"); if (getch()=="y") { for (j=i;j<num-1;j++) /*纪录移动,从stud数组中删除之*/ student[j]=student[j+1]; num--; deletemark++; printf(" 删除成功"); if((i+1)<num) { printf(" 是否继续删除相同姓名的同学信息?(y/n)"); if (getch()=="y") { a=i; continue; } } printf(" 是否继续删除?(y/n)"); if (getch()=="y") deletebyname(); return; } if((i+1)<num) { printf(" 是否继续删除相同姓名的同学信息?(y/n)"); if (getch()=="y") { a=i; continue; } } } else continue; } if ((deletemark==0)&&(findmark==0)) { printf(" 没有该同学的纪录"); printf(" 是否继续删除?(y/n)"); if (getch()=="y") deletebyid(); return; return; } else if (findmark!=0) { printf(" 没有重名信息"); printf(" 没有该同学的纪录"); printf(" 是否继续删除?(y/n)"); if (getch()=="y") deletebyid(); return; return; } } void deletebyid()//按学号删除 { int i,j; int deletemark=0; char id[20]; printf(" 请输入要删除学生学号:"); scanf("%s",id); if(num==0) { printf(" 对不起,文件中无任何纪录"); printf(" 按任意键返回主菜单"); getch(); return; } for (i=0;i<num;i++) { if (strcmp(student[i].id,id)==NULL) { printf(" 以下是您要删除的学生纪录:"); printf(" 学号: %s",student[i].id); printf(" 姓名: %s",student[i].name); printf(" 电话: %s",student[i].phone); printf(" 地址: %s",student[i].adress); printf(" e-mail:%s",student[i].e_mail); printf(" 是否删除?(y/n)"); if (getch()=="y") { for (j=i;j<num-1;j++) /*纪录移动,从stud数组中删除之*/ student[j]=student[j+1]; num--; deletemark++; printf(" 删除成功"); printf(" 是否继续删除?(y/n)"); if (getch()=="y") deletebyid(); return; } else return; } continue; } if (deletemark==0) { printf(" 没有该同学的纪录"); printf(" 是否继续删除?(y/n)"); if (getch()=="y") deletebyid(); return; } } void newrecord()//添加纪录 { printf(" **************** 请输入学生信息 **************** "); printf(" 输入学号:"); scanf("%s",&student[num].id); printf(" 输入姓名:"); scanf("%s",&student[num].name); printf(" 输入电话号码:"); scanf("%s",&student[num].phone); printf(" 输入地址:"); scanf("%s",&student[num].adress); printf(" 输入邮编:"); scanf("%s",&student[num].postcode); printf(" 输入e-mail:"); scanf("%s",&student[num].e_mail); num++; printf(" 是否继续添加?(Y/N):"); if (getch()=="y") newrecord(); return; } void showall()//显示所有 { int i; system("cls"); if(num!=0) { printf(" *************** 以下为通讯录所有信息************"); for (i=0;i<num;i++) { printf(" 学号: %s",student[i].id); printf(" 姓名: %s",student[i].name); printf(" 电话: %s",student[i].phone); printf(" 地址: %s",student[i].adress); printf(" 邮编: %s",student[i].postcode); printf(" e-mail:%s",student[i].e_mail); printf(" "); if (i+1<num) { printf(" __________________________"); system("pause"); } } printf(" ************************************************"); } else printf(" 通讯录中无任何纪录"); printf(" 按任意键返回主菜单:"); getch(); return; } //按电话查询 void searchbyphone() { int mark=0; int i; int a=0; printf(" ****************** 按电话查找 ******************"); char phone[10]; printf(" 请输入学号:"); scanf("%s",phone); for(i=0;i<num;i++) { if (strcmp(student[i].phone,phone)==0) { printf(" ************** 以下是您查找的学生信息 **********"); printf(" 学号: %s",student[i].id); printf(" 姓名: %s",student[i].name); printf(" 电话: %s",student[i].phone); printf(" 地址: %s",student[i].adress); printf(" e-mail:%s",student[i].e_mail); printf(" ************************************************"); printf(" 按任意键返回主菜单:"); mark++; getch(); return; } } if (mark==0) { printf(" 没有改学生的信息"); printf(" 按任意键返回主菜单"); getch(); return; } } void searchbyname()//按姓名查询 { int mark=0; int i; int a=0; printf(" ***************** 按姓名查找 *******************"); char name[20]; printf(" 请输入姓名:"); scanf("%s",name); for(i=a;i<num;i++) { if (strcmp(student[i].name,name)==0) { printf(" ************* 以下是您查找的学生信息 ***********"); printf(" 学号: %s",student[i].id); printf(" 姓名: %s",student[i].name); printf(" 电话: %s",student[i].phone); printf(" 地址: %s",student[i].adress); printf(" e-mail:%s",student[i].e_mail); printf(" ************************************************"); mark++; if ((i+1)<num) { printf(" 是否继续查找相同名字的学生信息:(y/n)"); if (getch()=="y") { a=i; continue; } else return; } else { printf(" 按任意键返回主菜单"); getch(); return; } } } if(mark!=0) { printf(" 没有相同姓名的学生纪录"); printf(" 按任意键返回主菜单"); getch(); return; } else { printf(" 没有相同姓名的学生纪录"); printf(" 按任意键返回主菜单"); getch(); return; } } void searchbyid()//按学号查询 { int mark=0; int i; int a=0; printf(" ****************** 按学号查找 ****************** "); char id[10]; printf(" 请输入学号:"); scanf("%s",id); for(i=0;i<num;i++) { if (strcmp(student[i].id,id)==0) { printf(" ************** 以下是您查找的学生信息 **********"); printf(" 学号: %s",student[i].id); printf(" 姓名: %s",student[i].name); printf(" 电话: %s",student[i].phone); printf(" 地址: %s",student[i].adress); printf(" e-mail:%s",student[i].e_mail); printf(" ************************************************"); printf(" 按任意键返回主菜单:"); mark++; getch(); return; } } if (mark==0) { printf(" 没有改学生的信息"); printf(" 按任意键返回主菜单"); getch(); return; } } void writetofile()//写入文件 { int i; if ((fp=fopen("student.bin","wb"))==NULL) { printf(" 文件打开失败"); } for (i=0;i<num;i++) { if (fwrite(&student[i],sizeof(struct record),1,fp)!=1) { printf(" 写入文件错误! "); } } fclose(fp); printf(" 通讯录文件已保存"); printf(" 按任意键退出程序 "); exit(0); } void deleteone()//删除单个 { char choic; printf(" 1-按学号删除 2-按姓名删除"); printf(" 请选择:"); choic=getch(); switch (choic) { case "1":deletebyid();break; case "2":deletebyname();break; } } void listbyname()//按姓名排序 { int i,j; struct record tmp; for (i=1;i<num;i++) { if(strcmp(student[i].name,student[i-1].name)<0) { tmp=student[i]; j=i-1; do { student[j+1]=student[j]; j--; }while ((strcmp(tmp.name,student[j].name)<0&&j>=0)); student[j+1]=tmp; } } printf(" 排序成功,是否显示?(y/n)"); if (getch()=="y") showall(); return; } void listbyid()//按学号排序 { int i,j; struct record tmp; for (i=1;i<num;i++) { if(strcmp(student[i].id,student[i-1].id)<0) { tmp=student[i]; j=i-1; do { student[j+1]=student[j]; j--; }while ((strcmp(tmp.id,student[j].id)<0)&&j>=0); student[j+1]=tmp; } } printf(" 排序成功,是否显示?(y/n)"); if (getch()=="y") showall(); return; } void listmenu()//排序菜单 { char choic; if(num==0) { printf(" 对不起,文件中无任何纪录"); printf(" 按任意键返回主菜单"); getch(); return; } system("cls"); printf(" ******************* 排序菜单 *******************"); printf(" ********** 1-按学号排序 2-按姓名排序 **********"); printf(" ********** 3-返回主菜单 **********"); printf(" ************************************************"); printf(" 请选择:"); choic=getch(); switch(choic) { case "1":listbyid();break; case "2":listbyname();break; case "3":mainmenu();break; default:mainmenu();break; } }
2023-09-01 22:17:101

急求c语言总结 我大一的 谢谢了哦

没看明白什么意思
2023-09-01 22:17:582

求助~急于C语言课程设计制作,全部分都给您

这个很简单啊,给我发过来!
2023-09-01 22:18:304

c语言程序设计的内容简介

本书采用“案例引导,任务驱动”的编写方式,深入浅出地讲解了C程序设计的基本方法;通过“案例展示—归纳总结—模仿练习—自主设计”的学习模式,使读者循序渐进地掌握C语言的编程方法和思想,提高动手能力。全书案例按照“任务要求—问题分析—程序详解—归纳总结”顺序组织,注重培养读者先进行算法描述后进行编程实践的良好编程习惯,使读者逐步掌握用计算机解决实际问题的方法。全书叙述严谨,实例丰富,内容详尽、难易适中、重点突出,并将指针等较难理解的知识分解到多章讲解,降低了读者学习的难度。全书分为8章,主要内容包括C语言基础知识、算法、C程序的控制结构、数组与指针、函数、结构体与共用体、文件操作和C语言课程设计。本书适合作为高等院校计算机专业学生的教材,也可作为自学C语言程序设计的参考用书。
2023-09-01 22:18:411

C语言课程设计 设计思路

首先加载本地文件保存的信息,创建链表,并统计个数,然后根据选择的操作执行相应的方法
2023-09-01 22:19:221

学生学籍信息管理系统C语言的报告总结

得利用结构体好像是吧
2023-09-01 22:19:596

C语言关键词学习总结?

C语言关键词学习总结一、static关键字1、局部变量生命周期:原先存在栈中,生命周期语句执行完毕便结束了。现在存放到静态数据区,生命周期持续到整个程序执行结束。作用域:并没有改变作用域,还是仅限于该语句块。并且只在初次运行的时候进行初始化,下次调用时它的值是上一次函数调用结束之后的值。每次调用后值会被保存。2、全局变量对干一个全部变量,既可以在本源文件中被访问到,也可以在同一个工程的其它源文件中被访问(只需用extern进行声明即可)。如果加上static,限制该全局变量的作用域范围,由原来的整个工程可见变为本源文件可见。二、const关键字1、用const修饰一般变量用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外)。2、const与指针搭配使用用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外)。两个基础概念: 指针常量和常量指针。指针常量:即指针本身的值是不可改变的,而指针指向的变量的值是可以改变的;常量指针:即指针指向的变量的值是不可改变的,而指针本身的值是可以改变的。三、register关键字用法register: 这个关键字请求编译器尽可能的将变量存在CPU 内部寄存器中而不是通过内存寻址访问以提高效率。注意是尽可能,不是绝对。寄存器其实就是一块一块小的存储空间,只不过其存取速度要比内存快得多。数据从内存里拿出来先放到寄存器,然后CPU 再从寄存器里读取数据来处理,处理完后同样把数据通过寄存器存放到内存里,CPU 不直接和内存打交道。四、auto关键字用于声明变量的生存期为自动,所有的变量默认就是auto的。五、inline内联函数调用函数时需要一定的时间和空间的开销。C++提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联函数(inlinefunction),又称内嵌函数或内置函数。优点:内联函数可以有效避免函数调用的开销,程序执行效率更高。缺点:如果被声明为内联函数的函数体非常大,则编译器编译后程序的可执行码将会变得很大。
2023-09-01 22:20:271

数据结构c语言版的 课程设计

我也有同样的问题
2023-09-01 22:21:243

C语言课程设计 设计思路

首先假设最高成绩在第一个节点上,所以初始化指针指向第一个节点,然后遍历数组,如果遍历到的当前节点的对应成绩比指针指向的成绩高,那么就调整指针指向当前节点。最后遍历完整个列表后,即可得到所需要的结果,因为指针已经分别指向了各个最高成绩的节点出,输出即可。
2023-09-01 22:21:371

c语言课程设计?

之前写过的,你可以拿去参考#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct guest{int number;char name[10];int sum;char time[5];struct guest *next;}GuestLink,*Pointer;GuestLink stu[10];int i,j,k;void Insert(Pointer *Head);void Search(Pointer Head);void Update(Pointer Head);void Delete(Pointer *Head);void Show(Pointer Head);void Sort(Pointer Head);void Save(Pointer Head);void Put(Pointer Head);int main(){Pointer Head=NULL;int i;do{printf("");printf("1---增加订餐客户信息");printf("2---查询订餐客户信息");printf("3---修改订餐客户信息");printf("4---删除订餐客户信息");printf("5---浏览客户订餐信息");printf("6---按照用餐时间升序排序");printf("7---保存订餐信息到数据文件");printf("8---查看数据文件中的订餐信息");printf("9---退出");printf("");printf("请选择1--9:");scanf("%d",&i);switch(i){case 1:Insert(&Head);break;case 2:Search(Head);break;case 3:Update(Head);break;case 4:Delete(&Head);break;case 5:Show(Head);break;case 6:Sort(Head);break;case 7:Save(Head);break;case 8:Put(Head);break;case 9:break;default:printf("选择错误!请重新选择!");break;}}while(i!=9);return 0;}void Insert(Pointer *Head){int in_number;Pointer p,q,r;printf("请输入编号:");scanf("%d",&in_number);p=q=*Head;while(p!=NULL){if(p->number==in_number){printf("已经有相同编号:");return;}else{q=p;p=p->next;}}r=(Pointer)malloc(sizeof(GuestLink));//没有*号r->next=NULL;if(r==NULL){printf("分配空间失败");return;}if(q==NULL)//如果是空表,判断空表用q!!!!*Head=r;else{q->next=r;}r->number=in_number;printf("请输入姓名:");scanf("%s",r->name);printf("请输入人数:");scanf("%d",&r->sum);printf("请输入时间:");scanf("%s",r->time);}/*void Insert(Pointer *Head){int in_number;Pointer p,q,r;p=q=*Head;printf("请输入号码:");scanf("%d",&in_number);while(p!=NULL){if(in_number==p->number){printf("已存在号码!");}else{q=p;p=p->next;}}r=(Pointer)malloc(sizeof GuestLink);r->next=NULL;if(q==NULL)*Head=r;elseq->next=r;printf("请输入姓名:");scanf("%s",r->name);printf("请输入人数");scanf("%f",&r->sum);printf("请输入时间");scanf("%s",r->time);}*/void Search(Pointer Head){int flag=1;int number;Pointer p;printf("请输入要查询的编号:");scanf("%d",&number);p=Head;while(p!=NULL&&flag){if(p->number==number){ printf("编号 姓名 人数 时间");printf("%s ",p->name);printf("%d ",p->sum);printf("%s ",p->time);flag=0;}elsep=p->next;}if(flag)printf("没有查询到!");}/*void Search(Pointer Head){int flag=0;int number;Pointer p;p=Head;printf("请输入您要查找的编号:");scanf("%f",&number);while(p!=NULL&&flag){if(p->number==number){printf("已查询到您要的编号");flag=0;}else{p=p->next;}}if(flag==1){printf("姓名:%s",p->name);printf("编号:%f",p->number);printf("人数:%f",p->sum);printf("时间:%s",p->time);}else{printf("没有查询到您要查询的编号!");}}*/void Update(Pointer Head){int flag=1;int number;Pointer p;printf("请输入要修改的编号:");scanf("%d",&number);p=Head;while(p!=NULL&&flag){if(p->number==number){printf("请输入人数:");scanf("%d",&p->sum);printf("请输入用餐时间:");scanf("%s",p->time);flag=0;}elsep=p->next;}if(flag)printf("没有找到要修改的记录!");}//update与查询过程相似!!!void Delete(Pointer *Head){int flag=1;int number;Pointer p,q;printf("请输入要删除的数据编号:");scanf("%d",&number);p=q=*Head;while(p!=NULL&&flag){if(p->number==number){if(p==*Head){*Head=p->next;free(p);//删除结点后要及时释放内存!!!}else{q->next=p->next;free(p);}flag=0;}else{q=p;p=p->next;}}if(flag)printf("没有找到可以删除的数据!!");}/*void Delete(Pointer *Head){Pointer p,q;p=q=*Head;int number;int flag=1;printf("请输入您要删除的结点:");scanf("%d",&number);while(p!=NULL){if(p->number==number){ if(p==*Head){*Head=p->next;free(p);}else{q->next=p->next;free(p);}flag=0;}else{q=p;p=p->next;}}if(flag){printf("没有找到要删除的数据!");}}*/void Show(Pointer Head){Pointer p;p=Head;printf("编号 姓名 人数 用餐时间");while(p!=NULL){printf("%d ",p->number);printf("%s ",p->name);printf("%d ",p->sum);printf("%s ",p->time);p=p->next;}}void Sort(Pointer Head){//三个for循环,第一个赋给结构数组 第二个排序,第三个输出Pointer p;p=Head;int count=0;GuestLink temp;for(i=0;p!=NULL;i++){strcpy(stu[i].name,p->name);stu[i].number=p->number;stu[i].sum=p->sum;strcpy(stu[i].time,p->time);count++;p=p->next;}for(i=0;i<count-1;i++){k=i;for(j=i+1;j<count;j++)if(strcmp(stu[j].time,stu[k].time)<0)k=j;if(k!=i){temp=stu[i];stu[i]=stu[k];stu[k]=temp;}//一个字都不能改!!!!//{temp=stu[k];stu[k]=stu[i];stu[i]=temp;}}printf("编号 姓名 人数 用餐时间");for(i=0;i<count;i++){printf("%d ",stu[i].number);printf("%s ",stu[i].name);printf("%d ",stu[i].sum);printf("%s ",stu[i].time);}}/*Head=p=stu;while(p!=NULL){printf("姓名:%-10s",p->name);printf("人数:%-10d",p->sum);printf("用餐时间:%-10s",p->time);printf("编号:%-10d",p->number);p=p->next;}*//*void Sort(Pointer Head){Pointer p;p=Head;GuestLink temp;count=0;while(p!=NULL){p=p->next;count++;}p=Head;while(p!=NULL){for(i=0;i<count;i++){stu[i].number=p->number;strcpy(stu[i].name,p->name);stu[i].sum=p->sum;strcpy(stu[i].time,p->time);}p=p->next;}for(i=0;i<count-1;i++){k=i;for(j=0;j<count;j++){if(strcmp(stu[j].time,stu[k].time)<0)k=j;if(k!=i){temp=stu[k];stu[k]=stu[i];temp=stu[i];}}}}*/void Save(Pointer Head){Pointer p;FILE *fp;p=Head;for(i=0;p!=NULL;i++){strcpy(p->name,stu[i].name);p->number=stu[i].number;p->sum=stu[i].sum;strcpy(p->time,stu[i].time);p=p->next;}if((fp=fopen("stud","w"))==NULL){printf("can"t open !");}p=Head;while(p!=NULL){if(fwrite(p,sizeof(GuestLink),1,fp)!=1)printf("can"t write!");p=p->next;}fclose(fp);}/*void Save(Pointer Head){FILE *fp;Pointer p;p=Head;for(i=0;p!=NULL;i++){stu[i].number=p->number;strcpy(stu[i].name,p->name);stu[i].sum=p->sum;strcpy(stu[i].time,p->time);p=p->next;}p=Head;if((fp=fopen("stud","w"))==NULL){printf("cam"t open the file");}for(i=0;i<count;i++)if(fwrite(p,sizeof(GuestLink),1,fp)!=1){printf("cant write");}fclose(fp);}*/void Put(Pointer Head){FILE *fp;Pointer p;p=Head;if((fp=fopen("stud","r"))==NULL){printf("can"t open the File");}printf("编号 姓名 人数 用餐时间");while(p!=NULL){if(fread(p,sizeof(GuestLink),1,fp)!=1){printf("can"t read!");}printf("%d ",p->number);printf("%s ",p->name);printf("%d ",p->sum);printf("%s ",p->time);p=p->next;}fclose(fp);}采纳哦~
2023-09-01 22:21:491

c语言课程设计

刚为别人做了一个,和你这个很像,不过用的是单项链表方式而不是array.自己修改下满足你的要求吧#include <stdio.h>#include <string.h>#include <stddef.h>struct StudentCard { int index; //学生号 char name[80]; //姓名 int age; //年龄 char sex[80]; //性别 int classroom; //班级 char school[80]; //学校 char birthday[80]; //出生年月 struct StudentCard *next; //到下一个学生卡,链表};typedef struct StudentCard ELEMENT; //自定义符号typedef ELEMENT *LINK;LINK add(LINK head){ //加入一个新的学生信息,该函数将返回一个struct的指针 int index,age,classroom; char name[80],sex[80],school[80],birthday[80]; printf("Please input index number: "); scanf("%d",&index); printf("Please input name: "); scanf("%s",name); printf("Please input age: "); scanf("%d",&age); printf("Please input sex(nan or nv): "); scanf("%s",sex); printf("Please input classroom: "); scanf("%d",&classroom); printf("Please input school: "); scanf("%s",school); printf("Please input birthday :"); scanf("%s",birthday); if (!head){ //如果是头链表为空的情况,也就是输入第一个学生卡 head=malloc(sizeof(ELEMENT)); head->index=index; head->age=age; head->classroom=classroom; strcpy(head->name,name); strcpy(head->sex,sex); strcpy(head->school,school); strcpy(head->birthday,birthday); head->next=NULL; //下一个元素为NULL,空 printf("Successful! "); return head; //返回头链 } else{ LINK tail=head;//用一个哨兵指针指向头元素 while ((tail)&&(tail->index!=index)) //在tail为NULL并且tail的index不与用户输入的index相等之前,tail一直跳到下一个元素 tail=tail->next; if (tail) //如果存在这个tail printf("index has already existed! Failed! "); else{ tail=head;//再次初始化 while (tail->next) //当哨兵的下一个元素存在时,哨兵跳到哨兵下一个元素 tail=tail->next; //当上面这个循环结束后,此时tail的下一个元素必定为NULL tail->next=malloc(sizeof(ELEMENT));//创建新的元素 tail=tail->next; //跳转到下一个新创建的元素 tail->index=index; tail->age=age; tail->classroom=classroom; strcpy(tail->name,name); strcpy(tail->sex,sex); strcpy(tail->school,school); strcpy(tail->birthday,birthday); tail->next=NULL; printf("Successful! "); return head; } }}void Print_ALL(LINK head){//该函数输出所有学生信息 LINK tail=head; if (!head) //如果头元素为NULL,就是链表无一个元素 printf("Empty List! "); else{ printf("Indx Name Age Sex Class School Birth "); while (tail){//知道哨兵为NULL之前,一直输出哨兵的内容 printf("%d %s ",tail->index,tail->name); printf("%d %s %d ",tail->age,tail->sex,tail->classroom); printf("%s %s ",tail->school,tail->birthday); tail=tail->next; } }};void Print_DEPEND_INDEX(LINK head){ //该函数输出指定的学生号的学生信息 int tem; LINK tail=head; printf("Please input the index number of student: "); scanf("%d",&tem); if (!head) printf("Empty List! "); else{ while ((tail)&&(tail->index!=tem)) tail=tail->next; if (!tail) printf("student not existed! "); else{ printf("Indx Name Age Sex Class School Birth "); printf("%d %s ",tail->index,tail->name); printf("%d %s %d ",tail->age,tail->sex,tail->classroom); printf("%s %s ",tail->school,tail->birthday); } }}void Print_DEPEND_CLASS(LINK head){ //该函数输出指定的班级的学生信息 int tem; LINK tail=head; printf("Please input classroom: "); scanf("%d",&tem); if (!head) printf("Empty List! "); else{ while ((tail)&&(tail->classroom!=tem)) tail=tail->next; if (!tail) printf("No such classroom! "); else{ printf("Indx Name Age Sex Class School Birth "); while (tail){ if (tail->classroom==tem){ printf("%d %s ",tail->index,tail->name); printf("%d %s %d ",tail->age,tail->sex,tail->classroom); printf("%s %s ",tail->school,tail->birthday); } tail=tail->next; } } } }void Print_DEPEND_SEX(LINK head){ //该函数输出男或女同学信息 char tem[80]; printf("please input sex(nan or nv): "); scanf("%s",tem); if (!head) printf("Empty List! "); else{ LINK tail=head; while ((tail)&&(strcmp(tem,tail->sex)!=0)) //当不相等或者tail有效时,tail跳到下一个元素 tail=tail->next; if (!tail) printf("No %s student! ",tem); else{ tail=head; printf("Indx Name Age Sex Class School Birth "); while (tail){ if (strcmp(tem,tail->sex)==0){ printf("%d %s ",tail->index,tail->name); printf("%d %s %d ",tail->age,tail->sex,tail->classroom); printf("%s %s ",tail->school,tail->birthday); } tail=tail->next; } } }}LINK Edit(LINK head){ //该函数用来修改信息 int tem; LINK tail=head; printf("Please input index of student: "); scanf("%d",&tem); if (!head){ printf("Empty List! "); return NULL; } else{ while ((tail)&&(tail->index!=tem)) tail=tail->next; if (!tail){ printf("No such student! "); return head; } else{ printf("Please input name: "); scanf("%s",tail->name); printf("Please input age: "); scanf("%d",&tail->age); printf("Please input sex(nan or nv): "); scanf("%s",tail->sex); printf("Please input classroom: "); scanf("%d",&tail->classroom); printf("Please input school: "); scanf("%s",tail->school); printf("Please input birthday :"); scanf("%s",tail->birthday); printf("Edit successful! "); return head; } }}LINK DELETE(LINK head){ //该函数用来删除学生信息 int tem; LINK tail=head; printf("Please input index of student: "); scanf("%d",&tem); if (!head){ printf("Empty List! "); return NULL; } else if ((head->index==tem)&&(!head->next)){//当头元素满足并且链表只有一个元素 printf("Deleted! "); return NULL; } else if ((head->index==tem)&&(head->next)){//当头元素满足并且链表有许多元素 printf("Deleted! "); return head->next; } else{ //当满足条件的元素在链表中间或者结尾 while ((tail)&&(tail->index!=tem)) tail=tail->next; if (!tail){ printf("No such student! "); return head; } else{ if (!tail->next){//当满足条件的元素在链表结尾 LINK tail2=head;//新的哨兵 while (tail2->next!=tail) tail2=tail2->next; tail2->next=NULL; //直接指向为NULL,表示链表尾,跳过tail printf("Deleted! "); return head; } else{ //当满足条件的元素在链表中间 LINK tail2=head;//新的哨兵 while (tail2->next!=tail) tail2=tail2->next; tail2->next=tail->next; //跳过tail这个元素 printf("Deleted! "); return head; } } }}void Display_MENU(){ printf(" *********studentcard management system********* "); printf(" 1.Input student"s informations (add a student) "); printf(" 2.Print all students" informations "); printf(" 3.Input index number,print selected student"s information "); printf(" 4.Input classroom number,print informations of those students "); printf(" 5.Input index number, modify information "); printf(" 6.Input index number, remove information "); printf(" 7.Print nan or nv informations "); printf(" 8.Display Menu "); printf(" 9.Exit "); printf(" *********************************************** ");}int main(){ LINK head=NULL; //链表头的初始化 int asker; Display_MENU(); while(1){ printf(">>"); scanf("%d",&asker); if (asker==1)//加入新学生信息 head=add(head); else if (asker==2)//输出所有学生信息 Print_ALL(head); else if (asker==3) //输入学生号,输出学生信息 Print_DEPEND_INDEX(head); else if (asker==4) //输入班级,输出学生信息 Print_DEPEND_CLASS(head); else if (asker==5) //输入学生号,修改学生信息 head=Edit(head); else if (asker==6) //输入学生号,删除学生信息 DELETE(head); else if (asker==7) //输入男或女,输出学生信息 Print_DEPEND_SEX(head); else if (asker==8) //显示菜单 Display_MENU(); else if (asker==9) //退出程序,也就是退出while(1)循环 break; else printf("please select correct number! "); } printf("system log-out! "); return 0;}
2023-09-01 22:22:241

《C语言》课程设计

我是大一的,我们怎么没听说有课程设计
2023-09-01 22:22:333

学期结束C语言课程设计

#include<time.h> #include<stdio.h> #include<conio.h> #include <stdlib.h>#define MAX 50void input(); void sort();void display();void insert();void del();void average();int now_no=0;struct student{int no;char name[20];char sex[4];float score1;float score2;float score3;float sort;float ave;float sum;};struct student stu[MAX],*p;main()//主函数{char as;start: printf(" 欢迎使用学生成绩管理系统 ");//一下为功能选择模块do{printf(" 1.录入学员信息 2.显示学员信息 3.成绩排序信息 4.添加学员信息 5.删除学员信息 6.退出 ");printf(" 选择功能选项:");as=getch();switch(as){case "1":system("cls");input();break;case "2":system("cls"); display();break;case "3":system("cls"); sort();break;case "4":system("cls"); insert();break;case "5":system("cls"); del();break;case "6":system("exit");exit(0);default:system("cls");goto start; }}while(1);//至此功能选择结束}void input()//原始数据录入模块{int i=0;char ch;do{printf(" 1.录入学员信息 输入第%d个学员的信息 ",i+1);printf(" 输入学生编号:");scanf("%d",&stu[i].no);fflush(stdin);printf(" 输入学员姓名:");fflush(stdin);gets(stu[i].name);printf(" 输入学员性别:");fflush(stdin);gets(stu[i].sex);printf(" 输入学员成绩:");fflush(stdin);scanf("%f",&stu[i].score1);printf(" 输入学员成绩:");fflush(stdin);scanf("%f",&stu[i].score2);printf(" 输入学员成绩:");fflush(stdin);scanf("%f",&stu[i].score3);printf(" ");i++;now_no=i;printf("%d",now_no);printf("是否继续输入?(Y/N)");ch=getch();system("cls");}while(ch!="n");system("cls");}void sort()//排序数据函数{struct student temp;int i,j;for(i=1;i<now_no;i++){for(j=1;j<=now_no-i;j++){if(stu[j-1].ave<stu[j].ave){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}void display()//显示数据函数{int i;char as;float ave;do{printf(" 班级学员信息列表 ");printf(" 编号 姓名 性别 成绩 成绩 成绩 平均值 ");for(i=0;i<now_no;i++){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf(" %d %s %s %.2f %.2f %.2f %.2f ",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);}printf(" 按任意键返回主菜单.");as=getch();goto exit;}while(as!="n");exit: system("cls"); }void insert()//插入数据函数{char ch;do{printf(" 输入新插入学员队信息 ");printf(" 输入学生编号:");scanf("%d",&stu[now_no].no);fflush(stdin);printf(" 输入学员姓名:");fflush(stdin);gets(stu[now_no].name);printf(" 输入学员性别:");fflush(stdin);gets(stu[now_no].sex);printf(" 输入学员成绩:");fflush(stdin);scanf("%f",&stu[now_no].score1);printf(" 输入学员成绩:");fflush(stdin);scanf("%f",&stu[now_no].score2);printf(" 输入学员成绩:");fflush(stdin);scanf("%f",&stu[now_no].score3);printf(" ");now_no=now_no+1;sort();printf("是否继续输入?(Y/N)");ch=getch();system("cls");}while(ch!="n");}void del()//删除数据函数{int inum,i,j;printf("输入要删除学员的编号:");fflush(stdin);scanf("%d",&inum);for(i=0;i<now_no;i++){if(stu[i].no==inum){for(j=i;j<now_no;j++){stu[i]=stu[i+1];}now_no=now_no-1;}break;}system("cls");}
2023-09-01 22:22:441

C语言课程设计

(C语言)职工信息管理 有任何问题可以到这里留言: http://moonrosa.googlepages.com/liuyan.htm 【要求】 职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职工号不相等)。试设计一职工信息管理系统,使之能够提供下列功能: (1)系统以菜单方式工作 (2)职工信息录入功能(职工信息用文件保存) (3)职工信息浏览功能 (4)职工信息查询功能,查询方式: 1)按学历查询 2)按职工号查询 (5)职工信息删除,修改功能(可选项)。 #include<string.h> void menu() { int n,w1; do { printf(" ************************************************ "); printf(" ************************************************ "); printf(" *** choose function ************ "); printf(" *** 1 Enter new data ************ "); printf(" *** 2 Modify data ************ "); printf(" *** 3 Search by people.xueli and num***** "); printf(" *** 4 Browse data ************ "); printf(" *** 5 add data ************ "); printf(" *** 6 Exit ************ "); printf(" ************************************************ "); printf(" ************************************************ "); printf("Choose your number(1-6):[ ]"); scanf("%d",&n); if(n<1||n>6) w1=1; else w1=0; } while(w1==1); switch(n) { case 1:enter();break; case 2:modify();break; case 3:search();break; case 4:browse();break; case 5:add();break; case 6:exit(0); } } main() { system("cls"); menu(); } #define N 100 struct people { char num[100]; char name[15]; char sex[20]; char age[20]; char xueli[20]; char gongzhi[20]; char address[20]; char telephone[20]; }people[N]; # include <stdio.h> enter() { int i,n; printf("How many people(0-%d)?:",N-1); scanf("%d",&n); printf(" Enter data now "); for(i=0;i<n;i++) { printf(" Input %dth people record. ",i+1); input(i); } if(i!=0)save(n); printf_back(); } browse() { int i,j,n; n=load(); printf_face(); for(i=0;i<n;i++) { if((i!=0)&&(i%10==0)) { printf(" Pass any key to continue ...."); getch(); puts(" "); } printf_one(i) ; } printf(" There are %d record. ",n); printf(" Pass any key to back ..."); getch(); menu(); } add() { int i,n,m,k; FILE*fp; n=load(); printf("How many people are you want to add(0-%d)?:",N-1-n); scanf("%d",&m); k=m+n; for(i=n;i<k;i++) { printf(" Input %dth people record. ",i-n+1 ); input(i); } if((fp=fopen("Pro.txt","ab"))==NULL) { printf("cannot open file "); } for(i=n;i<k;i++) if(fwrite(&people[i],sizeof(struct people),1,fp)!=1) printf("file write error "); fclose(fp); printf_back(); } search() { int i,n,k,w1=1,w2,w3,w4,m,a; struct people p; n=load(); do { printf(" Which way do you want to choose? 1).By xueli 2).By num [ ]"); scanf("%d",&m); switch(m) { case 1: do { k=-1; printf(" Enter xeuli that you want to search! xueli."); scanf("%s",p.xueli); printf_face(); for(i=0;i<n;i++) if(strcmp(p.xueli,people[i].xueli)==0) { k=i; printf_one(k);break; } if(k==-1) { printf(" NO exist!please"); printf(" Are you again? 1).again 2).NO and back [ ]"); scanf("%d",&w1); if(w1==2) printf_back(); } } while(k==-1&&w1==1);break; case 2: do {k=-1; printf(" Enter num that you want to search! num."); scanf("%s",p.num); printf_face(); for(i=0;i<n;i++) if(strcmp(p.num,people[i].num)==0) {k=i; printf_one(k);break; } if(k==-1) {printf(" NO exist!please"); printf(" Are you again? 1).again 2).NO and back [ ]"); scanf("%d",&w1); if(w1==2) printf_back(); } } while(k==-1&&w1==1);break; } w4=0;w3=0; if(k!=-1) {printf(" What do you want to do? 1).Search 2).Modify 3).Delete 4).Back menu [ ]"); scanf("%d",&w2); switch(w2) {case 2:w3=modify_data(k,n);break; case 3:{printf(" Are you sure? 1).Sure 2).No and back [ ]"); scanf("%d",&w4); if(w4==1) for(a=k;a<n;a++) {strcpy(people[a].num,people[a+1].num); strcpy(people[a].name,people[a+1].name); strcpy(people[a].sex,people[a+1].sex); strcpy(people[a].age,people[a+1].age); strcpy(people[a].xueli,people[a+1].xueli); strcpy(people[a].gongzhi,people[a+1].gongzhi); strcpy(people[a].address,people[a+1].address); strcpy(people[a].telephone,people[a+1].telephone); } break; } } if(w3==1||w4==1) {save(n); printf(" Successful.^_^."); printf(" Whant do you want to do? 1).Search another 2).Back [ ]" ); scanf("%d",&w2); } } } while(w2==1); menu(); } modify() {struct people p; FILE *fp; int i,n,k,w0=1,w1,w2=0; n=load(); do { k=-1; printf_face(); for(i=0;i<n;i++) {if((i!=0)&&(i%10==0)) {printf(" Remember NO.which needed modify.pass any key to contiune ..."); getch(); puts(" "); } printf_one(i); } do {printf(" Enter NO.that you want to modify! NO.:"); scanf("%s",p.num); for(i=0;i<n;i++) if(strcmp(p.num,people[i].num)==0) {k=i; p=people[i]; } if(k==-1)printf(" NO exist!please again"); }while(k==-1); printf_face(); printf_one(k); w1=modify_data(k,n); if(w1==1) {printf(" Successful ^_^. Are you modify another ? 1).Yes 2).Back with save [ ]"); scanf("%d",&w0); w2=1; } else {w0=0; if(w2==1) people[k]=p; } if(w0!=1&&w2==1) save(n); }while(w0==1); menu(); } save(int n) {FILE *fp; int i; if((fp=fopen("Pro.txt","wb"))==NULL) {printf(" Cannot open file "); return NULL; } for(i=0;i<n;i++) if(people[i].num!=0) if(fwrite(&people[i],sizeof(struct people),1,fp)!=1) printf("file write error "); fclose(fp); } load() {FILE *fp; int i; if((fp=fopen("Pro.txt","rb"))==NULL) {printf(" Cannot open file "); return NULL; } for(i=0;!feof(fp);i++) fread(&people[i],sizeof(struct people),1,fp); fclose(fp); return(i-1); } input(int i) { no_input(i,i); printf("num:"); scanf("%s",people[i].num); printf("name:"); scanf("%s", people[i].name) ; printf("sex:"); scanf("%s",people[i].sex); printf("age:"); scanf("%s",people[i].age); printf("xueli:"); scanf("%s",people[i].xueli); printf("gongzhi:"); scanf("%s",people[i].gongzhi); printf("address:"); scanf("%s",people[i].address); printf("telephone:"); scanf("%s",people[i].telephone); } modify_data(int i) {int c,w1; do {puts(" modify by=> 1).num 2).name 3).sex 4).ages 5).xueli 6)gongzhi 7)address 8)telephone "); printf("Which you needed?:[ ]"); scanf("%d",&c); if(c>8||c<1) {puts(" Choice error!Please again!"); getchar(); } }while(c>8||c<1); do {switch(c) { case 1:printf("num:");scanf("%s",people[i].num);break; case 2:printf("name:");scanf("%s",people[i].name);break; case 3:printf("sex:");scanf("%s",people[i].sex);break; case 4:printf("age:");scanf("%s",people[i].age);break; case 5:printf("xueli:");scanf("%s",people[i].xueli);break; case 6:printf("gongzhi:");scanf("%s",people[i].gongzhi);break; case 7:printf("address:");scanf("%s",people[i].address);break; case 8:printf("telephone:");scanf("%s",people[i].telephone);break; } puts(" Now: "); printf_face(); printf_one(i); printf(" Are you sure? 1).Sure 2).No and remodify 3).Back without save in this time [ ]"); scanf("%d",&w1); } while(w1==2); return(w1); } no_input(int i,int n) {int j,k,w1; do {w1=0; for(j=0;people[i].num[j]!="";j++) if(people[i].num[j]>"9") {puts("Input error!Only be made up of(0-9).Please reinput! "); w1=1;break; } if(w1!=1) for(k=0;k<n;k++) if(k!=i&&strcmp(people[k].num,people[i].num)==0) {puts("This record is exist.please reinput! "); } } while(w1==1); } printf_face() { printf(" num name sex ages xueli gongzhi address telephone "); } printf_one(int i) { int j; printf("%7s%7s%7s%7s%7s%7s%10s%12s ",people[i].num,people[i].name,people[i].sex,people[i].age,people [i].xueli,people[i].gongzhi,people[i].address,people[i].telephone); } printf_back() { int j,w; printf(" Successful.^_^ "); printf("What do you want you to do? 1).Browse all now 2).Back: [ ]"); scanf("%d",&w); if(w==1) browse(); else menu(); } 参考资料:http://moonrosa.googlepages.com/cyuyan_zgglxt
2023-09-01 22:23:201

《C语言程序设计》课程设计

好多人在要求做课程设计啊,有分赚啊,
2023-09-01 22:23:436

C语言数据结构课程设计

还不错
2023-09-01 22:24:092

C语言的课程设计

这个就行#include<stdio.h>int main(){ int a[100][100]; int num=1;//起始数字 int i,j; int n=0;//矩阵行列数 printf("起始数字num="); scanf("%d",&num); printf("请输入行列数n="); scanf("%d",&n); for(i=0; i<n; i++) { int p; a[i][i]=num+i*(i+1); p=a[i][i]; for(j=i-1; j>=0; j--)//行排列 { p+=1; a[i][j]=p; } p=a[i][i]; for(j=i-1; j>=0; j--)//列排列 { p-=1; a[j][i]=p; } } for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%5d ",a[i][j]); } printf(" "); }}满意请采纳。
2023-09-01 22:24:181

C语言课程设计题目

例:学生管理系统设计 设计内容: 详见视频,要求数据结构用链表,数据存储使用文件。 计算每个老师在一个学期中所教课程的总工作量。(教师单个教学任务的信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时) A、教师信息处理 (1) 输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。 (2) 插入(修改)教师授课教学信息: (3) 删除教师授课教学信息: (4) 浏览教师授课教学信息: B、教师工作量数据处理: (1) 计算单个教学任务总课时。计算原则如下表: (2) 计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。 (3)教师数据查询:   提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。 C、教师综合信息输出   提示:输出教师信息到屏幕。 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 该系统是一个进行选择题测试的考试系统,具有测试、练习功能,具有系统设置功能,具有查分和帮助功能。 一、功能要求: 1、用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案) 2、试题录入:可随时增加试题到试题库中 3、试题抽取:每次从试题库中可以随机抽出N道题及每题的得分K(N、K由键盘输入)。 4、可以设置考试时间。 5、用户可以选择“考试”和“练习”两种方式。 5、答题:用户可实现输入自己的答案,“考试”时系统不能显示答案。“练习”时每一题都可以通过查看“按钮”显示标准答案。可以用“上一题”、“下一题”翻页。选择“交卷”按钮则显示得分; 6、自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。 7、考试开始系统显示倒计时。时间为零自动交卷。 二、其它要求: 1、源程序要有适当的注释,使程序容易阅读 2、至少采用文本菜单界面(如果能采用图形菜单界面更好) 3、学生可自动增加新功能模块(视情况可另外加分) 4、写出课程设计报告,具体要求见相关说明文档 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 设计一个简单的英语字典,输入英语单词,显示中文含义,设计要求: 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等)。该学生通信录电话簿管理程序具有加入、删除、显示和查询等功能。 设计要求: 1、 能建立、修改和增删学生通讯录 2、 具有群组工能,可以增加群组和记录。 3、 删除可以删除一条、一个群组、全部记录。 4、 查询包含模糊查询。 5、 显示可以以页面和列表方式显示。 6、 有自动排序的功能。 7、 要求:界面友好,易于操作,采用文件存储数据。 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 [设计内容] 实现一个完整的小型音像店对录像带进行管理的系统。 [设计要求] 系统要求具有以下功能: (1) 管理音像店中的所有录像带,包括新录像带入库、录像带出租、录像带的返还、所有录像带清单的显示、根据指定条件进行查找删除录像带等各种基本操作。 (2) 客户数据维护,可以将客户分为不同等级,可以根据指定客户显示其所借录像带详细信息。 (3) 租金管理,根据所借日期自动计算所需交纳的租金。 (4) 系统要求界面美观,菜单设计合理,操作方便。 [实验提示] 音像店有两个主要的组成部分:录像带和客户。可以构造3个链表存储以下数据: (1) 商店中所有录像带的链表; (2) 商店所有客户的链表; (3) 当前已出租的录像带链表; 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 [设计内容] 航空客运订票的业务活动包括:查询航线、客票预定和办理退票等。设计一个航空订票系统实现上述功能。 [设计要求] (1) 将每条航线的有关信息存入计算机,如:终点站名、航班号、飞机号、飞行周日(星期几)、时间、乘员定额、余票量、票价,已定票客户名单和等候替补客户名单(包括姓名,所需票数); (2) 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞、最近一天航班的日期和余票量。 (3) 订票:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补; (4) 退票:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他候补客户。 发挥想像,增加新的功能,完善系统。 系统要求界面美观,菜单设计合理,操作方便。 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 [设计内容] 某旅馆有n个等级的房间,第I等级有 个房间,每个等级的房间有 个床位(1≤i≤n)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。 [设计要求] (1) 旅客登记,即为旅客分配床位。输入旅客姓名、年龄、性别、到达日期和所需房间等级。分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。分配不成功时,如所有等级均无床位,则打印“客满”信息;如旅客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。 (2) 旅客离开时,即进行床位回收。输入房间等级、房间号和床位号。 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。 设计要求: 1、系统以菜单方式工作 2、职工信息录入功能(职工信息用文件保存)--输入 3、职工信息浏览功能--输出 4、职工信息查询功能--算法 查询方式 按学历查询等 按职工号查询等 5、职工信息删除、修改功能(可选项) 6、按工号排序 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 图书信息包括:书号、书名、作者名、分类号、出版社、出版时间、价格等。 设计功能: 1、系统以菜单方式工作 2、图书信息录入功能(图书信息用文件保存)--输入 3、图书信息的编辑功能(插入、删除、修改) 4、图书信息浏览功能(按书号、书名、出版时间、价格等排序输出)。 5、图书信息查询功能(按书号、书名、作者名、出版社查询,提供模糊查询的功能) 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。 设计功能: 1、能够完成对设备的录入和修改 2、对设备进行分类统计 3、设备的破损耗费和遗损处理 4、设备的查询 要求:采用文件方式存储数据,系统以菜单方式工作 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 设计一个学生选修课程系统,假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。 设计功能: 1、系统以菜单方式工作 2、课程信息录入功能(课程信息用文件保存)--输入 3、课程信息的编辑功能(插入、删除、修改) 4、课程信息浏览功能(按课程编号、课程名称、总学时、学分等排序输出)。 5、课程信息查询功能(按课程编号、课程名称、课程性质、开课学期等查询,提供模糊查询的功能) 6、学生选修课程 7、学生选课信息查询 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。试设计一个便条管理系统。 设计功能: 1、系统以菜单方式工作 2、便条信息录入功能(便条信息用文件保存)--输入 3、收集到了上个月的所有便条后,读取销售情况 1)计算每个人每种产品的销售额。 2)按销售额对销售员进行排序,输出排序结果(销售员代号) 3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)(可选项) 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 设计内容: 设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 设计功能: (1)查看功能:选择此功能时,列出下列三类选择。 A.办公类 B.个人类 C.商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码) (2)增加功能:能录入新数据 一个结点包括:姓名、电话号码、分类(A 办公类 B 个人类 C 商务类)、电子邮件)。 例如: 杨春 13589664454 商务类 chuny@126.com 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (3)拔号功能: 能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。 (4)修改功能: 选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能: 选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111 每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资 - 合计扣款。 A、教师信息处理 (1) 输入教师信息 (2) 插入(修改)教师信息: (3) 删除教师信息: (4) 浏览教师信息:   提示:具体功能及操作参考题1。 B、教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。   提示:计算规则如题目。 (3) 教师数据管理   提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件 (4) 教师数据查询:   提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。 (5) 教师综合信息输出   提示:输出教师信息到屏幕。 链接: https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111 提取码: 1111
2023-09-01 22:24:311

C语言课程设计

这好像是数据库课程设计阿 用vb或c++编写的可能多一些。c的还真不知道。帮不上忙,不好意思
2023-09-01 22:24:412

C语言课程设计:数据排序算法

你不是都很清楚了
2023-09-01 22:25:393

用C语言设计一个简单计算器的课程设计(希望能尽可能的详细,多一些)

/*输入表达式只能包含整数,+-*/和()*/#include<stdio.h>#include<string.h>int add(int x,int y);int sub(int x,int y);int mul(int x,int y);int div(int x,int y);int getach(); //用于获取一个合法字符int getid(); //对合法字符进行判断处理int cal(); //计算表达式的值int num,curch;int (*func[])(int x,int y)={add,sub,mul,div}; //函数指针数组,数组元素分别指向+-*/运算函数char chtbl[]="+-*/()=";char corch[]="+-*/()=0123456789";void main(){int value;printf("请输入要计算的表达式,以=结束:");getach();while(curch!="="){ value=cal(); printf("结果为:%d ",value); printf("请输入要计算的表达式,以=结束:"); getach();}}int add(int x,int y){return x+y;}int sub(int x,int y){return x-y;}int mul(int x,int y){return x*y;}int div(int x,int y){return x/y;}int getach(){unsigned int i;while(true){ curch=getchar(); if(curch==EOF) return -1; for(i=0;corch[i]&&curch!=corch[i];i++) ; if(i<strlen(corch)) break;}return curch;}int getid(){int i;if(curch>="0"&&curch<="9"){ for(num=0;curch>="0"&&curch<="9";getach()) num=num*10+curch-"0"; return -1;}else{ for(i=0;chtbl[i];i++) { if(chtbl[i]==curch) break; } if(i<=5) getach(); return i;}}int cal(){int x1,x2,x3,op1,op2,i;i=getid();if(i==4) x1=cal();else x1=num;op1=getid();if(op1>=5) return x1;i=getid();if(i==4) x2=cal();else x2=num;op2=getid();while((op2>=0)&&(op2<5)){ i=getid(); if(i==4) x3=cal(); else x3=num; if((op1/2==0)&&(op2/2==1)) x2=func[op2](x2,x3); else { x1=func[op1](x1,x2); x2=x3; op1=op2; } op2=getid();}return func[op1](x1,x2);}
2023-09-01 22:25:552

C语言课程设计 成绩处理程序

国际足球总会主办的比赛和各洲足球联盟管辖的比赛
2023-09-01 22:26:054

c语言课程设计之车辆管理系统设计

这个我可以代做。
2023-09-01 22:26:131

C语言程序 课程设计

发消息给你了
2023-09-01 22:26:435

c语言课程设计怎么写?

这得看你课设的内容和需求是什么啊不然谁知道怎么写依照课设的要求去写就可以了如果代码不想自己写的话我可以有偿代劳
2023-09-01 22:27:122

C语言课程设计图书馆管理系统加讲解

图书管理系统代码如下:#include <stdio.h> #include <stdlib.h> #include <conio.h> struct BOOK { int id,usr[10],total,store,days[10]; char name[31],author[21]; }books[100]; /*上面是结构体的定义,用于存放书籍及借书的信息。*/ void page_title(char *menu_item) { clrscr(); printf(">>> 图 书 管 理 系 统 <<< - %s - ",menu_item); } /*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。*/ void return_confirm(void) { printf(" 按任意键返回…… "); getch(); } /*上面是返回前请求确认的函数,以便在返回前观察结果*/ int search_book(void) { int n,i; printf("请输入图书序号:"); scanf("%d",&i); for(n=0;n<100;n++) { if(books[n].id==i) { printf("书名:%s ",books[n].name); printf("作者:%s ",books[n].author); printf("存数:%d of ",books[n].store); printf("%d ",books[n].total); return n; } } printf(" 输入错误或无效图书序号. "); return -1; } /*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返 回数组下标,如果找不到相应记录则提示错误并返回-1。*/ void book_out(void) { int n,s,l,d; page_title("借阅图书"); if((n=search_book())!=-1&&books[n].store>0) { printf("请输入借书证序号:"); scanf("%d",&s); printf("请输入可借天数:"); scanf("%d",&d); for(l=0;l<10;l++) { if(books[n].usr[l]==0) { books[n].usr[l]=s; books[n].days[l]=d; break; } } books[n].store--; } if(n!=-1&&books[n].store==0) printf("此书已经全部借出. "); return_confirm(); } /*上面是借书的函数,首先调用找书函数*/ void book_in(void) { int n,s,l; page_title("归还图书"); if((n=search_book())!=-1&&books[n].store<books[n].total) { printf("借阅者图书证列表: "); for(l=0;l<10;l++) if (books[n].usr[l]!=0) printf("[%d] - %d天 ",books[n].usr[l],books[n].days[l]); printf("请输入借书证序号:"); scanf("%d",&s); for(l=0;l<10;l++) { if(books[n].usr[l]==s) { books[n].usr[l]=0; books[n].days[l]=0; break; } } books[n].store++; } if(n!=-1&&books[n].store==books[n].total) printf("全部入藏. "); return_confirm(); } void book_add(void) { int n; page_title("注册新书"); for(n=0;n<100;n++) if(books[n].id==0) break; printf("序号:"); scanf("%d",&books[n].id); printf("书名:"); scanf("%s",&books[n].name); printf("作者:"); scanf("%s",&books[n].author); printf("数量:"); scanf("%d",&books[n].total); books[n].store=books[n].total; return_confirm(); } void book_del(void) { int n; page_title("注销旧书"); if((n=search_book())!=-1) books[n].id=0; printf("该书已注销. "); return_confirm(); } void main(void) { menu: page_title("操作选单"); printf("请用数字键选择操作 "); printf("1 借阅图书 2 归还图书 "); printf("3 注册新书 4 注销旧书 "); printf(" 0 退出 "); switch(getch()) { case "1" : book_out();break; case "2" : book_in();break; case "3" : book_add();break; case "4" : book_del();break; case "0" : exit(0); } goto menu; } { int n; page_title("广?症慕"); if((n=search_book())!=-1) books[n].id=0; printf("乎慕厮广?. "); return_confirm(); } void main(void) { menu: page_title("荷恬佥汽"); printf("萩喘方忖囚佥夲荷恬 "); printf("1 処堋夕慕 2 拷珊夕慕 "); printf("3 广过仟慕 4 广?症慕 "); printf(" 0 曜竃 "); switch(getch()) { case "1" : book_out();break; case "2" : book_in();break; case "3" : book_add();break; case "4" : book_del();break; case "0" : exit(0); } goto menu; }
2023-09-01 22:27:234

C语言课设扫雷游戏设计及论文!

c语言课程设计_扫雷游戏设计/*5.3.4 源程序*/#include <graphics.h>#include <stdlib.h>#include <dos.h>#define LEFTPRESS 0xff01#define LEFTCLICK 0xff10#define LEFTDRAG 0xff19#define MOUSEMOVE 0xff08struct{ int num;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/ int roundnum;/*统计格子周围有多少雷*/ int flag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/}Mine[10][10];int gameAGAIN=0;/*是否重来的变量*/int gamePLAY=0;/*是否是第一次玩游戏的标志*/int mineNUM;/*统计处理过的格子数*/char randmineNUM[3];/*显示数字的字符串*/int Keystate;int MouseExist;int MouseButton;int MouseX;int MouseY;void Init(void);/*图形驱动*/void MouseOn(void);/*鼠标光标显示*/void MouseOff(void);/*鼠标光标隐藏*/void MouseSetXY(int,int);/*设置当前位置*/int LeftPress(void);/*左键按下*/int RightPress(void);/*鼠标右键按下*/void MouseGetXY(void);/*得到当前位置*/void Control(void);/*游戏开始,重新,关闭*/void GameBegain(void);/*游戏开始画面*/void DrawSmile(void);/*画笑脸*/void DrawRedflag(int,int);/*显示红旗*/void DrawEmpty(int,int,int,int);/*两种空格子的显示*/void GameOver(void);/*游戏结束*/void GameWin(void);/*显示胜利*/int MineStatistics(int,int);/*统计每个格子周围的雷数*/int ShowWhite(int,int);/*显示无雷区的空白部分*/void GamePlay(void);/*游戏过程*/void Close(void);/*图形关闭*/void main(void){ Init(); Control(); Close();}void Init(void)/*图形开始*/{ int gd=DETECT,gm; initgraph(&gd,&gm,"c:\tc");}void Close(void)/*图形关闭*/{ closegraph();}void MouseOn(void)/*鼠标光标显示*/{ _AX=0x01; geninterrupt(0x33);}void MouseOff(void)/*鼠标光标隐藏*/{ _AX=0x02; geninterrupt(0x33);}void MouseSetXY(int x,int y)/*设置当前位置*/{ _CX=x; _DX=y; _AX=0x04; geninterrupt(0x33);}int LeftPress(void)/*鼠标左键按下*/{ _AX=0x03; geninterrupt(0x33); return(_BX&1);}int RightPress(void)/*鼠标右键按下*/{ _AX=0x03; geninterrupt(0x33); return(_BX&2);}void MouseGetXY(void)/*得到当前位置*/{ _AX=0x03; geninterrupt(0x33); MouseX=_CX; MouseY=_DX;}void Control(void)/*游戏开始,重新,关闭*/{ int gameFLAG=1;/*游戏失败后判断是否重新开始的标志*/ while(1) { if(gameFLAG)/*游戏失败后没判断出重新开始或者退出游戏的话就继续判断*/ { GameBegain(); /*游戏初始画面*/ GamePlay();/*具体游戏*/ if(gameAGAIN==1)/*游戏中重新开始*/ { gameAGAIN=0; continue; } } MouseOn(); gameFLAG=0; if(LeftPress())/*判断是否重新开始*/ { MouseGetXY(); if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85) { gameFLAG=1; continue; } } if(kbhit())/*判断是否按键退出*/ break; } MouseOff();}void DrawSmile(void)/*画笑脸*/{ setfillstyle(SOLID_FILL,YELLOW); fillellipse(290,75,10,10); setcolor(YELLOW); setfillstyle(SOLID_FILL,BLACK);/*眼睛*/ fillellipse(285,75,2,2); fillellipse(295,75,2,2); setcolor(BLACK);/*嘴巴*/ bar(287,80,293,81);}void DrawRedflag(int i,int j)/*显示红旗*/{ setcolor(7); setfillstyle(SOLID_FILL,RED); bar(198+j*20,95+i*20,198+j*20+5,95+i*20+5); setcolor(BLACK); line(198+j*20,95+i*20,198+j*20,95+i*20+10);}void DrawEmpty(int i,int j,int mode,int color)/*两种空格子的显示*/{ setcolor(color); setfillstyle(SOLID_FILL,color); if(mode==0)/*没有单击过的大格子*/ bar(200+j*20-8,100+i*20-8,200+j*20+8,100+i*20+8); else if(mode==1)/*单击过后显示空白的小格子*/ bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7);}void GameBegain(void)/*游戏开始画面*/{ int i,j; cleardevice(); if(gamePLAY!=1) { MouseSetXY(290,70); /*鼠标一开始的位置,并作为它的初始坐标*/ MouseX=290; MouseY=70; } gamePLAY=1;/*下次按重新开始的话鼠标不重新初始化*/ mineNUM=0; setfillstyle(SOLID_FILL,7); bar(190,60,390,290); for(i=0;i<10;i++)/*画格子*/ for(j=0;j<10;j++) DrawEmpty(i,j,0,8); setcolor(7); DrawSmile();/*画脸*/ randomize(); for(i=0;i<10;i++)/*100个格子随机赋值有没有地雷*/ for(j=0;j<10;j++) { Mine[i][j].num=random(8);/*如果随机数的结果是1表示这个格子有地雷*/ if(Mine[i][j].num==1) mineNUM++;/*现有雷数加1*/ else Mine[i][j].num=2; Mine[i][j].flag=0;/*表示没红旗标志*/ } sprintf(randmineNUM,"%d",mineNUM); /*显示这次总共有多少雷数*/ setcolor(1); settextstyle(0,0,2); outtextxy(210,70,randmineNUM); mineNUM=100-mineNUM;/*变量取空白格数量*/ MouseOn();}void GameOver(void)/*游戏结束画面*/{ int i,j; setcolor(0); for(i=0;i<10;i++) for(j=0;j<10;j++) if(Mine[i][j].num==1)/*显示所有的地雷*/ { DrawEmpty(i,j,0,RED); setfillstyle(SOLID_FILL,BLACK); fillellipse(200+j*20,100+i*20,7,7); }}void GameWin(void)/*显示胜利*/{ setcolor(11); settextstyle(0,0,2); outtextxy(230,30,"YOU WIN!");}int MineStatistics(int i,int j)/*统计每个格子周围的雷数*/{ int nNUM=0; if(i==0&&j==0)/*左上角格子的统计*/ { if(Mine[0][1].num==1) nNUM++; if(Mine[1][0].num==1) nNUM++; if(Mine[1][1].num==1) nNUM++; } else if(i==0&&j==9)/*右上角格子的统计*/ { if(Mine[0][8].num==1) nNUM++; if(Mine[1][9].num==1) nNUM++; if(Mine[1][8].num==1) nNUM++; } else if(i==9&&j==0)/*左下角格子的统计*/ { if(Mine[8][0].num==1) nNUM++; if(Mine[9][1].num==1) nNUM++; if(Mine[8][1].num==1) nNUM++; } else if(i==9&&j==9)/*右下角格子的统计*/ { if(Mine[9][8].num==1) nNUM++; if(Mine[8][9].num==1) nNUM++; if(Mine[8][8].num==1) nNUM++; } else if(j==0)/*左边第一列格子的统计*/ { if(Mine[i][j+1].num==1) nNUM++; if(Mine[i+1][j].num==1) nNUM++; if(Mine[i-1][j].num==1) nNUM++; if(Mine[i-1][j+1].num==1) nNUM++; if(Mine[i+1][j+1].num==1) nNUM++; } else if(j==9)/*右边第一列格子的统计*/ { if(Mine[i][j-1].num==1) nNUM++; if(Mine[i+1][j].num==1) nNUM++; if(Mine[i-1][j].num==1) nNUM++; if(Mine[i-1][j-1].num==1) nNUM++; if(Mine[i+1][j-1].num==1) nNUM++; } else if(i==0)/*第一行格子的统计*/ { if(Mine[i+1][j].num==1) nNUM++; if(Mine[i][j-1].num==1) nNUM++; if(Mine[i][j+1].num==1) nNUM++; if(Mine[i+1][j-1].num==1) nNUM++; if(Mine[i+1][j+1].num==1) nNUM++; } else if(i==9)/*最后一行格子的统计*/ { if(Mine[i-1][j].num==1) nNUM++; if(Mine[i][j-1].num==1) nNUM++; if(Mine[i][j+1].num==1) nNUM++; if(Mine[i-1][j-1].num==1) nNUM++; if(Mine[i-1][j+1].num==1) nNUM++; } else/*普通格子的统计*/ { if(Mine[i-1][j].num==1) nNUM++; if(Mine[i-1][j+1].num==1) nNUM++; if(Mine[i][j+1].num==1) nNUM++; if(Mine[i+1][j+1].num==1) nNUM++; if(Mine[i+1][j].num==1) nNUM++; if(Mine[i+1][j-1].num==1) nNUM++; if(Mine[i][j-1].num==1) nNUM++; if(Mine[i-1][j-1].num==1) nNUM++; } return(nNUM);/*把格子周围一共有多少雷数的统计结果返回*/}int ShowWhite(int i,int j)/*显示无雷区的空白部分*/{ if(Mine[i][j].flag==1||Mine[i][j].num==0)/*如果有红旗或该格处理过就不对该格进行任何判断*/ return; mineNUM--;/*显示过数字或者空格的格子就表示多处理了一个格子,当所有格子都处理过了表示胜利*/ if(Mine[i][j].roundnum==0&&Mine[i][j].num!=1)/*显示空格*/ { DrawEmpty(i,j,1,7); Mine[i][j].num=0; } else if(Mine[i][j].roundnum!=0)/*输出雷数*/ { DrawEmpty(i,j,0,8); sprintf(randmineNUM,"%d",Mine[i][j].roundnum); setcolor(RED); outtextxy(195+j*20,95+i*20,randmineNUM); Mine[i][j].num=0;/*已经输出雷数的格子用0表示已经用过这个格子*/ return ; } /*8个方向递归显示所有的空白格子*/ if(i!=0&&Mine[i-1][j].num!=1) ShowWhite(i-1,j); if(i!=0&&j!=9&&Mine[i-1][j+1].num!=1) ShowWhite(i-1,j+1); if(j!=9&&Mine[i][j+1].num!=1) ShowWhite(i,j+1); if(j!=9&&i!=9&&Mine[i+1][j+1].num!=1) ShowWhite(i+1,j+1); if(i!=9&&Mine[i+1][j].num!=1) ShowWhite(i+1,j); if(i!=9&&j!=0&&Mine[i+1][j-1].num!=1) ShowWhite(i+1,j-1); if(j!=0&&Mine[i][j-1].num!=1) ShowWhite(i,j-1); if(i!=0&&j!=0&&Mine[i-1][j-1].num!=1) ShowWhite(i-1,j-1);}void GamePlay(void)/*游戏过程*/{ int i,j,Num;/*Num用来接收统计函数返回一个格子周围有多少地雷*/ for(i=0;i<10;i++) for(j=0;j<10;j++) Mine[i][j].roundnum=MineStatistics(i,j);/*统计每个格子周围有多少地雷*/ while(!kbhit()) { if(LeftPress())/*鼠标左键盘按下*/ { MouseGetXY(); if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)/*重新来*/ { MouseOff(); gameAGAIN=1; break; } if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/*当前鼠标位置在格子范围内*/ { j=(MouseX-190)/20;/*x坐标*/ i=(MouseY-90)/20;/*y坐标*/ if(Mine[i][j].flag==1)/*如果格子有红旗则左键无效*/ continue; if(Mine[i][j].num!=0)/*如果格子没有处理过*/ { if(Mine[i][j].num==1)/*鼠标按下的格子是地雷*/ { MouseOff(); GameOver();/*游戏失败*/ break; } else/*鼠标按下的格子不是地雷*/ { MouseOff(); Num=MineStatistics(i,j); if(Num==0)/*周围没地雷就用递归算法来显示空白格子*/ ShowWhite(i,j); else/*按下格子周围有地雷*/ { sprintf(randmineNUM,"%d",Num);/*输出当前格子周围的雷数*/ setcolor(RED); outtextxy(195+j*20,95+i*20,randmineNUM); mineNUM--; } MouseOn(); Mine[i][j].num=0;/*点过的格子周围雷数的数字变为0表示这个格子已经用过*/ if(mineNUM<1)/*胜利了*/ { GameWin(); break; } } } } } if(RightPress())/*鼠标右键键盘按下*/ { MouseGetXY(); if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/*当前鼠标位置在格子范围内*/ { j=(MouseX-190)/20;/*x坐标*/ i=(MouseY-90)/20;/*y坐标*/ MouseOff(); if(Mine[i][j].flag==0&&Mine[i][j].num!=0)/*本来没红旗现在显示红旗*/ { DrawRedflag(i,j); Mine[i][j].flag=1; } else if(Mine[i][j].flag==1)/*有红旗标志再按右键就红旗消失*/ { DrawEmpty(i,j,0,8); Mine[i][j].flag=0; } } MouseOn(); sleep(1); } }}c语言课程设计_扫雷游戏设计
2023-09-01 22:27:311

C语言课程设计-学生成绩管理程序

#include<stdio.h> /*引用库函数*/ #include<stdlib.h> #include<ctype.h> #include<string.h> typedef struct /*定义结构体数组*/ { char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ }Student; Student stu[80]; /*结构体数组变量*/ int menu_select() /*菜单函数*/ { char c; do{ system("cls"); /*运行前清屏*/ printf(" ****Students" Grade Management System**** "); /*菜单选择*/ printf(" | 1. Input Records | "); printf(" | 2. Display All Records | "); printf(" | 3. Sort | "); printf(" | 4. Insert a Record | "); printf(" | 5. Delete a Record | "); printf(" | 6. Query | "); printf(" | 7. Statistic | "); printf(" | 8. Add Records from a Text File| "); printf(" | 9. Write to a Text file | "); printf(" | 0. Quit | "); printf(" ***************************************** "); printf(" Give your Choice(0-9):"); c=getchar(); /*读入选择*/ }while(c<"0"||c>"9"); return(c-"0"); /*返回选择*/ } int Input(Student stud[],int n) /*输入若干条记录*/ {int i=0; char sign,x[10]; /*x[10]为清除多余的数据所用*/ while(sign!="n"&&sign!="N") /*判断*/ { printf(" student"s num:"); /*交互输入*/ scanf(" %s",stud[n+i].num); printf(" student"s name:"); scanf(" %s",stud[n+i].name); printf(" student"s score:"); scanf(" %d",&stud[n+i].score); gets(x); /*清除多余的输入*/ printf(" any more records?(Y/N)"); scanf(" %c",&sign); /*输入判断*/ i++; } return(n+i); } void Display(Student stud[],int n) /*显示所有记录*/ { int i; printf(" ----------------------------------- "); /*格式头*/ printf(" number name score "); printf(" ----------------------------------- "); for(i=1;i<n+1;i++) /*循环输入*/ { printf(" %-16s%-15s%d ",stud[i-1].num,stud[i-1].name,stud[i-1].score); if(i>1&&i%10==0) /*每十个暂停*/ {printf(" ----------------------------------- "); /*格式*/ printf(" "); system("pause"); printf(" ----------------------------------- "); } } printf(" "); system("pause"); } void Sort_by_num(Student stud[],int n) /*按学号排序*/ { int i,j,*p,*q,s; char t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;j++) if(strcmp(stud[j].num,stud[j+1].num)>0) {strcpy(t,stud[j+1].num); strcpy(stud[j+1].num,stud[j].num); strcpy(stud[j].num,t); strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); p=&stud[j+1].score; q=&stud[j].score; s=*p; *p=*q; *q=s; } } int Insert_a_record(Student stud[],int n) /*插入一条记录*/ {char x[10]; /*清除多余输入所用*/ printf(" student"s num:"); /*交互式输入*/ scanf(" %s",stud[n].num); printf(" student"s name:"); scanf(" %s",stud[n].name); printf(" student"s score:"); scanf(" %d",&stud[n].score); gets(x); n++; Sort_by_num(stud,n); /*调用排序函数*/ printf(" Insert Successed! "); /*返回成功信息*/ return(n); } int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/ { char s[20]; int i=0,j; printf(" tell me his(her) name:"); /*交互式问寻*/ scanf("%s",s); while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/ if(i==n) { printf(" not find! "); /*返回失败信息*/ return(n); } for(j=i;j<n-1;j++) /*删除操作*/ { strcpy(stud[j].num,stud[j+1].num); strcpy(stud[j].name,stud[j+1].name); stud[j].score=stud[j+1].score; } printf(" Delete Successed! "); /*返回成功信息*/ return(n-1); } void Query_a_record(Student stud[],int n) /*查找并显示一个记录*/ { char s[20]; int i=0; printf(" input his(her) name:"); /*交互式输入*/ scanf(" %s",s); while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/ if(i==n) { printf(" not find! "); /*输入失败信息*/ return; } printf(" his(her) number:%s ",stud[i].num); /*输出该学生信息*/ printf(" his(her) score:%d ",stud[i].score); } void Statistic(Student stud[],int n) /*新增功能,输出统计信息*/ { int i,j=0,k=0,sum=0; float aver; /*成绩平均值*/ for(i=0;i<n;i++) /*循环输入判断*/ { sum+=stud[i].score; if(stud[j].score>stud[i].score) j=i; if(stud[k].score<stud[i].score) k=i; } aver=1.0*sum/n; printf(" there are %d records. ",n); /*总共记录数*/ printf(" the hignest score: "); /*最高分*/ printf(" number:%s name:%s score:%d ",stud[j].num,stud[j].name,stud[j].score); printf(" the lowest score: "); /*最低分*/ printf(" number:%s name:%s score:%d ",stud[k].num,stud[k].name,stud[k].score); printf(" the average score is %5.2f ",aver); /*平均分*/ } int AddfromText(Student stud[],int n) /*从文件中读入数据*/ { int i=0,num; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf(" Input the filename:"); scanf(" %s",filename); /*输入文件名*/ if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/ { printf(" cann"t open the file "); /*打开失败信息*/ printf(" "); system("pause"); return(n); } fscanf(fp,"%d",&num); /*读入总记录量*/ while(i<num) /*循环读入数据*/ { fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,&stud[n+i].score); i++; } n+=num; fclose(fp); /*关闭文件*/ printf(" Successed! "); printf(" "); system("pause"); return(n); } void WritetoText(Student stud[],int n) /*将所有记录写入文件*/ { int i=0; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf(" Write Records to a Text File "); /*输入文件名*/ printf(" Input the filename:"); scanf(" %s",filename); if((fp=fopen(filename,"w"))==NULL) /*打开文件*/ { printf(" cann"t open the file "); system("pause"); return; } fprintf(fp,"%d ",n); /*循环写入数据*/ while(i<n) { fprintf(fp,"%-16s%-15s%d ",stud[i].num,stud[i].name,stud[i].score); i++; } fclose(fp); /*关闭文件*/ printf("Successed! "); /*返回成功信息*/ } void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select()) /*选择判断*/ { case 1: printf(" Input Records "); /*输入若干条记录*/ n=Input(stu,n); break; case 2: printf(" Display All Records "); /*显示所有记录*/ Display(stu,n); break; case 3: printf(" Sort "); Sort_by_num(stu,n); /*按学号排序*/ printf(" Sort Suceessed! "); printf(" "); system("pause"); break; case 4: printf(" Insert a Record "); n=Insert_a_record(stu,n); /*插入一条记录*/ printf(" "); system("pause"); break; case 5: printf(" Delete a Record "); n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/ printf(" "); system("pause"); break; case 6: printf(" Query "); Query_a_record(stu,n); /*查找并显示一个记录*/ printf(" "); system("pause"); break; case 7: printf(" Statistic "); Statistic(stu,n); /*新增功能,输出统计信息*/ printf(" "); system("pause"); break; case 8: printf(" Add Records from a Text File "); n=AddfromText(stu,n); /*新增功能,输出统计信息*/ break; case 9: printf(" Write to a Text file "); WritetoText(stu,n); /*循环写入数据*/ printf(" "); system("pause"); break; case 0: printf(" Have a Good Luck,Bye-bye! "); /*结束程序*/ printf(" "); system("pause"); exit(0); } } }
2023-09-01 22:27:411

C语言高手进

//这是我在大学时做的,你看看: /* 程序功能: 能完成每位学生的某门课程的平时成绩和期末考试成绩的录入, 完成每位学生的总评成绩计算(平时成绩*30%+期末考试成绩*70%)并生成数据文件, 生成分数段统计文件(不及格人数,60-69数,70-79人数,80-89人数,90-100人数,及格 率), 通过学生成绩的数据文件查询学生成绩(查询条件自定)。 通过学生成绩的分段统计文件输出学生成绩分段情况和及格率。 程序要求: (1)能够完成300人以内任何人数的成绩处理。 (2)程序要有主控菜单 */ #include<stdio.h> #include<stdlib.h> #include<string.h> struct stud { long num; char name[20]; double score; }; typedef struct stucode { struct stud student ; struct stucode *next; }L; void menu(); void createlist(struct stucode **r); void out(struct stucode *r); void search1(struct stucode *r); void search2(struct stucode *r); void del(struct stucode **r); void insert(struct stucode **r); void sort(struct stucode **r); void main() { char choose; int flag=1; struct stucode *r=NULL; while(flag) { system("cls"); menu(); choose=getchar(); switch(choose) { case "1": createlist(&r); out(r); printf("Testing function 1 Press any key to continue "); getchar(); getchar(); break; case "2": search1(r); printf("Testing function 1 Press any key to continue "); getchar(); getchar(); break; case "3": search2(r); printf("Testing function 1 Press any key to continue "); getchar(); getchar(); break; case "4": del(&r); out(r); printf("Testing function 1 Press any key to continue "); getchar(); getchar(); break; case "5": insert(&r); out(r); printf("Testing function 1 Press any key to continue "); getchar(); getchar(); break; case "6": sort(&r); out(r); printf("Testing function 1 Press any key to continue "); getchar(); getchar(); break; case "7": out(r); printf("Testing function 7 Press any key to continue "); getchar(); getchar(); break; case "0": flag=0; printf("The end. "); break; default: printf(" Wrong Selection!(选择错误,请重选!) ");getchar();getchar(); } } } void createlist(struct stucode **r) { struct stucode *p,*t; long n; char a[20]; double s; if(*r) *r=NULL; printf(" 请输入: 学号(请按学号升序排列) 姓名 分数 (若要结束请输入三个为零) "); scanf("%ld%s%lf",&n,a,&s); if(n==0) return; p=(L *)malloc(sizeof(L)); p->student.num=n; strcpy(p->student.name,a); p->student.score=s; p->next=NULL; *r=p; scanf("%ld%s%lf",&n,a,&s); while(n) { t=p; p=(L *)malloc(sizeof(L)); p->student.num=n; strcpy(p->student.name,a); p->student.score=s; p->next=NULL; t->next=p; scanf("%ld%s%lf",&n,a,&s); } } void search1(struct stucode *r) { long x; if(!r) { printf("没有学生信息可查询! "); return ; } printf(" 请输入要查询的学生信息的学生学号: "); scanf("%ld",&x); while(r&&r->student.num!=x) r=r->next; if(r==NULL) printf("Error! No such student ! "); else printf("%ld %s %.2lf ",r->student.num,r->student.name,r->student.score); } void search2(struct stucode *r) { char m[20]; if(!r) { printf("没有学生信息可查询! "); return ; } printf(" 请输入要查询的学生信息的学生姓名: "); scanf("%s",m); while(r&&strcmp(r->student.name,m)) r=r->next; if(r==NULL) printf("Error! No such student ! "); else printf("%ld %s %.2lf ",r->student.num,r->student.name,r->student.score); } void del(struct stucode **r) { long k; struct stucode *p=*r,*t; if(!(*r)) { printf("没有学生信息可删除 ! "); return ; } printf(" 请输入要删除的学生信息的学生学号: "); scanf("%ld",&k); if(p->student.num==k) *r=(*r)->next,free(p); else { while(p->next&&p->next->student.num!=k) p=p->next; if(p->next==NULL) printf("Error! No such student ! "); else { t=p->next; p->next=p->next->next; free(t); } } } void insert(struct stucode **r) { long n; char a[20]; double s; L *p,*t,*k; printf(" 请输入要插入的学生信息的学生学号 姓名 分数: "); scanf("%ld%s%lf",&n,a,&s); p=(L *)malloc(sizeof(L)); p->student.num=n; p->student.score=s; strcpy(p->student.name,a); if(!(*r)) { *r=p; (*r)->next=NULL; return ; } if(p->student.num<(*r)->student.num) p->next=(*r),(*r)=p; else { t=*r; k=t; while(t->next&&t->next->student.num<=p->student.num) t=t->next; p->next=t->next; t->next=p; *r=k; } } void sort(struct stucode **r) { struct stucode *t,*p,*q,*z; if(!r) { printf("没有学生信息可排序! "); return ; } if(!(*r)||!(*r)->next) return; t=*r; p=t->next; t->next=NULL; while(p) { q=p->next; if(p->student.score>t->student.score) { p->next=t; t=p; } else { z=t; while(z->next&&z->next->student.score>=p->student.score) z=z->next; p->next=z->next; z->next=p; } p=q; } *r=t; } void out(struct stucode *r) { printf(" "); if(!r) { printf("没有学生信息可输出! "); return ; } while(r) { printf("%ld %s %.2lf ",r->student.num,r->student.name,r->student.score); r=r->next; } printf(" "); } void menu() { printf(" 学生信息管理系统 "); printf(" 菜单 "); printf(" 1建立链表并显示 "); printf(" 2查找某学号的学生信息 "); printf(" 3查找某姓名的学生信息 "); printf(" 4删除某学号的学生信息 "); printf(" 5插入新的学生信息 "); printf(" 6按分数降序排列输出 "); printf(" 7输出 "); printf(" 0退出 "); printf(" 请选择您要执行的选项: "); }
2023-09-01 22:28:011

课程设计的目的和意义

以下是我做课程设计时写的,希望能够帮你目的:根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。C语言课程设计过程总结:回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。
2023-09-01 22:28:092

我是一棵树,开头,春天,夏天,秋天,冬天的描写,结尾

冬天,户外那粘满霜雪的柳树上尽是树挂,像是一根根银条悬挂在树上,格外壮观。 冬天,一层薄薄的白雪,像巨大的轻软的羊毛毯子,覆盖摘在这广漠的荒原上,闪着寒冷的银光。 初冬,像一位美丽的、高贵的、矜持的公主,舞动着她那神奇的面纱,送来阵阵凛冽的寒风。 寒冷的严冬,河水一改往日的活泼,似乎恬静地睡着了 冬天,虽然没有春天迷人的鸟语花香,没有夏天壮观的闪电雷鸣,没有秋天诱人的丰硕果实,但它也有献给大自然的含蓄的美 数九寒天 ,冰封雪地,整个世界成了只大冰箱,山冷地在颤抖,河冻地僵硬了,空气似乎也要凝固起来。
2023-09-01 22:18:123

古诗山行怎么写

《山行》唐杜牧远上寒山石径斜,白云深处有人家。停车坐爱枫林晚,霜叶红于二月花。
2023-09-01 22:18:1310

好朋友毕业贺卡祝福语

  好朋友毕业贺卡祝福语 篇1   1.无尽的人海中,我们相聚又分离;但愿我们的友谊冲破时空,随岁月不断增长。   2.回忆可以被复制,但是感觉却不行。所以我们再也不能像当初那样单纯的笑。我们再也回不到从前。   3.这就是我们啊!这就是爱恋又必须离开啊!这就是起点啊!虽然,也许很多人你以前还来不及了解,以后也许再未必相见,只是在这样的时刻要到来的时候,你会希望他们能够永远记住你微笑的脸。   4.明晨行别,但愿云彩、艳阳一直陪伴你走到海角天涯;鲜花、绿草相随你铺展远大的前程。   5.三年,在人生的旅程中不过是短短的一段,然而和你同桌三载,却使我终生难以忘怀。你是我记忆中的一粒珍珠,心里天幕上的一颗明星。   6.千山万水难送礼,发条短信祝福你,健康美丽常伴你,财神老爷看上你,金钱上亿跟著你,朋友时刻祝福你   7.清晨曙光初现,幸福落你身边;中午豔阳高照,微笑在你心间;傍晚日落西山,欢乐伴你一天。   8.流水匆匆,岁月匆匆,唯有友情永存心中。朋友,再见!朋友,珍重!   9.我们这一代不允许我们愧对古人与后代。愿我们以卓越的智慧、坚强的意志、大无畏的精神,不断开拓,不断奋进!   10.当我们贴近自然的真实与伟大,才知人的微不足道却依然坚韧;当我们以微笑面对那张质朴的脸,才知道心与心之间的距离,就在那微笑之间。   11.月光很美,比不上朋友的安慰;星星很美,比不上友情的点缀;夜空很美,比不上友谊的珍贵。愿你夜夜都有好梦,天天快乐相随,时时把我想起!   12.茫茫人海独自走.有缘才能相聚首,人生知己最难求,千金一掷换美酒,人逢知己千杯少,情投意合忘忧愁,不管多少春与秋,今生你我是朋友。   13.轻轻的一声问候融入了我所有的心愿,淡淡的一句祝福倾注了我无限的真诚,小小一则信息悄悄地填满屏幕!愿友人永远开开心心快快乐乐……   14.毕业了,请再谱一支青春曲,伴随你我在明天的征途中继续奋进!   15.请再谱一支青春曲,伴随你我在明天的征途中继续奋进!   好朋友毕业贺卡祝福语 篇2   1.“莫道浮云终蔽日,严冬过尽绽春蕾。” 人生最可贵的财富是希望,希望将给人生带来永久的乐趣。   2.轻轻地,我们走了,正如我们轻轻地来。挥一挥手,作别青青的校园。我们在这里留下灿烂的笑容。   3.生命如琴弦,只有拧紧绷直,才会优美激昂的旋律……   4.毕业后不论从事哪种职业,要走向成功,首先应对职业感兴趣。   5.思念是忧伤的,因为少了拥着你时的充实与亲密;思念是幸福的,因为充满了玫瑰般美丽的回忆!   6.我从灵魂深处爱你,我愿意把生命交给你,由你接受多少就多少,当初是这样,现在也决不变更。   7.我的思念是绵绵的风,从春到夏,从秋到冬,只要你的窗帘轻轻飘动,就是我在轻声地将你呼唤。   8.几年的同窗,我与你结下了深厚的友谊,愿你我心灵间的交流,直到永远。   9.如果可以的话,我愿意用生命中的每一分每一秒陪着你,可是,现在我能做的,只是每一分每一秒想着你。   10.深深的情谊与祝福,绵绵的思念与问候,在这美好的日子,把祝愿,随着鲜花带给远方的你。   11.时间将证明我对你坚定而又执着的爱,别让时空距离猜疑彼此的真情与信心,坚持到底决不轻言放弃。   12.今日同窗分手,说一声:珍重!明朝校友相逢,贺一句:成功!   13.我留在你的心上,一如你在我的心中过去和现在,我们一直是两个彼此不能疏远的生命。   14.人生路上何须惆怅,天涯海角总有知音。把握机会珍惜缘分,祝愿我们友谊长存。   15.毕业了,才感到在一起的日子多么宝贵,我努力搜集了一起的春秋,每次的游戏,每次的探讨,每次的争吵,都将成为我最珍贵的记忆!别忘了,受伤时给我电话,成功时给我短信,寂寞时找我聊天,难忘同窗情!   好朋友毕业贺卡祝福语 篇3   1.毕业那天,谁都不要哭,都微笑的滚蛋好吗?   2.送你千万幅春景,春景艳艳美心间。送你美丽的春天,春天洒满友谊篇!友情的世界因无私而纯洁!人生的路因有你而不孤单!我的空间有你的光临而变的精彩!是网络让我们相聚,是空间让我们交流,是你的真诚让我感动!祝朋友开心快乐每一天。   3.我珍惜人生中每一次相识,天地间每一份温暖,朋友间每一个知心的默契;就是离别,也将它看成是为了重逢时加倍的欢乐。   4.我们曾经在一起欣赏过美丽的花;我们曾经在一起幻想过美丽的季节。同学啊,同学,分别后不要忘了我们曾经一起走过的日子。我们有过如水的平静,有过激烈的辩论,也有过无声的竞争。   5.生活已经向我们敞开了胸襟,朋友,让我们勇敢地迎上前去,去尽情地体验它无边无际的壮阔,无穷无尽的幽深吧!   6.聚也不是开始,散也不是结束,同窗数载凝的无数美好瞬间,将永远铭刻在我的记忆之中……   7.那以往的同窗生活,是一串糖葫芦,那迷人的甜和酸,将永远回味不完。   8.从五湖四海来,到天南地北去。不管走到哪里,不管在什么岗位,让我们继续填好人生的履历表,交出事业的优秀答卷,为母校的旗帜增辉添彩。   9.今天,我们是亲密的同学;明天,我们将是竞争的对手。愿友谊在竞争中更加深厚。   10.一声汽笛,跌落在旷野;无限的惆怅与孤独,在别离的那一刻,一起从心头滋生。   11.命运让我们相识相知,生活又使我们相分相离,就像月亮和星星,遥远而又永在一起。   12.我舍不得你走,但是你要走我也没法挽留,只能说声“一路顺风”!   13.那天,经过母校,听到熟悉的下课低声,仿佛看见了我们天心玩耍的场面。   14.离别,泪水成了留言,你说:这泪可以凝结成珍珠,变成永久的纪念。   15.我的朋友,你的声音飘荡在我的心里,像那海水的低吟之声,缭绕在静听着的松林之间。像露珠依恋着美丽的花朵 ?   好朋友毕业贺卡祝福语 篇4   1.岁月的车轮即将驶出青春的校园,甚至来不及去想一想,我们就要走向生活的前方。这样匆匆,说些什么?让我们的心间加固童年时架设起来的桥梁。   2.有朋友的日子里总是阳光灿烂,花朵鲜艳;有朋友的时候才发现自己已经拥有了一切。我们可以失去很多,但不能失去的是朋友。朋友也许并不能成为一段永恒,朋友也许只是你生命中某段时间的一个过客,但因为这份缘起缘灭,更使生命变得美丽起来,朋友的情感更加生动和珍贵!祝朋友事业有成,永远身体健康,幸福快乐!   3.当你再重温我们在一起的旧梦时,那时只有寄托于千里之明月。   4.忧他人之忧,乐他人之乐,你那善良、热诚、无私的品性,永远铭刻在我心怀。   5.我们紧靠肩头,紧握双手,拥有一个共同的理想,发出一个共同的心声。无论是得到的,还是失去的,一切都将存留在我记忆的最深处。   6.认识您,不论是生命中的一段插曲,还是永久的知已,我都会珍惜,当我疲倦或老去,不再拥有青春的时候,这段旋律会滋润我生命的每一刻。在此我只想说:有您真好!无论你身在何方,我的祝福永远在您身边!   7.竞技场上讲谦虚,无疑等于宣告自己的失败;该需要毛遂自荐时,就要当仁不让。生活需要自己主宰,请珍惜大写的“我”。   8.三年光阴,匆匆而过,如梦的年纪,弥漫着串串欢声笑语,不要挥手叹息,觉得繁花尽去,鼓足勇气,不要忘了互递惊喜的消息。   9.小鸟在枝头吱吱喳喳,多像我们当年的窃窃私语,和那一串串格格的笑声。   10.三年一瞬间,就这样欢歌、纵笑,就这样相识、相聚,甚至都来不及好好地话别,马上就要各奔东西。   11.我们相逢在陌生时,我们分手在熟悉后。明天,我们要到生活的星图上找寻自己的新位置,让我们用自己闪烁的星光相互问讯、表情达敬意。   12.六月真罪恶,第1周高考,第2周中考,第3周小考,让我们不得不分离。   13.南风又轻轻地吹送,相聚的光阴匆匆。   14.愿你作一滴晶亮的"水,投射到浩瀚的大海;作一朵鲜美的花,组成百花满园;作一丝闪光的纤维,绣织出鲜红的战旗;作一颗小小的螺丝钉,一辈子坚守自己的岗位……   15.哈哈,四年的老同桌,你身上一定有门捷列夫没有发现的元素!否则,语言怎么在我最需要的时候无影无踪了呢?   好朋友毕业贺卡祝福语 篇5   1、竞技场上讲谦虚,无疑等于宣告自己的失败;该需要毛遂自荐时,就要当仁不让。生活需要自己主宰,请珍惜大写的 “ 我 ” 。   2、聚也不是开始,散也不是结束,同窗数载凝的无数美好瞬间,将永远铭刻在我的记忆之中 。   3、如花温馨,如蜜甜蜜,所有幸福,最最健康,永远平安,永恒爱心,浓浓祝福,祝你永远幸福快乐,万事如意!   4、曾经抱怨,曾经感慨,如今只剩满腔留恋。   5、最恨的是你,因为你是我学习上竞争的“敌人”;最爱的也是你,因为你是我成长中为鉴的友人。今日一别,犹如管仲之失鲍叔牙,茫茫天涯,叫我到何处去寻找我最爱的“挚友”。   6、朋友,你喜欢星空吗?如果有一天你在远方流浪时感到孤独、忧郁,请抬头看看星空,那儿有我送给你的幸运星。   7、我深深地理解,耗费了多少时间,战胜了多少困难,你才取得眼前的成绩。请你相信,在你追求、拼搏和苦干的过程中,我将永远面带微笑地站在你的身旁。   8、因为有所期待,才会失望。   9、毕业季节,愿我们的友谊永远不散。   10、三年,在人生的旅程中不过是短短的一段,然而和你同桌三载,却一生难以忘怀。你是我记忆中的一粒珍珠,心的天幕上的一颗明星。   11、临别请你喝一杯故土的水,你走遍天下,也别忘了把家乡装在胸中。   12、是否还记得校园里那条彩色卵石铺成的小路?两旁有缤纷的鲜花花镶边,还有翠绿的柳丝飘拂。多少个早晨,多少个傍晚,我俩在这路上漫步……它和友情一起,留在我的记忆里,也烙在你的印象中。   13、我们不得不分离,轻声地说声再见,心里存着感谢,感谢你曾给过我一份深厚的情谊。   14、梦想因拼搏而精彩,你我因相识而快乐,就让这精彩的缘份装进空间,就让这幸福快乐装进回忆,愿用心与你拉近空间的距离,用真诚与你分享每一份快乐!   15、心中常拥一个梦想,生活才会变得辉煌。 头脑充满思想,容颜才会熠熠发光。大胆追求希望,人生才不会留下遗憾。经常联系问候,相信友谊地久天长!   好朋友毕业贺卡祝福语 篇6   1. 经历过坎坷,方知什么是快乐,经历过挫折,方可不惧怕折磨,人生纵有太多崎岖与苦乐,拥有自信照样潇洒过,毕业后祝你笑看人生,自信潇洒行。   2. 让我们手牵着手,彼此将一切欢乐和幸福传给对方!我祈祷上苍让欢乐时时刻刻充满我们的时空。毕业寄语   3. 再过两天,你们将厚积薄发全力以赴,背着理想的行囊,用三年的跋山涉水,像虔诚的朝圣者,理解选择,圆梦理想。请你们记住:不论你身在何处,人在何方,在鄚州中学的校园里,必须会有你们的老师,你们的学弟学妹,在为你们默默地祝福静静地祈祷,更但愿你们也能常回家看看。   4. 回首三年如水光阴,一千多页就这样匆匆翻过,一千多个日日夜夜,就这样擦肩而过。你们稚嫩的双手,纯真的眼神,灿烂的笑靥,娇小的身影,这些虽然已是随风逝去的风景,但它其实早就雕刻在老师内心最柔软的角落里,真的很难很难忘记。   5. 朋友,不必须合情合理,但必须知心知意;不必须形影不离,但必须心心相惜;不必须锦上添花,但必须雪中送炭;不必须常联络,但总放在心上!   6. 生活像广阔的大海一样,烟波浩瀚中保存着无数的奇迹。愿我们乘风破浪,做这些奇迹的勇敢探秘者。   7. 六月的我们荡起青春的双桨,用热情推开知识的波浪;六月的我们扬起进取的风帆,用勤奋驶向成功的彼岸;六月的我们带着美丽的回忆,用真诚为彼此写下祝福的诗行。亲爱的朋友,愿我们的明天更完美。   8. “光阴似箭,岁月如梭”。翻开日历,离升学考试也就十几天了,也就是即将离开母校了。舍不得啊!舍不得老师!舍不得同学!舍不得母校!舍不得……有无数个舍不得!   9. 时间过得飞快,毕业就在眼前。亲爱的老师,我是多么舍不得离开。难忘你的谆谆教诲,难忘你的温柔微笑,难忘你的热心关怀,深情厚谊总在我的心头萦绕。毕业季到了,祝您身体健康,万事如意!毕业寄语   10. 美丽的相聚如期而至,那隽永的抒情挂在疲惫的吉他上,往事成了一场悠远的歌,总在有夕阳的日子里浮现。   11. 走过的路,爱过的人,品过的味,流过的泪,笑过的美,都在时间的河流中沉淀,在斑驳的记忆中保存了。四年飞逝,毕业分别,愿你前程似锦!   12. 绽放最绚烂的笑容,给明天更美的梦。   13. 愿我的临别赠言是一把伞,能为你遮挡征途上的烈日与风雨。   14. 愿你是航船,在知识的海洋中乘风破浪;愿你是水晶,永远保持一颗纯洁美丽的心;愿你是雄鹰,在广阔的天空中翱翔!   15. 与你同行,回想起我们曾拥有过的共同理想;与你分手,憧憬着我们重逢时的狂欢。   16.聚也不是开始,散也不是结束,同窗数载凝的无数美好瞬间,将永远铭刻在我的记忆之中 。   17. 有些话一直没有机会说,有些事一直没有机会做,然而今天可以把想说的想做的一起做完,我想说的是你真的好漂亮,我想做的是在你的留言本上道一声珍重,说一句祝福。   18. 有人说:“人人都可以成为自己的幸运的建筑师。”愿我们在走向生活的道路上,用自己的双手建造幸运的大厦。   19. 以你的自信,以你的开朗,以你的毅力,还有一个和你同行的人为你祝福,你一定能够驶向理想的彼岸。   20. 一千多个日夜的相处,铭刻在记忆中的,是欢乐的时光,纯真的岁月,到了离别这一天,只想以友情的名义,真诚地说一句:祝你前程似锦,我们后会有期。   好朋友毕业贺卡祝福语 篇7   1. 跨出学校大门,开始新的人生旅程。愿你点亮生命的台灯,照亮通往成功的征程。祝你事业马到功成!生活精彩纷纷!人生一帆风顺!   2. 静静的我们即将分离,诚诚的祝福向你传送,久久阔别的日子,愿工作随你意,生活很开心,有情终眷属,升职步步高,毕业一路祝福。   3. 今天的欢声笑语,今夜的清风明月,美好却并非永恒,还没来得及分享最后一杯酒,却要各奔东西,珍重,朋友。   4. 坚信自己是颗星,穿云破雾亮晶晶。坚信自己是燧石,不怕敲打和曲折,坚信自己是人才,驱散浮云与阴霾。马上毕业,踏入社会,坚信你我有美好的未来。   5. 几年的同窗,我与你结下了深厚的友谊,愿你我心灵间的交流,直到永远。   6. 还记得吗?军训场上的一顶顶红帽,阅兵场上嘹亮的口号,是的,从那时起,我们共同踏进了这片令人神往的天地…… ?   7. 哈哈,四年的老同桌,你身上一定有门捷列夫没有发现的元素!否则,语言怎么在我最需要的时候无影无踪了呢?   8. 国外的世界很精彩,国外的世界也很无奈。   9. 个在一起的春秋,每一次游戏,每一次探讨,每一次争吵,都将成为我记忆中珍贵的一页。   10. 高尚的理想是人生的指路明灯。有了它,生活就有了方向;有了它,内心就感到充实。迈开坚定的步伐,走向既定的目标吧,同学们!   11. 风声、雨声、读书声,声声入耳;散伙、留念、找工作,事事无关。   12. 初出茅庐,眼高手低正常事,但是切记,勿要心高气傲养成挑三拣四的习惯,对于大事做不来,那么就把小事做好,记住,不做则已,要做就要做好。   13. 因为你的离去,七月是愁绪笼罩的季节;因为新的开始,七月是扬帆启航的季节。更广阔的天空等你去翱翔!更精彩的梦想等你去搏击!毕业了,朋友一路走好。   14. 毕业时节,我们从五湖四海来,到天南地北去。不管走到哪里,不管在什么岗位,让我们继续填好人生的履历表,交出事业的优秀答卷,为母校的旗帜增辉添彩。   15. 人生真是有点不可思议,许多事情在之后回想起来总是那么神奇,大学的生活即将结束,无论你今后身在何处,我将永远祝福你,相信总有一天我们会再度重逢。   16. 道一声再见,愿我们日后再相见;道一声珍重,愿你踏上幸福路;道一声离别,愿你一切都顺利;道一声祝福,愿你前程似锦鸿图展;同学,毕业后也要常联系哟。   17. 编织一个个美丽的梦想,一起把它们实现的开心过往,深深将我们的心捆绑,即使毕业分离也会牢固一如既往。毕业了,朋友,我们的心一直会在一起,愿你快乐!   18. 毕业了,请收拾悲伤的情绪,请释放离别的忧愁,因为我们永远是朋友。走向社会,这又是新的开始,新的挑战,愿你以后工作顺利,前途无量!记得常联系!   19. 一千多个日夜求学,一千多个日夜迷茫,一千多个日夜终出头,毕业找工作,愿你定位好自己,找到理想工作,赚取开心果实,赢取同事好感,生活日日上进。   20. 你是快乐的,我就是幸福的,为你付出的,所有都是值得的。相同的感受,超高的默契度,在校园的每个角落,我们都是最闪亮的组合。愿你的梦想展翅高飞。   好朋友毕业贺卡祝福语 篇8   1. 一个人一辈子写一篇好文章并不难,难的是一辈子写好文章不写坏文章,几十年如一日地写好文章,这才是最难、最难的啊!   2. 学业可以毕业,学习不可以毕业,所以要活到老学到老,青春可以毕业,梦想不可以毕业,所以要勇敢一点,时光可以毕业,同学情谊不可以毕业,所以要常联系。   3. 昔我来思,桃李累累;今我往矣,杨柳依依。   4. 我们这一代不允许我们愧对古人与后代。愿我们以卓越的智慧、坚强的意志、大无畏的精神,不断开拓,不断奋进!   5. 我的生活融入了你,你的生活中也蕴涵着我;当我们再次相见的时刻,你我仍然是一个整体。   6. 天空吸引你展翅飞翔,海洋召唤你扬帆启航,高山激励你奋勇攀登,平原等待你信马由缰 …… 出发吧,愿你前程无量!   7. 虽然我们就快分手啦,但我会一路挂住你的。得闲我们成班人再聚埋吃野啦!   8. 生命的长河中,留不住的是年华和往事,留下来的是梦和回忆。大学的青春时光默然逝去,社会纷繁的生活悄然而至,我诚挚的祝你:心想事成,一帆风顺!   9. 如果你面对汹涌的波涛,不必惊怕,更不用自认渺小。一旦有了博大的胸怀,你的人生将会像大海一般壮阔。毕业分别,愿走出新路!   10. 人在旅途,难免会遇到荆棘和坎坷,但风雨过后,一定会有美丽的彩虹。我希望看到一个坚强的我,更希望看到一个坚强的学哥学姐!!!   11. 轻轻的我们相聚一起,无限欢声和笑语;轻轻的我们又要分离,情谊栓起彼此;毕业的我们再难相聚,让我的祝福随你一路。   12. 青春的脚印留在校园的小路上,笑语欢歌留在花坛的馨香中 …… 母校的每一个角落,都珍藏着我们的友情,弥漫着我们的幻想。   13. 亲爱的朋友请不要难过,离别以后要彼此珍重。   14. 朋友,我们俩虽说没有说过几句话,但是记得有一次值日我们被分配在了一起,抬水的事我包了,你却说扫地的事你来做,还说扫地的事是女孩做的。现在想起非常感动,在这里像你说声谢谢!未来的岁月中我会永远记住你的这句话,一直到永远。   15. 年轻的时代是生命的早晨,是一年四季的春天,这个季节很精彩,处处是生机、是希望。即将大学毕业,愿你在这最开心的季节,展翅飞翔,直冲云霄。   16. 你有涌泉一样的智慧和一双辛勤的手,学友,学友,不管你身在何处,幸运与快乐时刻陪伴着你!   17. 你我共同拥有“清”字,而你这么贪心,还要在“清”字前多加一个“朝”字,这也难怪啦。因为早上的天气更加清爽嘛。   18. 你是花季的蓓蕾,你是展翅的雄鹰,明天是我们的世界,一切因我们而光辉。   19. 你的天赋好比一朵火花,假如你用勤勉辛劳去助燃,它一定会变成熊熊烈火,放出无比的光和热来。   20. 六月的天空晴朗,毕业的钟声敲响,不舍可爱的同窗,难忘尊敬的师长,作别熟悉的面庞。迈向成功的殿堂,踏着前进的曙光,迎接明日的辉煌。
2023-09-01 22:18:161

储时健(原云南红塔集团老大)到底是功大于过还是罪大于功?

功大于过
2023-09-01 22:18:102

幼儿园教师如何有效提问

  导语:提问经常是教师运用的一种教学策略。让他们在提问中了解一些学生的情况,从而能够更好地去授课、更好地对症下药,以让大多数学生能够融入这个课堂,让大多数学生能够明白,懂得。而近年来,从国内到国外从幼儿园到大学各级教育平台中,各教师课堂教学提问行为的观察探究一致说明,教师的提问是一种很普遍,并且各级教育中都很常用的一种教学行为。   一、问题设计应符合幼儿年龄特点、能力水平,贴近幼儿发展需求   兴趣是决定幼儿活动参与情绪高低的关键,根据幼儿的年龄特点和语言认知发展规律,从活动内容的实际出发,贴近幼儿的生活经验、理解水平,激发幼儿表述、思考的愿望,是教师在设计问题时必须做到的。小班幼儿的思维具有很强的直观形象性,他们通常根据图画中的直观画面进行思考。因此,为小班幼儿设计的问题宜简单、具体,从细节入手,引起幼儿经验联想与讨论。如在小班看图讲述活动《礼物》中,老师在出示图画前先提问:“你生过病吗?生病的感觉怎么样?”然后出示图片引导幼儿观察小猴的表情、姿态和所处的背景(医院),使幼儿获得相应的感受,帮助幼儿体会到小猴生病苦闷、难过的心情,并鼓励幼儿想办法帮助小猴开心、忘记病痛,从而引出小动物们也来送礼物,启发幼儿观察小动物们送了什么,启发幼儿猜猜小动物们说了什么。中班幼儿则应在小班“有中心地说”的基础上有序地讲述并丰富相应的故事情节,因而在设计提问时应注意目的性、启发性、提问后的追问和发散。而大班幼儿有了初步的抽象概括能力,逻辑思维开始萌芽,教师应注意提问设计的层次性、冲突性、延伸性,设计一些难度适中、有思考价值的问题以促进幼儿思维的发展,并引导幼儿总结甚至提升看图讲述内容的含义。   二、问题提出要考虑指向性、层次性,遵循循序渐进原则   1、提问应紧扣活动目标   活动目标是教学活动的核心,贯穿于教学的整个过程。因而问题的设计要紧紧围绕活动目标,抓住其中的关键预设。如在大班看图讲述《三只蚂蚁》活动中,目标为:“①引导幼儿围绕图片所设悬念,完整、连贯地表达出自己所看到的和所想象的内容,提高讲述能力和表达能力。②发展幼儿的观察力,能从强烈的大小对比、动静对比中体验幽默感。”我们逐步展示前四幅图画,为每幅图设置悬念:“三只饿着肚子正在找食物的小蚂蚁,发现草地上有一根长长的白线,你觉得它们会想到什么?会怎么做?”“三只蚂蚁顺着白线往上爬时,分别会怎么想?”“远远有一个黑色的物体,你觉得那会是什么?”以一个接一个的设问来激发幼儿的观察、讲述、想象的兴趣,培养幼儿的发散性思维。让幼儿充分猜测、尽情表达之后,出示第五幅图,此时整体和部分的关系一目了然,结论既出乎意料又合情合理,幼儿也在学说“啊呀!一只大蜘蛛的屁股!”中体验了幽默、趣味。幼儿在老师步步设问的引导下通过观察、想象、讲述体验了蚂蚁疑惑―好奇与期待―惊愕与失望的心情历程,活动目标有效地展现在师幼互动中。   2、提问应指向明确、突出重点   提问要紧扣主题,指向、目的性要明确。不提与主题无关的内容,也不要被幼儿发散到与主题不相干的事情。如大班看图讲述《理发师的奇遇》活动中,第一幅图可提问:“理发店里来了一位狮子先生,它是来做什么的呢?你从哪里看出来?”将幼儿的注意力直接引到狮子与理发师身上,而不必去讨论“这是哪里?里面有什么?”分散幼儿的关注点。同时,要通过提问引导幼儿有次序地观察。从一部分观察到另一部分,使幼儿能有目的地、投入地感知活动内容,形成有效应答的氛围。再如,出示到第五幅图时,狮子头上几乎没有头发了,“理发师吓得浑身发抖,狮子则笑了笑……”可引导幼儿观察、思考:“瞧!理发师太紧张、太害怕了,他又一次地失败,狮子都没有发火,还笑了,你觉得,这回狮子会怎么说?如果你是理发师,你会怎么办?”促使幼儿积极思考,续编故事情节,更可引起讨论进一步总结出“不可以貌取人,不能从表面看问题”这一寓意。   3、提问应层次清晰、循序渐进   幼儿的思维往往会存在较为肤浅、缺乏深度的缺点。教师要根据幼儿的思维特点,由主到次、由浅入深、由易到难,构建一个指向明确、思路清晰、具有内在逻辑关系的“问题链”,分层提问、层层设问,为幼儿提供适宜的“支架”,遵循“①帮助幼儿理解图文内容、结构;②启发幼儿分析情节发展线索;③引导幼儿抓准图文内容的中心思想;④启示幼儿图文蕴含的深层寓意”的梯度设计提问,起到引导幼儿思维步步深入的作用。   4 、提问应面向全体、注重差异   教师提问时,目光应面向所有的幼儿,一方面设计一些能够鼓励全体幼儿参与的问题,让每个幼儿感到教师在问自己,让每个幼儿都有回答问题的机会。另一方面应尊重幼儿间的个体差异,对不同能力水平的幼儿应提出不同类型与层次的问题:难度和灵活性较大的问题要求幼儿重新组合所获得的信息来创造答案,这类问题问能力较强的幼儿,他们经过思考回答,有助于启发全体幼儿的思维;基础及综合性的提问是为了巩固教学效果,问题的设计要考虑中等能力的幼儿,这样做可以吸引大部分幼儿的注意,调动他们的积极性;对于能力相对弱的幼儿,要适当设计一些难度不大,经过认真思考能够回答出的问题,可以帮助这些幼儿恢复自信,提高学习兴趣。如教师在中班看图讲述《小松鼠的大尾巴》活动中,对一些能力较弱的孩子,就设计了提问:“小松鼠的大尾巴像什么?”对一些能力中等的孩子设计的提问是:“小松鼠的大尾巴有什么作用?”而对一些能力强的.孩子则提问:“小松鼠可以用大尾巴帮助小动物们做些什么呢?”由于准确把握幼儿特点选择恰当的提问内容,从而使每个幼儿都乐于主动地回答问题,积极参与到活动中。   三、提问时要抓准“发散点”,突出“转折点”,引发幼儿的思考与想象   精巧有效的提问得益于活动前充分解读教材,分析教材内容的内在联系、逻辑顺序和幼儿已有的知识经验、语言表述能力,思考如何巧妙运用提问等教学手段最有效地引发幼儿的思考、想象,促进幼儿表达与创造性思维的提升,体现发展性原则。   因而,抓准看图讲述内容中的“发散点”及把握幼儿思维的“转折点”,显得尤为重要。如绘本阅读《猜猜我有多爱你》中,刚开始老师引导孩子用身体动作来表现“爱”的多少:手有多长,我就有多爱你,跳得多高,我就有多爱你。接着引导孩子开拓到看到的景物:“小兔子用眼前看到的东西怎样表示心中的爱的?还有什么可以表示爱?”“房子有多大……;路有多长……;树有多高……”然后引导到生活中的实物:“其实除了这些,还有很多东西可以表示我有多爱你。”(出示图片:围巾、星空……)幼儿看图表达,教师随机引导:①有比围巾更长的吗?②比星星亮的是什么?此后老师又引导孩子思考:“生活中有好多东西可以让你来表示对周围人的爱,有什么呢?”幼儿:“巧克力……”最后老师提出:“这个故事爱多吗?平时在家里你最爱谁呢?在幼儿园的伙伴当中,你最喜欢谁?除了伙伴,你还爱其他老师吗?”一步步地突破幼儿的思维局限,扩展幼儿思维的广度。   四、活动中应审时度势,把握好提问的方式和时机   优化看图讲述活动中的提问,应注意把握提问的时机,运用幽默、诙谐的问题调节活动气氛;运用富有启发的问题引导幼儿想象,不但有效推进课堂进程,更有利于促进幼儿思维的发展。通常提问的时机在于:幼儿学习情绪需要激发、调动的时候;幼儿观察图片重点偏移或思维受阻的时候;活动进程推进到转折、推理、概括、小结的时候。同时,有效结合多种提问方式将进一步引导幼儿挖掘画面内涵,促进幼儿思维活动的逐步深入。   一般看图讲述教学的提问设计可分为描述性、判断性、推想性、分析性、比较性、想象性和追究性几类问题,在设问时还可根据实际情况将各类问题进行有机搭配。①描述性问题与推想性问题结合。如:“小猫正在做什么事情?”(描述)“他为什么要给小兔子写信?”(推想)通过推想促使幼儿对人物心理进行猜测,将事件与相关因素联系起来,使讲述由表及里地深入展开,从而促进幼儿思维发展。②判断性问题与追究性问题结合。如:“小猴随手扔了罐头对不对?”(判断)“为什么不对?”(追究)通过追究促使幼儿讲述自己判断的依据,发展语言表达能力。③推想性问题与分析性问题结合。如:“下雨了小兔子们可怎么办?”(推想)“躲在什么地方最适合?”(分析)通过分析促使幼儿的讲述由扩散到集中,有利于引导幼儿扩展自己的推想或修正自己的推想。④想象性问题与分析性问题结合。如:“小老鼠真的能帮助大狮子吗?”(想象)“它能帮大狮子什么事?”(追究)通过追究促使幼儿讲述想象的依据,引导幼儿展开合理的想象,通过讲述理由,还可以达到互相启发的目的,促使想象的分散。   五、合理控制提问节奏、频率,善于等待和引导   提问可分为开放式提问和封闭式提问。开放式提问能有效激发幼儿思考,培养幼儿的创造性和发散性思维能力,但需要幼儿较长的时间去思考,并组织语言说出答案,如果在教学中频繁进行开放式提问,可能会使教学进度减慢,不利于教学目标的推进,多应用在重难点突破;而封闭式提问省时高效,在短时间内可帮助教师清楚地了解到幼儿对已学内容的掌握情况,发现教学中存在的问题并及时补救,更有助于推进教学目标,但频繁使用会使幼儿养成机械记忆的思维习惯,弱化思维的批判性,逐步丧失独立思考问题的能力和自主学习能力。   因而在活动中教师应依据两种提问形式的利弊合理取舍,如:①活动内容富有想象空间、情节发展有多种可能,可进行开放式提问,让幼儿根据已有经验展开充分联想,表达独特的见解。②当教师希望幼儿记住某些词汇或短句的时候,就可以采用对具体教学内容或具体情节、对话进行提问的方式,帮助幼儿复习、巩固所学知识。同时,开放式提问语速应放慢,身体前倾,以眼神、动态提示幼儿展开思考、想象;封闭式提问时语气坚定、语速提快,问题与问题间衔接顺畅,不留空白,集中幼儿注意力。   有效的提问能有效发展幼儿的观察力、口语表达能力、思维与想象能力,拓展幼儿的知识面,培养幼儿良好的品行与情感,具有突出的教育功能。如何通过有效的提问帮助幼儿更好地进行看图讲述活动,值得我们进一步研讨和挖掘,以推动幼儿园看图讲述活动的研究不断向纵深发展。   幼儿园教师礼仪   一、举止文雅   1、举止温文得体,不失教师风度,一举一动,一言一行堪为幼儿表率。   2、遵守社会公德,遵纪守法,遵守幼儿园各项规章制度。   3、在幼儿、家长和客人面前不嬉戏,不开过头玩笑,不讲牢骚话。   4、在园内外遇到各种冲突时,以礼相待,不做失礼之事。   5、办公桌物品摆放整齐,工作时间不吃零食。   6、不私托家长办事。   二、仪表端庄   1、仪表端庄典雅,潇洒大方。   2、衣着整洁、美观大方,不追求奇装异服,不穿露脐装和吊带衫,不穿拖鞋带班时不穿高跟鞋。   3、头发整齐光洁,带班时间不梳披肩发。   4、不浓妆艳抹,上班时间不佩带明显首饰和其它奇异大饰物。   三、文明用语   1、您的孩子表现不错。   2、您有特别需要我们帮助的事情吗?   3、这孩子太可爱了,老师和小朋友都很喜欢他,继续加油。   4、你的孩子今天情绪不太好,好好和他谈谈。   5、真对不起,由于我们的疏忽,您孩子的头上撞了一个包。   6、请您放心,我们会照顾好您的孩子。   7、请相信孩子的能力,他会做好的。   8、您的孩子一直有进步,只是……、还需要努力。   9、谢谢您对我们工作的支持。   10、谢谢您的理解,这是我们应该做的。   11、麻烦您协助我们填写……、   12、耽误你一点时间,我想和你交流一下孩子的情况。   13、我们有不够的地方请指正。   14、请家长不要着急,孩子偶尔犯错是难免的,我们一起来慢慢引导他。   15、孩子之间的问题可以让他们自己来解决,放心吧,他们会成为好朋友的。   16、我们非常欣赏您这样直言不讳的家长,您的建议我们会考虑的。   17、我们向您推荐好的育儿知识读物,您一定有收获的,孩子也会受益。   18、谢谢提醒!我查查看,了解清楚了再给您答复好吧。   19、您的孩子最近经常迟到,我担心他会错过许多好的活动,我们一起来帮他好吗?   20、您的孩子最近没有来园,老师和小朋友都很想他,真希望早点见到他。   21、您有这样的心情我很理解,等我们冷静下来再谈好吗?   22、您有什么想法,我们可以坐下来谈谈,都是为了孩子好。   23、这件事是XX负责,我可以帮您联系一下。   24、近期我们要举行家长开放日活动,相信有您的参与支持,会使活动更精彩。
2023-09-01 22:18:101

河南省公益文化传播基金会是事业编吗

是。河南省公益文化传播基金会是为国家创造或改善生产条件、增进社会福利,满足人民文化、教育、卫生等需要,其经费一般由国家事业费开支的单位所使用的人员编制。河南省公益文化传播基金会是国内第一支以公益宣传为主、以实体救助为辅的公募基金,发起的一场影响面广、持续性久、保障力大、引导力强的全民公益工程,是践行中国梦、实现国家富强、民族振兴、人民幸福战略目标的精神基石。
2023-09-01 22:18:091