学生档案管理系统c语言课程设计.docx

上传人:b****3 文档编号:4140270 上传时间:2022-11-28 格式:DOCX 页数:26 大小:24.26KB
下载 相关 举报
学生档案管理系统c语言课程设计.docx_第1页
第1页 / 共26页
学生档案管理系统c语言课程设计.docx_第2页
第2页 / 共26页
学生档案管理系统c语言课程设计.docx_第3页
第3页 / 共26页
学生档案管理系统c语言课程设计.docx_第4页
第4页 / 共26页
学生档案管理系统c语言课程设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

学生档案管理系统c语言课程设计.docx

《学生档案管理系统c语言课程设计.docx》由会员分享,可在线阅读,更多相关《学生档案管理系统c语言课程设计.docx(26页珍藏版)》请在冰豆网上搜索。

学生档案管理系统c语言课程设计.docx

学生档案管理系统c语言课程设计

..

 

一、课题设计内容与主要功能1

 

第1节.设计内容.1

 

第2节.主要功能.1

 

二、课题解析.错误!

不决义书签。

 

第1节.类声明表.错误!

不决义书签。

 

第2节.解析课程设计项目的实现方法3

 

三、主要功能的实现步骤4

 

四、程序测试与结论5

 

五、总结.11

六、附件14

 

word教育资料

..

 

一、课题设计内容与主要功能

1、设计内容:

为了满足学生档案管理的要求,经过计算机技术给档案管理人员带来便利。

使用c

语言编写了学生档案此管理系统。

本系统主要实现学生档案管理的功能,经过此系统方

便对学生档案管理。

包括学号、姓名、性别、年龄、备注。

所设计的系统以菜单方式工

作,为用户供应清楚的使用提示,依据用户的选择来进行各种办理。

图书信息的录入后,

系统依据有必然的规范格式显示,录入的学生信息用文件形式保存,并能够对其进行修

改、排序、插入、排序盘问等基本操作。

整个程序实现链表操作,对学生信息的操作逐

个地进行。

 

学生档案管理系统成立框架

 

1.

学生基本信息录入

2.

学生基本信息显示

3.

学生基本信息保存

4.

学生基本信息更正

按姓名更正

5.

学生基本信息插入

按姓名插入

6.

学生基本信息删除

按姓名删除

7.

学生基本信息排序

8.

学生基本信息按姓名盘问

按姓名盘问

9.

从文件中读入学生基本信息

10.

退出系统

 

2、主要功能:

1、本系统采用一个包括N个数据的结构体数组,每个数据的结构应当包括:

学号、姓名、性别、年龄、备注。

 

word教育资料

..

 

2、本系统显示这样的菜单:

请选择系统功能项:

1.学生基本信息录入;2.学生基本信息显示;3.学生基本信息保存;4.学生基本信息更正;5.学生基本信息插入;6.学生基本信息删除;7.学生基本信息排序;8.学生基本信息按姓名盘问;9.从文件中读入学生基本信息;10.退出系统

 

3、执行一个详尽的功能此后,程序将重新显示菜单。

4、将学生基本信息保存到文件中。

 

二、课题解析

 

1、类说明表

 

名称属性说明

name

 

no

数据成员说明学生姓名

 

数据成员说明学生学号

sex

数据成员说明学生性别

 

age数据成员说明学生年龄

remark

数据成员说明学生备注

 

2、实现方法及核心算法实现代码:

 

主函数:

voidmain()

录入函数:

voidenter()

 

word教育资料

..

 

显示函数:

voidlist()

保存函数:

voidsave()

插入函数:

insert()

更正函数:

voidrevise()

删除函数:

voiddelete()删除录入的学生信息

排序函数:

voidsort()排序录入的学生信息

查找函数:

voidqseek()查找录入的学生信息

读取函数:

intload()读取保存在文件中的学生信息

 

三、主要功能的实现步骤

 

模块一:

头文件,变量定义,函数的声明

对系统所使用的变量进行定义,对函数进行声明

模块二:

学生信息的录入

intenter(STUDENTt[])录入学生的基本信息。

模块三:

学生信息的显示

voidlist(STUDENTt[],intn)就是把学生的基本信息显示在电脑上。

模块四:

学生信息的保存

voidsave(STUDENTt[],intn)就是在把学生基本信息的保存下来。

模块五:

学生信息的更正

voidrevise(STUDENTt[],intn)插入学生信息。

模块六:

学生信息的插入

intinsert(STUDENTt[],intn)更正已经录入的学生信息

模块七:

学生信息的删除

intdelete(STUDENTt[],intn)删除录入的学生信息

模块八:

学生信息的排序

voidsort(STUDENTt[],intn)排序录入的学生信息

模块九:

学生信息按姓名查找

voidqseek(TSTUDENTt[],intn)查找录入的学生信息

模块十:

学生信息的读入

intload(STUDENTt[])读取保存在文件中的学生信息

 

word教育资料

..

 

模块十一:

退出系统

 

四、程序测试与结论

 

进入系统输入学生信息

 

显示信息

 

word教育资料

..

 

保存信息

 

word教育资料

..

 

更正信息

 

更正成功

 

word教育资料

..

 

插入信息

 

word教育资料

..

 

显示插入成功

 

删除信息

 

word教育资料

..

 

排序信息

 

word教育资料

..

 

盘问信息

 

word教育资料

..

 

读入信息(附加)

 

总结:

总的来说这个程序大体实现了题目的要求,但是这套程序依旧存在着好多的问题

 

与不足。

比方,程序中主函数写的有点繁琐,有太多的嵌套,不是那么井井有条,条理

 

清楚,程序说明也不是很完满,对信息办理功能还有些不足之处,提示信息不明确。

 

有一点就是没有做到实现分类查找,分别依据姓名、学号、年龄、性别、备注等进行查

 

word教育资料

..

 

找。

 

这个系统主若是参照老师的模版编写的,同时也获取了老师和同学的一些帮助。

 

在做系统的过程中也遇到了好多问题,有的是知识不足,有的是考虑不够周祥。

事实证

 

明,只靠自己的知识面还是很窄,独立办理问题能力不是很强,今后还要加强对c语言

 

的学习。

 

我认为关于C语言编写的程序来说,使用方法大体都是相同的,所以若是要改进的

 

话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。

 

五、课程设计总结

C语言这学期我们开始的一门新课,早就听闻上届学哥学姐说C语言是“天书”,是

我们这学期最难的学科之一了。

早听闻这些我就怕了。

第一我感觉特别遗憾,课程设计的第一天,我还在家里,因为收到的信息比较迟所以未能及时赶到学校,也至于第一天最重要的内容没有学到,在接下来的两天上机时间也未能追上大家的进度,自己也感觉自己做不出这个程序。

没有专心的学。

更加笨拙的是我在争辩的时候拷贝了同学的部分程序,自己没能真切的认识这个程序。

争辩的时候,欧阳老师简单的问了我几个问题就发现我没有专心学,严格责怪了我,也认识到了我的错误。

当看到其他同学都是A,只有包括我在内的少许几个一同学得B,我感觉心情有些愁闷,同时更加坚定了我要自己做好这个《学生档案管理系统》程序的

信心。

自己也想到了,就算课程设计被我谋利钻营完成了,但是省二、国二呢,最后自己还是要好好学的。

自己没有掌握C语言,又有什么意义呢!

当我自己真切的研究这个程序的时候我感觉有点蒙了,我感觉我自己没有这个能力做好,所以我想找学长帮我,这样我就不用怕了,但是今后我想到省二、国二,我放弃了这个想法,什么还是靠自己。

一边懊悔自己平时没有好好学习,一边开始硬着头皮上阵了。

第三天下午和夜晚我都泡在图书馆里,到夜晚快要10点才回寝,感觉自己还是很蒙,但是也有收获,就是我知道我要做这个模块要定位函数,要用到链表。

这让我信心若狂,我感觉我已经找到了起点,有个好的开始我相信我就能做好。

夜晚回到宿舍后我也不敢再耽误时间去玩手机了,赶快去看关于函数、链表的书,

 

word教育资料

..

 

第四天看了一天此后我感觉原来计算机也不是什么“天书”啊,可是我们没有好好去看

它,去领悟它。

我心中暗想,此次程序设计我很有收获,它让我对计算机、对C语言产

生了兴趣,让我发现原来这样有实践的学习能让人产生很大的兴趣,能让人更好的领悟

它。

我自己研究这个程序快要两天,看了好多资料,着手进一步改进这个程序了,困难

的时候又来了,我不知道用什么语句去完成查找。

最好If语句找到后,链表来执行删除功能,可好似链表那个真的好难,在同学们的帮助下我终于把那个链表完成,在运行、检查、更正后,终于合格,程序运行成功了。

在完成自己的程序设计后,骄傲的感觉充满了我的内心,是啊,我不是很笨,我可是没有专心,经过此次设计后,在学习方面我对自己有了信心,若是我专心去学,我努力去做,没有我做不到的。

突然间我很喜欢这戏C语言实训,在这一周,有欢笑,有忧虑,有快乐也有不快乐,但是无论什么我都还算快乐得度过了这一周,和同学们一同研究、一同做程序、一同检

查、一同谈论对与错。

在程序完成的那一时辰,我很快乐的笑了,因为那是我付出了汗水做的程序,那时我的心血!

此次实训对我来说也是一次教训,让我再次深刻地理解什么事情都要靠自己,自己的事情要自己做且要做好。

此次实训也让我对学习,对C语言计算机都产生了更浓厚的兴趣,也让同学们有了更好的团队协作精神,也让我感觉在大学学习很好。

感谢老师让我们有了此次机遇来体验编程的快乐,感谢老师不胜其烦的讲解。

也让我们有机遇感觉大学的美好岁月。

 

纺工1291彭旺

2013年6月28日

 

word教育资料

..

 

六、附件

/*学生基本信息管理系统*/

 

/******头文件(.h)***********/

#include"stdio.h"/*I/O函数*/

#include"stdlib.h"/*标准库函数*/

#include"string.h"/*字符串函数*/

#defineM50/*定义常数表示记录数*/

 

typedefstruct/*定义教师基本信息数据结构*/

{

charname[20];/*学生姓名*/

charno[20];/*编号*/

charsex[20];/*性别*/

intage;/*年龄*/

charremark[20];/*备注*/

}STUDENT;

 

/******以下是函数原型*******/

word教育资料

..

 

intenter(STUDENTt[]);/*

输入记录*/

voidlist(STUDENTt[],intn);/*

显示记录*/

voidsave(STUDENTt[],intn);/*

记录保存为文件*/

intfind(STUDENTt[],intn,char*s)/*

查找函数*/;

voidprint(STUDENTtemp);/*

显示单条记录*/

voidrevise(STUDENTt[],intn);/*

更正记录*/

intinsert(STUDENTt[],intn);/*

插入记录*/

intdelete(STUDENTt[],intn)/*

删除记录*/;

intload(STUDENTt[]);/*

从文件中读记录*/

voidsort(STUDENTt[],intn);/*

按姓名排序*/

voidqseek(STUDENTt[],intn);/*

快速查找记录*/

intmenu_select();/*主菜单函数*/

 

main()

{

 

STUDENTstudent[M];/*定义结构体数组*/

intlength;/*保存记录长度*/

 

for(;;)/*无量循环*/

{

switch(menu_select())/*调用主菜单函数,返回值整数作开关语句的条件*/

{

case1:

length=enter(student);break;/*输入记录*/

case2:

list(student,length);break;/*显示全部记录*/

case3:

save(student,length);break;/*保存文件*/

case4:

revise(student,length);break;/*更正记录*/

case5:

length=insert(student,length);break;/*插入记录*/

case6:

length=delete(student,length);break;/*删除记录*/

case7:

sort(student,length);break;/*按姓名排序*/

word教育资料

..

 

case8:

qseek(student,length);break;/*快速查找记录*/

case9:

length=load(student);break;/*读文件*/

case10:

exit(0);/*如返回值为10则程序结束*/

}

}

}

 

/*菜单函数,函数返回值为整数,代表所选的菜单项*/

menu_select()

{

chars[80];

intc;

 

printf("pressanykeyentermenu......\n");/*提示压任意键连续*/

 

printf("********************MENU*********************\n\n");

printf("

1.

学生基本信息录入\n");

printf("

2.

学生基本信息显示\n");

printf("

3.

学生基本信息保存\n");

printf("

4.

学生基本信息更正\n");

printf("

5.

学生基本信息插入\n");

printf("

6.

学生基本信息删除\n");

printf("

7.

学生基本信息排序\n");

printf("

8.

学生基本信息按姓名盘问\n");

printf("

9.

从文件中读入学生基本信息\n");

printf("

10.

退出系统\n");

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

do{

printf("\nEnteryouchoice(1~10):

");/*提示输入选项*

scanf("%s",s);

c=atoi(s);

}while(c<1||c>10);

word教育资料

..

 

returnc;

}

 

/***输入记录,形参为结构体数组,函数值返回种类为整型表示记录长度*/

intenter(STUDENTt[])

{

inti,n;

char*s;

 

printf("\npleaseinputnum\n");/*提示信息*/

scanf("%d",&n);/*输入记录数*/

printf("pleaseinputrecord\n");/*提示输入记录*/

printf("姓名学号性别年龄

备注\n");

 

printf("-------------------------------------------------------------------

\n");

for(i=0;i

{

 

scanf("%s%s%s%d%s",t[i].name,t[i].no,t[i].age,t[i].course,&t[i].remark);

/*输入记录*/

 

printf("-------------------------------------------------------------------

\n");

}

returnn;/*返回记录条数*/

}

 

/*显示记录,参数为记录数组和记录条数*/

voidlist(STUDENTt[],intn)

{

word教育资料

..

 

inti;

 

printf("\n\n*****************************STUDENT***************************

*\n");

printf("姓名学号性别年龄

备注\n");

 

printf("-------------------------------------------------------------------

\n");

for(i=0;i

 

printf("%-20s%-20s%-20s%-10d%-10s\n",t[i].name,t[i].no,t[i].sex,t[i].age,t[i].remark);

if((i+1)%10==0)

{

printf("Pressanykeycontinue...\n");

getch();

}

 

printf("*********************************end*******************************

*\n");

}

 

/*显示指定的一条记录*/

voidprint(STUDENTtemp)

{

 

printf("\n\n*****************************STUDENT***************************

*\n");

printf("姓名学号性别年龄

备注\n");

 

word教育资料

..

 

printf("-------------------------------------------------------------------

\n");

 

printf("%-20s%-20s%-20s%-10d%-10s\n",temp.name,temp.no,temp.sex,temp.age,temp.remark);

 

printf("*******************************end*********************************

\n");

}

 

intfind(STUDENTt[],intn,char*s)

{

inti;

for(i=0;i

{

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

returni;

}

returni;

}

 

/*删除函数,参数为记录数组和记录条数*/

intdelete(STUDENTt[],intn)

{

chars[20];/*要删除记录的姓名*/

intch=0;

inti,j;

printf("pleasedeletedname\n");/*提示信息*/

scanf("%s",s);/*输入姓名*/

i=find(t,n,s);/*调用find函数*/

word教育资料

..

 

if(i>n-1)/*若是i>n-1高出了数组的长度*/

printf("nofoundnotdeleted\n");/*显示没找到要删除的记录*/

else

{

print(t[i]);/*调用输出函数显示该条记录信息*/

printf("Areyousuredeleteit(1/0)\n");/*确认可否要删除*/

scanf("%d",&ch);/*输入一个整数0或1*/

if(ch==1)/*若是确认删除整数为1*/

{

for(j=i+1;j

{

strcpy(t[j-1].name,t[j].name);/*将后一条记录的学生姓名拷贝到前一条

*/

strcpy(t[j-1].no,t[j].no);/*将后一条记录的编号拷贝到前一条*/

strcpy(t[j-1].sex,t[j].sex);/*将后一条记录的性别拷贝到前一条*/

t[j-1].age=t[j].age;;/*将后一条记录的年龄拷贝到前一条*/

Strcpy(t[j-1].remark,t[j].remark);/*将后一条记录的备注拷贝到前一条

*/

}

n--;/*记录数减1*/

}

}

returnn;/*返回记录数*/

}

 

/*插入记录函数,参数为结构体数组和记录数*/

intinsert(STUDENTt[],intn)/*插入函数,参数为结构体数组和记录数*/

{

STUDENTtemp;/*新插入记录信息*/

inti,j;

chars[20];/*确定插入在哪个记录从前*/

printf("pleaseinputrecord\n");

word教育资料

..

 

printf("\n\n*****************************STUDENT***************************

*\n");

printf("姓名学号性别年龄

备注\n");

 

printf("-------------------------------------------------------------------

\n");

scanf("%s%s%s%d%s",temp.name,temp.no,temp.sex,temp.age,temp.remark);/*输

入插入信息*/

 

printf("-------------------------------------------------------------------

\n");

printf("pleaseinputlocatename\n");

scanf("%s",s);/*输入插入地址的姓名*/

i=find(t,n,s);/*调用find,确定插入地址*/

for(j=n-1;j>=i;j--)/*从最后一个结点开始向后搬动一条*/

{

strcpy(t[j+1].name,t[j].name);/*当前记录的学生姓名拷贝到后一条*/

strcpy(t[j+1].no,t[j].no);/*当前记录的编号拷贝到后一条*/

strcpy(t[j+1].sex,t[j].sex);/*当前记录的性别拷贝到后一条*/

t[i].age=temp.age;/*将新插入记录的年龄拷贝到第i个地址*/

strcpy(t[j+1].remark,t[j].remark);/*当前记录的备注拷贝到后一条*/

}

strcpy

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

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

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

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