新生报到系统.docx
- 文档编号:23006863
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:19
- 大小:173.56KB
新生报到系统.docx
《新生报到系统.docx》由会员分享,可在线阅读,更多相关《新生报到系统.docx(19页珍藏版)》请在冰豆网上搜索。
新生报到系统
课程设计
学号
班级
姓名
指导教师
2008年6月28日
课程设计任务书
题目:
新生报到系统
一、课程设计时间
2007~08第2学期第17周,即6月23~27日,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成新生报到系统,新生名单存放在file18.txt文件中。
程序应具有以下菜单,并实现其功能:
(1)从file18.txt中读入新生的信息(学号、姓名、民族、省份、高考分数、专业),并保存到myfile.txt文件中;
(2)新生报到;
(3)打印所有未报到的新生;
(4)学生信息查询(根据学号、姓名、省份);
(5)退出程序。
三、课程设计要求
程序质量:
✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段5
四、个人总结7
五、参考文献8
六、源程序8
一、需求分析
本题要求将提供的数据从file18.txt中读入到myfile.txt文件中并依次将报到的新生信息录入;打印所有未报到的新生信息;查询新生信息;退出四项要求。
经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别为
1、从file18.txt文件中读入信息(学号,姓名,民族,省份,高考分数,专业)并保存到myfile.txt文件中。
(insert-information函数)。
2、将报到的新生信息录入(baodao函数)。
3、打印所有未报到的学生信息。
(dayin函数)。
4、查询学生信息(chaxun函数)。
5、退出。
二、程序流程图
程序总体结构图
(1)读取信息图。
(2)新生报到函数
(3)打印未报到同学信息
(4)查询学生信息函数
三、核心技术的实现说明及相应程序段
本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,从file.18txt中读入信息到myfile.txt文件中并保存;新生报到;打印未报到的学生信息;学生信息查询为核心的部分,下面分别进行说明。
1、从file18.txt文件中读入信息并保存到myfile.txt文件中.voidinsert_informaion()
{
FILE*fp1,*fp2;
inti;
if((fp1=fopen("e:
\\file18.txt","r+"))==NULL)
{printf("\n不能打开文件");
return;
}for(i=0;i<20;i++)
{fscanf(fp1,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye);
}
fclose(fp1);
if((fp2=fopen("e:
\\myfile.txt","r+"))==NULL)/*打开文件*/
{printf("\n不能打开文件");
return;}
for(i=0;i<20;i++)
{fprintf(fp2,"%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye);}/*在文件中输出学生信息*/
fclose(fp2);/*关闭文件*/
}
}
2、录入报到学生信息
voidbaodao()
{
FILE*fp;
inti,flag=0,shu,j;
charnumber[20];
if((fp=fopen("e:
\\file18.txt","r+"))==NULL)
{
printf("\nCannotopenfiel");
return;
}
for(i=0;i<20;i++)
{
fscanf(fp,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming,
stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye);
}
printf("\n请输入本次报到的学生数量:
");
scanf("%d",&shu);
for(j=0;j { flag=0; printf("\n请输入学生学号: "); scanf("%s",number); for(i=0;i<20;i++) { if(strcmp(stud[i].xuehao,number)==0)/*比较输入数据与原文件中数据*/ {stud[i].dao=1; flag++; printf("%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming, stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye);} } if(flag==0) { printf("\n找不到这个学生信息"); } } fclose(fp); if((fp=fopen("e: \\myfile.txt","r+"))==NULL) { printf("\nCannotopenfile"); return; } fclose(fp); }运行结果 3、打印未报到新生信息voiddayin() { FILE*wenjian; inti,flag=0; if((wenjian=fopen("e: \\file18.txt","r+"))==NULL) { printf("\nCannotopenfiel"); return; } printf("\n未报到的新生信息"); printf("\n"); for(i=0;i<20;i++)/*利用for循环将未到新生信息打印*/ { fscanf(wenjian,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming, stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye); if(stud[i].dao==0) printf("%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming, stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye); } fclose(wenjian); } 4.查询学生信息voidchaxun() { FILE*fp1; inti; if((fp1=fopen("e: \\file18.txt","r+"))==NULL) { printf("\n不能打开文件"); return; } for(i=0;i<20;i++) { fscanf(fp1,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming, stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye); } fclose(fp1); chara[13]; puts("请输入学生信息\n"); scanf("%s",a); {for(i=0;i<20;i++) if(strcmp(stud[i].xuehao,a)==0) printf("%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming, stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye); } if(strcmp(stud[i].xuehao,a)! =0) printf("没有该同学信息"); } 四、个人总结 这次C语言课程设计消除了我对C语言的错误认识,以前认为C语言就是简单的学科,只是简单的编程设计,其实不然,每个程序都要深刻掌握其真正操作价值,有时几个语句可以通过某种方式简化或是合并,通过这次C语课程设计,使我加深了对C语言的了解,也提高了C语言的应用能力。 这次课程任务设计,主要应用了文件的打开和数据的读取等多方面知识,起初不是很清楚这些内容的我,在多次查书翻资料请教老师同学之后,使我能够完成整个任务.这次课设使我熟练掌握知识的同时还增强了我的实际动手的能力,检验了我们将所学知识应用于实践的能力,使我受益匪浅。 五、参考文献 1谭浩强.C程序设计.北京: 清华大学出版社,2005 2刘成等.C语言程序设计实验指导与习题集.北京: 中国铁道出版社,2006 六、源程序 #include #include #include structstudent/*定义结构体*/ {charxuehao[13]; charxingming[10]; charminzu[10]; charsheng[15]; intfenshu; charzhuanye[30]; intdao; }stud[20]; voidinsert_informaion()/*录入信息函数*/ {FILE*fp1,*fp2; inti; if((fp1=fopen("e: \\file18.txt","r+"))==NULL) { printf("\n不能打开文件"); return;}for(i=0;i<20;i++) {fscanf(fp1,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye);} fclose(fp1); if((fp2=fopen("e: \\myfile.txt","r+"))==NULL) {printf("\n不能打开文件"); return;} for(i=0;i<20;i++) { fprintf(fp2,"%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye); }fclose(fp2); } voidbaodao() {FILE*fp; inti,flag=0,shu,j; charnumber[20]; if((fp=fopen("e: \\file18.txt","r+"))==NULL) {printf("\nCannotopenfiel"); return;} for(i=0;i<20;i++) {fscanf(fp,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye);} printf("\n请输入本次报到的学生数量: "); scanf("%d",&shu); for(j=0;j {flag=0; printf("\n请输入学生学号: "); scanf("%s",number); for(i=0;i<20;i++) {if(strcmp(stud[i].xuehao,number)==0) {stud[i].dao=1; flag++; printf("%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye);}} if(flag==0) {printf("\n找不到这个学生信息");} fclose(fp); if((fp=fopen("e: \\myfile.txt","r+"))==NULL) {printf("\nCannotopenfile"); return} fclose(fp)} voiddayin() { FILE*wenjian; inti,flag=0; if((wenjian=fopen("e: \\file18.txt","r+"))==NULL) {printf("\nCannotopenfiel"); return;} printf("\n未报到的新生信息"); printf("\n"); for(i=0;i<20;i++) {fscanf(wenjian,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye); if(stud[i].dao==0) {printf("%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye);} fclose(wenjian); } voidchaxun()/*查询函数*/ {FILE*fp1; inti; if((fp1=fopen("e: \\file18.txt","r+"))==NULL) {printf("\n不能打开文件"); return;} for(i=0;i<20;i++) {fscanf(fp1,"%s%s%s%s%d%s",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,&stud[i].fenshu,stud[i].zhuanye); } fclose(fp1); chara[13]; puts("请输入学生信息\n"); scanf("%s",a); {for(i=0;i<20;i++) if(strcmp(stud[i].xuehao,a)==0)/*比较数据长短*/ printf("%15s,%7s,%5s,%7s,%5d,%20s\n",stud[i].xuehao,stud[i].xingming,stud[i].minzu,stud[i].sheng,stud[i].fenshu,stud[i].zhuanye);} if(strcmp(stud[i].xuehao,a)! =0) printf("没有该同学信息");} voidmain() {inti; for(;;){ printf("\n--------------欢迎使用新生报到系统---------------"); printf("\n--------------1录入信息--------------------------"); printf("\n--------------2新生报到--------------------------"); printf("\n--------------3打印未报到的学生------------------"); printf("\n--------------4查询学生信息----------------------"); printf("\n--------------5退出---------------------------"); printf("\n--------------请选择-------------------------\n\t"); scanf("%d",&i); switch(i) { case1: clear();insert_informaion();break; case2: clear();baodao();break; case3: clear();dayin();break; case4: clear();chaxun();break; case5: clear();exit(0);break; default: printf("\n输入错误");}}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新生 报到 系统