新生报名系统.docx

上传人:b****8 文档编号:11384460 上传时间:2023-02-28 格式:DOCX 页数:22 大小:198.38KB
下载 相关 举报
新生报名系统.docx_第1页
第1页 / 共22页
新生报名系统.docx_第2页
第2页 / 共22页
新生报名系统.docx_第3页
第3页 / 共22页
新生报名系统.docx_第4页
第4页 / 共22页
新生报名系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

新生报名系统.docx

《新生报名系统.docx》由会员分享,可在线阅读,更多相关《新生报名系统.docx(22页珍藏版)》请在冰豆网上搜索。

新生报名系统.docx

新生报名系统

课程设计

学号

班级

姓名

指导教师

2008年6月27日

课程设计任务书

课程设计题目:

新生报名系统

一、课程设计时间

20007~08第2学期第17周,即6月23~27日,共计1周,20学时。

二、课程设计内容:

用c语言编写软件完成新生报名系统,新生名单存放在

file18.txt文件中。

程序应具有以下菜单,并实现其功能:

(1)从file18.txt中读入新生的信息(学号,姓名,民族,省份,高考分数,专业),并保存到myfile.txt文件中;

(2)新生报到;

(3)打印所有未报到的新生;

(4)学生信息查询(根据学号,姓名,省份);

(5)将新的学生信息保存到myfile.txt文件中;

(6)退出程序。

三、课程设计要求:

程序质量:

●贯彻结构化程序设计思想。

●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

●代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

●课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模版。

四、指导教师和学生签名:

指导教师:

_______________学生签名_____________

五、成绩

六、教师评

目录

一、需求分析..................................................4

二、程序流程图................................................6

三、核心技术的实现说明及相应程序段.........8

四、个人总结.....................................................12

五、参考文献......................................................14

六、源程序...........................................................14

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:

录入信息函数luru(),新生报到函数baodao(),打印未报到的学生函数dayin(),查询学生信息函数chaxun(),退出函数exit(0)和主函数main()。

(显示菜单)。

1、录入信息函数,定义两文件型指针变量fp1(指向

file18.txt文本文件),fp2(指向myfile.txt文本文件),fp1指向file18.txt文件,用(fp1=fopen(“d:

\\file18.txt”,"r+”))

==NULL语句打开file18.txt文本文件,若不能打开,输出(“不能打开文件”)从file18.txt文本文件中读入新生的信息,并输入到结构体stud[i]中,再经结构体stud[i]和指针fp2传递到myfile.txt文本中,实现文件的录入和保存。

2、新生报到函数,先输入报到学生的人数,确立循环次数,再令用户输入报到学生的学号,用strcmp()函数对用户输入学生学号number与读入到结构体stud[i]中成员xuehao进行比较,若相同,令另一成员dao(原赋值为0)赋新值1。

3、打印未报到的学生函数,定义文件指针变量wenjian打开文件file18.txt,将信息赋到结构体stud[i]中,用if语句判断,输出结构体stud[i]中成员dao=0的元素项。

4、查询学生信息函数定义文件型指针变量fp1和字符型数组a[13],打开file18.txt文本文件,并将信息赋给结构体stud[i],输入12位学号给字符型数组a[13],用strcmp()函数对字符型数组a[13]和结构体变量stud[i]中成员学号比较,输出相同的结构体中的元素,没有相同的,输出(“没有该同学信息”)。

5、主函数main(),输出菜单,并用switch语句定义了6个分支,实现多功能结构的选择。

除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

每一个学生信息都包括学号,姓名,民族,省份,分数,和专业.在程序当中,将学生使用信息类型定义为结构体类型,其他函数每次对学生信息的访问,其数据来源都是file18.txt文件,这样做不但可以保证学生信息数据的一致性,而且可以对学生信息进行永久保存,保证每次运行程序都可以采用原来的数据。

二、程序整体流程图及各子函数流程图

1.程序整体流程图

 

(1)录入学生信息流程图

(2)新生报到流程图

(3)打印未报到学生流程图

(4)查询学生信息流程图

三。

核心技术的实现说明及相关程序段

本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。

在这些函数当中,录入信息函数luru()、新生报到函数baodao(),打印未报到学生信息函数dayin()和查询函数chaxun()是程序中较为核心的部分,下面分别进行说明

1录入信息函数luru()

录入信息函数是在文件file18.txt已经存在的情况下,此时文件要以读写方式打开,这样才可以保证以前已经存在的数据不丢失。

具体的程序段如下:

voidluru()

{

FILE*fp1,*fp2;

inti;

if((fp1=fopen("d:

\\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("d:

\\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新生报到函数baodao()

此程序的核心是以下程序段:

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找不到这个学生信息");

}

}

3打印未报到学生信息

voiddayin()

{

FILE*wenjian;

inti,flag=0;

if((wenjian=fopen("d:

\\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);

}

4查询学生信息

voidchaxun()

{

FILE*fp1;

inti;

if((fp1=fopen("d:

\\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("没有该同学信息");

}

5显示菜单函数

该函数使用了一个switch选择语句,的功能是简化其操作性,帮助用户正确使用该软件,使得该软件操作性更强,更有人性化。

具体的程序段如下:

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();luru();break;

case2:

clear();baodao();break;

case3:

clear();dayin();break;

case4:

clear();chaxun();break;

case5:

clear();exit(0);break;

default:

printf("\n输入错误");

}

}

}

四、个人总结

在C语言课程设计的这一周里,自己收获很大。

经过了在课程设计前一周的充分的准备,自己对c语言教材又系统地的看了一遍,使自己这一学年的所学知识连贯了起来,有了完整而深刻的理解,又参考了以前的c语言编程题目,弥补了理论知识层面上的漏洞和不足,使自己有准备的迎接了课设的来临。

这次的课程设计任务把文件,指针和结构体等方面的知识结合在一起进行考察,对自己的知识掌握程度要求比较高,因此自己又查阅了一些课外资料,使自己得到了进一步的充实。

经过自己的努力,老师和同学的帮助,自己完成了课设要求的任务,当然,过程中充满了辛苦和委屈,特别是当内存卡感染病毒,不得不对自己辛苦做出的程序作删除处理时,心中的痛是别人无法理解的,不过这些都已经成为自己美好的记忆,伴随自己一生。

除此之外,令我记忆深刻的是老师对工作严谨的态度,这也是一个科研工作者应有的工作作风,我会记住他的对我们程序的要求:

简练,再简练!

这些也是自己这一周的最大收获之一。

五、参考文献

1.谭浩强.C程序设计.北京:

清华大学出版社,2005

2.刘成等.C语言程序设计实验指导与习题集.北京:

中国铁道出版社,2006

3.袁蒲佳,唐谦等C语言程序设计华中科技大学出版社,2007年1月

六、源程序

#include

#include

#include

structstudent

{

charxuehao[13];

charxingming[10];

charminzu[10];

charsheng[15];

intfenshu;

charzhuanye[30];

intdao;

}stud[20];

voidluru()

{

FILE*fp1,*fp2;

inti;

if((fp1=fopen("d:

\\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("d:

\\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("d:

\\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("d:

\\myfile.txt","r+"))==NULL)

{

printf("\nCannotopenfile");

return;

}

fclose(fp);

}

voidclear()

{

system("cls");

}

voiddayin()

{

FILE*wenjian;

inti,flag=0;

if((wenjian=fopen("d:

\\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("d:

\\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();luru();break;

case2:

clear();baodao();break;

case3:

clear();dayin();break;

case4:

clear();chaxun();break;

case5:

clear();exit(0);break;

default:

printf("\n输入错误");

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1