尊旭网
当前位置: 尊旭网 > 知识 >

c语言课程设计题目

时间:2025-01-18 05:45:49 编辑:阿旭

c语言课程设计的学习方法与技巧

1.大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!2.计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣的。3.记住:万丈高楼平地起!基础很重要,尤其是专业基础课,只有打好基础才能学得更深。4.C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。5.C语言与C++语言是两回事。就像大熊猫和小熊猫一样,只是名字很像。6.请先学习专业课《数据结构》、《计算机组成原理》,不要刚开始就拿着一本VC在看,你连面向对象都搞不清楚,看VC没有任何用处。7.对编程有一定的认识后,就可以学习C++了。(是C++而不是VC,这两个也是两码事。C++是一门语言,而VC教程则是讲解如何使用MFC类库,学习VC应建立在充分了解C++的基础之上。看VC的书,是学不了C++语言的。)8.学习编程的秘诀是:编程,编程,再编程;9.认真学习每一门专业课,那是你今后的饭碗。10.在学校的实验室就算你做错一万次程序都不会有人骂你,如果在公司你试试看!所以多去实验室上机,做得多了,毕业后就错得少了11.从现在开始,在写程序时就要养成良好的习惯。12.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路。13.你会买好多参考书,那么请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码。14. V C、C #、.NET这些东西都会过时,不会过时的是数据结构和优秀的算法! 15.记住:书到用时方恨少。不要让这种事发生在你身上,在学校你有充足的时间和条件读书,多读书,如果有条件多读原版书,你要知道,当一个翻译者翻译一本书时,他会不知不觉把他的理念写进书中,那本书就会变得像鸡肋!16.我还是强调认真听专业课,因为有些课像《数据结构》、《编译原理》、《操作系统》等等,这种课老师讲一分钟能让你明白的内容,你自己看要看好几个月,有的甚至看了好几年都看不明白。17.抓住在学校里的各种实践的机会,要为自己积累经验,就业时经验比什么都有用。18.多去图书馆,每个学校的图书馆都有很多好书等你去看!19.编程不是技术活,而是体力活。20.如果你决定了要当一个好的程序员,那么请你放弃游戏,除非你是那种每天只要玩游戏就能写出好程序的天才!21.你要有足够的韧性和毅力!有个高手出一一道题测试你的韧性和毅力:找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。22.找到只属于你自己的学习方法。不要盲目的追随别人的方法,适合自己的才是最好的!

c语言程序设计 教学设备管理系统 谢谢啦!分不是问题

#include
#include
#include
#include
#define NULL 0
#define LEN sizeof(struct equipment)

struct equipment
{long number;
char name[20];
char adr[20];
long date;
long taishu;
long price;
long amount;
char instruction[20];
struct equipment *next;
};
struct equipment *head,*equip,*p5,*p;
int n;
struct equipment *del1,*del2,*del3;
struct equipment*insert(struct equipment *head,struct equipment *p);

/*输入函数*/
struct equipment* creat(void)
{struct equipment *p1,*p2;
n=0;
p1=p2=(struct equipment*)malloc(LEN);
printf("\n教学设备编号为0时,退出输入!\n");
printf("输入教学设备编号 :");
scanf("%ld",&p1->number);
printf("\n输入设备名称:");
scanf("%s",&p1->name);
printf("\n输入生产厂家:");
scanf("%s",&p1->adr);
printf("\n输入购置日期:");
scanf("%ld",&p1->date);
printf("\n输入台数:");
scanf("%ld",&p1->taishu);
printf("\n输入单价:");
scanf("%ld",&p1->price);
p1->amount=(p1->taishu)*(p1->price);
printf("\n输入备注:");
scanf("%s",&p1->instruction);
head=NULL;
while(p1->number!=0)
{n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct equipment*)malloc(LEN);
printf("\n输入教学设备编号:");
scanf("%ld",&p1->number);
if(p1->number==0) break;
else
{printf("\n输入设备名称:");
scanf("%s",&p1->name);
printf("\n输入生产厂家:");
scanf("%s",&p1->adr);
printf("\n输入购置日期:");
scanf("%ld",&p1->date);
printf("\n输入台数:");
scanf("%ld",&p1->taishu);
printf("\n输入单价:");
scanf("%ld", &p1->price);
p1->amount=(p1->taishu)*(p1->price);
printf("\n输入备注:");
scanf("%s",p1->instruction);}
}
p2->next=NULL;
return(head);
}
void print()
{clrscr();
gotoxy(33,0);
printf("\16[{-80|10@30,30=4(2)5****中南大学教学设备管理系统****}]");
gotoxy(3,5);
printf("设备编号 设备名称 生产厂家 购置日期 台数 单价 金额 备注\n");}
void print1()
{int i,j;
for(i=0;i<=8;i++)
line(70*i+16,60,70*i+16,60+36*(n+1));
for(j=0;j<=n+1;j++)
line(16,60+36*j,70*8+16,60+36*j);}

/*显示函数*/
void output(struct equipment* head)
{struct equipment*p;
p=head;
printf(" ");
if(head!=NULL)
do
{printf("\n %-9ld%-9s%-9s%-9ld%-9ld%-9ld%-9ld%-9s \n",p->number,p->name,p->adr,p->date,p->taishu,p->price,p->amount,p->instruction);
p=p->next;}while(p!=NULL);
printf(" ");
getch();}
/*修改函数*/
void change(struct equipment* head)
{struct equipment *p;
long num;
cleardevice();
for(;;)
{
printf("\n请输入要修改的设备编号:");
scanf("%ld",&num);
p=head;
while(num!=p->number&&p->next!=NULL)
{p=p->next;}
if(num!=p->number)
{printf("\n对不起,无此记录!按任意键返回!");
getch();
break;}
else
{printf("\n请输入新的设备记录:");
printf("\n输入教学设备编号:");
scanf("%ld",&p->number);
printf("\n输入教学设备名称:");
scanf("%s",&p->name);
printf("\n输入生产厂家:");
scanf("%s",&p->adr);
printf("\n输入购置日期:");
scanf("%ld",&p->date);
printf("\n输入台数:");
scanf("%ld",&p->taishu);
printf("\n输入单价:");
scanf("%ld",&p->price);
p->amount=(p->taishu)*(p->price);
printf("\n输入备注:");
scanf("%s",p->instruction);
printf("\n是否继续退出,Y/N?");
if(getch()!='y') break;
}
}}
/*查找函数*/
void search(struct equipment* head)
{ struct equipment *p;
char choice;
long key;
do
{clrscr();
if(head==NULL)
printf("\n 无此记录!");
printf("\n请输入要查找的设备编号:");
scanf("%ld",&key);
p=head;
while(key!=p->number&&p->next!=NULL)
{p=p->next;}
if(key==p->number)
{print();
print1();
printf("\n %-9ld%-9s%-9s%-9ld%-9ld%-9ld%-9ld%-9s",p->number,p->name,p->adr,p->date,p->taishu,p->price,p->amount,p->instruction);
printf("\n");}
else
{printf("\n无此编号,请按任意键返回!");
getch();}
printf("\n您是否需要继续查找?(y/n)\n");
choice=getch();
}while(choice=='y');
}
/*删除函数*/
struct equipment *del(struct equipment *head)
{ struct equipment *p1,*p2;
long number;
int b=0;
do
{clrscr();
if(head==NULL)
{printf("\n无此记录!\n");
return(head);}
else
{b=0;
if(del1==NULL) b=b+1;
if(del2==NULL) b=b+1;
if(del3==NULL) b=b+1;
if(b!=0)
printf("\n回收站还有%d的空间!",b);
else
printf("\n回收站已满,无法再删除!");
printf("\n请输入要删除的教学设备编号:");
scanf("%ld",&number);
p1=head;
while(number!=p1->number&&p1->next!=NULL)
{p2=p1;
p1=p1->next; }
if(number==p1->number)
{printf("\n进行逻辑删除还是物理删除,Y/N?");
if(getch()=='y')
{if(del1==NULL) del1=p1;
else if(del2==NULL) del2=p1;
else del3=p1;}
if(p1==head) head=p1->next;
else p2->next=p1->next;
printf("\n已删除设备编号%ld记录!",number);
b=b-1;}
else
{printf("\n无此设备记录!");
getch();}
printf("\n是否继续删除/Y/N?");
}
}while(getch()=='y');
getch();
return(head);
}

/*恢复函数*/
struct equipment *recover(struct equipment* head)
{ struct equipment *p0,*p1,*p2;
long rec_num,a=0;
cleardevice();
gotoxy(1,3);
do{printf("\n可恢复的设备编号:");
if(del1!=NULL)
{a=a+1;printf("\n%ld",del1->number); }
if(del2!=NULL)
{a=a+1;printf("\n%ld",del2->number);}
if(del3!=NULL)
{a=a+1;printf("\n%ld",del3->number); }
if(a==0)
{printf("\n没有可恢复的数据,请按任意键退出!");
getch();
return(head); }
printf("\n请输入要恢复的教学设备编号:");
scanf("%ld",&rec_num);
if(rec_num==del1->number)
{p0=del1;
del1=NULL;}
else if(rec_num==del2->number)
{p0=del2;

del2=NULL;}
else if(rec_num==del3->number)
{p0=del3;
del3=NULL;}
else {printf("\n输入错误,按任意键返回!");
getch();
return(head);}
p1=head;
if(head==NULL)
{head=p0;p0->next=NULL;}
else
{while((p0->number>p1->number)&&(p1->next!=NULL))
{p2=p1;
p1=p1->next;}
if(p0->numbernumber)
{if(head==p1){head=p0;p0->next=p1;}
else p2->next=p0;
p0->next=p1;
} else
{p1->next=p0;
p0->next=NULL;}}
n=n+1;
output(head);
printf("\n恢复成功,请按任意键返回!");
printf("\n是否继续进行恢复Y/N?");
}while(getch()=='y');
getch();
return(head);
}
/*添加函数*/
struct equipment *insert(struct equipment* head,struct equipment *p)
{
char choice;
p=(struct equipment*)malloc(LEN);

do
{
clrscr();
printf("\n请输入新的教学设备资料:");
printf("\n输入编号:");
scanf("%ld",&p->number);
printf("\n输入名称:");
scanf("%s",p->name);
printf("\n输入生产厂家:");
scanf("%s",p->adr);
printf("\n输入购置日期:");
scanf("%ld",&p->date);
printf("\n输入台数:");
scanf("%ld",&p->taishu);
printf("\n 输入单价:");
scanf("%ld",&p->price);
p->amount=(p->taishu)*(p->price);
printf("\n输入备注:");
scanf("%s",p->instruction);
printf("\n");
if(n==0)
{ n=n+1;
head=p; }
else
{p->next=head;head=p;n++;}
printf("\n您是否要继续添加?(y/n)\n");
}while(getch()=='y');

return(head);
}
/*统计函数*/
void count(struct equipment* head)
{ int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7=0,sum8=0;
struct equipment* p;
p=head;
while(p)
{ for(p=head;p!=NULL;p=p->next)
{ sum1+=p->taishu;
sum2+=p->amount;
if(p->amount<200)
{ sum3+=p->taishu;sum4+=p->amount; }
else
if(p->price<800)
{ sum5+=p->taishu;sum6+=p->amount; }
else
{ sum7+=p->taishu;sum8+=p->amount; }
}

}
output(head);
printf("\n 合计 %d %d\n",sum1,sum2);
n=n+1;
print1();
n=n-1;
printf("\n");
printf("\n");
printf("\n 200元以下的设备总台数及总金额: %d %d",sum3,sum4);
printf("\n 200--800元之间的设备总台数及总金额: %d %d",sum5,sum6);
printf("\n 800元以上的设备总台数及总金额: %d %d",sum7,sum8);
getch();

}
/*保存函数*/
void save(struct equipment *head)
{ FILE *fp;
struct equipment *p;
char name[20];
p=head;
cleardevice();
printf("\n请输入要保存的文件名:");
scanf("%s",name);
if((fp=fopen(name,"wb"))==NULL)
{printf("\n对不起!不能建立新文件!按任意键返回!");
getch();
return;}
while(p->number!=NULL)
{fwrite(p,LEN,1,fp);
p=p->next;}
printf("\n保存结束,请按任意键返回!");
fclose(fp);
getch();}
/*打开函数*/
struct equipment *dakai(void)
{ struct equipment *head, *p1,*p2 ;
char name[20];
FILE *fp=NULL;
cleardevice();
p1=p2=(struct equipment *)malloc(LEN);
printf("\n请输入要打开的文件名:");
head=p1;
scanf("%s",name);
if((fp=fopen(name,"rb"))==NULL)
{printf("\n对不起,没有该文件!请按任意键返回!");
getch();}
fread(p1,LEN,1,fp);
while(!feof(fp))
{p2->next=p1;
p2=p1;
p1=(struct equipment*)malloc(LEN);
fread(p1,LEN,1,fp);n++;};
p2->next=NULL;
fclose(fp);
output(head);
printf("\n文件已输出,请按任意键返回!");
getch();
return(head);
}