我的题目是文章处理系统的设计,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。
回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在郭老师的辛勤指导下,终于游逆而解。同时,在郭老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢
在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。
6月11日,我们的课程设计结束了,但是它留给我的印象是不可磨灭的。无论我以后会不会涉及到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("\n")
printf("1---增加订餐客户信息\n")
printf("2---查询订餐客户信息\n")
printf("3---修改订餐客户信息\n")
printf("4---删除订餐客户信息\n")
printf("5---浏览客户订餐信息\n")
printf("6---按照用餐时间升序排序\n")
printf("7---保存订餐信息到数据文件\n")
printf("8---查看数据文件中的订餐信息\n")
printf("9---退出\n")
printf("\n\n")
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("请输入编号:\n")
scanf("%d",&in_number)
p=q=*Head
while(p!=NULL)
{
if(p->number==in_number)
{
printf("已经有相同编号:")
return
}
else
{
q=pp=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("请输入姓名:\n")
scanf("%s",r->name)
printf("请输入人数:\n")
scanf("%d",&r->sum)
printf("请输入时间:\n")
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=pp=p->next}
}
r=(Pointer)malloc(sizeof GuestLink)
r->next=NULL
if(q==NULL)
*Head=r
else
q->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("编号\t姓名\t人数\t时间\n")
printf("%s\t",p->name)
printf("%d\t",p->sum)
printf("%s\t\n",p->time)
flag=0
}
else
p=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
}
else
p=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->nextfree(p)//删除结点后要及时释放内存!!!
}
else
{q->next=p->nextfree(p)}
flag=0
}
else
{q=pp=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->nextfree(p)
}
else
{
q->next=p->nextfree(p)
}
flag=0
}
else
{
q=pp=p->next
}
}
if(flag)
{printf("没有找到要删除的数据!")}
}
*/
void Show(Pointer Head)
{
Pointer p
p=Head
printf("编号\t姓名\t人数\t用餐时间\n")
while(p!=NULL)
{
printf("%d\t",p->number)
printf("%s\t",p->name)
printf("%d\t",p->sum)
printf("%s\t\n",p->time)
p=p->next
}
}
void Sort(Pointer Head)
{
//三个for循环,第一个赋给结构数组 第二个排序,第三个输出
Pointer p
p=Head
int count=0
GuestLink temp
for(i=0p!=NULLi++)
{
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=0i<count-1i++)
{
k=i
for(j=i+1j<countj++)
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("编号\t姓名\t人数\t用餐时间\n")
for(i=0i<counti++)
{
printf("%d\t",stu[i].number)
printf("%s\t",stu[i].name)
printf("%d\t",stu[i].sum)
printf("%s\t\n",stu[i].time)
}
}
/*Head=p=stu
while(p!=NULL)
{
printf("姓名:%-10s",p->name)
printf("人数:%-10d",p->sum)
printf("用餐时间:%-10s",p->time)
printf("编号:%-10d\n",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=0i<counti++)
{
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=0i<count-1i++)
{
k=i
for(j=0j<countj++)
{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=0p!=NULLi++)
{
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!\n")
p=p->next
}
fclose(fp)
}
/*
void Save(Pointer Head)
{
FILE *fp
Pointer p
p=Head
for(i=0p!=NULLi++)
{
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=0i<counti++)
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\n")}
printf("编号\t姓名\t人数\t用餐时间\n")
while(p!=NULL)
{
if(fread(p,sizeof(GuestLink),1,fp)!=1)
{printf("can't read!")}
printf("%d\t",p->number)
printf("%s\t",p->name)
printf("%d\t",p->sum)
printf("%s\t\n",p->time)
p=p->next
}
fclose(fp)
}
采纳哦~