学生档案管理系统c语言课程设计Word格式文档下载.docx

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

学生档案管理系统c语言课程设计Word格式文档下载.docx

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

学生档案管理系统c语言课程设计Word格式文档下载.docx

5.

学生基本信息插入

按姓名插入

6.

学生基本信息删除

按姓名删除

7.

学生基本信息排序

8.

学生基本信息按姓名盘问

按姓名盘问

9.

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

10.

退出系统

2、主要功能:

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

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

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

请选择系统功能项:

1.学生基本信息录入;

2.学生基本信息显示;

3.学生基本信息保存;

4.学生基本信息更正;

5.学生基本信息插入;

6.学生基本信息删除;

7.学生基本信息排序;

8.学生基本信息按姓名盘问;

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

10.退出系统

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

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

二、课题解析

1、类说明表

名称属性说明

name

no

数据成员说明学生姓名

数据成员说明学生学号

sex

数据成员说明学生性别

age数据成员说明学生年龄

remark

数据成员说明学生备注

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

主函数:

voidmain()

录入函数:

voidenter()

显示函数:

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[])读取保存在文件中的学生信息

模块十一:

四、程序测试与结论

进入系统输入学生信息

显示信息

保存信息

更正信息

更正成功

插入信息

显示插入成功

删除信息

排序信息

盘问信息

读入信息(附加)

总结:

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

与不足。

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

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

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

找。

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

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

事实证

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

的学习。

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

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

五、课程设计总结

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

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

早听闻这些我就怕了。

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

没有专心的学。

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

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

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

信心。

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

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

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

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

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

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

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

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

它,去领悟它。

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

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

它。

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

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

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

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

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

查、一同谈论对与错。

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

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

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

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

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

纺工1291彭旺

2013年6月28日

六、附件

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

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

#include"

stdio.h"

/*I/O函数*/

stdlib.h"

/*标准库函数*/

string.h"

/*字符串函数*/

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

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

{

charname[20];

/*学生姓名*/

charno[20];

/*编号*/

charsex[20];

/*性别*/

intage;

/*年龄*/

charremark[20];

/*备注*/

}STUDENT;

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

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

/*显示全部记录*/

case3:

save(student,length);

/*保存文件*/

case4:

revise(student,length);

/*更正记录*/

case5:

length=insert(student,length);

/*插入记录*/

case6:

length=delete(student,length);

/*删除记录*/

case7:

sort(student,length);

/*按姓名排序*/

case8:

qseek(student,length);

/*快速查找记录*/

case9:

length=load(student);

/*读文件*/

case10:

exit(0);

/*如返回值为10则程序结束*/

}

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

menu_select()

chars[80];

intc;

printf("

pressanykeyentermenu......\n"

);

/*提示压任意键连续*/

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

学生基本信息录入\n"

学生基本信息显示\n"

学生基本信息保存\n"

学生基本信息更正\n"

学生基本信息插入\n"

学生基本信息删除\n"

学生基本信息排序\n"

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

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

退出系统\n"

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

do{

\nEnteryouchoice(1~10):

"

/*提示输入选项*

scanf("

%s"

s);

c=atoi(s);

}while(c<

1||c>

10);

returnc;

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

intenter(STUDENTt[])

inti,n;

char*s;

\npleaseinputnum\n"

/*提示信息*/

%d"

&

n);

/*输入记录数*/

pleaseinputrecord\n"

/*提示输入记录*/

姓名学号性别年龄

备注\n"

-------------------------------------------------------------------

\n"

for(i=0;

i<

n;

i++)

%s%s%s%d%s"

t[i].name,t[i].no,t[i].age,t[i].course,&

t[i].remark);

returnn;

/*返回记录条数*/

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

voidlist(STUDENTt[],intn)

inti;

\n\n*****************************STUDENT***************************

*\n"

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

Pressanykeycontinue...\n"

getch();

*********************************end*******************************

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

voidprint(STUDENTtemp)

temp.name,temp.no,temp.sex,temp.age,temp.remark);

*******************************end*********************************

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

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

returni;

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

intdelete(STUDENTt[],intn)

chars[20];

/*要删除记录的姓名*/

intch=0;

inti,j;

pleasedeletedname\n"

/*输入姓名*/

i=find(t,n,s);

/*调用find函数*/

if(i>

n-1)/*若是i>

n-1高出了数组的长度*/

nofoundnotdeleted\n"

/*显示没找到要删除的记录*/

else

print(t[i]);

/*调用输出函数显示该条记录信息*/

Areyousuredeleteit(1/0)\n"

/*确认可否要删除*/

ch);

/*输入一个整数0或1*/

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

for(j=i+1;

j<

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*/

/*返回记录数*/

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

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

STUDENTtemp;

/*新插入记录信息*/

/*确定插入在哪个记录从前*/

pleaseinputrecord\n"

temp.name,temp.no,temp.sex,temp.age,temp.remark);

/*输

入插入信息*/

pleaseinputlocatename\n"

/*输入插入地址的姓名*/

/*调用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