高校新生报到系统.docx
- 文档编号:30631578
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:26
- 大小:82.31KB
高校新生报到系统.docx
《高校新生报到系统.docx》由会员分享,可在线阅读,更多相关《高校新生报到系统.docx(26页珍藏版)》请在冰豆网上搜索。
高校新生报到系统
沈阳航空工业学院
课程设计
学号200604111029
班级__6411101___
姓名____肖强____
指导教师___王晓岩___
2008年3月7日
沈阳航空工业学院
课程设计任务书
材料科学与工程学院金属材料工程专业6411101班学号200604111029
一、课程设计题目:
高校新生报到系统
二、课程设计工作自2008年3月3日起至2008年3月7日止
三、课程设计内容:
用C语言编写软件完成以下任务:
①数据信息(新生学号,姓名,来自省份,被录取系别及专业,高考分数,应交学费,宿舍号,等)保存在fresh.dat文件中
②新生报到
③查询未报到的学生
④学生可以转专业
⑤按学号显示学生信息
四、课程设计要求:
程序质量:
1.贯彻结构化程序设计思想。
2.用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
3.用户界面中的菜单至少应包括“录入数据信息”、“新生报到”、“查询未报到的学生”、“专业调整”、“显示学生信息”、“退出”6项。
4.代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:
●封面
●课程设计任务书
●目录
●需求分析(分析题目的要求)
●程序流程图(总体流程图和主要功能模块流程图)
●核心技术的实现说明及相应程序段
●个人总结
●参考资料
●源程序及适当的注释
指导教师:
________学生签名:
________
目录
一、需求分析2
二、程序流程图3
三、核心技术的实现说明及相应程序段6
四、个人总结15
五、参考文献15
六、源程序16
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:
录入数据信息函数(input),新生报到函数(xsbd),查询未报到的学生函数(chaxun_not),转专业函数(zhuan),按学号显示学生信息函数(chaxun_student_number)。
1录入数据信息函数:
主要实现程序最初运行时新生数据信息的录入。
2新生报道函数:
报道新生,录入新生数据信息。
3查询未报到的学生函数:
在文件中读取学生信息,把没有报到的学生输出。
4学生转专业函数:
对报道的学生信息数据进行修改,输入学生学号和学生的新专业。
5按学号显示学生信息函数:
实现的是按学号显示学生记录信息。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个学生记录信息都包含新生学号,姓名,来自省份,被录取系别及专业,高考分数,应交学费,宿舍号,等内容。
二、程序流程图
1主函数流程图
2录入函数流程图
3查询学生信息函数
三、核心技术的实现说明及相应程序段
本程序主要由五个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,录入数据信息函数,新生报到函数,查询未报到的学生函数,转专业函数,按学号显示学生信息函数是程序中较为核心的部分,下面分别进行说明。
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
//定义结构体
structstudent
{
charxuehao[50];
charxingming[50];
charshengfen[50];
charxibie[50];
charzhuanye[50];
intgaokao;
intxuefei;
charsushe[50];
intbaodao;
};
1录入数据信息函数
输入学生信息函数,函数的功能是输入学生信息并且把学生信息存入文件中。
先用fopen语句以只写的方式打开文件,输入一名学生的学号、姓名等基本信息并且把学生信息写入到文件中。
关闭文件,退出
voidinput()
{
//定义文件类型指针
FILE*fp;
inti,j,test=1;
structstudentss;
//新建文件studnet.txt
if((fp=fopen("d:
\\student.txt","w+"))==NULL)
{
printf("\n文件不能代开");
return;
}
while(test==1)
{
printf("\n请输入学生学号:
");
scanf("%s",ss.xuehao);
fprintf(fp,"%s\t",ss.xuehao);
printf("\n请输入学生姓名:
");
scanf("%s",ss.xingming);
fprintf(fp,"%s\t",ss.xingming);
printf("\n请输入学生省份:
");
scanf("%s",ss.shengfen);
fprintf(fp,"%s\t",ss.shengfen);
printf("\n请输入学生系别:
");
scanf("%s",ss.xibie);
fprintf(fp,"%s\t",ss.xibie);
printf("\n请输入学生专业:
");
scanf("%s",ss.zhuanye);
fprintf(fp,"%s\t",ss.zhuanye);
printf("\n请输入学生高考分数:
");
scanf("%d",&ss.gaokao);
fprintf(fp,"%d\t",ss.gaokao);
printf("\n请输入学生学费:
");
scanf("%d",&ss.xuefei);
fprintf(fp,"%d\t",ss.xuefei);
printf("\n请输入学生宿舍:
");
scanf("%s",ss.sushe);
fprintf(fp,"%s\t",ss.sushe);
ss.baodao=1;
fprintf(fp,"%d\n",ss.baodao);
printf("\n继续录入学生信息请输入1,退出请输入其它数字");
scanf("%d",&test);
}
//关闭文件
fclose(fp);
}
2新生报道函数
新生报到函数,以读写的方式打开文件student.txt,输入报到学生的学号,在文件student.txt中读取学生信息并且把学生信息与输入的学生学号进行判断,如果两个学号相同,则学生报到信息修改为1。
关闭文件。
voidxsbd()
{
FILE*fp;
inti,j,sum,baodao;
charnumber[10];
structstudentss[20];
//打开文件student.txt
if((fp=fopen("d:
\\student.txt","r+"))==NULL)
{
printf("\n不能打开文件");
return;
}
printf("\n请输入报到学生学号:
");
scanf("%s",number);
i=0;
baodao=0;
//判断文件是否结束
while(!
feof(fp))
{
//在wenjianzhong读取学生信息到结构体中
fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,&ss[i].gaokao,&ss[i].xuefei,ss[i].sushe,&ss[i].baodao);
if(strcmp(ss[i].xuehao,number)==0)
{
baodao++;
ss[i].baodao=2;
}
i++;
}
sum=i;
fclose(fp);
/*建立文件studnet.txt*/
fp=fopen("d:
\\student.txt","w+");
/*向文件中写入学生信息*/
for(i=0;i { fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,ss[i].gaokao,ss[i].xuefei,ss[i].sushe,ss[i].baodao); } /*关闭文件*/ fclose(fp); } 3查询未报到的学生函数 查询没有报到的学生信息。 打开文件student.txt,并且逐行读取学生信息,判断学生是否报到,没有报到输出学生信息。 之后判断文件是否结束,当文件结束时,关闭文件退出。 否则继续读取下一个学生信息并且继续进行判断,直到文件结束为止。 voidchaxun_not() { FILE*fp; inti,j,sum,baodao; charnumber[10]; structstudentss[20]; if((fp=fopen("d: \\student.txt","r+"))==NULL) { printf("\n不能打开文件"); return; } i=0; baodao=0; while(! feof(fp)) { fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,&ss[i].gaokao,&ss[i].xuefei,ss[i].sushe,&ss[i].baodao); if(ss[i].baodao==1) { baodao++; printf("%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,ss[i].gaokao,ss[i].xuefei,ss[i].sushe,ss[i].baodao); } i++; } if(baodao==0) { printf("\n学生已经全部报道"); } fclose(fp); } 4按学号显示学生信息函数 voidchaxun_student_number() { FILE*fp; inti,j,sum,baodao; charnumber[10]; structstudentss[20]; if((fp=fopen("d: \\student.txt","r+"))==NULL) { printf("\n不能打开文件"); return; } i=0; while(! feof(fp)) { fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,&ss[i].gaokao,&ss[i].xuefei,ss[i].sushe,&ss[i].baodao); printf("%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,ss[i].gaokao,ss[i].xuefei,ss[i].sushe,ss[i].baodao); i++; } fclose(fp); } 5学生转专业函数 voidzhuan() { FILE*fp; inti,j,sum,baodao; charnumber[10]; structstudentss[20]; printf("\n请输入学生学号: "); scanf("%s",number); if((fp=fopen("d: \\student.txt","r+"))==NULL) { printf("\n不能打开文件"); return; } i=0; baodao=0; while(! feof(fp)) { fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,&ss[i].gaokao,&ss[i].xuefei,ss[i].sushe,&ss[i].baodao); if(strcmp(ss[i].xuehao,number)==0) { printf("\n请输入学生新专业: "); scanf("%s",ss[i].zhuanye); baodao++; } i++; } sum=i; if(baodao==0) { printf("\n文件中没有这个学生"); } fclose(fp); fp=fopen("d: \\student.txt","w+"); for(i=0;i { fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,ss[i].gaokao,ss[i].xuefei,ss[i].sushe,ss[i].baodao); } fclose(fp); } 主函数 voidmain() { inti; while (1) { printf("\n********************************高校新生报道系统********************************"); printf("\n********************************************************************************"); printf("\n***************************欢迎来到沈阳航空工业大学! ***************************"); printf("\n********************************************************************************"); printf("\n1---------数据信息录入"); printf("\n2-------------新生报到"); printf("\n3-----查询未报到的学生"); printf("\n4-----------学生转专业"); printf("\n5---按学号显示学生信息"); printf("\n6-------------退出系统"); printf("\n输入选择: "); scanf("%d",&i); /*多分枝选择结构*/ switch(i) { case1: input();break; case2: xsbd();break; case3: chaxun_not();break; case4: zhuan();break; case5: chaxun_student_number();break; case6: exit(0);break; default: printf("\n输入错误,请重新输入"); } } } 四、个人总结 通过这次课设让我对计算机有了更深及更多的了解,一丝不苟的学习习惯是做好一件事的关键所在。 这次课设中我有许多东西不懂,在我不知道所措的时候我更多的选择的不是自己去想,而是去问老师同学,这样不但使他们让我明白了,我所不懂的,而且也让我了解了,老师同学之间的通力合作是多么重要。 也许以后的工作中真少不了同事与朋友之间的合作吧,这次课设也许就是一个开始。 五、参考文献 1谭浩强.C程序设计.北京: 清华大学出版社,2005 2刘成等.C语言程序设计实验指导与习题集.北京: 中国铁道出版社,2006 六、源程序 #include"stdlib.h" #include"stdio.h" #include"string.h" /*定义结构体*/ structstudent { charxuehao[50]; charxingming[50]; charshengfen[50]; charxibie[50]; charzhuanye[50]; intgaokao; intxuefei; charsushe[50]; intbaodao; }; voidinput() { inti,j,test=1; structstudentss; /*新建文件studnet.txt*/ FILE*fp; if((fp=fopen("d: \\student.txt","w+"))==NULL) { printf("\n文件不能代开"); return; } while(test==1) { printf("\n请输入学生学号: "); scanf("%s",ss.xuehao); fprintf(fp,"%s\t",ss.xuehao); printf("\n请输入学生姓名: "); scanf("%s",ss.xingming); fprintf(fp,"%s\t",ss.xingming); printf("\n请输入学生省份: "); scanf("%s",ss.shengfen); fprintf(fp,"%s\t",ss.shengfen); printf("\n请输入学生系别: "); scanf("%s",ss.xibie); fprintf(fp,"%s\t",ss.xibie); printf("\n请输入学生专业: "); scanf("%s",ss.zhuanye); fprintf(fp,"%s\t",ss.zhuanye); printf("\n请输入学生高考分数: "); scanf("%d",&ss.gaokao); fprintf(fp,"%d\t",ss.gaokao); printf("\n请输入学生学费: "); scanf("%d",&ss.xuefei); fprintf(fp,"%d\t",ss.xuefei); printf("\n请输入学生宿舍: "); scanf("%s",ss.sushe); fprintf(fp,"%s\t",ss.sushe); ss.baodao=1; fprintf(fp,"%d\n",ss.baodao); printf("\n继续录入学生信息请输入1,退出请输入其它数字"); scanf("%d",&test); } fclose(fp); } /*新生报到函数*/ voidxsbd() { FILE*fp; inti,j,sum,baodao; charnumber[10]; structstudentss[20]; /*打开文件student.txt*/ if((fp=fopen("d: \\student.txt","r+"))==NULL) { printf("\n不能打开文件"); return; } printf("\n请输入报到学生学号: "); scanf("%s",number); i=0; baodao=0; /*判断文件是否结束*/ while(! feof(fp)) { /*在文件中读取学生信息到结构体中*/ fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,&ss[i].gaokao,&ss[i].xuefei,ss[i].sushe,&ss[i].baodao); if(strcmp(ss[i].xuehao,number)==0) { baodao++; ss[i].baodao=2; } i++; } sum=i; fclose(fp); /*建立文件studnet.txt*/ fp=fopen("d: \\student.txt","w+"); /*向文件中写入学生信息*/ for(i=0;i { fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,ss[i].gaokao,ss[i].xuefei,ss[i].sushe,ss[i].baodao); } fclose(fp); } voidchaxun_not() { FILE*fp; inti,j,sum,baodao; charnumber[10]; structstudentss[20]; if((fp=fopen("d: \\student.txt","r+"))==NULL) { printf("\n不能打开文件"); return; } i=0; baodao=0; while(! feof(fp)) { fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\t%s\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i].shengfen,ss[i].xibie,ss[i].zhuanye,&ss[i].gaokao,&ss[i].xuefei
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高校 新生 报到 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)