1.通过结构体和函数的综合应用来实现一个具体的应用项目,使我们掌握小型系统程序设计的基本方法,掌握程序设计基本框架的搭建和模块化程序设计的基本思路,能够使用工具进行程序设计调试,培养我们利用C语言进行软件设计的能力。
2.设计出的学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,针对这些要求设计了学生信息管理系统。
设计一个学生管理系统,系统以菜单方式工作,能够提供以下功能:
1.学生信息录入功能
―――由for循环语句录入信息,并使用结构体
2.学生信息浏览功能
―――使用for循环语句浏览信息,并使用了结构体
3.学生信息按学号查询功能
―――学生姓名是字符串类型,在if中使用strcmp进行字符串比较;并使用for循环语句以及结构体
4.学生信息按姓名查询功能
―――学号是unsign类型,在if语句中使用strcmp进行字符串比较;并使用for循环语句以及结构体
5.学生信息修改功能
―――用for循环语句以及结构体,while语句,switch语句进行多重选择,还在if语句中使用strcmp进行字符串比较
6.学生信息的删除功能
―――用for循环语句以及结构体,还在if语句中使用strcmp进行字符串比较,还单独使用if语句进行情况分类。
1.对学生的信息进行了保存,同时拥有了删除、排序、修改、根据学号查找、根据姓名查找的功能。
2.通过结构体的出现让读者一目了然。
(1)界面简介,排列清晰,可以一目了然的看懂每一项功能。
(2)学生利用此系统能够进行与自己有关信息查询与输入。
1.学生信息录入
2.学生信息浏览
3.学生信息按学号查询
4.学生信息按姓名查询
5.学生信息修改
6.学生信息的删除
该系统包含的库函数具体有:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
该系统创建的结构体有:
struct record
{
char xuehao[20];
char name[20];
char old[20];
char xingbie[20];
char date[20];
char phone[20];
}num[100];
int main()
{
while(1)
{
system("cls");
menu();
}
return 0;
}
void menu()
{
int num=0;
char n;
char m;
printf("***************学生信息管理系统***************\n");
printf("***************本系统选择如下*****************\n");
printf("*** 1.学生信息的录入 ***\n");
printf("*** 2.学生信息的浏览 ***\n");
printf("*** 3.学生信息按学号查询 ***\n");
printf("*** 4.学生信息按姓名查询 ***\n");
printf("*** 5.学生信息修改 ***\n");
printf("*** 6.学生信息的删除 ***\n");
printf("*** 7.退出系统 ***\n");
printf("**********************************************\n");
printf("请输入(1~7):");
scanf("%d",&num);
void input()
{
int i;
printf("请输入录入的学生人数:");
scanf("%d",&n);
printf("\n\n");
for(i=0;i<n;i++)
{
printf("请输入学号: ");
scanf("%s",&num[i].xuehao);
printf("\n");
printf("请输入姓名: ");
scanf("%s",&num[i].name);
printf("\n");
printf("请输入年龄: ");
scanf("%s",&num[i].old);
printf("\n");
printf("请输入性别: ");
scanf("%s",&num[i].xingbie);
printf("\n");
printf("请输入出生年月: ");
scanf("%s",&num[i].date);
printf("\n");
printf("请输入电话: ");
scanf("%s",&num[i].phone);
printf("\n");
printf("\n\n");
}
printf("输入完毕!按任意键返回主菜单!");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void look()
{
int i;
for(i=0;i<n;i++)
{
printf("学号: %s",num[i].xuehao);
printf("\n");
printf("姓名: %s",num[i].name);
printf("\n");
printf("年龄: %s",num[i].old);
printf("\n");
printf("性别: %s",num[i].xingbie);
printf("\n");
printf("出生年月: %s",num[i].date);
printf("\n");
printf("电话: %s",num[i].phone);
printf("\n\n");
}
printf("\n按任意键返回主菜单!");
getch();
}
void select1()
{
int i,no;
char no1[100];
printf("请输入要查询的学号:");
scanf("%s",no1);
for(i=0;i<n;i++)
{
if(strcmp(num[i].xuehao,no1)==0)如果学号的字符串内容与no1的字符串内容相同的话,strcmp == 0
no=i;
}
printf("请输入学号: %s",num[no].xuehao);
printf("\n");
printf("请输出姓名: %s",num[no].name);
printf("\n");
printf("请输出年龄: %s",num[no].old);
printf("\n");
printf("请输出性别: %s",num[no].xingbie);
printf("\n");
printf("请输出出生年月: %s",num[no].date);
printf("\n");
printf("请输出电话: %s",num[no].phone);
printf("\n\n");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void select2()
{
int i,mo;
char mo1[100];
printf("请输入要查询的学生姓名:");
scanf("%s",&mo1);
for(i=0;i<n;i++)
{
if(strcmp(num[i].name,mo1)==0)如果学号的字符串内容与mo1的字符串内容相同的话,strcmp == 0
mo=i;
}
printf("请输入学号: %s",num[mo].xuehao);
printf("\n");
printf("请输出姓名: %s",num[mo].name);
printf("\n");
printf("请输出年龄: %s",num[mo].old);
printf("\n");
printf("请输出性别: %s",num[mo].xingbie);
printf("\n");
printf("请输出出生年月: %s",num[mo].date);
printf("\n");
printf("请输出电话: %s",num[mo].phone);
printf("\n");
printf("\n按任意键返回主菜单!");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void xiugai()
{
int i,t,n;
char z1[30],z2[30];
printf(" 请输入要修改的学号\n");
scanf("%s",z1);
for(i=0;i<n;i++)
{
if(strcmp(num[i].xuehao,z1)==0);
{
n=i;
}
}
printf("--------------------------------\n");
printf(" 1修改学号 \n");
printf(" 2修改姓名 \n");
printf(" 3修改年龄 \n");
printf(" 4修改性别 \n");
printf(" 5修改出生年月 \n");
printf(" 6修改电话 \n");
printf(" 7返回主菜单 \n");
printf("--------------------------------\n");
while(1)
{
printf("请输入菜单的编号:");
scanf("%d",&t);
switch(t)
{
case 1:
printf("请输入新的学号:\n");
scanf("%s",z2);
strcpy(num[n].xuehao,z2);
break;
case 2:
printf("请输入新的姓名:\n");
scanf("%s",z2);
strcpy(num[n].name,z2);
break;
case 3:
printf("请输入新的年龄:\n");
scanf("%s",z2);
strcpy(num[n].old,z2);
break;
case 4:
printf("请输入新的性别:\n");
scanf("%s",z2);
strcpy(num[n].xingbie,z2);
break;
case 5:
printf("请输入新的出生年月:\n");
scanf("%s",z2);
strcpy(num[n].date,z2);
break;
case 6:
printf("请输入新的电话:\n");
scanf("%s",z2);
strcpy(num[n].phone,z2);
break;
case 7: return;
default:
printf("请在1-7之间选择\n");
}
}
printf("按任意键返回主菜单!\n");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void shanchu()
{
int i,j,flag=0;
char x1[30];
printf("请输入将要删除的学生的学号:\n");
scanf("%s",x1);
for(i=0;i<n;i++)
if(strcmp(num[i].xuehao,x1)==0)
{
flag=1;
for(j=i;j<n-1;j++)
num[j]=num[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{
printf("删除成功!\n");
n--;
}
printf("\n按任意键返回主菜单!");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
按提示操作即可。
主界面如图:
学生信息的录入如图:
学生信息的浏览如图:
学生信息按学号查询如图:
学生信息按姓名查询如图:
学生信息的修改如图:
学生信息的删除:
1.《C 程序设计》(第四版),谭浩强,清华大学出版社,2010 年。
2.csdn别人的代码。
制作完这个程序其实我学到了挺多东西的,特别是结构体让我能够运用的更加顺手了。但是花了挺多时间的,还有很多东西需要我去学习吸收。相信我只要坚持下去,一定会越来越好。
源代码
#include<stdio.h>
#include<stdlib.h>//定义了四个变量类型、一些宏和各种通用工具函数
#include<string.h>//使用到字符数组时需要使用
#include<conio.h>//getch()的头文件
using namespace std;
struct record//结构体
{
char xuehao[20];
char name[20];
char old[20];
char xingbie[20];
char date[20];
char phone[20];
}num[100];
bool cmp(record a,record b)
{
return strcmp(a.xuehao, b.xuehao) < 0;
}//为了后面使用字符串比较函数
int n;
void input();
void menu();
void look();
void select1();
void select2();
void xiugai();
void shanchu();
void menu()
{
int num=0;
char n;
char m;
printf("***************学生信息管理系统***************\n");
printf("***************本系统选择如下*****************\n");
printf("*** 1.学生信息的录入 ***\n");
printf("*** 2.学生信息的浏览 ***\n");
printf("*** 3.学生信息按学号查询 ***\n");
printf("*** 4.学生信息按姓名查询 ***\n");
printf("*** 5.学生信息修改 ***\n");
printf("*** 6.学生信息的删除 ***\n");
printf("*** 7.退出系统 ***\n");
printf("**********************************************\n");
printf("请输入(1~7):");
scanf("%d",&num);
switch(num)//选择函数
{
case 1: system("cls");
input();
break;
case 2: system("cls");
look();
break;
case 3: system("cls");
select1();
break;
case 4: system("cls");
select2();
break;
case 5: system("cls");
xiugai();
break;
case 6: system("cls");
shanchu();
break;
case 7: exit(0);
default:;
}
}
void input()
{
int i;
printf("请输入录入的学生人数:");
scanf("%d",&n);
printf("\n\n");
for(i=0;i<n;i++)
{
printf("请输入学号: ");
scanf("%s",&num[i].xuehao);
printf("\n");
printf("请输入姓名: ");
scanf("%s",&num[i].name);
printf("\n");
printf("请输入年龄: ");
scanf("%s",&num[i].old);
printf("\n");
printf("请输入性别: ");
scanf("%s",&num[i].xingbie);
printf("\n");
printf("请输入出生年月: ");
scanf("%s",&num[i].date);
printf("\n");
printf("请输入电话: ");
scanf("%s",&num[i].phone);
printf("\n");
printf("\n\n");
}
printf("输入完毕!按任意键返回主菜单!");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void look()
{
int i;
for(i=0;i<n;i++)
{
printf("学号: %s",num[i].xuehao);
printf("\n");
printf("姓名: %s",num[i].name);
printf("\n");
printf("年龄: %s",num[i].old);
printf("\n");
printf("性别: %s",num[i].xingbie);
printf("\n");
printf("出生年月: %s",num[i].date);
printf("\n");
printf("电话: %s",num[i].phone);
printf("\n\n");
}
printf("\n按任意键返回主菜单!");
getch();
}
void select1()
{
int i,no;
char no1[100];
printf("请输入要查询的学号:");
scanf("%s",no1);
for(i=0;i<n;i++)
{
if(strcmp(num[i].xuehao,no1)==0)如果学号的字符串内容与no1的字符串内容相同的话,strcmp == 0
no=i;
}
printf("请输入学号: %s",num[no].xuehao);
printf("\n");
printf("请输出姓名: %s",num[no].name);
printf("\n");
printf("请输出年龄: %s",num[no].old);
printf("\n");
printf("请输出性别: %s",num[no].xingbie);
printf("\n");
printf("请输出出生年月: %s",num[no].date);
printf("\n");
printf("请输出电话: %s",num[no].phone);
printf("\n\n");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void select2()
{
int i,mo;
char mo1[100];
printf("请输入要查询的学生姓名:");
scanf("%s",&mo1);
for(i=0;i<n;i++)
{
if(strcmp(num[i].name,mo1)==0)如果学号的字符串内容与mo1的字符串内容相同的话,strcmp == 0
mo=i;
}
printf("请输入学号: %s",num[mo].xuehao);
printf("\n");
printf("请输出姓名: %s",num[mo].name);
printf("\n");
printf("请输出年龄: %s",num[mo].old);
printf("\n");
printf("请输出性别: %s",num[mo].xingbie);
printf("\n");
printf("请输出出生年月: %s",num[mo].date);
printf("\n");
printf("请输出电话: %s",num[mo].phone);
printf("\n");
printf("\n按任意键返回主菜单!");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void xiugai()
{
int i,t,n;
char z1[30],z2[30];
printf(" 请输入要修改的学号\n");
scanf("%s",z1);
for(i=0;i<n;i++)
{
if(strcmp(num[i].xuehao,z1)==0);
{
n=i;
}
}
printf("--------------------------------\n");
printf(" 1修改学号 \n");
printf(" 2修改姓名 \n");
printf(" 3修改年龄 \n");
printf(" 4修改性别 \n");
printf(" 5修改出生年月 \n");
printf(" 6修改电话 \n");
printf(" 7返回主菜单 \n");
printf("--------------------------------\n");
while(1)
{
printf("请输入菜单的编号:");
scanf("%d",&t);
switch(t)
{
case 1:
printf("请输入新的学号:\n");
scanf("%s",z2);
strcpy(num[n].xuehao,z2);
break;
case 2:
printf("请输入新的姓名:\n");
scanf("%s",z2);
strcpy(num[n].name,z2);
break;
case 3:
printf("请输入新的年龄:\n");
scanf("%s",z2);
strcpy(num[n].old,z2);
break;
case 4:
printf("请输入新的性别:\n");
scanf("%s",z2);
strcpy(num[n].xingbie,z2);
break;
case 5:
printf("请输入新的出生年月:\n");
scanf("%s",z2);
strcpy(num[n].date,z2);
break;
case 6:
printf("请输入新的电话:\n");
scanf("%s",z2);
strcpy(num[n].phone,z2);
break;
case 7: return;
default:
printf("请在1-7之间选择\n");
}
}
printf("按任意键返回主菜单!\n");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
void shanchu()
{
int i,j,flag=0;
char x1[30];
printf("请输入将要删除的学生的学号:\n");
scanf("%s",x1);
for(i=0;i<n;i++)
if(strcmp(num[i].xuehao,x1)==0)
{
flag=1;
for(j=i;j<n-1;j++)
num[j]=num[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{
printf("删除成功!\n");
n--;
}
printf("\n按任意键返回主菜单!");
getch();// 拿来判断键盘的按键 ,等待按下任意键再继续执行下面的语句。
}
int main()
{
while(1)
{
system("cls");
menu();
}
return 0;
}
用Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能 图片上传图片压缩拖拽...
vue中监听滚动事件,然后对其进行事件处理,一般有:1. 滚动到顶部吸附; 2. 根...
本文实例讲述了php libevent 功能与使用方法。分享给大家供大家参考,具体如下:...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
script标签 在HTML5中script主要有以下几个属性:async,defer,charset,src,t...
一、写原生方法 1.在所编辑的页面,需要添加右键菜单的元素,绑定contextmenu事...
简单介绍下功能吧:使用了ASP的一个对象ServerVariables(服务器环境变量),通...
Linux Kernel 5.10 LTS 昨天正式发布,不过由于存储代码中的 BUG 团队今天紧急发...
当用户有特殊要求时,程序员不得不研究 Ewebeditor 的代码,相当麻烦。我就是经...
本文实例为大家分享了jQuery实现动态向上滚动的具体代码,供大家参考,具体内容...