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

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

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

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

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

C语言班级档案管理系统

 

课程设计任务书

 

课程名称C语言课程设计

课题班级档案管理系

 

1.设计目的

2.总体设计

3.详细设计

4.调试与测试:

5.总结与体会

6.评分

 

附:

源程序清单和执行

 

1.设计目的

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

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

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

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

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

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

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

学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。

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

数据类型〔整形、实型、字符型、指针、数组、结构等〕;运算类型〔算术运算、逻辑运算、自增自减运算、赋值运算等〕;程序结构〔顺序结构、判断选择结构、循环结构〕;大程序的功能分解方法〔即函数的使用〕等。

进一步掌握各种函数的应用,以与文件的读写操作等。

 

 

2总体设计

主菜单界面

学生档案管理

☆☆☆土木工程☆☆☆

∮***班****∮

 

7退出

 

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

信息录入

1按学号查询2按某某查询

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

 

本程序由一个Void main(),一个Void input(),一个Void Save(), 一个Void display(),一个Void Delete(),一个Voidadd和一个Void Search()共七个主要函数来实现该程序的编程的。

其中在主函数Void main()中调用其他六个函数,通过Switch语句来实现调用进入各个函数,进入主菜单通过录入函数录入学生信息,并自动保存在c\\student.txt中。

学生信息输入应用了结构数组,学生信息主要包括某某,学号,性别,年龄以与备注。

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

调用函数时,学生信息运用了指针数组,如void Modfiy(struct student* arr,int n)在Void Delete()调用函数中,当bool flag=ture是该学生不存在,即已被删除。

在Void search()调用函数中,当bool flag=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");

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_a

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

当前位置:首页 > 总结汇报 > 学习总结

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

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