C语言实训学生信息管理系统.docx
- 文档编号:8353506
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:23
- 大小:83.30KB
C语言实训学生信息管理系统.docx
《C语言实训学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实训学生信息管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
C语言实训学生信息管理系统
实训报告
实训名称C语言编程开发实训
专业班级物联1541
姓名张禄泽
学号01
指导教师黄标兵、王丽平
实训时间~
成绩评定
考核
内容
平时
答辩
实训报告
综合
评定
成绩
计算机技术与工程学院
《实训报告》文档规范及注意事项
一、按照《任务书》中“实训报告要求”模式写。
二、文档格式为A4纸、页边距上下2.54cm,左3.7cm,右2.7cm;正文通篇段落1.5倍行距,宋体五号;一级标题4号黑体,二级标题小四黑体。
三、图、表应有标号和名称,且图名位于图下,表名位于表格上方;表格:
表名用小五号黑体,表头用小五号黑体,表内数字、字母用小五号TimesNewRoman体,表内汉字用小五号宋体;表框线两端不封。
图解:
图名用小五号黑体。
图表的大小要适中。
四、参考文献格式为:
序号作者,书名,出版地:
出版社名称,出版社年份
序号作者.论文题名.期刊名称,年份,卷号(期号):
起至页码
五、附录中的源代码应有适当的注释(可没有附录,但是提交的源代码电子文档中应有适当的注释)。
六、按照格式要求填写《实训报告》封面中学生应填写的内容。
七、实训结束后,学生应提交的文档包括纸质文档和电子文档。
纸质文档包括:
1.《实训报告》1份(左侧装订)。
电子文档包括:
1.实训报告
2.源程序
3.程序的可执行文件(.exe)
第1部分课程设计目的1
第2部分课程设计内容与要求2
2.1课程设计内容6
2.2基本要求2
第3部分报告正文3
3.1设计题目及任务要求3
3.2总体设计3
第4部分课程设计总结22
第5部分参考文献23
第1部分实训目的
C语言编程开发实训是学生在《C语言程序设计》课程结束时进行的一项实践活动,综合运用C程序设计课程和其他先修课程的理论和知识,掌握C语言开发实训的一般方法,树立正确的设计思想,培养分析问题和解决实际问题的能力;学会从实际的要求出发,合理的选择算法,正确的使用测试方法,培养学生程序设计能力;学习运用帮助和查阅有关技术资料的能力。
针对实训题目对学生在整个实训阶段进行检查考核,主要包括考勤、阶段性检查、成果答辩和实训报告。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
第2部分实训内容与要求
2.1实训内容
C语言编程开发实.可实现信息的录入、浏览、修改、删除、可按学号、姓名查询,学生信息必须包含学号,姓名,年龄,性别,出生年月,地址,电话以文件的形式打开。
2.2基本要求
(1)所有学生统一在机房进行设计,一人一组。
(2)听从指导老师的统一安排。
(3)严格遵守作息时间、不迟到、不早退,病、事假必须向指导老师请假。
(4)使用C语言开发。
(5)满足编程规范。
(6)设计结构清晰(模块化开发)。
(7)根据任务书的要求选择实训题目,每个题目同一班级内不超过三人选择,根据题目难易程度进行综合评分。
学生也可以自选题目,但自选题目要满足实训题目要求并经指导老师确认。
(8)实训报告不合格者不允许参加答辩。
(9)抄袭他人程序者记零分。
(10)无故缺课累计超过该课程总学时数三分之一者记零分。
第3部分报告正文
3.1实训题目及任务要求
题目:
学生信息管理系统设计
要求:
1.可实现信息的录入、浏览、修改、删除、可按学号、姓名查询;
2.学生信息必须包含学号,姓名,年龄,性别,出生年月,地址,电话。
3.以文件的形式打开
4.必须有注释。
3.2总体设计
详细设计
信息录入流程图
信息查询界面,按1依照姓名查询,按2依照学号查询。
在文件数据中搜索后若无查找内容则输出“搜索无结果”,若找到查找内容,则输出该内容,返回主菜单。
按学生姓名查询按学号查询
查询模块
信息查询流程图
删除模块
修改模块
图1.系统的总体流程图.
一、主界面
二、信息录入
三、信息浏览
四、信息查询
五、删除信息
六、信息添加
七、信息修改
源程序
#include
#defineN100
structstudent
{
intnum;
charname[30];
charsex;
intage;
charxueyuan[30];
intbj;
charaddr[30];
chartel[30];
}stu[100];//定义一个结构体
voidmenu();
voidinput();
voidsave(int);
voiddisplay();
voiddel();
voidadd();
voidsearch();
voidsearch_num();
voidsearch_xueyuan();
voidsearch_tel();
voidmodify();//定义各函数
voidmain()
{
menu();
intn,flag;
chara;
do
{
printf("请选择你需要操作的步骤(1--7):
\n");
scanf("%d",&n);
if(n>=1&&n<=7)
{
flag=1;
break;
}
else
{
flag=0;
printf("您输入有误,请重新选择!
");
}
}
while(flag==1);
{
switch(n)
{
case1:
printf("◆◆◆输入学生信息◆◆◆\n");printf("\n");input();break;
case2:
printf("◆◆◆浏览学生信息◆◆◆\n");printf("\n");display();break;
case3:
printf("◆◆◆按学号查询才学生信息◆◆◆\n");printf("\n");search();break;
case4:
printf("◆◆◆删除学生信息◆◆◆\n");printf("\n");del();break;
case5:
printf("◆◆◆添加学生信息◆◆◆\n");printf("\n");add();break;
case6:
printf("◆◆◆修改学生信息◆◆◆\n");printf("\n");modify();break;
case7:
exit(0);break;
default:
break;
}
getchar();
printf("\n");
printf("是否继续进行(yorn):
\n");
scanf("%c",&a);
if(a=='y')
{
flag=1;
system("cls");//清屏
menu();//调用菜单函数
printf("请再次选择你需要操作的步骤(1--7):
\n");
scanf("%d",&n);
printf("\n");
}
else
exit(0);
}
}
voidmenu()//菜单函数
{
printf("************欢迎进入学生信息管理系统**********\n");
printf("1.录入学生信息");
printf("2.浏览学生信息\n");
printf("3.查询学生信息");
printf("4.删除学生信息\n");
printf("5.添加学生信息");
printf("6.修改学生信息\n");
printf("7.退出\n");
printf("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t制作人侯迪");
printf("\n");
printf("\n");
}
voidinput()//录入函数
{
inti,m;
printf("请输入需要创建信息的学生人数(1--100):
\n");
scanf("%d",&m);
for(i=0;i { printf("请输入学号: "); scanf("%d",&stu[i].num); printf("请输入姓名: "); scanf("%s",stu[i].name); getchar(); printf("请输入性别(f--女m--男): "); scanf("%c",&stu[i].sex); printf("请输入年龄: "); scanf("%d",&stu[i].age); printf("请输入学院: "); scanf("%s",stu[i].xueyuan); printf("请输入年级: "); scanf("%d",&stu[i].bj); printf("请输入住址: "); scanf("%s",stu[i].addr); printf("请输入电话: "); scanf("%s",stu[i].tel); printf("\n"); } printf("\n创建完毕! \n"); save(m); } voidsave(intm)//保存文件函数 { inti; FILE*fp; if((fp=fopen("student_list","wb"))==NULL) { printf("cannotopenfile\n"); exit(0); } for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } intload()//导入函数 { FILE*fp; inti=0; if((fp=fopen("student_list","rb"))==NULL) { printf("cannotopenfile\n"); exit(0); } else { do { fread(&stu[i],sizeof(structstudent),1,fp); i++; } while(feof(fp)==0); } fclose(fp); return(i-1); } voiddisplay()//浏览函数 { inti; intm=load(); printf("学号\t\t姓名\t\t性别\t\t年龄\n"); for(i=0;i printf("%d\t%s\t\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age); printf("学院\t\t年级\t\t住址\t\t电话\n"); for(i=0;i printf("\n%s\t%d\t\t%s\t\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel); } voiddel()//删除函数 { intm=load(); inti,j,n,t,flag; charname[20]; printf("\n原来的学生信息: \n"); display(); printf("\n"); printf("请输入要删除的学生的姓名: \n"); scanf("%s",name); for(flag=1,i=0;flag&&i { if(strcmp(stu[i].name,name)==0) { printf("\n已找到此人,原始记录为: \n"); printf("学号\t姓名\t\t性别\t\t年龄\n"); printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age); printf("\n学院\t\t班级\t\t住址\t\t电话\n"); printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel); printf("\n确实要删除此人信息请按1,不删除请按0\n"); scanf("%d",&n); if(n==1) { for(j=i;j { strcpy(stu[j].name,stu[j+1].name); stu[j].num=stu[j+1].num; stu[j].sex=stu[j+1].sex; stu[j].age=stu[j+1].age; strcpy(stu[j].xueyuan,stu[j+1].xueyuan); stu[j].bj=stu[j+1].bj; strcpy(stu[j].addr,stu[j+1].addr); strcpy(stu[j].tel,stu[j+1].tel); } flag=0; } } } if(! flag) m=m-1; else printf("\n对不起,查无此人! \n"); printf("\n浏览删除后的所有学生信息: \n"); save(m);//调用保存函数 display();//调用浏览函数 printf("\n继续删除请按1,不再删除请按0\n"); scanf("%d",&t); switch(t) { case1: del();break; case0: break; default: break; } } voidadd()//添加函数 { FILE*fp; intn; intcount=0; inti; intm=load(); printf("\n原来的学生信息: \n"); display(); printf("\n"); fp=fopen("student_list","a"); printf("请输入想的学生数: \n"); scanf("%d",&n); for(i=m;i<(m+n);i++) { printf("\n请输入新增加学生的信息: \n"); printf("请输入学生号: "); scanf("%d",&stu[i].num); printf("\n"); printf("请输入姓名: "); scanf("%s",stu[i].name); getchar(); printf("请输入性别(f--女m--男): "); scanf("%c",&stu[i].sex); printf("请输入年龄: "); scanf("%d",&stu[i].age); printf("请输入学院: "); scanf("%s",stu[i].xueyuan); printf("请输入年级: "); scanf("%d",&stu[i].bj); printf("请输入住址: "); scanf("%s",stu[i].addr); printf("请输入电话: "); scanf("%s",stu[i].tel); printf("\n"); count=count+1; printf("已增加的人数: \n"); printf("%d\n",count); } printf("\n添加完毕! \n"); m=m+count; printf("\n浏览增加后的所有学生信息: \n"); printf("\n"); save(m); display(); fclose(fp); } voidsearch()//查询函数 { intt,flag; do { printf("\n按学号查询请按1;按学院查询请按2;按电话号码查询请按3;进入主函数请按4\n"); scanf("%d",&t); if(t>=1&&t<=4) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择! "); } } while(flag==0); while(flag==1) { switch(t) { case1: printf("按学号查询\n");search_num();break; case2: printf("按学院查询\n");search_xueyuan();break; case3: printf("按电话号码查询\n");search_tel();break; case4: main();break; default: break; } } } voidsearch_num() { intnum; inti,t; intm=load(); printf("请输入要查找的学号: \n"); scanf("%d",&num); for(i=0;i if(num==stu[i].num) { printf("\n已找到此人,其记录为: \n"); printf("学号\t姓名\t\t性别\t\t年龄\n"); printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age); printf("\n学院\t\t年级\t\t住址\t\t电话\n"); printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel); break; } if(i==m) printf("\n对不起,查无此人\n"); printf("\n"); printf("返回查询函数请按1,继续查询学号请按2\n"); scanf("%d",&t); switch(t) { case1: search();break; case2: break; default: break; } } voidsearch_xueyuan() { charxueyuan[30]; inti,t; intm=load(); printf("请输入要查找的学院: \n"); scanf("%s",xueyuan); for(i=0;i if(strcmp(stu[i].xueyuan,xueyuan)==0) { printf("\n已找到,其记录为: \n"); printf("学号\t姓名\t\t性别\t\t年龄\n"); printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age); printf("\n学院\t\t年级\t\t住址\t\t电话\n"); printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel); } if(i==m) printf("\n对不起,查无此人\n"); printf("\n"); printf("返回查询函数请按1,继续查询学院请按2\n"); scanf("%d",&t); switch(t) { case1: search();break; case2: break; default: break; } } voidsearch_tel() { chartel[20]; inti,t; intm=load(); printf("请输入要查找的电话号码: \n"); scanf("%s",tel); for(i=0;i if(strcmp(tel,stu[i].tel)==0) { printf("\n已找到,其记录为: \n"); printf("学号\t姓名\t\t性别\t\t年龄\n"); printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age); printf("\n学院\t\t年级\t\t住址\t\t电话\n"); printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel); } if(i==m) printf("\n对不起,查无此人\n"); printf("\n"); printf("返回查询函数请按1,继续查询电话号码请按2\n"); scanf("%d",&t); switch(t) { case1: search();break; case2: break; default: break; } } voidmodify()//修改函数 { intnum; charname[20]; charsex; intage; charxueyuan[30]; intbj; charaddr[30]; chartel[20]; intb,c,i,n,t,flag; intm=load(); printf("\n原来的学生信息: \n"); display(); printf("\n"); printf("请输入要修改的学生的姓名: \n"); scanf("%s",name); for(flag=1,i=0;flag&&i { if(strcmp(stu[i].name,name)==0) { printf("\n已找到,其记录为: \n"); printf("学号\t姓名\t\t性别\t\t年龄\n"); printf("\n%d\t\t%s\t%c\t\t%d\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age); printf("\n学院\t\t年级\t\t住址\t\t电话\n"); printf("\n%s\t%d\t\t%s\t%s\n",stu[i].xueyuan,stu[i].bj,stu[i].addr,stu[i].tel); printf("\n确实要修改此人信息请按1;不修改请按0\n"); scanf("%d",&n); if(n==1) { printf("\n需要进行修改的选项\n1.学号2.姓名3.性别4.年龄5.学院6.年级7.住址8.电话\n"); printf("请输入你想修改的那一项序号: \n"); scanf("%d",&c); if(c>8||c<1) printf("\n选择错误,请重新选择! \n"); } flag=0; } } if(flag==1) printf("\n对不起,查无此人! \n"); do { switch(c)//因为当找到第i个学生时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人 { case1: printf("学号改为: "); scanf("%d",&num); stu[i-1].num=num; break; case2: printf("姓名改为: "); scanf("%s",name); strcpy(stu[i-1].na
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 信息管理 系统