C程序范例(1)——学生管理系统”数组“实现
1.在写程序之前,我想告诉大家,这个程序初学者很可能可能看不懂,但是这很正常,因为这是我在学习完C语言之后写的。所以大家好好学习吧!
由于这是在我大一刚学到数组时编写的程序,有许多冗余的部分,但当时做出来还是很高兴的。
#include<stdio.h>
#include<string.h>
\\注意老师登录的密码是123456
\\注意管理员登陆的密码是654321
struct kecheng
{
long int num;
char id[];
int cj;
char name[];
};
struct student
{
long int num;
char name[];
int age;
char sex[];
char b[];
char p[];
};
int n,w,q;
char c1,c2,c3,c4,c5,c6;
char n1,n2,n3,n4,n5,n6;
struct student stu[];
struct student *p;
struct kecheng ke[];
struct kecheng *a;
void lr();
void ll();
void lls();
void lrs();
void cx();
void cxs();
void xg();
void xgs();
void sc();
void scs();
void jm();
void jms();
void main()\\主界面显示
{
int m=;
do
{
int z;
m+=;
printf("+------------------------+\n");
printf("|欢迎进入学生成绩信息系统|\n");
printf("+------------------------+\n");
printf("提示:请按照提示操作^_^\n");
printf("+---------------------+\n");
printf("|+[1]---登陆学生界面 |\n");
printf("|+[2]---登录教师界面 |\n");
printf("|+[3]---登陆管理员界面|\n");
printf("|+--------------------+\n");
printf("请输入您的选择:\n");
scanf("%d",&z);
if(z==)
{
int a;
printf("+---------------------------+\n");
printf("|+[1]---学生成绩的查询 |\n");
printf("|+[2]---学生个人信息的查询 |\n");
printf("|+[3]---学生成绩单的打印 |\n");
printf("|+[0]---退出 |\n");
printf("+---------------------------+\n");
printf("请输入您想查询功能的编号\n");
scanf("%d",&a);
switch(a)
{
case :cxs();break;
case :cx();break;
case :lls();break;
case :break;
default:printf("无效选项\n");
}
}
if(z==)
{
int b,i=;
do
{
jm();
i+=;
if(w==)continue;
if(w==)break;
}while(i<);
printf("\n");
printf("+-------------------------+\n");
printf("|+[1]---学生信息的录入 |\n");
printf("|+[2]---课程成绩信息的录入|\n");
printf("|+[3]---学生课程成绩单查询|\n");
printf("|+[4]---学生信息单查询 |\n");
printf("|+[5]---退出 |\n");
printf("+-------------------------+\n");
printf("请输入您想查询功能的编号\n");
scanf("%d",&b);
switch(b)
{
case :lr();break;
case :lrs();break;
case :lls();break;
case :ll();break;
case :break;
default:printf("无效选项\n");
}
}
if(z==)
{
int c,i=;
do
{
jms();
i+=;
if(q==)continue;
if(q==)break;
}while(i<);
printf("+------------------------------+\n");
printf("|+[1]---学生信息的删除 |\n");
printf("|+[2]---学生课程成绩信息的删除 |\n");
printf("|+[3]---初始密码的管理 |\n");
printf("|+[4]---学生信息的修改 |\n");
printf("|+[5]---课程成绩信息的修改 |\n");
printf("|+[0]---退出 |\n");
printf("+-------------------------+\n");
printf("请输入您想查询功能的编号\n");
scanf("%d",&c);
switch(c)
{
case :sc();break;
case :scs();break;
case :break;
case :xg();break;
case :xgs();break;
case :break;
default:printf("无效选项\n");
}
}
}while(m<=);
}
void jm()\\给老师加密的部分
{
int i=;
do
{
printf("请输入您的密码\n");
i+=;
c1=getch();printf("*");
c2=getch();printf("*");
c3=getch();printf("*");
c4=getch();printf("*");
c5=getch();printf("*");
c6=getch();printf("*");
if(c1==''&&c2==''&&c3==''&&c4==''&&c5==''&&c6=='')
{
printf("登录成功\n");
return w=;
}
if(c1!=''||c2!=''||c3!=''||c4!=''||c5!=''||c6!='')
{
printf("登录失败\n");
return w=;
}
}while(i<=);
}
void jms()\\给管理员加密的部分
{
int i=;
do
{
printf("请输入您的密码\n");
i+=;
n1=getch();printf("*");
n2=getch();printf("*");
n3=getch();printf("*");
n4=getch();printf("*");
n5=getch();printf("*");
n6=getch();printf("*");
if(n1==''&&n2==''&&n3==''&&n4==''&&n5==''&&n6=='')
{
printf("登录成功\n");
return q=;
}
if(n1!=''||n2!=''||n3!=''||n4!=''||n5!=''||n6!='')
{
printf("登录失败\n");
return q=;
}
}while(i<=);
}
void ll()
{
int i,j;
if(n!=)
{ printf("学生总数:%d\n", n);
printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
else printf("提示:无学生数据,请输入数据!");
}
void cx()\\查询功能
{
int c;
int w,i,j=;
char name[];
if(n!=)
{
do{ printf("\n");
printf("+--------------------+\n");
printf("| 按学号查询 请按 1 |\n");
printf("| 按姓名查询 请按 2 |\n");
printf("| 取消 请按 0 |\n");
printf("+--------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
switch(c)
{
case :break;
case :
printf("请输入学生的学号;");
scanf("%ld", &w);
printf("\n");
for(i=;i<n;i++)
if(stu[i].num==w)
{
printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
j=;
}
if(j==)
printf("提示:没有该学生记录,请核对!");
break;
case :
printf("请输入学生的姓名:");
scanf("%s", name);
printf("\n");
for(i=;i<n;i++)
if(strcmp(name,stu[i].name)==)
{
printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
j=;
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
if(j==)
printf("提示:没有该学生记录,请核对!");
break;
default:
printf("\n提示:无效选项!");
break;
} }while(c!= );
} else printf("提示:无学生数据,请输入数据!");
return;
}
void lr()\\录入功能
{
int y;
if(n==)
p=stu;
do
{
printf("--------------------\n");
printf("请输入学生的学号:");
scanf("%ld",&p->num);
printf("请输入学生的姓名:");
scanf("%s",p->name);
printf("请输入学生的年龄:");
scanf("%d",&p->age);
printf("请输入学生的性别:");
scanf("%s",p->sex);
printf("请输入学生的地址:");
scanf("%s",p->b);
printf("请输入学生的电话:");
scanf("%s",p->p);
n++;
p++;
printf("\n1.继续输入.\n0.输入完毕.\n");
printf("请选择:");
scanf("%d",&y);
}
while(y==);
printf("提示:输入完毕!你一共输入%d个\n",n); }
void lrs()管理员界面的录入功能
{
int y;
if(n==)
a=ke;
do
{
printf("--------------------\n");
printf("请输入课程的编号:");
scanf("%ld",&a->num);
printf("请输入课程名称:");
scanf("%s",&a->id);
printf("请输入课程的成绩:");
scanf("%d",&a->cj);
printf("请输入课程的代课老师:");
scanf("%s",&a->name);
n++;
a++;
printf("\n1.继续输入.\n0.输入完毕.\n");
printf("请选择:");
scanf("%d",&y);
}
while(y==);
printf("提示:输入完毕!你一共输入%d个\n",n); }
void sc()\\删除功能
{
long int num;
int i,j,e;
if(n!=)
{
printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
printf("请输入您要删除的学生的学号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(num==stu[i].num)
j=i;
if(j!=(n-))
{
for(e=i-;e<n;e++,j++)
{
stu[j].num=stu[j+].num;
strcpy(stu[j].name,stu[j+].name);
strcpy(stu[j].sex,stu[j+].sex);
stu[j].age=stu[j+].age;
strcpy(stu[j].b,stu[j+].b);\\直接将数组中的这个位置跳过,这样就可以实现删除功能
strcpy(stu[j].p,stu[j+].p);
n--;p--;
}
}else {n--;p--;}
printf("提示:删除完毕!");
}else printf("提示:无学生数据,请输入数据!");
}
void lls()
{
int i,j;
if(n!=)
{
printf("课程总数:%d\n", n);
printf("课程编号\t课程名\t成绩\t代课老师\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
}
else printf("提示:无课程成绩数据,请输入数据!");
}
void cxs()\\查询
{
int c;
int w,i,j=;
char name[];
if(n!=)
{
do{ printf("\n");
printf("+--------------------+\n");
printf("| 按学号查询 请按 1 |\n");
printf("| 按姓名查询 请按 2 |\n");
printf("| 取消 请按 0 |\n");
printf("+--------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
switch(c)
{
case :break;
case :
printf("请输入学生的学号;");
scanf("%ld", &w);
printf("\n");
for(i=;i<n;i++)
if(ke[i].num==w)
{
printf("\n课程编号\t课程名称\t成绩\t代课老师\n");
printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
j=;
}
if(j==)
printf("提示:没有该课程成绩记录,请核对!");
break;
case :
printf("请输入学生的姓名:");
scanf("%s", name);
printf("\n");
for(i=;i<n;i++)
if(strcmp(name,stu[i].name)==)
{
printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n");
j=;
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
if(j==)
printf("提示:没有该学生记录,请核对!");
break;
default:
printf("\n提示:无效选项!");
break;
} }while(c!= );
}else printf("提示:无课程成绩数据,请输入数据!");
return;
}
void scs()\\在管理员界面实现删除功能
{
long int num;
int i,j,e;
if(n!=)
{
printf("课程编号\t课程名称\t课程成绩\t代课老师\n");
printf("-----------------------------------------------------\n");
for(i=;i<n;i++)
printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name);
printf("请输入您要删除的课程的编号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(num==ke[i].num)
j=i;
if(j!=(n-))
{
for(e=i-;e<n;e++,j++)
{
ke[j].num=ke[j+].num;
strcpy(ke[j].id,ke[j+].id);
strcpy(ke[j].cj,ke[j+].cj);
strcpy(ke[j].name,ke[j+].name);
n--;a--;
}
}else {n--;a--;}
printf("提示:删除完毕!");
}else printf("提示:无学生数据,请输入数据!");
}
void xg()\\实现修改功能
{
long int num;
int i,j,c;
if(n!=)
{
printf("请输入您要修改的学生的学号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(stu[i].num==num)
j=i;
do{
printf("请选择您要修改的学生的信息内容:\n");
printf("+----------------------+\n");
printf("| 姓名 请按 1 |\n");
printf("| 年龄 请按 2 |\n");
printf("| 性别 请按 3 |\n");
printf("| 学号 请按 4 |\n");
printf("| 地址 请按 5 |\n");
printf("| 电话 请按 6 |\n");
printf("| 取消 请按 0 |\n");
printf("+----------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case :break; case :printf("请输入新姓名:");
scanf("%s",stu[j].name);
break;
case :printf("请输入新年龄:");
scanf("%d",&stu[j].age);
break;
case :printf("请输入新性别:");
scanf("%s",stu[j].sex);
break;
case :printf("请输入新学号:");
scanf("%ld",&stu[j].num);
break;
case :printf("请输入新地址:");
scanf("%s",stu[j].b);
break;
case :printf("请输入新电话:");
scanf("%s",stu[j].p);
break;
default:
printf("\n无效选项!");
break;
} }while(c!= );
}else printf("提示:无学生数据,请输入数据!");
}
void xgs()
{
long int num;
int i,j,c;
if(n!=)
{
printf("请输入您要修改的课程的编号:");
scanf("%ld", &num);
printf("\n");
for(i=;i<n;i++)
if(ke[i].num==num)
j=i;
do{
printf("请选择您要修改的课程成绩的信息内容:\n");
printf("+----------------------+\n");
printf("| 课程编号 请按 1 |\n");
printf("| 课程名 请按 2 |\n");
printf("| 成绩 请按 3 |\n");
printf("| 代课老师 请按 4 |\n");
printf("+----------------------+\n");
printf("请输入您的选择:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case :break; case :printf("请输入新课程编号:");
scanf("%ld",&ke[j].num);
break;
case :printf("请输入新课程名称:");
scanf("%s",ke[j].id);
break;
case :printf("请输入成绩:");
scanf("%d",&ke[j].cj);
break;
case :printf("请输入新代课老师:");
scanf("%s",ke[j].name);
break;
default:
printf("\n无效选项!");
break;
} }while(c!= );
}else printf("提示:无课程成绩数据,请输入数据!");
}
记得曾经有一周每天都是晚上2:00才睡,虽然并不完善但是当程序做出来的时候心里还是很兴奋的,希望与大家共同努力!
C程序范例(1)——学生管理系统”数组“实现的更多相关文章
- Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案
1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...
- C程序范例(2)——学生管理系统”链表“实现
1.对于学生管理系统,能够实现的方法有许多,但是今天我们用链表的方法来实现.虽然初学者很可能看不懂,但是不要紧,这是要在整体的系统的学习完C语言之后,我才编写出的程序.所以大家不必要担心.在这里与大家 ...
- Android For JNI(四)——C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统
Android For JNI(四)--C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统 好几天每写JNI了,现在任务也越来越重了,工作的强度有点高,还有好几个系列的博客要等着更新,几本 ...
- Java 9天入门(黑马程序员) 课程收尾 ------学生管理系统 (9.13)
1 实现功能 2 结构概述 分为两个包,各自一个类 Student.java 为学生类,目的是储存学生信息 StudentManager.java 是主程序的代码 3 Student.java 的代码 ...
- 【IOS开发笔记02】学生管理系统
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...
- 学生管理系统-火车订票系统 c语言课程设计
概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...
- JDBC-简单的学生管理系统-增删改查
结构:三层架构--mvc 三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑. 比如将数据库操作代码封装到一层中,提供一些方法根据参数直 ...
- Java写一个简单学生管理系统
其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...
- 使用C++实现学生管理系统
我在前面的博客中分别使用C语言的动态数组和链表实现了学生成绩管理系统.近期正好在学习C++,于是我便使用C++实现了学生成绩管理系统.算法和前面的C语言的动态数组实现的学生成绩管理系统几乎相同,仅仅是 ...
随机推荐
- 更新Literacy
之前都没有做单元测试的啊 昨天离职了,闲着没事做了个单元测试,结果发现一堆问题....大部分都是关于值类型在IL中的操作问题... 这件事让我感觉蛋蛋隐隐发疼....以后一定要做单元测试啊.... 具 ...
- TODO:浅谈pm2基本工作原理
TODO:浅谈pm2基本工作原理 要谈Node.js pm2的工作原理,需要先来了解撒旦(Satan)和上帝(God)的关系. 撒旦(Satan),主要指<圣经>中的堕天使(也称堕天使撒旦 ...
- [翻译] AKKA笔记- ACTORSYSTEM (配置CONFIGURATION 与调度SCHEDULING) - 4(一)
原文在http://rerun.me/2014/10/06/akka-notes-actorsystem-in-progress/ 像我们前面看到的,我们可以用ActorSystem的actorof方 ...
- MongoDB学习笔记~根据子集合里某个属性排序
回到目录 这个问题是这样的,有一个实体dog,里面有集合属性DogHistory,它里面有一些自己的属性,其中一个是SortNum,主要用来进行排序,而且这个排序可以影响主对象,即影响dog类,这个在 ...
- WaitType:ASYNC_NETWORK_IO
官方文档的定义,是指SQL Server 产生的结果集需要经过Network传递到Client,Network不能很快将结果集传输到Client,导致结果集仍然驻留在SQL Server的Sessio ...
- Create views of OpenCASCADE objects in the Debugger
Create views of OpenCASCADE objects in the Debugger eryar@163.com Abstract. The Visual Studio Natvis ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构
咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...
- C#中使用Redis不同数据结构的内存占有量的疑问和对比测试
最近在大量使用Redis来进行数据统计前的清洗和整理,每天的数据量超5千万+,在开发过程中,数据量小,着重注意业务规则的处理,在上线基本测试后发现了大量的问题,其中之一就是Redis存储数据过多,内存 ...
- Android数据存储之Sqlite的介绍及使用
前言: 本来没有打算整理有关Sqlite数据库文章的,最近一直在研究ContentProvider的使用,所有觉得还是先对Sqlite进行一个简单的回顾,也方便研究学习ContentProvider. ...
- C# 如何将List拆分成多个子集合
网上的例子: 问:List<string> list = new List<string>(); for (int i = 1; i < 95; i++) ...