barriers / 阅读 / 详情

C语言的课程设计

2023-09-09 17:48:15
共1条回复
瑞瑞爱吃桃

这个就行

#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(" ");

}

}

满意请采纳。

相关推荐

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语言程序设计的内容简介

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

求助~急于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语言课程设计题目

例:学生管理系统设计 设计内容: 详见视频,要求数据结构用链表,数据存储使用文件。 计算每个老师在一个学期中所教课程的总工作量。(教师单个教学任务的信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时) 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

从多少到多少作文

2016年的全国卷的高考作文试题。写作思路:可以采用举例子的方式来详细描述一下人们心中的“尺子”,比如习惯了妈妈在厨房中的忙碌,一日三餐总是准时吃到可口的饭菜,可当有一天,我们回家面对着干锅冷灶的时候,却首先想到的是无饭可吃,沮丧之余,面露愠色,而爸爸偶尔下一次厨房,煮一碗面,却能让一家人感到万分知足。惯性,使人们的尺子变得富有弹性,却无法丈量出爱的深远。正文:从100分到98分,挨一顿揍;从55分到61分,得一个吻。这看似荒诞不经的故事,却常常发生在我们身边,许多人看来,前者退步了挨揍是天经地义,后者进步了得吻是理所当然。我们常说,要一把尺子量到底。在现实生活中,应当说尺子是最公平的,但拿在不同人的手里,去度量不同的人,就会出现不同的结果。我们习惯了妈妈在厨房中的忙碌,一日三餐总是准时吃到可口的饭菜,可当有一天,我们回家面对着干锅冷灶的时候,却首先想到的是无饭可吃,沮丧之余,面露愠色,甚至开口责备,完全忽略了她累了病了,撑不住了,连烧口开水的力气也没有了;而我们的爸爸偶尔下一次厨房,煮一碗面,却能让一家人感到万分知足。惯性,使我们的尺子变得富有弹性,却无法丈量出爱的深远。大家还记得北方小城那位舍粥的大嫂吗?每到冬天她就半夜起来,熬上满满的三锅热粥,免费送给寒风中瑟缩的清洁工、穷苦人和乞丐,数年如一日,不曾间断。而当有一天,一位老汉从中吃出了一粒沙子,顿时将一碗热粥泼在大嫂的身上,而领粥的人,也瞬间划分为两大阵营:有人说老汉不该撒野,也有人指责大嫂不该掺沙子。薄情,让我们的尺子扭曲,冷了多少善良的心。开县一辆满载了19名乘客的中巴,突遇险情,一头栽进深达五米的水塘。当地村民金有树跳进冰冷刺骨的水中,砸开车窗将19名乘客全部救出,自己却因长时间冷水的浸泡患上肺病,举债治疗数月,告借无门,不得不离开医院,病死家中。19名幸存者无一人去医院探视,更无人为他送行。金有树临死前写下一封信,第一句话就是:“我救了19人的命,现在谁来救我的命?!”冷漠,让我们的尺子訇然寸断,留下无尽的遗憾。每个人心里都有一把尺子。我们用它来衡量别人,更要时常度量自己。这个世界,应当有这样一把尺子,于情充满温暖,于理凸显公平,于法彰显正义,时时刻刻闪耀着人性的光辉。只要坚持从我做起,从一点一滴做起,苛责自我,宽厚待人,星星之火,势必燎原,人间终会洒满阳光,洒满爱。
2023-09-01 22:24:181

服务礼仪的重要性

服务礼仪:服务礼仪是指各服务行业人员必备的素质和基本条件。出于对客人的尊重与友好,在服务中要注重仪表、仪容、仪态和语言、操作的规范;热情服务则要求服务员发自内心地、热忱地向客人提供主动、周到的服务,从而表现出服务员良好风度与素养。服务礼仪的特点:普遍性、继承性、差异性、时代性;服务礼仪的职能:塑造个人形象、塑造组织形象、沟通信息、联络感情。工作自律在工作岗位上,要赢得服务对象的尊重,是取得成功的重要环节。要做到这一点,就必须勤勤恳恳,严于律己,维护好个人形象。因为个人在工作岗位上的仪表和言行,不仅关系到自己形象,而且还被视为单位形象的具体化身。维护好个人的形象,既要注意自己的仪表、举止、着装,也不要“衣帽取人”。六不和四要“六不”就是:不对他人评头论足,不谈论个人薪金,不要诿过给同事,不干私活,不听私人电话,不打听、探究别人隐私。“四要”就是:卫生要主动搞,个人桌面要整洁,同事见面要问好,办公室来人要接待。
2023-09-01 22:24:192

冰心的《荷叶母亲》收录于哪里

《冰心文集》第一卷 人教版七年级语文上册24课《散文诗两首》也有一篇是这个。
2023-09-01 22:24:205

毕业寄语大学生

  时光匆匆,又到了毕业季,大学生活是美好的,从这里结束,又从这里继续起航。下面是由我为大家整理的“毕业寄语大学生”,仅供参考,欢迎大家阅读。   毕业寄语大学生(一)   1. 回忆总是选择最美的一页,那些未开的蓓蕾,只是青春的另一个注解,无怨无悔。   2. 走过的路,爱过的人,品过的味,流过的泪,笑过的美,都在时间的河流中沉淀,在斑驳的记忆中保存了。四年飞逝,毕业分别,愿你前程似锦!   3. 我想保留一段芳香的记忆,我想珍藏一页美丽的友谊,请你把这最诚挚的祝福带在身边,让幸福永远伴随你。   4. 其实所谓好朋友就像我们一样,可以畅谈心中的感觉,彼此关心,彼此照顾,时而哈哈大笑,时而争得面红赤,却不会放在心上。   5. 我们相逢在陌生时,我们分手在熟悉后。明天,我们要到生活的星图上去寻找自己的新位置,让我们用自己闪烁的星光相互问讯表情达意。   6. 你的天赋好比一朵火花,假如你用勤勉辛劳去助燃,它一定会变成熊熊烈火,放出无比的光和热来。   7. 路上有砾石泥块,我们去清理;路上有杂草丛棘,我们去清除;路上有坑坑洼洼,决心要成功的人,已经成功了一半。   8. 偶然的相逢时能有一丝清纯纯的激动,能有一声问候,这就最好,也就足够。   9. 聚也不是开始,散也不是结束,同窗三载凝的无数美好瞬间,将永远铭记在我的记忆之中……   10. 人走的时候,我常想到亲人离开我的时候那一幕。我烧着纸钱,看着故事像淡淡的烟,轻轻的漂了出去,剩下的只是一触即碎的回忆。我要走了,马上句号就划上了。   11. 岁月仅给我们几十载的光阴,却有海阔天空任我们漂流,能承诺的只是这眼前的日子,来去无定。   12. 岁月的年轮,像那黑色的旋转着的唱片,在我们每个人的内心深处播放着那美丽的旧日情曲!   13. 三年一瞬间,就这样欢歌、纵笑,就这样相识、相聚,甚至都来不及好好地话别,马上就要各奔东西。   14. 让我们迈开双腿,去洒行汗水,去踏一路雷声!大学里,有的是鲜花簇拥的前程!   15. 毕业之际把手牵,相对无语泪涟涟,眼神深深互凝望,胜似再多的语言,友情拴住你和我,天南地北线不断,临别送上千万福,重中之重身体健!   16. 以前吧也曾以为大学吧就是用青春来追梦的过程,毕业了才知道我的青春没了,梦早就没了。   17. 希望你们在今后成长的道路上,懂得感恩,铭记责任,乐于奉献。得意时淡然,失意时坦然。相信未来是光明的,世界是美好的,明天是幸福的。你们的成长,就是我们最大的快乐!你们的成功,就是我们最大的骄傲!   18. 大学四年即将成为过往,回想我们一起走过的日子,我想说:思念过去,珍惜此刻,展望未来。大家一路走好!   19. 也许我们天意会聚在一起,许是新春,许是中秋,就让我们喝一杯酒。当脸红的时候,我们狂欢一曲。   毕业寄语大学生(二)   1. 昨天的你最勤奋,今天的你最自信,我坚信,明天的你最成功!   2. 我的心在为你祈祷,祈祷你心中充满幸福,祈祷天使永远在你身边,祈祷你的大学无忧无虑。   3. 几年的同窗,我与你结下了深厚的友谊,愿你我心灵间的交流,直到永远。   4. 我不知道,有多少个星辰醉心其间,挥一挥手,又怎能抹去,这不绝如缕的眷恋,哪怕今后的风景更美更好,我都无法轻抛过去,一展笑颜,尽管人生告别寻常事,真告别时,却又难说再见!   5. 朝霞般美好的理想,在向你们召唤。你们是一滴一滴的水,全将活跃在祖国的大海里!   6. 果你应对汹涌的波涛,不必惊怕,更不用自认渺小。一旦有了博大的胸怀,你的人生将会像大海一般壮阔。毕业分别,愿走出新路!   7. 说实话在我们相聚的日子里,有着最珍惜的情谊,在我们年轻的岁月中,有着最真挚的相知,这份缘值得我们珍惜。   8. 我真诚地期望并深信,欢庆毕业只是你美好人生的开端,心满意足的灿烂前程正等待着你。   9. 所谓好朋友就像我们一样,可以畅谈心中的感觉,彼此关心,彼此照顾,时而哈哈大笑,时而争得面红赤,却不会放在心上。   10. 高中已向我们敞开了胸襟,朋友,让我们勇敢地迎上前去,去尽情地体验它无边无涯的壮阔,无穷无尽的幽邃吧!   11. 你的祝福我收到,你的关心我知道,天天想着你的好,一生一世忘不了,人生知己最难找,有幸我们碰的巧,闲暇希望常聊聊,别怨互相在打扰,真情比浪高!   12. 事业成于坚韧,毁于急躁。在沙漠中,匆忙的旅人往往落在从容者的后边;疾驰的骏马在后头,缓步的骆驼继续向前。   13. 少年振衣,可作千里风幡,少年瞬目,亦是万古清流。年轻的你们,自信的你们,精彩的你们请相信,青春没什么不可以!   14. 不要说一天的时间无足轻重,人生的漫长岁月就由这一天一天连接而成;愿你珍惜生命征途上的每一个一天,让每天都朝气蓬勃地向前进。   15. 相约在美丽的校园,意气相投;相识在最美的季节,情谊无价;相聚在青春的海洋,热情奔放;相别在毕业的时光,难舍难离。六月毕业季,祝福同窗前途辉煌,一路精彩!   16. 在忙碌的生活中别忘了抽个时间,让自己轻松一睛,永远保持一颗年轻快乐的心。   17. 像蜂蝶飞过花丛,像清泉流经山谷,在记忆的心屏中,高中时代的生活,恰似流光溢彩的画页,也似一阕跳跃着欢快音符的乐章。   18. 毕业了!这些年来朝夕相处,转眼今日终需离别。再次拥抱求安慰,日后相见必有期。路漫漫,希望在,不怕不悔,握紧拳头向前冲,快乐幸福在眼前。说好彼此不相忘,毕业祝福送给你!   19. 一天中不管遇到什么不开心的事,只要记得“我是幸福的”,那么你就可以得到幸福。   毕业寄语大学生(三)   1. 你留给我的,是美丽的记忆。你使是怀念少年时的纯真和友谊。当我捧起记忆中的佳酿想请你喝时,却先醉了自己。   2. 山海可以阻隔彼此,却阻隔不了我的思念;距离可以拉开你我,却拉不开真挚的情谊;时间可以淡忘过去,却忘不了永远的朋友。   3. 人世间最珍贵的,莫过于真诚的友情,深切的怀念,像幽香的小花,开在深谷。   4. 思念是一季的花香,漫过山谷,笼罩你我,而祝福是无边的关注,溢出眼睛,直到心底。祝开心。   5. 奖学金和挂科之间的差距不得不让我去怀疑:当年我真的是自己考上大学的吗?   6. 果你面对汹涌的波涛,不必惊怕,更不用自认渺小。一旦有了博大的胸怀,你的人生将会像大海一般壮阔。毕业分别,愿走出新路!   7. 人与人之间有时真的就如天上的月亮地上的湖,相隔遥远才会彼此相照。我很想念你,对于我们,天涯不过咫尺!   8. 相伴的时间是温馨的,相处的时刻是温存的,相聚的时分是温情的,离别的祝福是温暖的,要毕业了,愿我亲爱的同学你,美梦成真,前程似锦。   9. 凤凰花吐露着艳红,在祝福你我的梦。当我们飞向那海阔天空,不要彷徨也不要停留。   10. 祝甜蜜伴你走过一年中的每一天,温馨随你度过一天中的每一时,平安同你走过一时中的每一分,快乐陪你度过一分中的每一秒。   11. 小舟在青春的港口起航,我们暂时分手,满载着理想和追求。重新相聚在何时?将在那丰收的时候!   12. 陈酒最好喝,老友最知心,朋友认识越久越值得珍惜,只因共同拥有太多太多的回忆。   13. 明晨行别,但愿云彩艳阳一向陪伴你走到远远的天涯;鲜花绿草相随,为你铺展远远的前程。   14. 同窗三年,你把友谊的种子撒在我心灵上。我将默默地把它带走,精心浇灌、栽培,让它来日开出芳馨的鲜花。   15. 迁徙的大雁已在长空排队列行,报信的春花已绽放花蕾,亲爱的同窗好友,我们如此相惜相爱,分离只会让我们的心靠得更近。   16. 也许,毕业后我们相会不能,即使偶然的相会也得离去匆匆。只愿在未来的日子里,能微微地递来一个笑容。   17. 毕业不是结束,毕业意味着开始,希望同学们在新的征程上脚踏实地,走得晚高、更远!   18. 校园的每个地方,都能触动人的某条神经!失去才知道珍惜,虽是句老掉牙的话,但现在,方真切地感受到确是箴言!   19. 应对着岁月摆下的筵席,我们相互微笑殷勤地劝酒,仿佛所有没说的爱恋与不舍,都收藏在语句的背后。因为我们都已明白,此去再也没有比手中这一杯更醇更美的酒了。   毕业寄语大学生(四)   1. 啊,同学们,让我们在飞逝而去的时间波涛上,乘风破浪,驶向成功的彼岸!   2. 那年九月,我们开学相聚。今年六月,我们毕业相离。日日夜夜,我们朝夕相处。此去年年,风雨与谁同路。六月毕业季节,好运送给你,我们常联系!   3. 毕业,就像一个大大的句号,从此,我们告别了一段纯真的青春,一段年少轻狂的岁月,一个充满幻想的时代   4. 大学四年即将成为过往,回想我们一起走过的日子,我想说:思念过去,珍惜现在,展望未来。大家一路走好!   5. 毕业了,愿你释放青春的心灵,展开五彩的翅膀。友情,在风中酝酿,在未来美好的日子里更加茁壮。道一声珍重,送你最真诚的祝福。   6. 同窗四年,你把友谊的种子撒在我心灵上。我将默默地把它带走,精心浇灌栽培,让它来日开出芳馨的鲜花。   7. 请再谱一支青春曲,伴随你我在明天的征途中继续奋进!   8. 临行前,我赠你一个美好的理想,让他成为你坚韧的拐杖;我赠你一只智慧的行囊,让他成为你人生的通行证。   9. 动身的时刻到了,让我们走吧!不必惋惜,也无需告别,纵使歌声渐渐地沉寂下去,我们的心也会永远地跳荡不息。   10. 明晨行别,但愿云彩、艳阳一直陪伴你走到海角天涯;鲜花、绿草相随你铺展远大的前程。   11. 跨出学校大门,开始新的人生旅程。愿你点亮生命的台灯,照亮通往成功的征程。祝你事业马到功成!生活精彩纷纷!人生一帆风顺!   12. 柳荫下握别百般惆怅――同窗三载少年情长,望征程千种思绪,愿友情化为奋进的力量!   13. 你的文章“凤头豹尾”令我钦佩不已,相信进入中学以后经过努力,你的口才也能像你的文笔一样清新、流畅。   14. 愿你是航船,在知识的海洋中乘风破浪;愿你是水晶,永远保持一颗纯洁美丽的心;愿你是雄鹰,在广阔的天空中翱翔!   15. 回首昨天,应问心无愧;面对今天,应信心百倍;展望未来,应倍加珍惜。美丽人生是机遇和汗水的结合,是勇敢和智慧的结晶。毕业在即,愿你毕业之后多努力,创造人生的美丽!   16. 同窗三年,你把友谊的种子撒在我心灵上。我将默默地把它带走,精心灌溉、栽培,让它来日开出芳馨的鲜花。   17. 安谧的天宇,每颗星都有自己的轨迹,让我们在生活中找到自己的最佳位置,心目中的世界也许会变得调和而平和平静。   18. 还记得那一天的摄影留念吗?我的瞬间意识连同闪光灯一起亮了:你的倩影留在底片上,同时也深深地烙在我的心灵里。   19. 也许你不情愿,也许你胆怯,但只要能够跨出去,一种温馨而充满活力的生活也许就在你的面前。    推荐阅读:
2023-09-01 22:24:151

公益广告的目的和意义

问题一:公益广告的意义何在? 一、借助公益广告,企业可以在更广、更深的层次上塑造企业形象,创造和与公众沟通的新平台,从而创造商业价值。 二、从最基本的层面说,公益广告具有基本的「劝告功能」,这种对具体行为倡导和劝阻,是直接有效的。 三、很多情况下,公益广告并不是一定要准确规定受众去做一件什么事情,或者不去做什么事情,而只是作为一种单纯的道德疏导工具出现,进行一种大方向的宏观劝导。公益广告的「道德疏导」价值,重在「疏导」而不是「约束」,这也是基本所有公益广告都会设计的内容。公益广告存在的目的,并不是教育人们必须去做什么。该采用的手段也不是「灌输」,而是「引导」。公益广告,必须「动之以理,晓之以情」,这样才能最大化发挥「道德」的作用,否则会沦为一纸空谈。 由此可见,公益广告对于提高大众思想意识,鼓舞人们采取行动,促进社会进步起到了持久的、积极的作用。它是社会营销的有利工具。 问题二:求问公益广告的特点,作用,意义分别是什么? 1.公益广告的概念 广告是由可确认的广告主对其观念、商品或服务所做之任何方式、付款的、非人员性的陈述与推广。 公益可以理解为公众的利益。根据广告的定义,公益广告是广告主对有助于公众利益的观念所做之任何方式、付款的、非人员性的陈述与推广。它通过某种观念的传达,呼吁公众关注某一社会问题,以合乎公众利益的准则去规范自己的行为,支持或倡导某种社会事业或社会风尚。公益广告的发起者投入时间和财力,通过大众媒介向广大受众传达有利于社会公众利益的观念或意见。 在美国,公益广告旨在增进一般公众对突出的社会问题的了解,影响他们对这些问题的看法和态度,改变他们的行为和做法,从而促进社会问题的解决或缓解。其中,一类是公共广告(Public Advertising),是由社会公共机构如绿色和平组织,动物保护协会等社会团体针对他们所关心的社会问题发布的各类广告。另一类是意见广告(Opinion Advertising),这多是企业集团针对各类社会现象,阐述企业的态度。这是一种企业形象广告的外延,表明了企业在社会中的个性。 2.公益广告的作用 早在赫尔曼(Herman),乔姆斯基(Chomsky)的有关著述中就曾提到过“制造认同”的说法,他们认为,媒介实际就是宣传工具,它教给人们各种价值观念和行为准则,引导人们接受新的生活方式,使人们融入媒介制造的社会体制中。而在“制造认同”的过程中,公益广告是最现实、最直接、最具时效的途径。 我们通过电视广播、报纸杂志和生活实践,发现形形 *** 的社会问题不断出现,例如滥用毒品、环境污染、家庭暴力、交通事故、爱滋病蔓延等等。出现问题的原因有种种,解决问题的方法也多多,但是怎么抑制社会问题的泛滥,减少甚至根除社会问题呢?只有动员全体公民,开展社会变革运动,即“由一个群体(变革发起人)实施有组织的活动,旨在说服其他群体(目标接受者)接受、调整或放弃某些观念、态度、习惯和行为”。如我国的计划生育、希望工程、防止爱滋病等等就是全国范围的社会变革运动。 长久以来,公益广告一直被用来作为解决不同社会问题,敦促社会公众以正确的观念和行为配合社会变革运动的手段之一,它是社会营销的有力工具。“社会营销”一词最早出现于1971年,当时是指运用市场营销的原理和技巧倡导某个社会运动、观念或行为。自那时起,该术语的意思逐渐演变为社会变革管理科学,具体指设计、实施和控制变革运动,实现在一个或几个目标接受者群体中提高某种社会观念或实践的接受程度的目的。美国和日本的公益广告在社会营销中,对于实现社会营销的目的即改变有害的观念和行为,或者接受新的观念和行为,提高国民觉悟,帮助解决社会问题起到了显著效果。 3.进一步分析公益广告,它有以下特性 (1)非盈利性。公益广告以人与社会、人与自然和谐发展为宗旨,以社会保护与群体素养提升为目的,促进社会的发展。注重社会效益。与商业广告完全以盈利为出发点相比,公益广告则是非盈利性的。凡是从事公益广告的单位或个人,他的终极目标是公众的利益,而不是以盈利为目的。 有一点要说明的是,不以盈利为目的并不等于说从事公益广告是亏本的,而应是持平或有盈余的。只是从事公益广告的单位或个人对于盈余不得在所有者和管理者中分配,必须用于提高公益广告的质量和数量上。 (2)观念性。公益广告诉求的是观念,以某一观念的传播,促使公众启迪、自省、关注某一社会性问题,以符合公德的社会行为为准则,规范行为并身体力行以形成社会良好风尚,或支持某种社会事业。它传播的是精神形态的观念,而不是物质形态的商品。 (3)......>> 问题三:广告营销的目的和意义 30分 领导力专家陈彬(微信号cbcbss) 首先要明白广告作用的机理。 1、广告可以改变客户对于产品的认知,让客户知道一个产品,提高产品知名度; 2、广告可以告诉客户产品的主要功效是么,产品代表什么,在客户的认知体系里建立起一个印象,有助于产品打开销路; 3、好的广告可以提高产品的美誉度,让客户对产品产生好感,激发客户购买的欲望。 因此,广告营销的目的在于建立起客户对于coin或者品牌的认知,提高品牌知名度、美誉度,通过品牌传播推动销售的增长。在快速消费品领域,广告的作用尤其明显。 问题四:百度推广的目的和意义? 目的就是让你的潜在客户找到你,意义就是潜在客户找到您以后,通过您和您的产品的努力留罚客户,最终达成合作! 问题五:广告有什么作用?能达到什么样的目的? 广告的功能是指广告的基本效能也就是指广告以其所传播的内容对所传播的对象和社会环境所产生的作用和影响,合肥广告公司认为研究广告的功能实际上就是研究广告能达到什么目的? 美国历史学家波特在其著作《富足的人民》中这样叙述:”广告在社会中影响之大,可以和学校及教会等传统制度相匹敌;广告具有支配媒体创造流行的巨大力量,在这一意义上,广告是能调控社会的少数几个制度之一。“把广告对社会的影响力和学校及教会制度的影响相提并论,虽然乍听起来有些夸张嫌疑,但仔细思考一下,其实不无道理。现代广告凭着自身极强的渗透力和重复性,借着全球经济和媒体技术不断向前发展的东风已经在社会经济,社会文化方面扮演了越来越重要的角色。 下面我们就从社会经济和社会文化两方面来看一下现代广告的功能和作用。 一、广告的社会经济功能 广告起源于商品经济发展的需要,是为商品生产与商品交换服务的.虽然随看社会生活的发展,广告这种形式逐步被运用到社会生活的其他方面,或者说,人们把社会生活其他方面类似于广告的活动也视为广告如 *** 的公告、个人信息的社会发布等,广告这才有了更广泛一些的内容和含义。但即使到现代,商业广告依然是广告的一种最主要的形式,所以广告的社会经济功能是广告最重要也是最基本的功能广告的经济功能主要体现在以下两个方面: 1.促进商品流通,利激消费欲望,指导消费行为。 2.促进竞争,塑造企业形象,完善经营管理。 二、广告的社会文化功能 当今社会广告既是一种经济行为.也是一种独特的社会文化现象。正如尼尔u30fbMu30fb阿普莱斯顿在《日常生活中的广告》中所说:“广告是蒙在社会之墙上的壁纸,在我们每日的生活和梦境中。”现代广告己经深入到社会文化的各个领域对人们的生活产生了深远的影响,主要体现在以下三个方面: 1.促进社会教化,改变生活方式 2.丰富大众文化,美化生活形态 3.促进传播媒介的发展 问题六:广告的意义? 广告与意义 在现代社会中,广告是最有影响力的一种社会化体制:它构筑了大众媒介的内容;它似乎对人类在认识世界的观念上起着关键的作用;它控制着一些很重要的文化体制和流行元素。是什么,使一个在现今世界才有的东西拥有如此强大的力量? 对于这个问题,我们还不得不从人与物的关系开始探索。人与自然已经共存了上千年了。通过人类的劳动,自然已经被逐渐改造成为适合人类生存的环境。你和我都不得不承认,人类的劳动是如此伟大,又富有创造性。人类利用自然界所给予的资源,创造出如同工具等原本不存在于这个世界上的物品。物品之所以有价值,一个来源于它的材料,另一个应当来源于人类的劳动;我们将人类通过劳动来创造物品的过程称作“客体化”。请你跟随我一起来做更深层次的探索。正是有了“客体化”过程,那些独特的区别于其他动物的人类经验才得以显现,人类的意志和需要才通过客观物体得以表达。这样看来,客体对人类就很重要。而广告作为客体的一种话语,便在现代社会中占有重要的地位。 这着实使我疑惑了。既然广告是客体的一种话语,为何只出现在了现代社会?对于这个问题,我们只能来思考,现代社会的客体的出现形式,以及现代社会的客体化过程。你我都不能否认,现代社会的客体形式就是商品。然而商品,这个在马克思眼中,神奇而怪诞的东西,究竟拥有什么特质呢?商品具有其物质性和符号性。它的物质特性满足了人类基本的物质需求;而它的符号特性则满足了人类的精神需要,赋予了商品持有者社会属性。打个比方,通过稀有资源而得来的商品可以体现持有者高层次的社会地位。请跟随我对商品的符号意义做更深入的探索。在所有的文化形态里,在任何时候,都难免把人与物的关系放到权力的背景中去思考;而符号,正是这个赋予物品灵魂的东西,使得该物品的持有者获得了权利。然而,符号的意义又是谁赋予的?该符号的意义又是怎么样被人们所公认的呢?这似乎通过了一场仪式,使大家都公认了某个符号的意义。人类学意义上的仪式,实际上就是努力形成并巩固占优势地位的社会意义,它也是固定社会关系的一种方式。对于任何一个社会来说,如果没有某种形式的仪式,就等于这个社会没有共通的集体记忆。无论在原始社会,还是在宗教里,仪式都无处不在。而在现代社会中,是广告给予了商品符号意义,其仪式便是消费的过程。 这样一来,新的问题也产生了。是广告赋予了商品意义,给予了物体灵魂。为什么不是其他什么东西?比如生产者的社会属性等。对于这个问题,我们就要从刚才提到的现代社会的客体化过程来探索了。“在现实社会里,我们感到无力,我们意识中的这种感觉,反映了我们受剥削压迫的真实情况。但我们却将这样的无力感当作是永无休止的,无情的命运,而不是把其当作一种可以改变的历史的状态”。此段引言所提到的这个历史状态便是我们现代社会的这个状态。在资本主义社会,劳动者将自身的劳动力当作商品卖给了资本家,作为另一种生产资料进入商品的生产过程。由于资本家控制了大量的生产资料以及生产过程的知识,所以,劳动者被沦为了被剥削压迫的境地。“用来发展生产的所有资料被牢牢地掌握在资本家手中,使它们变成了同志和剥削生产者的工具,在它们的扭曲下,劳动者不再是完整的人,而只是支离破碎的个体,在它们的贬低下,劳动者徒然只是机器的附庸;在它们的肆虐下,劳动的真实内涵变成了痛苦的根源。劳动者与其自身相分离,相异化;科学越是融入生产,成为独立的力量,他们也就越是将智力的潜能,剥离于劳动过程之外”。这段来自马克思的引言清楚地说明了出卖劳动力的生产者的境地。其中,为什么说出卖劳动力的生产者在资本主义的生产体制下变成了支离破碎的个体呢?为什么......>> 问题七:公益广告的特点,作用,意义? 这仅仅是我自己处观点,公益广告的特征是清醇朴素.具有很强的教育意义很象征意义.作用就是来激发人们的意识,使人对自己身边的一些事引起一些注意.是很抽象的认识.商业广告就不一样,它的主要作用是为了更多为广告客户带来更大的利益针对性较强只是一部分群体.是属于私人的行为,而公益公告是针对全人类的一个集体的利益.最大的区别是一个是集体的一个是个别的.表现形式上,公益广告的表现的形式比较有寓意.认为意味深长,引起思考,有教育和启发的作用,而商业广告的表现形式比较直接,没有什么意义.商业性质浓厚.实属宣传性的. 问题八:公益广告的功能于意义 5分 社会公益事业是非营利事业,其目的不是为了谋求市场经济利益,而是为了造福于社会,是从文化、精神、体质、社会、环境诸方面开发人的潜能,为人类社会生存和发展创造各种基本条件、基本价值的事业。社会公益事业是一种社会性事业,需要社会全体成员参加,它在开展和运作过程之中同样离不开信息的传播和交换,特别需要公益事业的主体向社会成员传播信息的媒介和渠道,这就导致了公益广告的产生和发展。因此,社会公益事业的存在和发展是公益广告存在和发展的现实基础。 公益和营利之间的区别,既是社会公益事业和社会营利事业之间的区别,也是公益广告 和商业广告之间的区别。这种区别表现在动机、内容、结果等各个方面。制作广告的动机,一个是为了公益,一个是为了盈利;作为广告的内容,一个是传播公益信息,一个是传播商业信息;作为广告的结果,一个是推动公益事业的发展且不带来利润,一个是推动营利事业的发展且带来利润。我们研究和讨论公益广告,首先要准确地把握公益广告的本质特征并将它和商业广告区别开来。当然,公益广告和商业广告之间也存在着联系,存在着共性,它们能不能在一定条件下结合起来,可不可以互有利益?这是需要进一步研究的问题。 为了提高公益广告的质量,更好地发挥公益广告的作用,就必须阐明公益广告的社会功能,因为搞清楚了公益广告的社会功能以及公益广告社会功能的内在规律,也就找到了提高公益广告质量的途径。 公益广告的社会功能具体表现在下列几个方面: 1.传播功能 公益广告在社会主义精神文明建设中占有极为重要的地位。 *** 十四届六中全会《关于加强社会主义精神文明建设若干重要问题的决议》所指出的我国社会主义精神文明建设的指导方针、根本任务同样适合于公益广告的基本思想。我们的公益广告只有传播了科学理论、正确舆论、高尚精神的信息;只有传播了有利于提高全民族的科学文化、思想道德、民主法制等信息;只有传播了有利于团结和调动全国各族人民把我国建设成为富强、民主、文明的社会主义现代化强国的信息,才能成为真正的公益广告。反之,如果传播了有害于人民和社会健康发展的信息,即使不带任何商业性质的广告也仍然不是公益广告。 2.价值导向和教化功能 公益广告在思想道德、文化教育方面可以发挥重要作用。每一个公益广告,不管它有没有文字说明,都在表达某种思想、观念,体现某种价值评判和价值追求,人们接受公益广告的过程就是对其蕴含的思想、观念、价值取向的解读过程。公益广告所能蕴含和表达的思想观念可以是多层次、多方面的,它既可以表达人们的实践观念,也可以表达深层次的哲理观念。由于公益广告的价值导向和教化功能是在人们“欣赏”广告时不由自主地接受的情况下产生的,是潜移默化的过程,所以它比较容易渗透到人们的精神世界里,这对公益广告来说是至关重要的。但是,仅仅是公益广告的价值导向正确,如果它不能引起人们的注意,它也不可能发挥什么作用。 3.审美功能 如果公益广告通过艺术形式如书法、绘画、雕塑、音乐、歌舞等具有艺术魅力的艺术作品来表现,它就具有了一定的审美功能。人们把接受公益广告的过程当做欣赏一种艺术作品的过程;这时,人们除了思想意识得到了熏陶之外,还是一个享受美的过程。艺术性越强就越具有感染力,就越能引起人们的注意,就越能使人们在不知不觉中接受教育。我们在认识广告的审美功能时,不能只把它当做思想教育的手段,还应该用它来进行美育教育,提高人们的审美情趣,陶冶人们的情操,激发人们对真善美的渴望和追求。 4.视听调节功能 广告信息既可以通过听觉信号,也可以通过视觉信号,还可以通过视听混合信号进行传......>>
2023-09-01 22:24:121

协调能力强表现在哪

  协调能力是指决策过程中的协调指挥才能。决策的领导者应该懂得一套科学的组织设计原则。应该熟悉并善于运用各种组织形式,还应该善于用权,能够指挥自如,控制有方,协调人力、物力、财力,以获得最佳效果。下面是我整理的协调能力强表现在哪,欢迎阅览。   协调能力强表现在哪   一、协调   1、协调是指组织者调整某一活动各参与因素之间的关系,使各个因素能够相互配合,促成组织目标的完成。   员工之间不协调,工作就施展不好,只会把事情弄糟,引起痛苦,烦恼。而如果你是一个领导,你的智慧所在,就是能妥善分配员工的工作,并协调他们之间的合作。   2、协调的功能   统一功能:体现在统一思想认识,步调一致往既定目标前进。(强化目标,降低成本)   导向功能:让组织内成员了解上级意图,或上级部门政策,以便调整自己的工作思路。(明确方向)   控制功能:控制不稳定因素,确保工作系统始终向着既定目标平稳发展。员工必须对各种变化的信息不断进行协调,协调的过程也是控制的过程。(消除内部矛盾)   放大功能:分工合作正成为一种企业中工作方式的潮流被更多的管理者所提倡。一个由相互联系,相互制约的若干部分组成的整体,经过优化设计后,整体功能能够大于部分之和,产生1 1>2的效果。一个优秀的团队,不在于每个队员都很优秀,而在于队员之间的协调配合。   3、协调方式   组织内协调:包括上行、下行、平行协调。不管你是与上司沟通、认同上级,还是对下属激励约束,以及和同级协作配合、适度竞争,协调关系都是重点。成功人士不一定是高智商的人,但一定是高情商的人。善于协调的人,无论多重的工作,分工明确,举重若轻,工作业绩突出;不善于协调的人,举轻若重。   二、沟通:   沟通实际就是工作中人与人之间的联系过程,是人与人之间传递信息、沟通思想和交流情感的过程。   主要分为以下几种类型:   (1)从信息沟通的内容划分,可分为:工具型沟通和表意型沟通   工具型沟通:通告,相关办法的发布;   表意型沟通:工程例会,碰头会等,这类沟通是通过情感沟通达到目的。人文性也更强,也越来越重要。表意型沟通的影响力也会逐渐大于工具型。   (2)从信息沟通的方向看,可分为纵向沟通和横向沟通。   纵向沟通:自上而下的沟通或自下而上的沟通(上级向下级发布文件、传达指示,下级向上级汇报工作)   横向沟通:平行沟通   (3)从沟通的组织结构来看,可分为正式沟通和非正式沟通。   正式沟通:文件的下达与呈送,谈判,会议,汇报工作等;   非正式沟通:座谈、聊天等非正式场合的会晤等。非正式沟通获得的信息途径更广,但信息容易失真,小道消息多。   三、如何有效沟通   (1)创造良好的沟通环境   (2)学会有效地聆听   有效聆听的10大要点;   ①少讲多听,不要打断对方的讲话;   ②交谈轻松、舒适,消除拘谨不安情绪;   ③表示有交谈兴趣,不要表现出冷淡或不耐烦;   ④尽可能排除外界干扰;   ⑤站在对方立场上考虑问题,表现出对对方的同情;   ⑥要有耐心,不要经常插话,打断别人的谈话;   ⑦要控制情绪,保持冷静;   ⑧不要妄加评论和争论;   ⑨提出问题,以显示自己充分聆听和求得了解的心境;   ⑩还是少讲多听。   (3)强化沟通能力   强化沟通能力的关键点在于:一是传达有效信息;二是上下言行一致;三是提高组织信任度。   (4)增强语言文字的.感染力   在沟通过程中应尽量使用通俗易懂的语言,使用接收者最易理解的语言。管理者应在不断的实践中提高语言及文字表达能力,多锻炼,平时多向别人学习,体会别人得体、风趣的谈话中的高明之处,提高自己的表达能力。   (5)“韧”性沟通   沟通时,往往不能通过一次沟通就达到沟通的目的,需要经过多次反反复复地与一个对象进行沟通,这就要在沟通中培养“韧”性。对于沟通对象,要有“锲而不舍”的精神,抓住沟通中的每次机会、每一细节,进行反复沟通、深入沟通,直到达到沟通目的。   (6)重视沟通细节的处理   沟通的细节包括声调、语气、节奏、面部表情、身体姿势和轻微动作等。   沟通技巧:   无效沟通—忌用   你必须……你一定要……你应该……只有你……我才会……你本来就是……你从来就不会为我们……   有效沟通—多用:   我希望……如果你……我会非常高兴;您看是不是可以……;不知道这个想法是否……?征询的口吻比较好。   拓展: 如何体现沟通协调能力   提高学习能力   想要提高沟通协调能力,第一最重要的就是提高自身的学习能力,在知识发展迅速的今天,只要能提高自己的学习能力,才能跟得上时代的不妨,与时俱进!   提高思想力   想要举一反三,提高沟通协调能力,提高思考能力也是相当重要,思考决定出路,不思考就行动,很容易出错,要勤于思考,善于思考,在实践中思考,才能积累更多的经验,才能提高沟通协调能力。   提高服务力   何为提高服务能力?将“执政为民”的理念落实到群众服务中,在社会主义和谐核心区里,服务能力如何,是比较直接影响到发展和社会的稳定,提高自身的服务能力,这样就有希望提高沟通协调能力。   提高创新力   创新是非常重要的,实践证明,只要不断创新,才能与时俱进,提出新政策,沟通协调能力才能开拓新局面,我们必须要有创新能力,墨守成规会吃亏的!   提高执行力   所谓的执行能力就是落实力,这个是我们沟通协调和水平的具体表现,提高执行能力,要树立落实第一,要树立真务性,一抓到底的作风,提高执行能力,切勿优柔寡断。
2023-09-01 22:24:121