C语言班级档案管理系统精选精选doc.docx

上传人:b****5 文档编号:8634984 上传时间:2023-02-01 格式:DOCX 页数:21 大小:21.74KB
下载 相关 举报
C语言班级档案管理系统精选精选doc.docx_第1页
第1页 / 共21页
C语言班级档案管理系统精选精选doc.docx_第2页
第2页 / 共21页
C语言班级档案管理系统精选精选doc.docx_第3页
第3页 / 共21页
C语言班级档案管理系统精选精选doc.docx_第4页
第4页 / 共21页
C语言班级档案管理系统精选精选doc.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言班级档案管理系统精选精选doc.docx

《C语言班级档案管理系统精选精选doc.docx》由会员分享,可在线阅读,更多相关《C语言班级档案管理系统精选精选doc.docx(21页珍藏版)》请在冰豆网上搜索。

C语言班级档案管理系统精选精选doc.docx

C语言班级档案管理系统精选精选doc

课程设计任务书

课程名称C语言课程设计

课题班级档案管理系

1.设计目的

2.总体设计

3.详细设计

4.调试与测试:

5.总结与体会

6.评分

附:

源程序清单和执行

1.设计目的

a)了解和掌握c语言面向对象程序设计的基本过程。

b)进一步熟悉C语言的特点。

c)学会总体规划一个程序,从各个部分把一个程序完成好。

d)能够使自己的程序实现一定的功能,对C++产生一种浓厚的兴趣。

e)培养耐心,遇困难不退缩。

f)了解团队精神的重要性,团结合作。

加深对《C语言》课程所学知识的理解,进一步巩固C语言讲法

规则。

学会编制结构清晰、风格良好、数据结构适当的C语言程序,

从而具备解决综合性实际问题的能力。

在熟练掌握C语言的基本知识:

数据类型(整形、实型、字符

型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自

减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结

构);大程序的功能分解方法(即函数的使用)等。

进一步掌握各种函

数的应用,以及文件的读写操作等。

2总体设计

主菜单界面

学生档案管理

☆☆☆土木工程☆☆☆

∮***班****∮

1.录入学生信息2.显示学生信息

3.查询学生信息4.删除学生信息

5.添加学生信息6.修改学生信息

7退出

7******************谢谢使用******************

信息录入

1按学号查询2按姓名查询

3按性别查询4按年龄查询

3.详细设计

本程序由一个Voidmain(),一个Voidinput(),一个

VoidSave(),一个Voiddisplay(),一个VoidDelete(),一个Voidadd和

一个VoidSearch()共七个主要函数来实现该程序的编程的。

其中在主

函数Voidmain()中调用其他六个函数,通过Switch语句来实现调用

进入各个函数,进入主菜单通过录入函数录入学生信息,并自动保存

在c\\student.txt中。

学生信息输入应用了结构数组,学生信息主要

包括姓名,学号,性别,年龄以及备注。

其中年龄为整型,其他为字

符型。

调用函数时,学生信息运用了指针数组,如

voidModfiy(structstudent*arr,intn)在VoidDelete()调用函数中,当

boolflag=ture是该学生不存在,即已被删除。

在Voidsearch()调用函

数中,当boolflag=ture是该学生存在,即已被查询到。

当flag=false

时则说明没有该学生信息。

在查询系统中,有四种查询方式,分别是

按姓名查询,按学号查询,按性别查询和按年龄查询。

四种查询方式

用Switch语句连接起来,进入每种查询方式要输入所需信息才能进

入。

该程序最大的特点是Switch连接各调用函数和各查询方式以及结

构数组的运用,将各函数有序的连接起来。

各个调用函数功能的实现如下:

1)信息的录入主要运用循环语句将各个学生信息依次输入

2)信息的显示也是用循环语句将各个学生信息显示出来。

3)信息的保存是将信息重写到保存到的文件位置,其中信息保存在

c:

\\student.text

4)信息的删除是运用字符串复印函数,将空格复印到信息字符上达

到删除效果。

5)信息的修改是输入学号用循环语句将需修改的信息显示出来,然

后再输入新的信息

6)信息的查询是通过Switch语句将查询方式连接起来,并在各个

查询方式中用循环语句将要查询的信息显示出来。

4.调试与测试

初步调试的结果出现问题较多,经过多次修正和调试解决了

许多问题,调试完成后进入主菜单按1录入学生信息,录入学生信息

后可以通过提示按学号,姓名,性别,年龄进行查询。

还能按5添加

学生信息,按6修改学生信息,按7退出。

5.心得与体会

终于可以松口气了,经过一个思考,查资料,写源程序,上机调试,

现在终于告一段落了。

看到自己的劳动成果,心中不免有些惊喜,没想

到自己还能独立完成初次的课程设计。

这种课程设计是枯燥无味的,

但对C语言这门程序语言的掌握却有非常大的作用.。

从开始对题目的

分析,就注定摆在我这样一个对C语言了解不多的新手面前的是一段

艰难的旅程.但最终很庆幸的是我居然能够坚持下来,而且完成了设计

工作。

C语言是很难学的,这也许是因人而异,但对我来说确实是一个障

碍。

如今要自己完成一个课程设计,无疑是对自己的一个挑战.先是上

网查找有关的资料,分析题目所需的数据,要用到哪些函数等等,星期

二上网初步调试,将函数用些结构和语句连接起来,做这个工作时,

又将书本翻阅了一遍,重新获得许多东西。

如带参函数的特点,以及

一些语句的运用及特点等等。

将工作分配到每块是我完成这个设计的

主要方法,然而将每块都完成看起来比较轻松,但实际操作起来却是比

较麻烦的。

由于平时对C语言知识的积累较为匮乏,(这可能是最主要

的原因了),所以操作起来真是寸步难行,没办法,只有拿出课本找到相

应的知识点,临阵磨枪.费了一番功夫,再上机调试时就是最痛苦的时

候了,错误一大堆,要一个一个的修改。

经过几翻调试修改之后终于

可以执行了,那时还兴奋了好长时间呢!

然而执行出来的结果是不令

人满意的,界面不美观不说,最重要的是输入太烦琐,而且受到的限

制太多,如只能以某种方式输入,且个数受限制。

于是又发费了大量

时间去修改,终于比较满意了,但也到了星期五了,也就是答辩的时

间。

答辩的时候我才发现还有好多知识是我不会的,老师问了我一些

问题,我回答出来的却不多,我体会到我还要很努力的学习,在C语

言的学习上我还有很长的一段路要走。

今天不管怎样把这个设计作出

来是件很高兴的事情,不过能够把这个设计顺利完成要归功于我的指

导老师,帮了我很多忙,也让我发现了我有好多欠缺的地方,真的很

感谢你们,谢谢!

但不管怎么样,我还是完成了这个设计。

虽说累了点,但我想这

对我们进一步掌握C语言,并为下学期的计算机二级考试是有很大的

帮助的.。

能够编出程序,其实本身就是对自己的一种肯定,是对自己

前面一段时间学习C语言综合水平的一个检阅.当然完成后的兴喜,只

有经历过了才能体会到。

而我体会到了.课程设计是培养学生综合运用

所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要

环节,是对学生实际工作能力的具体训练和考察过程。

随着科学技术

发展的日新日异,当今计算机应用在生活中可以说得是无处不在。

此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。

源程序

#include

#include

#include

#include

#defineN100

structstudent

{

intnum;

charname[10];

charsex;

intage;

charxueli[30];

charbeizhu[50];

charaddr[30];

longinttel;

}st[100];/*定义一个结构体*/

voidmenu();

voidinput();

voidsave(int);

voiddisplay();

voiddel();

voidadd();

voidsearch();

voidsearch_num();

voidsearch_name();

voidsearch_sex();

voidsearch_age();

voidmodify();/*定义各函数*/

voidmenu()/*菜单函数*/

{

printf("☆☆☆土木工程☆☆☆\n");

printf("\n");

printf("∮***班****∮\n");

printf("\n");

printf("******************学生档案管理****************\n");

printf("1.录入学生信息");

printf("2.显示学生信息\n");

printf("3.查询学生信息");

printf("4.删除学生信息\n");

printf("5.添加学生信息");

printf("6.修改学生信息\n");

printf("7.退出\n");

printf("********************谢谢使用******************\n");

printf("\n");

printf("\n");

}

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==0);

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

}

}

voidinput()/*录入函数*/

{

inti,m;

printf("请输入需要创建信息的学生人数(1--100):

\n");

scanf("%d",&m);

for(i=0;i

{

printf("请输入学号:

");

srand((int)time(0));

st[i].num=rand()%10000+20000000;

if(st[i].num!

=st[i-1].num)

printf("%8d",st[i].num);

printf("\n");

printf("请输入姓名:

");

scanf("%s",st[i].name);

getchar();

printf("请输入性别(f--女m--男):

");

scanf("%c",&st[i].sex);

printf("请输入年龄:

");

scanf("%d",&st[i].age);

printf("请输入备注:

");

scanf("%s",&st[i].beizhu);

printf("\n");

}

printf("\n创建完毕!

\n");

save(m);

}

voidsave(intm)/*保存文件函数*/

{

inti;

FILE*fp;

if((fp=fopen("c:

\\student.txt","wb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

for(i=0;i

if(fwrite(&st[i],sizeof(structstudent),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

}

intload()/*导入函数*/

{

FILE*fp;

inti=0;

if((fp=fopen("c:

\\student.txt","rb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

else

{

do

{

fread(&st[i],sizeof(structstudent),1,fp);

i++;

}

while(feof(fp)==0);

}

fclose(fp);

return(i-1);

}

voiddisplay()/*显示函数*/

{

inti;

intm=load();

printf("\n学号\t姓名\t性别\t年龄\t备注\n");

for(i=0;i

printf("\n%d\t%s\t%c\t%d\t%s\t%s\t%s\t%ld\n",st[i].num,st[i].name,st[i].sex,st[i].age,st[i].xueli,

st[i].beizhu,st[i].addr,st[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(st[i].name,name)==0)

{

printf("\n已找到此人,原始记录为:

\n");

printf("\n学号\t姓名\t性别\t年龄\t备注\n");

printf("\n%d\t%s\t%c\t%d\t%s\t%s\t%s\t%ld\n",st[i].num,st[i].name,st[i].sex,st[i].age,st[i].xueli,st[

i].beizhu,st[i].addr,st[i].tel);

printf("\n确实要删除此人信息请按1,不删除请按0\n");

scanf("%d",&n);

if(n==1)/*如果删除,则其他的信息都往上移一行*/

{

for(j=i;j

{

strcpy(st[j].name,st[j+1].name);

st[j].num=st[j+1].num;

st[j].sex=st[j+1].sex;

st[j].age=st[j+1].age;

strcpy(st[j].xueli,st[j+1].xueli);

strcpy(st[j].beizhu,st[j+1].beizhu);

strcpy(st[j].addr,st[j+1].addr);

st[j].tel=st[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("请输入学号:

");

srand((int)time(0));

st[i].num=rand()%10000+20000000;

if(st[i].num!

=st[i-1].num)

printf("%8d",st[i].num);

printf("\n");

printf("请输入姓名:

");

scanf("%s",st[i].name);

getchar();

printf("请输入性别(f--女m--男):

");

scanf("%c",&st[i].sex);

printf("请输入年龄:

");

scanf("%d",&st[i].age);

printf("请输入备注:

");

scanf("%s",&st[i].beizhu);

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,进入主函数按5\n");

scanf("%d",&t);

if(t>=1&&t<=5)

{

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

case3:

printf("按性别查询\n");search_sex();break;

case4:

printf("按年龄查询\n");search_age();break;

case5:

main();break;

default:

break;

}

}

}

voidsearch_num()

{

intnum;

inti,t;

intm=load();

printf("请输入要查找的学号:

\n");

scanf("%d",&num);

for(i=0;i

if(num==st[i].num)

{

printf("\n已找到此人,其记录为:

\n");

printf("\n学号\t姓名\t性别\t年龄\t备注\n");

printf("\n%d\t%s\t%c\t%d\t%s\t%s\t%s\t%ld\n",st[i].num,st[i].name,st[i].sex,st[i].age,st[i].xueli,st[

i].beizhu,st[i].addr,st[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_name()

{

charname[10];

inti,t;

intm=load();

printf("请输入要查找的姓名:

\n");

scanf("%s",name);

for(i=0;i

if(strcmp(st[i].name,name)==0)

{

printf("\n已找到,其记录为:

\n");

printf("\n学号\t姓名\t性别\t年龄\t备注\n");

printf("\n%d\t%s\t%c\t%d\t%s\t%s\t%s\t%ld\n",st[i].num,st[i].name,st[i].sex,st[i].age,st[i].xueli,st[

i].beizhu,st[i].addr,st[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_sex()

{

charsex;

inti,t;

intm=load();

printf("请输入要查找的性别:

\n");

scanf("%c",sex);

for(i=0;i

if(sex==st[i].sex)

{

printf("\n已找到此人,其记录为:

\n");

printf("\n学号\t姓名\t性别\t年龄\t备注\n"

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

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

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

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