数据结构课程设计学生籍贯管理系统Word文档下载推荐.docx
- 文档编号:19813957
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:18
- 大小:189.34KB
数据结构课程设计学生籍贯管理系统Word文档下载推荐.docx
《数据结构课程设计学生籍贯管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计学生籍贯管理系统Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
每条记录包括一个学生学号、姓名、籍贯。
1、输入功能:
可以一次完成无数条记录的输入。
2、显示功能:
完成全部学生记录的显示。
3、查找功能:
完成按姓名、学号查找学生记录,并显示。
4、修改功能:
通过查找学生姓名、学号,修改学生记录。
5、保存功能:
将学生记录保存到任何自定义的文件中。
6、读取功能:
将保存到文件中的学生记录读取出来。
7、分类功能:
分别显示天津籍跟非天津籍的学生并分别存盘,且根据需要显示出来。
8、应提供一个界面来调用各个功能,调用界面和功能的操作界面应尽可能清晰美观。
4.3功能框图显示
图表1
5界面设计
功能主界面提供了良好的控制台界面,能够方便的根据功能采取相应的操作,简单明了,去除了复杂、多余的步骤。
当输入不符合要求时,则会显示相应的提示。
运行程序时,该程序显示的主界面显示如下:
图1
输入功能号:
1,则显示已经存入的学生籍贯信息记录
图2
2,则显示删除学生记录界面
图3
3,显示修改学生籍贯界面
图4
7,显示查询所有上海籍的学生
图5
8,显示天津籍跟非天津籍的学生
图6
5.1学生籍贯管理系统公共数据结构
在学生籍贯管理系统中使用的公共数据结构例举如下:
#defineMAX300\\定义常量N表示可录入最大学生数
inti,j、k,sum,\\i表示第几位学生,j\k都用来存放赋的值,sum表示查询时该学生不存在的学生数0人
intcount\\存放学生总人数
inti\\变量i存放循环次数
structstudent\\定义一个名为student的结构体,这个结构体定义了学生的基本信息
charno\\定义学生的学号
charname\\定义学生的姓名
charad\\定义学生的籍贯
intb\\用来跳出某项功能
structstudent、structstudentstu[MAX],定义两个结构体,两者是嵌套的。
dd是全局的结构体变量名
6小结
通过这次课设,我学会了如何把数据结构的知识应用到实践当中,同时也进一步加深了对c/c++语言语法的应用,以及深刻的掌握了数据结构和c/c++语言的结合运用。
在编程过程中,遇到了许多问题,在一次次的运行错误后,总是发现问题的所在,并且一步步加以改正,也从中学到了许多知识,感觉又重新学习了一次数据结构课程。
虽然我的程序还不够完善,还需加以改进以实现更多的功能,但是我会尽我最大的努力去完成它,我相信我会努力去把程序做的更加完美。
参考文献
[1]严蔚敏、吴伟民编著.数据结构(C语言版).清华大学出版社。
[2]藤国文等编著.数据结构课程设计.北京:
清华大学出版社。
[3]齐景嘉编著.数据结构(含实训).东南大学出版社。
[4]朱儒荣、朱辉等编著.数据结构常见题型解析与模拟题西北工业大学出版社。
[5]徐孝凯,贺桂英等编著.数据结构(C语言描述).清华大学出版社。
[6]徐孝凯编著.数据结构实用教程.北京:
清华大学出版社。
[7]严蔚敏,陈文博编著.数据结构及算法教程.北京:
[8]刘振安,刘燕君等编著.C程序设计课程设计.北京:
机械出版社。
[9]李建学、李光元、吴春芳等编著.数据结构课程设计案例精编.清华大学出版社。
附录:
程序源代码
#include<
stdio.h>
io.h>
stdlib.h>
string.h>
#defineMAX300
structstudent
{
charname[10];
//姓名
charno[50];
//学号
charad[20];
//籍贯
};
structdata
{intcount;
//当前学生数组中学生的个数
structstudentstu[MAX];
//学生数组
}dd;
//显示主菜单
voidmenu()
{
system("
cls"
);
printf("
\n"
\t\t\t********************************\n"
\t\t\t**\n"
\t\t\t*学生籍贯信息记录簿*\n"
\t\t\t*[0]退出*\n"
\t\t\t*[1]查看所有学生信息*\n"
\t\t\t*[2]输入学生记录*\n"
\t\t\t*[3]删除学生记录*\n"
\t\t\t*[4]修改学生籍贯*\n"
\t\t\t*[5]查询(学号)*\n"
\t\t\t*[6]查询(姓名)*\n"
\t\t\t*[7]查询(籍贯)*\n"
\t\t\t*[8]显示天津籍与非天津籍*\n"
printf("
}
//等待用户按回车后回到主菜单
voidto_menu()
charc1,c2;
\n\n\n按回车键返回主菜单..."
scanf("
%c%c"
&
c1,&
c2);
menu();
//查看所有学生信息
voidview_data()
{
inti;
姓名\t学号\t\t籍贯"
\n-------------------------------------------------------------------\n"
for(i=0;
i<
dd.count;
i++)
%s\t%s\t%s\n"
dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);
//将数据从结构体数组保存到文件中
voidsave_data()
FILE*fp;
inti,k;
k=dd.count;
fp=fopen("
c:
/dada.txt"
"
w"
fwrite(&
k,sizeof(int),1,fp);
k;
dd.stu[i],sizeof(structstudent),1,fp);
fclose(fp);
//输入学生记录
voidadd_data()
structstudentst;
intb;
intk;
inti,j;
while
(1)
j=0;
\n请输入学生信息:
"
\n姓名\t学号\t\t籍贯"
\n---------------------------------------------------------------\n"
%s%s%s"
st.name,st.no,st.ad);
if(strcmp(dd.stu[i].no,st.no)==0)
j=1;
printf("
学号录入重复,请重新输入!
break;
if(j==1)
continue;
if(j==0)
{
k=dd.count;
strcpy(dd.stu[k].name,st.name);
strcpy(dd.stu[k].no,st.no);
strcpy(dd.stu[k].ad,st.ad);
dd.count++;
\n\n继续添加学生信息[1-yes0-no]:
%d"
b);
if(b==0)break;
}
save_data();
//将数据从文件读到结构体数组中
voidread_data()
k=0;
if(access("
0)==-1)//如果文件不存在
fwrite(&
fclose(fp);
r"
fread(&
dd.count=k;
fread(&
st,sizeof(structstudent),1,fp);
strcpy(dd.stu[i].name,st.name);
strcpy(dd.stu[i].no,st.no);
strcpy(dd.stu[i].ad,st.ad);
fclose(fp);
//删除学生记录
voiddelete_data()
\n请输入要删除学生的学号:
%s"
no);
k=-1;
if(strcmp(dd.stu[i].no,no)==0)
{k=i;
break;
}
if(k==-1)
\n\n没有找到该学生(学号-%s)!
else
{for(i=k;
{
strcpy(dd.stu[i].name,dd.stu[i+1].name);
strcpy(dd.stu[i].no,dd.stu[i+1].no);
strcpy(dd.stu[i].ad,dd.stu[i+1].ad);
dd.count--;
save_data();
\n\n删除(学号-%s)成功!
//编辑学生记录
voidedit_data()
charno[50],ad[20];
\n请输入要编辑学生的学号:
if(strcmp(dd.stu[i].no,no)==0)
k=i;
\n姓名:
%s,学号:
dd.stu[k].name,dd.stu[k].no);
\n请修改学生数据:
\n籍贯:
ad);
strcpy(dd.stu[k].ad,ad);
//查询(学号)
voidquery_data_no()
\n请输入要查询学生的学号:
{
{
\n\n姓名\t学号\t\t籍贯"
printf("
\n-----------------------------------------------------------------\n"
}
k=i;
printf("
//查询(姓名)
voidquery_data_name()
\n请输入要查询学生的姓名:
name);
if(strcmp(dd.stu[i].name,name)==0)
{
\n\n没有找到该学生(姓名-%s)!
//查询(籍贯)
voidquery_data_address()
inti,sum=0;
charad[20];
请输入籍贯信息:
该籍贯的学生有:
if(strcmp(dd.stu[i].ad,ad)==0)
%s\t"
dd.stu[i].name);
sum++;
if(sum==0)
0人\n"
//判断显示天津籍
voidDis()
天津学生:
学号\t\t姓名籍贯\n"
i++){
if(strcmp(dd.stu[i].ad,"
天津"
)==0)
%s\t%7s%5s\n"
dd.stu[i].no,dd.stu[i].name,dd.stu[i].ad);
非天津学生:
)!
=0)
{
//主函数
voidmain()
intfun;
read_data();
menu();
请输入功能号[0-7]:
fun);
scanf("
switch(fun)
case0:
//退出
break;
case1:
//查看所有学生信息
view_data();
case2:
//输入学生记录
add_data();
case3:
//删除学生记录
delete_data();
case4:
//编辑学生记录
edit_data();
case5:
//查询(学号)
query_data_no();
case6:
//查询(姓名)
query_data_name();
case7:
//查询(籍贯)
query_data_address();
break;
case8:
//显示天津籍与非天津籍
Dis();
if(fun==0)break;
to_menu();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 学生 籍贯 管理 系统