C语言学生信息管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
strcpy(student[num].add,s2); break;
case 6:
printf("请输入新的电话号码:\n");
scanf("%s",s2);
strcpy(student[num].tel,s2); break;
case 7:
printf("请输入新的E-email地址:\n");
scanf("%s",s2);
strcpy(student[num].email,s2); break;
case 8:return;
default:printf("请在1-8之间选择\n");
}
}
}
说明:首先输入要修改信息的学号,同样通过字符串比较函数来判断学号是否存在。如果存在则通过switch语句来选择需要修改的信息,修改通过字符串复制函数。修改结束后可以选择退出该模块,进入主界面。
}
if(flag==0)
printf("该姓名不存在!\n");
break;
case 3:return;
default:printf("请在1-3之间选择\n");
}
}
说明:首先定义一个变量,输入值通过switch来选择相应模块。用一个for循环和字符串比较函数来不断的把输入的数据和系统储存的信息比较,如果相同,则输出信息。否则提示信息不存在!
信息的浏览,我们只需要通过一个循环将结构体中所有元素输出就行了。
信息的查询,我们选择用switch结构来解决用学号和姓名二种方式来查询的要求。等输入学号或者姓名的时候,通过字符串比较函数,如果存在,那么输出学生信息,否则提示错误并要求重新输入。
信息的修改,输入要修改信息的学号。首先用字符串比较函数判断改学生信息是否存在,如果存在,同过switch语句来依次修改学生的各项信息。修改信息我们需要用字符串复制函数。
printf("7.修改E-email地址\n");
printf("8.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
switch(item)
{
case 1:
printf("请输入新的姓名:\n");
num=i;
printf("------------------\n");
printf("1.修改姓名\n");
printf("2.修改年龄\n");
printf("3.修改性别\n");
printf("4.修改出生年月\n");
printf("5.修改地址\n");
printf("6.修改电话号码\n");
scanf("%s",s2);
strcpy(student[num].name,s2); break;
case 2:
printf("请输入新的年龄:\n");
scanf("%d",&student[num].age);break;
case 3:
printf("请输入新的性别:\n");
scanf("%s",sex1);
char s1[LEN];
printf("------------------\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("3.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
增加新学生信息,输入要增加的学号。首先用字符串比较函数判断,如果输入的学号已经存在,则提示重新输入,否则依次输入各项信息。
删除学生信息,通过比较找到要删除的学号,用后一个学生的信息直接赋值,后面的依次赋值给前一个学生的信息。
3.2.
4
4.1.
4.1.1
void menu()
{ int num;
printf(" 简易学生通讯录系统\n\n");
4.1.2
void input()
{
FILE *fp;
int i=0;
if ((fp=fopen("student.dat","r"))==NULL)
{ printf("Open file studentdent.dat error! Strike any key to exit!");
exit(0);
strcpy(student[num].sex,sex1); break;
case 4:
printf("请输入新的出生年月:\n");
scanf("%s",s2);
strcpy(student[num].time,s2); break;
case 5:
printf("请输入新的地址:\n");
scanf("%s",s2);
scanf("%d",&item);
flag=0;
switch(item)
{
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(student[i].number,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-email 分别为:\n");
case 6:output();break;
case 7:save();break;
case 8:k=0;break;
default:printf("请在1-8之间选择\n");
}
}
说明:此函数的功能是输出主界面功能菜单,已供选择相应的模块进行操作。
其中定义一个变量num,通过输入num的值来进入相应的功能,switch提供了不同选择的入口。在结束相应功能的操作后又返回主界面,并且对错误的输入有一定的纠错能力。
2.1.1有关学生信息的录入,学生信息包括输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等(学生信息用文件保存)。
2.1.2.学生信息的浏览功能。
2.1.3.学生信息的查询功能,其中实现按学号和姓名二种方式查询。
2.1.4.学生信息的修改功能,包括增加、删除等。
3、总体设计
3.1.
printf("-----------系统功能菜单----------\n");
printf("*****************************\n");
printf("*1.读入Βιβλιοθήκη Baidu生信息 *\n");
printf("*2.查询学生信息 *\n");
printf("*3.修改学生信息 *\n");
2
本系统主要需要解决的任务是实现学生信息关系的系统化、规范化和自动化,其主要目的是计算学生各种信息进行日常管理,如查询、修改、增加删除学生信息等。在实现程序功能的同时应该做到界面简单易懂,容易操作,方便使用的要求。并且程序需要有一定的纠错能力。
2.1.
本系统主要应用于学生学籍管理、信息查询等部分,具有不同的操作功能。具体功能如下:
}
while(fscanf(fp,"%s %s%d%s %s %s %s %s",student[i].number,student[i].name,&student[i].age,
student[i].sex,student[i].time,student[i].add,student[i].tel,student[i].email)==8)
printf("%s %s %d %s %s %s %s %s\n",student[i].number,student[i].name,student[i].age,
student[i].sex,student[i].time,student[i].add,student[i].tel,student[i].email);
printf("请输入第 %d 个学生的年龄:\n",i+1);
scanf("%d",&student[i].age);
printf("请输入第 %d 个学生的性别:\n",i+1);
}
if(flag==0)
printf("该学号不存在!\n");
break;
case 2:
printf("请输入要查询的学生的姓名:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(student[i].name,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-email 分别为:\n");
printf("*4.增加学生信息 *\n");
printf("*5.按学号删除信息 *\n");
printf("*6.显示当前信息 *\n");
printf("*7.保存当前学生信息 *\n");
printf("*8.退出系统 *\n");
printf("*****************************\n");
4.1.5
void increase()
{ int i=n,j,flag;
printf("请输入待增加的学生数:\n");
scanf("%d",&m);
do
{ flag=1;
while(flag)
{ flag=0;
printf("请输入第 %d 个学生的学号:\n",i+1);
scanf("%s",student[i].number);
{
i++;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}
说明:此函数的功能是从文件中录入信息。首先定义了一个文件指针fp,用他来打开文件student.dat(事先已经储存),通过while循环录入信息,最后关闭文件。显示录入信息成功!
4.1.3
void inquir()
{int i,j,item,flag;
4.1.4
void modify()
{
int i,j,item,num;
char sex1[3],s1[LEN],s2[LEN];
printf("请输入要要修改的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(student[i].number,s1)==0)
修改信息函数9
增加信息函数11
4.1.6删除信息函数.13
输出信息函数14
4.1.8保存信息函数14
4、组员名单15
5、结论和心得15
6、致谢21
1、序言
随着学校的规模不断过大,学生数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
for(j=0;j<i;j++)
if(strcmp(student[i].number,student[j].number)==0)
{ printf("已有该学号,请检查后重新录入!\n");
flag=1;
break;
}
}
printf("请输入第 %d 个学生的姓名:\n",i+1);
scanf("%s",student[i].name);
C语言课程设计
题目名称:学生信息管理系统
姓 名XXX
学 号XXXXXXXX
专 业网络工程
班 级一班
指导教师XXX
编写日期2011/6/6


1、序言3
2、需求分析3
2.1.具体目标3
2.1.13
3
3
3
3、总体设计4
3.1.算法分析4
3.2.程序框图5
4、详细设计5
4.1.函数模块5
主界面函数5
输入函数6
printf("%s %s %d %s %s %s %s %s\n",student[i].number,student[i].name,student[i].age,
student[i].sex,student[i].time,student[i].add,student[i].tel,student[i].email);
首先,考虑信息的录入,一个学生包括这么多的属性,应该考虑定义一个结构体。其次,我们应该考虑数据的存储形式,在这里我们用一个数组。从文件中录入我们首先要定义一个文件指针,打开该文件后通过一个循环来读文件,将所有信息读出来后关闭文件。
对于菜单的实现,首先用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
printf("请选择菜单编号:");
scanf("%d",&num);
switch(num)
{
case 1:input();break;
case 2:inquir();break;
case 3:modify();break;
case 4:increase();break;
case 5:del();break;
相关文档
最新文档