barriers / 阅读 / 详情

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

2023-09-09 17:53:07
共4条回复
大鱼炖火锅
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!
#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;
}

http://tieba.b***.com/f?kz=17682927
自己看
cloudcone

#include<stdio.h>

#include<string.h>

#include<conio.h>

#include<stdlib.h>

#define N sizeof(struct book)

#define PT "%-5d %10s %6s %6s %8s %3d ",p->num,p->name,p->where,p->author,p->pub,p->count

struct book /*图书信息*/

{

int num; /*书号*/

char name[10]; /*书名*/

char where[10]; /*所在书库*/

char author[15]; /*作者*/

char pub[20]; /*出版社*/

int count; /*数量*/

struct book *next;

};

/*输出模块*/

void print(struct book *p0)

{

struct book *p;

p=p0->next;

printf(" ^^^^^^^^^^^^^^图书信息表^^^^^^^^^^^^^^");

printf(" 图书编号---图书名称---所在书库----作者----出版社---数量 ");

while(p!=NULL)

{

printf(PT);

p=p->next;

}

getch();

}

/*输入模块*/

struct book *creat()

{

struct book *head,*p1,*p2;

int i=0;

head=p2=(struct book *)malloc(N);

head->next=NULL;

printf(" 录入图书信息");

printf(" ---------------------------------------");

while(1)

{ p1=(struct book *)malloc(N);

printf(" 请输入图书编号(书号为0结束): ");

scanf("%d",&p1->num);

if(p1->num!=0)

{

printf(" 书名 所在书库 作者 出版社 图书数量 ");

scanf("%s%s%s%s%d",p1->name,p1->where,p1->author,p1->pub,&p1->count);

p2->next=p1;

p2=p1;

i++;

}

else

break;

}

p2->next=NULL;

free(p1);

printf(" ----------------------------------------");

printf(" %d 种书录入完毕",i);

getch();

return head;

}

/*查找模块*/

void find(struct book *p0)

{

char name[10];

int flag=1;

struct book *p;

p=p0->next;

printf("请输入要查找的书名: ");

scanf("%s",name);

for(p=p0;p;p=p->next)

if(strcmp(p->name,name)==0)

{

printf(" 图书编号---图书名称---所在书库----作者----出版社---数量 ");

printf(PT);

flag=0;

break;

}

if(flag) printf(" 暂无此图书信息 ");

getch();

}

/*删除模块*/

void del(struct book *p0)

{

char name[10];

int flag=1;

struct book *p;

p=p0;

printf("请输入要删除的书名: ");

scanf("%s",name);

while(p!=NULL)

{

if(strcmp(p->name,name)==0)

{

p0->next=p->next; /*后续节点连接到前驱节点之后*/

free(p);

printf(" 该书资料已删除.");

flag=0;

break;

}

p0=p;

p=p->next;

}

if(flag) printf(" 无此图书信息。");

getch();

}

/*增加模块*/

void insert(struct book *p0)

{

struct book *p;

p=(struct book *)malloc(N);

while(1)

{

printf(" 请输入要增加的图书编号(书号为0 退出): ");

scanf("%d",&p->num);

if(p->num!=0)

{

if(p0->next!=NULL&&p0->next->num==p->num) /*找到重号*/

{

p=p->next;

free(p);

printf(" 该书已存在");

}

else

{printf(" 书名 所在书库 作者 出版社 图书数量 ");

scanf("%s%s%s%s%d",p->name,p->where,p->author,p->pub,&p->count);

p->next=p0->next;

p0->next=p;

printf(" 已成功插入.");

}

}

else

break;

}

getch();

}

/*修改模块*/

void modify(struct book *p0)

{

char name[10];

int flag=1;

int choice;

struct book *p;

p=p0->next;

printf("请输入要修改的书名: ");

scanf("%s",name);

while(p!=NULL&&flag==1)

{

if(strcmp(p->name,name)==0)

{

printf(" 请选择要修改的项:");

printf(" 1.修改图书编号 ");

printf(" 2.修改图书所在书库 ");

printf(" 3.修改图书作者 ");

printf(" 4.修改图书出版社 ");

printf(" 5.修改图书库存量 ");

scanf("%d",&choice);

switch(choice)

{

case 1: { printf(" 请输入新的图书编号:");

scanf("%d",p->num); break;

}

case 2: { printf(" 请输入新的图书书库:");

scanf("%s",p->where); break;

}

case 3: { printf(" 请输入新的图书作者:");

scanf("%s",p->author); break;

}

case 4: {printf(" 请输入新的图书出版社:");

scanf("%s",p->pub); break;

}

case 5: {printf(" 请输入新的图书库存量:");

scanf("%d",p->count); break;

}

}

printf(" 该项已成功修改。 新的图书信息:");

printf(" 图书编号---图书名称---所在书库----作者----出版社---数量 ");

printf(PT);

flag=0;

}

p0=p;

p=p0->next;

}

if(flag) printf(" 暂无此图书信息。");

getch();

}

/*读文件*/

struct book *read_file()

{

int i=0;

struct book *p,*p1,*head=NULL;

FILE *fp;

if((fp=fopen("library.txt","rb"))==NULL)

{printf(" ********库文件不存在,请创建!**********");

getch();

return NULL;

}

head=(struct book *)malloc(N);

p1=head;

head->next=NULL;

printf(" 已有图书信息:");

printf(" 图书编号---图书名称---所在书库----作者----出版社---数量 ");

while(!feof(fp))

{

p=(struct book *)malloc(N); /*开辟空间以存放的取得信息*/

while(fscanf(fp,"%d%s%s%s%s%d",&p->num,p->name,p->where,p->author,p->pub,&p->count)!=EOF)

{

printf(PT);

i++;

}

p1->next=p;

p1=p;

}

p1->next=NULL;

fclose(fp);

printf(" 共种%d 图书信息",i);

printf(" 文件中的信息以正确读出。按任意键返回。");

getch();

return (head);

}

/*保存文件*/

void save(struct book *head)

{

FILE *fp;

struct book *p;

fp=fopen("library.txt","wb"); /*以只写方式打开二进制文件*/

if(fp==NULL) /*打开文件失败*/

{

printf(" =====>打开文件失败! ");

getch();

return ;

}

else

for(p=head->next;p!=NULL;p=p->next)

fprintf(fp,"%d %s %s %s %s %d ",p->num,p->name,p->where,p->author,p->pub,p->count);

fclose(fp);

printf(" 保存文件成功! ");

}

void main()

{

struct book *head=NULL;

int choice=1;

head=read_file();

if(head==NULL)

{

printf(" **********");

getch();

head=creat();

}

do

{

system("cls");

printf(" ----------Welcome--------- ");

printf(" 欢迎您,图书管理员. ");

printf(" ");

printf(" 请选择:");

printf(" 1.查询图书信息 ");

printf(" 2.修改图书信息 ");

printf(" 3.增加图书信息 ");

printf(" 4.删除图书信息 ");

printf(" 5.显示所有图书信息 ");

printf(" 0.退出系统 ");

scanf("%d",&choice);

switch(choice)

{

case 1: find(head); break;

case 2: modify(head); break;

case 3: insert(head); break;

case 4: del(head); break;

case 5: print(head); break;

case 0: system("cls");

printf(" ^^^^^^^^^^谢谢使用,再见^^^^^^^^^^! ");

break;

}

}while(choice!=0);

save(head);

}

小教板
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!
http://wenku.b***.com/view/df9fe8c72cc58bd63186bdfc.html
meira

图书管理系统代码如下:

#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;

}

相关推荐

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语言的课程设计

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

C语言课程设计题目

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

C语言课程设计

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

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

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

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

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

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

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

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

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

C语言程序 课程设计

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

c语言课程设计怎么写?

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

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

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

楚辞名句赏析

  纷吾既有此内美兮,又重之以修能。——《离骚》   长太息以掩涕兮,哀民生之多艰。——《离骚》   亦余心之所善兮,虽九死其犹未悔。——《离骚》   老冉冉其将至兮,恐修名之不立。——《离骚》   民生各有所乐兮,余独好修以为常。——《离骚》   路漫漫其修远兮,吾将上下而求索。——《离骚》   辈莫悲兮生离别,乐莫乐兮新相知。——《九歌-少司命》   鸟飞反故乡兮,狐死必首丘。——《九章-哀郢》   余幼好此奇服兮,年既老而不衰。——《九章-涉江》   与天地兮同寿,与日月兮其光。——《九章-涉江》   后皇嘉树,橘来服兮。受命不迁,生南国兮。——《九章-橘颂》   伯乐既没,骥焉程兮?民生禀命,各有所错兮。——《九章-怀沙》   举世皆浊我独清,众人皆醉我独醒。——《渔夫》   沧浪之水清兮,可以濯我缨。沧浪之水浊兮,可以濯我足。——《渔夫》   悲哉秋之为气也,萧瑟兮草木摇落而变衰。——《九辩》宋玉   “楚辞”又称“楚词”,是战国时代的伟大诗人屈原创造的一种诗体。作品运用楚地(今两湖一带)的文学样式、方言声韵,叙写楚地的山川人物、历史风情,具有浓厚的地方特色。汉代时,刘向把屈原的作品及宋玉等人“承袭屈赋”的作品编辑成集,名为《楚辞》。并成为继《诗经》以后,对我国文学具有深远影响的一部诗歌总集。   楚辞,其本义是指楚地的言辞,后来逐渐固定为两种含义:一是诗歌的体裁,一是诗歌总集的名称(在一定程度上也代表了楚国文学)。从诗歌体裁来说,它是战国后期以屈原为代表的诗人,在楚国民歌基础上开创的一种新诗体。从总集名称来说,它是西汉刘向在前人基础上辑录的一部“楚辞”体的诗歌总集,收入战国楚人屈原、宋玉的作品以及汉代贾谊、淮南小山、庄忌、东方朔、王褒、刘向诸人的仿骚作品。   “楚辞”之名首见于《史记·张汤传》。可见至迟在汉代前期已有这一名称。其本义,当是泛指楚地的歌辞,以后才成为专称,指以战国时楚国屈原的创作为代表的新诗体。这种诗体具有浓厚的地域文化色彩,如宋人黄伯思所说,“皆书楚语,作楚声,纪楚地,名楚物”(《东观余论》)。西汉末,刘向辑录屈原、宋玉的作品,及汉代人模仿这种诗体的作品,书名即题作《楚辞》。这是《诗经》以后,我国古代又一部具有深远影响的诗歌总集。另外,由于屈原的《离骚》是楚辞的.代表作,所以楚辞又被称为“骚”或“骚体”。汉代人还普遍把楚辞称为“赋”。《史记》中已说屈原“作《怀沙》之赋”《汉书·艺文志》中也列有“屈原赋”、“宋玉赋”等名目。   在汉代,楚辞也被称为辞或辞赋。西汉末年,刘向将屈原、宋玉的作品以及汉代淮南小山、东方朔、王褒、刘向等人承袭模仿屈原、宋玉的作品共16篇辑录成集,定名为《楚辞》。楚辞遂又成为诗歌总集的名称。由于屈原的《离骚》是《楚辞》的代表作,故楚辞又称为骚或骚体。   《远游》创作背景   关于此诗的作者,东汉校书郎王逸《楚辞章句》以及后来洪兴祖《楚辞补注》,均认定是屈原。《楚辞章句》题解云:“远游者,屈原之所作也。屈原履方直之行,不容于世。上为谗佞所谮毁,下为俗人所困极,章皇山泽,无所告诉。乃深惟元一,修执恬漠。思欲济世,则意中愤然,文采铺发,遂叙妙思,托配仙人,与俱游戏,周历天地,无所不到。然犹怀念楚国,思慕旧故,忠信之笃,仁义之厚也。是以君子珍重其志,而玮其辞焉。”其后历代学者对此篇作者为屈原均无异议。直到近代,始有人表示怀疑。今文经学家廖平首先发难,其《楚辞讲义》云:“《远游篇》之与《大人赋》,如出一手,大同小异。”现代学者,陆侃如早年所著《屈原》、游国恩早年所著《楚辞概论》,都认为《远游》非屈原所作(游氏晚年观点有所改变),郭沫若《屈原赋今译》、刘永济《屈赋通笺》也持同样的观点。而姜亮夫《屈原赋校注》、陈子展《楚辞直解》等则坚决认为《远游》为屈原所作。归纳起来,说《远游》非屈原所作,大致有三点理由:第一是结构、词句与西汉司马相如的《大人赋》有很多相同;第二是其中充满神仙真人思想;第三是词句多袭《离骚》《九章》。但姜亮夫、陈子展都认为《远游》结构语句与《大人赋》多相同之处,只能说明《大人赋》抄袭《远游》;描写神仙真人与屈原所处的楚文化氛围吻合,而神仙真人思想也仅是此篇的外壳而不是主旨所在;一人先后之作,中有因袭,自古而然,不足为奇。今人更有著专文“从文风、修辞、语法、韵律等几方面客观而科学地列出一些事实,以证明《远游》的作者只能是屈原而决非别人”(姜昆武、徐汉树《〈远游〉真伪辨》,载《楚辞研究论文选》)。因此,《远游》为屈原所作,基本已成为定论。   屈原与当时楚国政坛矛盾极深,而对那个嫉贤忌能、迫害忠良的朝廷,他唯一的办法是离去。对一个热爱国家的大臣,离开郢都去周游四方,并不是愉快的。这欲离不离,欲去还留的心态,使他把情绪寄托化为《远游》这首诗。
2023-09-01 22:27:241

视觉营销中的视觉规范化非常重要具体体现在哪些方面

视觉营销中的视觉规范化主要体现在以下几个方面:1、色彩规范化:品牌应该选择适合其定位和形象的色彩,并且保持一致性,避免出现不同平台上的色彩差异。2、字体规范化:品牌的字体风格应该清晰明了、易于阅读,并保持一致性,从而让消费者在各种媒介上识别品牌。3、图像规范化:品牌的视觉形象应该与其品牌形象相符合,例如使用标志性的图标或标识,以便为消费者提供良好的视觉辨识度。4、标识规范化:品牌的标识应该设计得简单而清晰,以便为消费者提供快速且易于识别的视觉。5、布局规范化:品牌在各种媒介上的布局应该保持一致,例如,广告宣传画面、网站设计等,都应该具有相似的排版和结构。视觉营销在国内又包括三大部分:SD(Store Design)-店铺空间设计与规划布局MP(MerchandisePresentation)-商品陈列形式MD(Merchandising)-商品计划、商品策略(视觉营销就是“诉诸于视觉表现的商品政策,也就是商品在终端的演出计划”,即在商品还没有上市前,提前计划如何将商品最终呈现,在顾客面前的视觉化商品营销系统。视觉化商品营销的目的之一,就是把商品的价值和效果最大化 ,并且通过凸显品牌之间的差异,从而提升销售利润。在视觉化商品营销中,Merchandising(商品计划)的比例占80%,Visual(视觉)占20%,从比例中可以看出,视觉营销非常强调商品的重要性。打造一个让目标顾客容易看, 容易选, 容易买的卖场让商品与销售额产生直接连动就是VMD的目的。对于顾客的角度来说:容易看到、看懂,容易选择与顾客容易购买有直接的联系。如果从品牌店铺的角度来说:就是容易在终端产生销售的意思。如果从导购员的角度来说:即是商品容易看,容易拿取,容易尝试也是直接与容易销售相联系的。而VMD的理念就是达到顾客与导购员双方在买与卖之间均可获得方便的效果。
2023-09-01 22:27:241

公益广告有什么作用

这仅仅是我自己的观点,公益广告的特征是清醇朴素.具有很强的教育意义很象征意义.作用就是来激发人们的意识,使人对自己身边的一些事引起一些注意.是很抽象的
2023-09-01 22:27:257

中部崛起概念股有哪些

1、楚天高速(600035)楚天高速[600035]是一支由湖北楚天智能交通股份有限公司发行的股票。公司是湖北首家高速公路上市公司,以湖北省境内高等级公路、桥梁等交通基础设施项目的融资、投资建设和经营管理为主营业务。经营的汉宜高速公路是湖北交通流量最大的公路之一,区域优势明显。2、海螺型材(000619)海螺型材[000619]是股票名称,股票代码为000619。公司是科技部确定的重点高新技术企业,主要从事中高档塑料型材,板材,门窗的生产,销售以及科研开发,主要产品包括塑钢门窗异型材,彩色异型材,双色,全色,木纹共挤型材以及塑料栅栏,卷帘窗,百叶窗等装饰异型材。以产销量计算,公司在国内,国际塑料型材行业位于销量首位。3、合肥城建(002208)合肥城建[002208]是一支由合肥城建发展股份有限公司发行的股票。公司先后开发以中小户型为特点的琥珀山庄,安居苑,世纪阳光花园等住宅小区,针对合肥市场综合商务楼市场情况,采取不同方式建设农金大厦,仁和大厦等综合商务楼,使产品结构更加多元化,将以合肥为核心,将业务向蚌埠,巢湖,芜湖等周边二,三线城市扩张,进而走向全国。4、长源电力(000966)长源电力[000966]是国电长源电力股份有限公司发行的一支股票。经营范围电力、热力及设备生产及其有关技术的开发、技术服务和培训;新能源开发利用;对煤矿、房地产、化工原料及化学制品(不含化学危险物品)、水泥、铝及相关有色金属产品等项目的投资和管理;煤炭批发经营;批零兼营机电设备、黑色金属、铜及铜材、铝及铝材、汽车(不含九座及以下品牌乘用车)及配件、五金交电、日用百货、纺织品;塑料制品、建筑材料的生产、销售;人身及财产保险代理。5、同力水泥(000885)同力水泥[000885]是一支由河南城发环境股份有限公司发行的股票。增发加强主业09年8月以11.48元/股定向发行9254万股以受让四家水泥企业,发行对象为河南投资集团等六家公司。本次交易完成后,公司拥有的新型干法水泥熟料生产线从一条增加到六条,年熟料生产能力从原来的155万吨增加到855万吨,石灰石矿石储备总量将由约1.2亿吨提高到3.63亿吨。参考资料来源:百度百科-楚天高速[600035]参考资料来源:百度百科-海螺型材[000619]参考资料来源:百度百科-合肥城建[002208]参考资料来源:百度百科-长源电力[000966]参考资料来源:百度百科-同力水泥[000885]
2023-09-01 22:27:231

民以食为天什么意思?

词目 民以食为天 发音 mín yǐ shí wéi tiān 释义 天:比喻赖以生存的最重要的东西。人民以粮食为自己生活所系。指民食的重要。 引用 《包公案》第一回 判焚永州之野庙 ...日当与汝等往庙行香。”且作文以祭之,词曰:呜呼!国以民为本, 民以食为天 ,此古今之常道也。  今神主宰一方,血食兹... 《东周列国志》第八十一回 美人计吴宫宠西施 言语科子贡说列国 ...施,日事游乐,复与文种谋之,文种对曰:“臣闻,‘国以民为本, 民以食为天 ",今岁年谷歉收,粟米将贵,君可请贷于吴,以救民饥,... 《前汉演义》第二十八回 入内帐潜夺将军印 救全城幸得舍人儿 ...为何如?”郦食其急忙应声道:“臣意以为不可!臣闻君以民为本, 民以食为天 ,敖仓储粟甚多,素称足食,今楚兵既拔荥阳,不知进据敖... 《康熙大帝》四十六 见粳米星上怜民主 责逆子康熙震天威 ...,推而广之,终于让江南和两淮都种上了这稻子。虎臣深知朕心,‘ 民以食为天 ",没有百姓丰衣足食,哪有朕的江山呢。如今,他派人专... 《汉书》卷四十三·郦陆朱刘叔孙传 ...之天者,王事可成。不知天之天者,王事不可成。王者以民为天,而 民以食为天 。夫敖仓,天下转输久矣,臣闻其下乃有臧粟甚多。楚人拔... 《三国志》卷六十一·吴书十六·潘濬陆凯传 ...死,家为空户,是不遵先帝十二也。先帝叹曰“国以民为本, 民以食为天 ,衣其次也,三者,孤存之於心”今则不然,农桑并废,是... 《宋书》卷五·本纪第五·文帝 ...月庚午,以始兴内史檀和之为交州刺史。壬午,诏曰“国以民为本, 民以食为天 。故一夫辍稼,饥者必及,仓廪既实,礼节以兴。自顷在所... 《宋书》卷十四·志第四·礼一 ...仪注。史学生山谦之已私鸠集,因以奏闻。乃下诏曰“国以民为本, 民以食为天 。一夫辍耕,饥者必及。仓廪既实,礼节以兴。自顷在所贫... 《明史》卷三百二十·列传第二百八·外国一 ...信释氏,他未遑也。”遂以书谕之曰:“古者王公设险,未尝去兵。 民以食为天 ,而国必有出政令之所。今有人民而无城郭,人将何依?武... 《百战奇略》第三卷 ...,谁就能坚持到最后胜利。这种认识,无疑是有道理的。古人云:“ 民以食为天 ”(见《汉书·郦食其传》)。社会发展的历史表明,离开... 《昭明文选》卷七 ...矣哉!晏子春秋曰:物有必至,事有常然,古之道也。高以下为基, 民以食为天 。老子曰:贵必以贱为本,高必以下为基。汉书,郦食其曰... 《昭明文选》卷三十六 ...食为民天,农为政本。汉书,郦食其说汉王曰:臣闻王者以民为天, 民以食为天 。尚书,八政:一曰食。孔安国曰:劝农业也。汉书,文帝...
2023-09-01 22:27:201

机械电子工程好还是电气工程及其自动化好?

机械电子工程和电气工程及其自动化哪个好:电气工程专业好。一、机械电子工程1、机械电子工程专业俗称机电一体化,是机械工程与自动化的一种,也是最有前途的一种方向。机械电子工程专业包括基础理论知识和机械设计制造方法,计算机软硬件应用能力,能承担各类机电产品和系统的设计、制造、试验和开发工作。2、机械电子工程专业主要课程有工程力学、机械原理及机械零件、电工与电子技术、微型计算机原理及应用、热加工工艺基础、热加工工艺设备及设计、检测技术及控制工程、CAD/CAM基础。3、该专业主要学习力学、机械学、微电子技术、电力电子技术、信号处理技术、计算机应用技术、信息处理技术和现代设计方法的基本知识,受到现代工程师的基本训练,具有机电产品的设计、开发、制造、运行、试验与生产组织管理的基本能力。二、电气工程及其自动化1、电气工程及其自动化是一门涉及电力、电子、计算机、控制、通讯等多个学科交叉的工程学科。其目的在于研究利用电力、电子技术和计算机控制技术,对物质和能量进行测量、控制、传输、存储和处理,从而实现人类对所有领域的无限控制和应用。2、电气工程及其自动化学科内容非常广泛,包括先进的电力系统、电子技术、控制系统、通信系统、计算机技术、电力电子技术、信息处理技术等。同时,该学科也研究了人类社会所需要的电力、电子、通信等基础设施的建设和发展。电气工程及其自动化是一门应用科学,其成果几乎渗透到了社会生活中的所有领域。3、在电气工程及其自动化学科中,电力系统、电子技术、控制系统和通信系统是其中最核心的部分,这些技术已广泛应用于通信、交通、医疗、金融、能源、环保、国防和航空等领域。
2023-09-01 22:27:201