用C语言编写学生信息管理系统.docx
- 文档编号:4229706
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:23
- 大小:135.41KB
用C语言编写学生信息管理系统.docx
《用C语言编写学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《用C语言编写学生信息管理系统.docx(23页珍藏版)》请在冰点文库上搜索。
用C语言编写学生信息管理系统
一、设计目得
通过对高级语言程序设计课程设计得学习,来验证自身得学习效果,同时希望利用所学得基本知识与技能,进行简单得C语言程序设计。
希望通过项目实践,熟悉巩固所学知识,以使自己熟练掌握高级语言程序设计,为日后学习计算机科学技术得专业知识能有进一步深入了解,奠定基础。
二、设计内容
1、问题描述:
设计一个学生信息管理系统设计。
学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E—mail等。
2、功能要求:
1、系统以菜单方式工作
2、学生信息录入功能(学生信息用文件保存)--输入
3、学生信息浏览功能--输出
4、学生信息查询功能—-算法
按学号查询
按姓名查询
5、学生信息得删除与修改(可选项)
三、详细设计
1、菜单:
voidmenu()
{
}
2、建立信息:
voidreadfile()
{
}
3、查找:
void seek()
{
}
4、修改信息:
voidmodify()
{
}
5、插入函数:
voidinsert()
{
}
6、删除信息:
voiddel()
{
}
7、浏览信息:
voiddisplay()
{
}
8、保存:
voidsave()
{
}
4、调试与测试
1、系统功能菜单
2、选择菜单“0”,进入系统帮助及说明功能
3、选择菜单“4”,添加学生信息
(1)输入增加人数
(2)依次输入学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail
(3)录入完毕,弹出菜单
4、选择菜单“3",修改学生信息:
输入被修改者学号
(1)选择子菜单“1",修改姓名
(2)选择子菜单“2”,修改年龄
(3)选择子菜单“3”,修改性别
(4)选择子菜单“4”,修改出生年月
(5)选择子菜单“5”,修改地址
(6)选择子菜单“6”,修改电话
(7)选择子菜单“7”,修改E-mail
5、选择菜单“2”,查询学生信息
(1)选择子菜单“1”,按学号查询
(2)选择子菜单“2”,按姓名查询
(3)选择子菜单“3",退出子菜单,弹出主菜单
6、选择菜单“6",显示当前信息
7、选择菜单“5”,按学号删除信息
(1)输入要删除得学生学号
(2)再次输入“6”,确认就是否删除该学生信息
五、源程序清单
源程序代码如下
#include
#include<stdlib、h>
#include〈string、h>
#define BUFLEN100
#defineLEN15
#define N100
structrecord
{
charcode[LEN+1];
charname[LEN+1];
intage;
charsex[3];
chartime[LEN+1];
charadd[30];
chartel[LEN+1];
charmail[30];
}stu[N];
intk=1,n,m;
void readfile();
voidseek();
voidmodify();
voidinsert();
voiddel();
voiddisplay();
voidsave();
void menu();
intmain()
{
while(k)
menu();
system(”pause");
return0;
}
voidhelp()
{
printf(”\n0、欢迎使用系统帮助!
\n”);
printf(”\n1、进入系统后,先刷新学生信息,再查询;\n");
printf(”\n2、按照菜单提示键入数字代号;\n");
printf("\n3、增加学生信息后,切记保存按;\n");
printf(”\n4、谢谢您得使用!
\n”);
}
voidreadfile()
{
char*p="student、txt”;
FILE*fp;
inti=0;
if((fp=fopen("student、txt”,”r"))==NULL)
{
printf(”Open error!
Strike anykeytoexit!
”,p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s%s%d%s%s%s%s%s”,stu[i]、code,stu[i]、name,&stu[i]、age,
stu[i]、sex,stu[i]、time,stu[i]、add,stu[i]、tel,stu[i]、mail)==8)
{
i++;
i=i;
}
fclose(fp);
n=i;
printf(”录入完毕!
\n");
}
void seek()
{
int i,item,flag;
char s1[21];
printf("—-—-—----——---—-—-\n”);
printf(”---——1、按学号查询--——-\n”);
printf(”—----2、按姓名查询———--\n");
printf("--——-3、退出本菜单————-\n");
printf(”-—----———-——--———-\n");
while
(1)
{
printf(”请选择子菜单编号:
");
scanf("%d",&item);
flag=0;
switch(item)
{
case1:
printf(”请输入要查询得学生得学号:
\n");
scanf(”%s”,s1);
for(i=0;i〈n;i++)
if(strcmp(stu[i]、code,s1)==0)
{
flag=1;
printf("学生学号学生姓名年龄性别出生年月地址电话 E—mail\n");
printf("—---———-----—--—-—-----------—-—---—--—--—-—-—-——-—-—-----—--——--——-\n");
printf("%6s %7s %6d%5s%9s%8s%10s %14s\n",stu[i]、code,stu[i]、name,stu[i]、age,
stu[i]、sex,stu[i]、time,stu[i]、add,stu[i]、tel,stu[i]、mail);
}
if(flag==0)
printf("该学号不存在!
\n”);break;
case 2:
printf("请输入要查询得学生得姓名:
\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i]、name,s1)==0)
{
flag=1;
printf("学生学号 学生姓名年龄性别出生年月地址 电话 E-mail\n”);
printf(”--——-—-—----———---————--—--—--—----——---—-—————-——----—-—-—-———----—\n”);
printf(”%6s %7s%6d%5s%9s %8s%10s%14s\n",stu[i]、code,stu[i]、name,stu[i]、age,
stu[i]、sex,stu[i]、time,stu[i]、add,stu[i]、tel,stu[i]、mail);
}
if(flag==0)
printf(”该姓名不存在!
\n”);break;
case3:
return;
default:
printf("请在-3之间选择\n");
}
}
}
void modify()
{
inti,item,num;
charsex1[3],s1[LEN+1],s2[LEN+1];
printf("请输入要要修改得学生得学号:
\n”);
scanf(”%s”,s1);
for(i=0;i<n;i++)
if(strcmp(stu[i]、code,s1)==0)
num=i;
printf("--—--—-——-———--——-\n");
printf("1、修改姓名\n”);
printf(”2、修改年龄\n”);
printf(”3、修改性别\n”);
printf(”4、修改出生年月\n");
printf("5、修改地址\n");
printf("6、修改电话号码\n”);
printf(”7、修改E-mail地址\n");
printf("8、退出本菜单\n”);
printf(”--—--—---——-———---\n");
while
(1)
{
printf("请选择子菜单编号:
”);
scanf(”%d",&item);
switch(item)
{
case1:
printf("请输入新得姓名:
\n");
scanf("%s",s2);
strcpy(stu[num]、name,s2);break;
case 2:
printf(”请输入新得年龄:
\n”);
scanf(”%d”,&stu[num]、age);break;
case3:
printf(”请输入新得性别:
\n");
scanf(”%s",sex1);
strcpy(stu[num]、sex,sex1);break;
case 4:
printf("请输入新得出生年月:
\n");
scanf("%s”,s2);
strcpy(stu[num]、time,s2);break;
case5:
printf("请输入新得地址:
\n”);
scanf("%s",s2);
strcpy(stu[num]、add,s2);break;
case6:
printf("请输入新得电话号码:
\n");
scanf(”%s",s2);
strcpy(stu[num]、tel,s2);break;
case 7:
printf("请输入新得E-mail地址:
\n");
scanf("%s",s2);
strcpy(stu[num]、mail,s2);break;
case8:
return;
default:
printf(”请在—8之间选择\n");
}
}
}
void sort()
{
inti,j,*p,*q,s;
char temp[10];
for(i=0;i〈n—1;i++)
{
for(j=n-1;j>i;j——)
if(strcmp(stu[j-1]、code,stu[j]、code)>0)
{
strcpy(temp,stu[j-1]、code);
strcpy(stu[j-1]、code,stu[j]、code);
strcpy(stu[j]、code,temp);
strcpy(temp,stu[j-1]、name);
strcpy(stu[j-1]、name,stu[j]、name);
strcpy(stu[j]、name,temp);
strcpy(temp,stu[j-1]、sex);
strcpy(stu[j—1]、sex,stu[j]、sex);
strcpy(stu[j]、sex,temp);
strcpy(temp,stu[j-1]、time);
strcpy(stu[j-1]、time,stu[j]、time);
strcpy(stu[j]、time,temp);
strcpy(temp,stu[j-1]、add);
strcpy(stu[j-1]、add,stu[j]、add);
strcpy(stu[j]、add,temp);
strcpy(temp,stu[j-1]、tel);
strcpy(stu[j—1]、tel,stu[j]、tel);
strcpy(stu[j]、tel,temp);
strcpy(temp,stu[j-1]、mail);
strcpy(stu[j-1]、mail,stu[j]、mail);
strcpy(stu[j]、mail,temp);
p=&stu[j—1]、age;
q=&stu[j]、age;
s=*q;
*q=*p;
*p=s;
}
}
}
voidinsert()
{
int i=n,j,flag;
printf("请输入待增加得学生数:
\n");
scanf(”%d”,&m);
do
{
flag=1;
while(flag)
{
flag=0;
printf("请输入第%d个学生得学号:
\n”,i+1);
scanf("%s",stu[i]、code);
for(j=0;j〈i;j++)
if(strcmp(stu[i]、code,stu[j]、code)==0)
{
printf(”已有该学号,请检查后重新录入!
\n”);
flag=1;
break;
}
}
printf("请输入第%d个学生得姓名:
\n”,i+1);
scanf("%s”,stu[i]、name);
printf("请输入第%d个学生得年龄:
\n",i+1);
scanf(”%d”,&stu[i]、age);
printf("请输入第%d 个学生得性别:
\n",i+1);
scanf("%s”,stu[i]、sex);
printf("请输入第%d个学生得出生年月:
(格式:
年、月)\n”,i+1);
scanf(”%s”,stu[i]、time);
printf("请输入第%d个学生得地址:
\n",i+1);
scanf(”%s”,stu[i]、add);
printf("请输入第%d个学生得电话:
\n”,i+1);
scanf("%s",stu[i]、tel);
printf(”请输入第%d 个学生得E-mail:
\n”,i+1);
scanf("%s",stu[i]、mail);
if(flag==0)
{
i=i;
i++;
}
}
while(i n+=m; printf("录入完毕! \n\n"); sort(); } voiddel() { inti,j,flag=0; char s1[LEN+1]; printf("请输入要删除学生得学号: \n"); scanf(”%s”,s1); for(i=0;i〈n;i++) if(strcmp(stu[i]、code,s1)==0) { flag=1; for(j=i;j〈n-1;j++) stu[j]=stu[j+1]; } if(flag==0) printf("该学号不存在! \n”); if(flag==1) { printf(”删除成功,显示结果请选择菜单\n”); n——; } } void display() { int i; printf("所有学生得信息为: \n”); printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n”); printf(”—-—-—-—————-—---—-----—---—-—-—-—----————--——-—---—-—-------———-——-—\n"); for(i=0;i { printf("%6s%7s %5d%5s%9s %8s %10s%14s\n",stu[i]、code,stu[i]、name,stu[i]、age, stu[i]、sex,stu[i]、time,stu[i]、add,stu[i]、tel,stu[i]、mail); } } voidsave() { inti; FILE*fp; fp=fopen("student、txt",”w”); for(i=0;i { fprintf(fp,"%s %s %d%s%s %s%s%s\n”,stu[i]、code,stu[i]、name,stu[i]、age, stu[i]、sex,stu[i]、time,stu[i]、add,stu[i]、tel,stu[i]、mail); } fclose(fp); } voidmenu() { intnum; printf(” \n\n 学生信息管理系统 \n\n"); printf("*********************系统功能菜单************************ \n"); printf("友情提示: 查询前请先刷新系统! \n"); printf(" —-—---—---——---—---——— —--—-—---—--——-—------\n”); printf(" ********************************************* \n"); printf(”*0、系统帮助及说明* * 1、刷新学生信息*\n"); printf(" ********************************************* \n"); printf(" *2、查询学生信息 ** 3、修改学生信息* \n"); printf(” *********************************************\n"); printf("*4、增加学生信息 * *5、按学号删除信息 * \n"); printf(" ********************************************* \n"); printf(”* 6、显示当前信息 **7、保存当前学生信息*\n"); printf(" ******************************************** \n"); printf(" *8、退出系统 * \n”); printf(" ********************** \n”); printf(” -——-—---—--——-—---—--—--—----—-—-—-—-—--———— \n"); printf("请选择菜单编号: ”); scanf("%d",&num); switch(num) { case0: help();break; case1: readfile();break; case2: seek();break; case3: modify();break; case4: insert();break; case 5: del();break; case6: display();break; case7: save();break; case 8: k=0;break; default: printf(”请在—8之间选择\n”); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编写 学生 信息管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)