编程实习报告Word下载.docx
- 文档编号:22015406
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:160.77KB
编程实习报告Word下载.docx
《编程实习报告Word下载.docx》由会员分享,可在线阅读,更多相关《编程实习报告Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
7.修改学生信息
三、程序流程图(见附录)
四、原代码:
#include<
stdio.h>
stdlib.h>
string.h>
#defineCH30/*最大字符数,可修改*/
typedefstructstudent
{
charname[CH];
/*姓名*/
intage;
/*年龄*/
chartel[CH];
/*电话*/
intnum;
/*学号*/
structstudent*next;
}s_Student;
s_Student*creat_node()
{
s_Student*nodePtr=(s_Student*)malloc(sizeof(s_Student));
if(nodePtr!
=NULL)
{
printf("
姓名:
"
);
scanf("
%s"
nodePtr->
name);
年龄:
%d"
&
nodePtr->
age);
电话:
scanf("
tel);
学号:
num);
}
else
内存溢出!
\n"
returnnodePtr;
}
s_Student*creat_list(s_Student*head)//创建链表函数
inti;
s_Student*p1,*p2;
intnum_node;
printf("
输入学生人数及资料\n"
人数:
num_node);
if(num_node<
=0)
returnhead;
第1个学生\n"
p1=p2=creat_node();
//这里创建了一个节点
if(p1==NULL)
head=p1;
for(i=1;
i<
num_node;
i++)
{
if(num_node==1)
{
head->
next=NULL;
break;
}
else
printf("
第%d个学生\n"
i+1);
p1=creat_node();
if(p1==NULL)
break;
p2->
next=p1;
p2=p1;
p2->
returnhead;
voidprint(s_Student*head)//显示链表信息
输出学生信息:
while(head!
姓名:
%s,年龄:
%d,电话:
%s,学号:
%d\n"
head->
name,head->
age,head->
tel,head->
head=head->
next;
s_Student*find(s_Student*head)//查询学生信息
charname[CH];
输入学生姓名:
name);
while(strcmp(name,head->
name)!
=0&
&
head->
next!
=NULL)
if(strcmp(name,head->
name)==0)
学生%s不存在链表中\n"
returnNULL;
s_Student*del(s_Student*head)//删除学生信息
s_Student*p1,*p2;
p1=head;
请输入要删除的学生的姓名:
while((strcmp(p1->
name,name)!
=0)&
(p1->
=NULL))//字符串比较函数
p2=p1;
p1=p1->
}
if(strcmp(p1->
name,name)==0)
if(p1==head)//是头节点
head=p1->
p2->
next=p1->
free(p1);
删除成功\n"
s_Student*insert(s_Student*head)//增加学生信息
s_Student*p=creat_node();
if(p==NULL)
添加学生失败\n"
p->
next=head;
head=p;
voidmodify(s_Student*head)//修改学生信息
structstudent*p1;
intn;
p1=find(head);
if(p1!
1.修改姓名\n"
2.修改年龄\n"
3.修改电话\n"
4.修改学号\n"
请选择菜单编号:
"
&
n);
switch(n)
case1:
printf("
输入新姓名:
scanf("
p1->
break;
case2:
输入新年龄:
p1->
case3:
输入新电话:
case4:
输入新学号:
default:
请在1-4之间重新选择\n"
return;
voidsave(s_Student*head)//保存链表数据到文件
s_Student*p;
FILE*fp=fopen("
wanlin.txt"
"
w"
if(fp==NULL)//fopen函数使变量w与文件mm.txt相连
{
perror("
打开文件失败"
return;
\n正在保存......\n"
p=head;
while(p!
p->
name,p->
age,p->
tel,p->
if(1!
=fwrite(p,sizeof(s_Student),1,fp))
perror("
写文件失败"
fclose(fp);
return;
p=p->
}
fclose(fp);
//关闭文件
保存成功!
}
s_Student*load(s_Student*head)//把链表从文件中读入到新的链表中
FILE*fp=fopen("
rb"
//mm.txt为文件名,rb为只读使用方式
if(fp==NULL)
打开失败"
\n------文件读取!
------\n"
p1=(s_Student*)malloc(sizeof(s_Student));
if(p1==NULL)
while(feof(fp)==0)//feof函数判断文件是否读到末尾!
=0isEOF
=fread(p1,sizeof(s_Student),1,fp))//fread为读入函数
姓名:
%s,年龄:
name,p1->
age,p1->
tel,p1->
p1->
next=(s_Student*)malloc(sizeof(s_Student));
if(!
next)
溢出内存!
returnhead;
p1=p1->
----成功读取文件!
----\n"
voiddestory(s_Student*head)
p=head;
head=p->
free(p);
intmain()
intch;
s_Student*head=NULL;
while
(1)
\n*********学生信息系统*********\n"
\n系统功能菜单\n"
----------------------------\n"
1.创建学生信息链表\n"
2.显示学生信息\n"
3.删除学生信息\n"
4.增加学生信息\n"
5.保存学生信息\n"
6.查询学生信息\n"
7.修改学生信息\n"
8.加载学生信息\n"
9.退出学生信息系统\n"
\n建议每次退出系统前保存\n第一次使用该系统勿选加载\n"
%d"
ch);
switch(ch)
head=creat_list(head);
case2:
print(head);
head=del(head);
head=insert(head);
case5:
save(head);
case6:
find(head);
case7:
modify(head);
case8:
head=load(head);
case9:
退出系统\n"
destory(head);
return0;
请在1-9之间重新选择\n"
return0;
五、程序运行图
主界面
部分运行结果:
六、心得体会:
程序设计是一门实践性很强的课程,对C程序设计者初学者而言,除了学习、熟记C语言的一些语法规则外,更重要的是多读程序,懂动手编程序。
先模仿,在模仿的基础上改进,在改进的基础上提高。
做到善于思考,边学边练,举一反三,学会“小题大做”,一题多解。
学过的知识会应用才能体现出它的价值。
C语言作为广为流行的计算机程序设计语言,对于跟程序有关的专业学生是必须掌握的。
这次实习让我重温了编写一个简单程序的步骤,认识到自己在程序编写还是那么的缺少经验。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 实习 报告