C程序设计学生成绩管理系统Word格式.doc
《C程序设计学生成绩管理系统Word格式.doc》由会员分享,可在线阅读,更多相关《C程序设计学生成绩管理系统Word格式.doc(8页珍藏版)》请在冰豆网上搜索。
软件开发实验室一
实验题目
学生成绩管理系统
一、实验目的
为了综合了解C语言的整个运作过程,掌握C语言程序的输入、输出,函数的组建及相关的调用,特别是结构体链表及结构体指针,对一级菜单、二级菜单的综合运用,进一步掌握C语言操作的整个环节,此次课程设计将会对C设计的各方面有所深化,为以后的学习、特别是数据库的奠定了基础。
二、设备与环境
PC兼容机、Windows操作系统、TurboC/Wintc,Vc++软件等。
三、实验内容
本次课程设计主要是运用结构体链表对学生的成绩进行综合管理。
具体流程如下:
登录系统
显示学生信息
查询学生信息
修改学生信息
删除学生信息
输入学生信息
统计学生信息
退出系统
按学号查询
按姓名查询
本次课程设计熟练掌握结构体的定义及相关运用,函数的定义,建立,调用,指针链
表的使用等。
相关内容如下:
登录系统:
对用户输入的信息进行分析,信息正确,通过函数调用进入菜单。
主菜单:
提供用户进行选者操作。
输入学生信息:
把用户输入的学生信息用链表进行连接,对已存在的信息进行提示及结构体指针的运用,动态链表开辟新的空间。
删除学生信息:
对用户输入的学号进行分析,并找到相关的结点操作,对遇到的相关情况做必要的提示。
查询信息:
分按姓名和学号进行查询,有按健选者,找到结点处理。
修改信息:
对输入的新信息与已存有的进行替换,从而建立新的学生信息链表。
显示信息:
对进行操作过的链表输出,可以看到你操作后的结果。
统计信息:
对每个学生的成绩信息进行比较,输出相关成绩最高的。
四、实验结果及分析
相关程序如下:
typedefstructmode
{
structstudentdata;
structmode*next;
}Mode,*Link;
voidmain()
{intpw,f;
charuser[10];
printf("
***********************************\n"
);
**\n"
*欢迎使用,祝你成功!
*\n"
\n\n"
-------用户登录------\n\n"
请输入用户名:
"
scanf("
%s"
user);
f=strcmp(user,"
dlf"
if(f==0)
{printf("
\n请输入密码:
%d"
&
pw);
if(1234==pw)xitong();
elseprintf("
密码错误!
!
\n"
}
用户名错误!
Typedef的使用使下面定义结构体变量极为方便,并有所区分。
这是一个用户登录系统,已较为干净清洁的页面展示,通过函数的嵌套,对输入的用户名和密码进行分析和比较。
若一切正确将进入主菜单,进行下一步的操作;
若输入的信息部分有误,则无法进入页面,起到对本系统内容的保密工作。
)比较函数的运用,if。
。
else。
的嵌套,函数的调用,都是本函数的特色。
xitong()
Linkl;
intsel;
intcount=0;
Mode*p1;
system("
cls"
=============登录成功!
===================\n\n\n\n"
************学生成绩管理系统*******************\n\n\n"
l=(Mode*)malloc(sizeof(Mode));
l->
next=NULL;
p1=l;
while
(1)
menu();
请你选择操作:
sel);
if(sel==0)
{printf("
\n-------你已经退出系统,再见!
break;
}
switch(sel)
case1:
Sr(l);
break;
case2:
Del(l);
case3:
Cx(l);
case4:
Mf(l);
case5:
Xs(l);
case6:
Tongji(l);
default:
Wrong();
getchar();
}}}
system("
)清屏函数的使用增加输出界面的清晰度,switch(sel)此语句的使用,让用户有选择的对函数调用操作,中间做了一些必要的提示。
voidmenu()
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-\n\n"
---------------1输入学生信息----------------------\n"
---------------2删除学生信息----------------------\n"
---------------3查询学生信息----------------------\n"
---------------4修改学生信息----------------------\n"
---------------5显示学生信息----------------------\n"
---------------6统计学生信息----------------------\n"
---------------0退出系统---------------------\n\n"
*************************************************\n\n"
主菜单给人比较清晰之感。
voidCx(Linkl)
charfs[20];
Mode*p;
if(!
next)
\n-------无信息可以查询!
return;
\n--------1按学号查找\n--------2按姓名查找\n"
if(sel==1)
请输入要查找的学号:
fs);
p=Le(l,fs,"
num"
if(p)
{
print1();
print2(p);
else
Nofind();
elseif(sel==2)
请你输入要查找的姓名:
name"
{
elseNofind();
}
elseWrong();
}
本程序对用户做出相关的提示,对查询的对象进行选择,分按学号查询和按姓名查询,对无信息则作出必要的提示,if。
的嵌套使用,输入,输出函数的调用更加简洁明朗。
通过本次课设的一些心得与体会;
一周的程序设计,对结构体链表的操作有更深一步的了解,对函数的调用,字符函数的运用,清屏函数的添加,都做了必要的回顾,通过查找资料及自己的思考,综合以前学过的相关知识,进行了本程序的编译,调试修改,思考,总结,从而对C语言有了更深刻的感觉。
然同时也发现了自己不少缺陷,主要对某些标点没有进行合理的切换,使之错误率大大增加,同时对某些知识点的认识不够全面,促使在调试时遇到了不少困难,这应该在以后的学习中注意的,多注意基础知识的巩固及必要的延伸,多看相关的书籍,扩大一些知识面,相信对以后学习其他的计算机语言有启示和帮助。
一周的学习与操作强化了考虑问题的全面性,特殊函数运用的熟练性,处理问题的简洁化,程序的大众化,每一次的纠正,每一次的改善,都有了不同的收获。