while(p)//显示职工信息
{
printf("%-9s",p->name);
printf("%-7s",p->sex);
printf("%-13s",p->birthday);
printf("%-13s",p->workday);
printf("%-8s",p->xueli);
printf("%-10s",p->zhiwu);
printf("%-9s",p->address);
printf("%-11s",p->tel);
p=p->next;
}
}
结果与分析(可以加页):
进入程序,显示的界面
创建文件,录入信息,并保存到文件中
添加职工信息,并保存到文件中
按姓名查找姓名为zhu的职工的信息
以修改生日为例,修改职工的某些属性
程序结束时的提示界面
设计体会与建议:
此次课程设计是我们第一次自己完成一个可以实现对信息录入、储存、读取、并对这些信息进行相关操作的程序。
在源代码的编写中,使用了不同的函数来达到不同的功能,也让我们体会到,在使用函数分工后整个程序变得条理清楚,用不同的功能来划分函数使得排错轻松了很多,让我们体会到,当编写稍大一些的程序时,条理清楚是多么重要。
同时,我们也对那些外观精美的程序非常好奇,希望以后也可以将界面美化,使得程序更具使用价值。
C语言是编程语言中非常经典非常基础的一种,我们差的还很远,这次编程让我们认识到,想编出好程序,就必须吃透书本,这样才能更轻松地跨过书本与电脑之间的障碍。
只有思路明确才能有条不紊。
所以,我们应当更加努力,注重思维模式的培养和迁移,争取在不久的将来可以熟练掌握这一工具,为接下来的学习打好基础。
课程设计的题目是求最短路径,本来是想通过算法的实现把这个程序与交通情况相连,但是因为来不及查找各地的信息,所以,这个计划就没有实现,我相信在以后有更长时间的情况下,我会做出来的。
1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。
通过此次课程设计,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,
根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
数据结构是一门非常有用的课程,尤其是在编程序时,一定要认真有耐心,不要浮躁。
在以后的学习中也要认真积极的去对待!
不仅仅是学习,也是人生的生活的态度!
附录:
源程序代码
#include
#include
#include//Sleep()函数的头文件功能:
执行挂起一段时间
#include//getch()函数的头文件
#include
#include
typedefstruct
{
charname[18];
charsex[8];//性别;男male,女female
charbirthday[11];
charworkday[11];
charxueli[10];
charzhiwu[10];
charaddress[10];
chartel[12];
}xinxi;
typedefstructXX
{
charname[18];
charsex[8];//性别;男male,女female
charbirthday[11];
charworkday[11];
charxueli[10];
charzhiwu[10];
charaddress[10];
chartel[12];
structXX*next;
}node,*linklist;
charfname[15]="work10.txt";//不重新创建文件时,对文件work10.txt进行操作;若创建新文件则其值改变
//--------------------------------------------------------------------------------------
//辅助函数
//--------------------------------------------------------------------------------------
voidmenu()
{
cout<<"|------------------------------------------------------------------------------|";//-80个
cout<<"|欢迎使用职工管理系统|";
cout<<"|------------------------------------------------------------------------------|";
cout<<"|0、结束操作|";
cout<<"|1、创建职工文件|";
cout<<"|2、添加职工信息|";
cout<<"|3、删除职工信息|";
cout<<"|4、查找职工信息|";
cout<<"|5、修改职工信息|";
cout<<"|6、排序职工信息|";
cout<<"|7、显示所有职工信息|";
cout<<"|------------------------------------------------------------------------------|";
}
voidEXIT()
{
printf("\n\n\n\n\n\n");
printf("|------------------------------------------------------------------------------|");
printf("|谢谢使用!
|");
printf("||");
printf("|欢迎下次使用!
|");
printf("||");
printf("|再见!
|");
printf("|------------------------------------------------------------------------------|");
}
voidwritef(xinxiworker0)
{
FILE*fp;
if((fp=fopen(fname,"a"))==NULL)
{
printf("文件不存在!
请先创建!
\n");
exit(0);
}
if(fwrite(&worker0,sizeof(xinxi),1,fp)!
=1)
printf("filewriteerror!
\n");
fclose(fp);
printf("信息保存成功!
\n");
}
voidprint(linklistL)
{
linklistq;
q=L->next;
while(q)
{
printf("姓名%s\n",q->name);
printf("性别%s\n",q->sex);
printf("生日%s\n",q->birthday);
printf("工日%s\n",q->workday);
printf("学历%s\n",q->xueli);
printf("职务%s\n",q->zhiwu);
printf("地址%s\n",q->address);
printf("电话%s\n",q->tel);
cout<q=q->next;
}
}
voidreadall(linklist&L,xinxiworker0)
{
inti;
L=newnode;
L->next=NULL;
linklistu,p;
p=L;
FILE*fp;
if((fp=fopen(fname,"r"))==NULL)
{
printf("无法打开此文件!
");
exit(0);
}
while(!
feof(fp))
{
if(fread(&worker0,sizeof(xinxi),1,fp)!
=1)
{
if(feof(fp))
{
fclose(fp);
break;
}
else
printf("readfileerror!
\n");
}
u=newnode;
for(i=0;i<18;i++)
u->name[i]=worker0.name[i];
for(i=0;i<8;i++)
u->sex[i]=worker0.sex[i];
for(i=0;i<11;i++)
u->birthday[i]=worker0.birthday[i];
for(i=0;i<11;i++)
u->workday[i]=worker0.workday[i];
for(i=0;i<10;i++)
u->xueli[i]=worker0.xueli[i];
for(i=0;i<10;i++)
u->zhiwu[i]=worker0.zhiwu[i];
for(i=0;i<10;i++)
u->address[i]=worker0.address[i];
for(i=0;i<11;i++)
u->tel[i]=worker0.tel[i];
u->tel[i]=NULL;
p->next=u;
p=u;
}
fclose(fp);
p->next=NULL;
}
//--------------------------------------------------------------------------------------
//功能函数
//--------------------------------------------------------------------------------------
voidcreate()
{
voidinsert();
FILE*fp;
intnum,i;
printf("请输入文件名:
");
scanf("%s",fname);
strcat(fname,".txt");//串连接函数,把第二个字符串添加到第一个字符串后面
if((fp=fopen(fname,"w"))==NULL)
{
printf("打开文件出错!
\n");
exit(0);
}
fclose(fp);
cout<<"文件创建成功!
"<cout<<"下面开始输入职工信息!
"<getch();
system("cls");
cout<<"你想输入多少个职工信息?
请输入:
";
cin>>num;
for(i=0;iinsert();
}
voidinsert()
{
xinxiworker;
inti;
for(i=0;i<18;i++)
worker.name[i]='';
for(i=0;i<8;i++)
worker.sex[i]='';
for(i=0;i<11;i++)
worker.birthday[i]='';
for(i=0;i<11;i++)
worker.workday[i]='';
for(i=0;i<10;i++)
worker.xueli[i]='';
for(i=0;i<10;i++)
worker.zhiwu[i]='';
for(i=0;i<10;i++)
worker.address[i]='';
for(i=0;i<12;i++)
worker.tel[i]='';
cout<<"请按以下顺序输入职工信息!
"<cout<<"姓名性别生日工日学历职务地址电话"<scanf("%s%s%s%s%s%s%s%s",&worker.name,&worker.sex,&worker.birthday,&worker.workday,&worker.xueli,&worker.zhiwu,&worker.address,&worker.tel);
writef(worker);
}
voiddel(linklist&L)
{
linklistp,r;
jp_c:
charname[10],c;
intx=0;
p=L->next;
r=L;
system("cls");
system("colorf0");
printf("请输入删除职工的名字:
");
scanf("%s",name);
while(p)//名字不匹配且未找到链尾
{
if(strcmp(p->name,name)==0)
{
r->next=p->next;
free(p);
x++;
printf("删除成功!
\n");
printf("是否继续删除(Y/N)?
\n");
cin>>c;
if(c=='Y'||c=='y')
gotojp_c;
else
{
printf("是否输出删除后的职工信息(Y/N)?
\n");
cin>>c;
if(c=='Y'||c=='y')
{
cout<<"*****************************"<print(L);
cout<<"*****************************"<cout<<"输出完成!
"<getch();
return;
}
else
return;
}
}
r=p;
p=p->next;
}
if(x==0)
printf("未找到该职工的信息!
\n");
}
voidsearch_name(linklistL)
{
inti;
node*p;
p=L->next;
charname[10];
intn=0;
printf("请输入要查找职工的姓名:
");
scanf("%s",name);
printf("正在进行查找,请稍候...\n");
intk=3;
for(i=0;i<350000000*k;i++)//延时3秒
{}
while(p)
{
if(strcmp(p->name,name)==0)
{
printf("该职工的信息如下:
\n");
printf("********************************\n");
printf("姓名%s\n",p->name);
printf("性别%s\n",p->sex);
printf("生日%s\n