课程设计学生信息管理系统.docx
- 文档编号:13299384
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:19
- 大小:262.42KB
课程设计学生信息管理系统.docx
《课程设计学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计学生信息管理系统.docx(19页珍藏版)》请在冰点文库上搜索。
课程设计学生信息管理系统
课程设计说明书
课程
数据结构
题目
01学生信息管理系统
姓名
学号
专业班级
指导教师
完成日期
2012
年
12
月
26
日
目录
1.绪言…………………………………..........3
2.需求分析…………………………………….3
1﹑系统以菜单方式工作;…………….
2﹑学生信息录入功能—输入;……….
3﹑学生信息浏览功能-输出;………
4﹑查询功能-算法;…………………
按学号查找……………………….
按姓名查找……………………….
5﹑学生信息的删除与修改………………
3.计划与进度安排………………………………...4
4.系统设计................................................................5
1.系统总框架…………………………………….
2.设计内容及要求……………………………….
3.模块设计………………………………………..
5.运行及结果………………………………………7
6.设计体会与建议…………………………………12
7.源代码……………………………………………13
1.绪言
随着学校的快速发展和在校学生的增多,学生管理工作变得越来越复杂,许多工作非常繁琐,消耗大量的人力物力。
比如学生档案管理,学生的姓名﹑出生年月等资料在做了修改后,可能在招办﹑学生科﹑财务科有同一个学生的几份不同档案材料,数据共享性极差;有的学生欠费,财务部门也很难及时发现;有的学生中途变更学籍,给教学管理工作带来不便。
2.需求分析
用C实现学生信息管理系统,学生信息包括:
学号﹑姓名﹑性别﹑地址﹑出生年月﹑电话﹑E-mail等。
该系统主要有以下功能:
1﹑系统以菜单方式工作;
2﹑学生信息录入功能—输入;
3﹑学生信息浏览功能-输出;
4﹑查询功能-算法;
按学号查找
按姓名查找
5﹑学生信息的删除与修改。
3.计划与进度安排:
第八周:
小组成员一起制定计划完成对该系统的模块功能函数的编
写,计划主要由我负责前。
三个模块功能函数的编写;王涛负责查询功能函数的编写;解淼负责学生信息的删除与修改功能函数的编写。
最后我们共同负责主函数的编写。
第九周~第十二周:
小组成员分别就自己的任务完成五个函数功能,这几周根据完成情况,大家可以独立完成,完成较快的人也可以帮助未完成的人,争取较短的时间编出一个基本的框架;
第十三周~第十四周:
完善五个功能函数并尝试对主函数程序的编写。
下面几周都是对程序一个总的编写与设计,相对来说,比较难,事情比较细腻,所以要实现以上功能,所耗时间较长。
争取在规定的时间里完成。
4.系统设计
1.系统总框架
学生信息管理系统
2.设计内容及要求
设计编写一个学生基本信息管理系统,主要管理学生基本信息。
1.建立学生信息,每个学生信息包括姓名,学号,年龄,电话号码,
生日,籍贯。
2.通过输入功能函数,用户可以录入学生基本信息。
3.排序:
按年龄大小排序。
4.查找:
分别按学号查找函数或姓名查找函数查找。
5.删除:
建立按姓名删除函数删除学生信息。
6.插入:
建立插入函数插入学生信息。
7.输出:
建立显示函数输出学生信息。
8.实现简单的菜单调用。
3.模块设计
模块一:
头文件,变量定义,函数的声明对系统所使用的变量进行定义,
对函数进行声明。
模块二:
结构体的建立,定义学生的学号,姓名,年龄等基本信息。
模快三:
voidshuru()定义了输入函数
voidxianshi()定义了输出函数
voidanxingmingchazhao()定义了按姓名查找函数
voidanxuehaochazhao()定义了按学号查找函数
voidchazhao()定义了查找函数,通过调用voidanxingmingchazhao(
)和voidanxuehaochazhao()函数来实现查找函数。
voidshanchu()定义了删除函数。
voidpaixu()定义了按年龄从大到小的排序函数。
voidcharu()定义了插入函数,调用了voidpaixu()和voidshuru()
函数。
switch(change)设定用学号查找,用姓名查找两个分支。
fflush(stdin)清除缓存函数,起清屏作用。
5.运行及结果
学生信息管理系统
菜单选择
学生信息的输入
学生信息的输出
学生信息的查找
1.按姓名查找
2.按学号查找
学生信息的删除
学生信息的插入
插入后显示
退出学生信息管理系统
6.设计体会与建议
这次的《学生信息管理系统》的设计中,使我懂得课堂上的知识,必须要通过实践操作才能掌握。
在练习中,遇到一些问题,需要具体分析,具体操作,不断调试。
在这过程中,遇到过很多问题。
刚编写程序时,总是出错,经过不断地调试后来解决了。
通过这次的设计,我发现了自身知识的欠缺,上机操作的经验不足,以及粗心。
比如,一些错误不知道怎么改,后来同学讨论后才调试成功,还有字符串的比较都不熟,有时掉了地址符等等。
虽然有很多欠缺,但在这过程中我也受益良多,感觉自己对程序的处理越来越清晰。
在调试过程中,我发现有时一个小小的错误也会给程序带来很大的麻烦,所以以后应该更加细心,多多操作,积累经验。
7.源代码
#include
#include
#include
#include
structstudent{
intid;
charname[10];
intage;
charsex[10];
charbirthady[20];
inttel;
charnativeplace[50];
}st[50];
inti=0;
voidshuru(){
chara;
do{
printf("\n请输入学号:
");
scanf("%d",&st[i].id);
fflush(stdin);
printf("请输入姓名:
");
gets(st[i].name);
printf("请输入年龄:
");
scanf("%d",&st[i].age);
fflush(stdin);
printf("请输入姓别:
");
gets(st[i].sex);
fflush(stdin);
printf("请输入生日:
");
gets(st[i].birthady);
printf("请输入电话:
");
scanf("%d",&st[i].tel);
fflush(stdin);
printf("请输入籍贯:
");
gets(st[i].nativeplace);
printf("是否继续输入另外一个学生信息?
(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y'&&i<=50);
}
voidxianshi()
{
intj;
printf("\n");
printf("学号\t\t姓名\t年龄\t性别\t生日\t\t电话\t\t籍贯\n");
for(j=0;j
printf("%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);
}
voidpaixu()//按年龄从大到小排序函数
{
intj,k;
inttemp;
for(j=0;j
{
for(k=0;k { if(st[k].age { temp=st[k].age; st[k].age=st[k+1].age; st[k+1].age=temp; } } } xianshi();//排序后输出 } voidanxingmingchazhao() { intm; charname[20],b; do { printf("\n请输入想查找的学生姓名: "); fflush(stdin); gets(name); for(m=0;m { if(strcmp(name,st[m].name)==0) { printf("\n\t您查找的学生在第%d个位置找到了! ! ! \n",m+1); break; } } if(m>=20) printf("\n\t没有找到这个学生! ! ! \n"); else { printf("学号\t\t姓名\t年龄\t性别\t生日\t\t电话\t\t籍贯\n"); printf("%d\t%s\t%d\t%s\t%s\t%d\t%s\n", st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace); } printf("\n是否查找另一个学生的信息? (y/n)"); fflush(stdin); b=getchar(); }while(b=='y'); } voidanxuehaochazhao() {intid,m; charb; do {printf("\n请输入想查找的学生学号: "); fflush(stdin); scanf("%d",&id); for(m=0;m {if(id=st[m].id) { printf("\n\t您查找的学生在第%d个位置找到了! ! ! \n",m+1); break; } } if(m>20) printf("\n\t没有找到这个学生! ! ! \n"); else { printf("学号\t\t姓名\t年龄\t性别\t生日\t\t电话\t\t籍贯\n"); printf("%d\t%s\t%d\t%s\t%s\t%d\t%s\n", st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace); } printf("\n是否查找另一个学生的信息? (y/n)"); fflush(stdin); b=getchar(); }while(b=='y'); } voidchazhao() {intchange; printf("\n\t\t\t\t请输入查找类型: \n"); printf("\t\t\t\t1: 按姓名查找\n"); printf("\t\t\t\t2: 按学号查找\n"); fflush(stdin); printf("\t\t\t\t请输入功能选项: "); scanf("%d",&change); switch(change) { case1: anxingmingchazhao();break; case2: anxuehaochazhao();break; } } voidshanchu() { charname[20],c; inta,b; do { printf("\n请输入要删除的学生姓名: "); fflush(stdin); gets(name); for(a=0;a { if(strcmp(name,st[a].name)==0) break; } for(b=a;b st[b]=st[b+1]; if(a>i) printf("\t没有找到这个学生! ! ! \n"); else { i--; xianshi(); } printf("\n是否继续删除另一个学生信息? (y/n)"); fflush(stdin); c=getchar(); }while(c=='y'); } voidcharu() { shuru(); paixu(); } voidmain()//主函数 { intchange; do{ system("cls"); printf("================================学生信息管理系统================================\n"); printf("\t\t\t\t1: 输入学生信息\n"); printf("\t\t\t\t2: 显示学生信息\n"); printf("\t\t\t\t3: 查找学生信息\n"); printf("\t\t\t\t4: 删除学生信息\n"); printf("\t\t\t\t5: 插入学生信息\n"); printf("\t\t\t\t6: 退出程序\n"); fflush(stdin); printf("\t\t\t\t请输入功能选项: "); scanf("%d",&change); switch(change) { case1: shuru();break; case2: xianshi();break; case3: chazhao();break; case4: shanchu();break; case5: charu();break; case6: break; } getch(); }while(change! =6); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 学生 信息管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)