学生籍贯信息记录簿课程设计报告Word下载.docx

上传人:b****5 文档编号:16750784 上传时间:2022-11-25 格式:DOCX 页数:20 大小:94.70KB
下载 相关 举报
学生籍贯信息记录簿课程设计报告Word下载.docx_第1页
第1页 / 共20页
学生籍贯信息记录簿课程设计报告Word下载.docx_第2页
第2页 / 共20页
学生籍贯信息记录簿课程设计报告Word下载.docx_第3页
第3页 / 共20页
学生籍贯信息记录簿课程设计报告Word下载.docx_第4页
第4页 / 共20页
学生籍贯信息记录簿课程设计报告Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

学生籍贯信息记录簿课程设计报告Word下载.docx

《学生籍贯信息记录簿课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《学生籍贯信息记录簿课程设计报告Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

学生籍贯信息记录簿课程设计报告Word下载.docx

{

charnum[21];

//学生学号

charname[256];

//学生姓名

charaddress[562];

/学生籍贯

structStudent*next;

};

声明一个结构体类型Student

3.模块设计

(1)creat函数:

添加需要录入的学生信息

(2)name_surch函数:

根据姓名查找学生

(3)num_surch函数:

根据学号查找学生

(4)NativePlace_surch函数:

按籍贯查找学生

(5)modification_shiyan函数:

修改学生信息

(6)showSzechwan_No函数分别显示唐山和非唐山籍学生并非别存盘

(7)print_save函数:

保存文件信息

(8)fileout函数:

显示文件信息

2.程序流程图

四、程序代码和运行结果

程序代码

#include<

stdio.h>

string.h>

stdlib.h>

#defineLENsizeof(structStudent)

intn;

//n为全局变量,本文件模块中各函数均可使用它

structStudent*creat()//定义函数。

此函数返回一个指向链表头的指针

structStudent*head;

structStudent*p1,*p2;

n=0;

p1=p2=(structStudent*)malloc(LEN);

printf("

请依次输入学生的信息,输入学号为零时退出。

\n"

);

学号\t姓名\t地址\n"

scanf("

%s%s%s"

p1->

num,p1->

name,p1->

address);

head=NULL;

while(p1->

num[0]!

='

0'

)//当学号是0时,退出

{

n=n+1;

if(n==1)

head=p1;

else

p2->

next=p1;

p2=p1;

p1=(structStudent*)malloc(LEN);

//开辟动态存储区,把起始地址付给p1

}

p2->

next=NULL;

system("

cls"

return(head);

}

voidprint_save(structStudenthead)

FILE*fp;

structStudent*p;

fp=fopen("

D:

\\stduent.txt"

"

wb+"

//打开文件

if(fp==NULL)

printf("

文件无法打开\n"

exit(0);

\n现在,有%d条记录,分别是:

n);

p=&

head;

if(&

head!

=NULL)

do

{

printf("

\n学号:

"

puts(p->

num);

\n姓名:

name);

\n地址:

fseek(fp,0,2);

if(fwrite(p,sizeof(structStudent),1,fp)!

=1)

printf("

文件无法写入\n"

p=p->

next;

}while(p!

=NULL);

fclose(fp);

//关闭文件

getchar();

system("

structStudent*pt;

//定义一个Student类型的指针

charcomp[3];

//comp为保存输入的变量

intmain()//一个调用这个creat函数的main函数c

voidShowView();

//界面显示

voidname_surch();

//按姓名查找

voidnum_surch();

//按学号查找

voidNativePlace_surch();

//按籍贯查找

voidmodification_shiyan();

//修改学生信息

voidshowSzechwan_No();

//分别显示唐山和非唐山籍学生并非别存盘

voidfileout(structStudent*p);

//文件输出

voidprint_save(structStudenthead);

while

(1)

ShowView();

if(strnicmp(comp,"

1"

3)==0)//strnicmp比较两个字符串的函数

pt=creat();

//函数返回链表第一个结点的地址

}

elseif(strnicmp(comp,"

2"

3)==0)

print_save(*pt);

3"

3)==0)//输出文件内容

fileout(pt);

4"

name_surch();

5"

num_surch();

8"

//modification();

modification_shiyan();

7"

showSzechwan_No();

6"

NativePlace_surch();

0"

break;

输入错误!

return0;

voidfileout(structStudent*p)

inti;

现在有%d条记录,分别是:

rb"

//0x00429af0

rewind(fp);

for(i=0;

i<

n;

i++)

fread(p,sizeof(structStudent),1,fp);

//从文件中读取一块数据

%6s"

p->

puts("

fclose(fp);

getchar();

voidShowView()//主菜单

**********************欢迎进入学生籍贯信息记录簿*******************************\n"

\n"

*******************************************************************************\n"

****1、添加学生信息********\n"

****2、保存当前信息********\n"

****3、显示文件中的信息********\n"

****4、按名字搜索********\n"

****5、按学号搜索********\n"

****6、按籍贯搜索********\n"

****7、分别显示唐山和非唐山籍学生并非别存盘********\n"

****8、修改学生信息********\n"

****0、退出********\n"

********************请输入您的选择:

gets(comp);

//清屏

voidname_surch()

charsurch[256];

请输入要查询的人的名字:

gets(surch);

r"

不能打开文件\n"

//指向文件的开始

while(!

feof(fp))//查找

Studenta;

while(!

feof(fp))

fread(&

a,sizeof(Student),1,fp);

//从p指向的文件读入一组数据

if(!

strcmp(a.name,surch))

{

%s,%s,%s\n"

a.num,a.name,a.address);

break;

}

if(!

{return;

查无此人·

·

voidnum_surch()

请输入要查询的人的学号:

//0x0042aab8

ERROR"

strcmp(a.num,surch))

voidNativePlace_surch()//按籍贯查询

请输入要查询的人的籍贯:

文件打不开\n"

a,sizeof(structStudent),1,fp);

strcmp(a.address,surch))//相当于strcmp(a.address,surch)==0

voidshowSzechwan_No()//分别显示唐山和非唐山籍学生并非别存盘

FILE*sfp;

//指向唐山籍学生文件

sfp=fopen("

\\唐山stduent.txt"

wb"

if(sfp==NULL)

FILE*ffp;

//指向非唐山籍学生文件

ffp=fopen("

\\非唐山stduent.txt"

if(ffp==NULL)

{printf("

exit(0);

唐山籍学生信息:

Studenta;

i++)

fread(&

//从p指向的文件读取一组数据

strcmp(a.address,"

唐山"

)||!

tangshan"

tangshanshi"

唐山市"

))

if(fwrite(&

a,sizeof(structStudent),1,sfp)!

a,sizeof(structStudent),1,ffp)!

fclose(ffp);

fclose(sfp);

非唐山籍学生信息:

if(NULL==ffp)

a,sizeof(structStudent),1,ffp);

if(a.num=="

voidmodification_shiyan()//修改学生信息

FILE*fptemp;

structStudenta;

请输入要修改的人的学号:

fptemp=fopen("

\\temp.txt"

fread(&

if(0==strcmp(a.num,surch))

charp;

如果以上信息与你要修改的人的信息对应,请输入(y/n):

scanf("

%c"

&

p);

if('

Y'

==p||'

y'

==p)

请输入要修改成的信息(学号、姓名、籍贯):

getchar();

学号:

gets(a.num);

姓名:

gets(a.name);

地址:

gets(a.address);

fwrite(&

a,sizeof(structStudent),1,fptemp);

fclose(fptemp);

FILE*bb;

FILE*pp;

bb=fopen("

pp=fopen("

feof(pp))

a,sizeof(structStudent),1,pp);

a,sizeof(structStudent),1,bb);

运行结果

1.进入界面

当每一个操作结束时,系统都会自动清屏,并返回主菜单,以保证屏幕整洁。

使用户能拥有一个好的心情使用此软件。

输入3,按enter键,查看文件中所存储的所有信息。

2.添加学生信息界面

3.保存信息界面

4.按姓名查找

5.按学号查找

6.按籍贯查找

7.分别显示唐山和非唐山籍贯学生信息并存盘

8.修改学生信息

按提示操作,如果现实的学生的信息是你要修改的,就输入y。

再输入要改成的详细信息,按enter键保存、退出。

五、编程中遇到的困难和解决方法

困难:

1.由于fread以及fwrite不能较熟练的应用,在实现唐山和非唐山籍学生分类时出错。

2.偶尔会出现文件打开错误的情况或者乱码现象

解决方法:

1.看书熟悉fread和fwrite的使用规则,在此基础上对程序加以修改

2.同时认真检查文件的打开格式是否出错,避免因打开方式错误而导致程序不能正常运行

六、心得体会

为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期二周的VisualC++课程设计实习,并安排了指导老师帮助辅导,让我们在规范化、严谨化、实用化上面有了很大进展。

在此次字符统计程序开发过程中,有很多东西值得我们思考并总结。

开发过程大体可分为以下几个步骤:

  

(1)思考总体设计方案:

总体结构和模块外部设计,功能分配。

思考要实现整个程序大体需要的几个模块和其中用到的VisualC++语言基本操作符、语句等。

  

(2)画出总体设计方案流程图:

用流程图的形式展现你的基本编程思想。

  (3)流程图具体化:

即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现.并想好实现的关键代码。

  (4)编辑程序代码:

这是一个至关重要复杂而且需要反复修改的环节,在此环节中你将发现总体设计和模块思想会存在很多问题,需不断改进.如何实现各函数功能,达到预期效果也将是一项繁复的工作。

  (5)代码的调试:

在VisualC++6.0环境下输入代码并进行调试和正确运行。

在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。

  (6)最后修饰:

程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化.增强程序的新意与可行性。

 

通过这次课程设计,使我们更加熟悉的掌握了VisualC++语言的运用。

帮助我们熟悉了更多VisualC++语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验.同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。

我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。

七、参考文献

[1]马安鹏.Visua

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

当前位置:首页 > 小学教育 > 数学

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

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