c语言大作业教学管理系统.docx
《c语言大作业教学管理系统.docx》由会员分享,可在线阅读,更多相关《c语言大作业教学管理系统.docx(9页珍藏版)》请在冰豆网上搜索。
c语言大作业教学管理系统
《程序设计基础(C语言)》
课程设计说明书
学院:
数学与信息学院
班级:
1103班
学号:
姓名:
教师:
日期:
2012年6月16日
题目名称:
学生信息管理系统
算法分析:
(1)自定义函数;
(2)选择结构;
(3)循环结构;
(4)指针的定义与引用;
(5)结构体类型的定义与使用
流程设计:
代码设计:
#include
#include
#include
#defineMaxsize100//最大范围
structstudent_info{
charname[10];//姓名
intnumber;//学号
intid;//身份证号
intbirth;//出生日期
charaddress[50];//家庭住址
intscore;//总成绩
}student[100];
voidInsert(int*count);/*录入学生信息*///函数定义
voidsearch(intcount);/*查询学生信息*/
voidUpdate(intcount);/*修改学生信息*/
voidDelete(int*count);/*删除学生信息*/
voidshow(intcount);/*显示学生信息*/
intmain()
{
inti,count=0;
//作为计数器显示已记录的个数
do//显示一个简易菜单
{
printf("\t\t*******程序功能*********\n\n");
printf("\t1.录入学生信息\n");
printf("\t2.查询学生信息\n");
printf("\t3.修改学生信息\n");
printf("\t4.删除学生信息\n");
printf("\t5.显示学生信息\n");
printf("\t6.退出程序\n");
printf("请选择(1—6):
");
scanf("%d",&i);
switch(i)//switch选择结构
{
case1:
Insert(&count);
break;
case2:
search(count);
break;
case3:
Update(count);
break;
case4:
Delete(&count);
break;
case5:
show(count);
break;
case6:
break;
default:
printf("输入错误请重新选择");break;
}
}while(i!
=6);//while循环
return0;
}
voidInsert(int*count)//指针//录入学生信息
{
inti,in_number;
if(*count==Maxsize)//选择
{
printf("对不起人数已满不能再添加");return;
}
printf("请输入学号:
");
scanf("%d",&in_number);
for(i=0;i<*count;i++)//循环结构
if(student[i].number==in_number)
{
printf("已有相同的学号");return;
}
student[i].number=in_number;
printf("输入一个学生的姓名:
\n");
scanf("%s",student[i].name);
printf("输入一个学生的学号:
\n");
scanf("%d",&student[i].number);
printf("输入一个学生的身份证号:
\n");
scanf("%d",&student[i].id);
printf("输入出生日期:
年-月-日\n");
scanf("%d",&student[i].birth);
printf("输入一个学生的家庭地址:
\n");
scanf("%s",student[i].address);
printf("输入总成绩:
");
scanf("%d",&student[i].score);
(*count)++;
}
voidsearch(intcount)//查询学生信息
{
inti,number,flag=1;//标记变量
printf("请输入要查询的编号");
scanf("%d",&number);
for(i=0;iif(student[i].number==number)//检索输出
{
printf("学生信息如下:
\n");
printf("姓名:
%s\n",student[i].name);
printf("学号:
%d\n",student[i].number);
printf("身份证号:
%d\n",student[i].id);
printf("出生日期:
%d\n",student[i].birth);
printf("家庭住址:
%s\n",student[i].address);
printf("总分:
%d\n",student[i].score);
flag=0;//标记值变反
return;
}
else
printf("该学生不存在!
\n\n");
}
voidUpdate(intcount)//修改学生信息
{
inti,number,flag=1;
printf("输入要修改的学生学号:
");
scanf("%d",&number);
for(i=0;iif(student[i].number==number)
{
printf("输入一个学生的姓名:
\n");
scanf("%s",student[i].name);
printf("输入一个学生的学号:
\n");
scanf("%d",&student[i].number);
printf("输入一个学生的身份证号:
\n");
scanf("%d",&student[i].id);
printf("输入出生日期:
年-月-日\n");
scanf("%d",&student[i].birth);
printf("输入一个学生的家庭地址:
\n");
scanf("%s",student[i].address);
printf("总成绩:
");
scanf("%d",&student[i].score);
flag=0;
return;
}
else
printf("%s没有可修改的数据");
}
voidDelete(int*count)//删除学生信息
{
inti,j,number,flag=1;
printf("输入要删除的学生学号:
\n");
scanf("%d",&number);
for(i=0;i<*count&&flag;i++)
{
if(student[i].number==number)
{
for(j=i;j<*count-1;j++)
student[j]=student[j+1];
flag=0;
(*count)--;
}
else
printf("该学生不存在\n\n");
}
}
voidshow(intcount)//显示学生信息
{
inti;
printf("\n");
printf("姓名学号身份证号出生日期家庭住址总成绩\n");
for(i=0;i{
printf("%10s",student[i].name);
printf("%10d",student[i].number);
printf("%10d",student[i].id);
printf("%10d",student[i].birth);
printf("%10s",student[i].address);
printf("%10d",student[i].score);
}
}
运行结果: