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语言的动态数组实现的学生成绩管理系统几乎相同,仅仅是 ...
随机推荐
-
scikit-learn预处理实例之一:使用FunctionTransformer选择列
本例展示怎样在一个管道中使用FunctionTransformer.如果你知道你的数据集的第一主成分与分类任务无关,你可以使用FunctionTransformer选取除PCA转化的数据的第一列之外的 ...
-
iOS开发系列--C语言之数组和字符串
概览 数组在C语言中有着特殊的地位,它有很多特性,例如它的存储是连续的,数组的名称就是数组的地址等.而在C语言中是没有String类型的,那么如果要表示一个字符串,就必须使用字符数组.今天主要就介绍如 ...
-
pixelmator处理png图片,处理掉过白的留白。
作为一个CTO,还是得学会一些普通的修图技术的.这不,刚学会在pixelmator下如何处理png中过多的留白. 汗,其实就是一个菜单选项而已./image/trim canvas 效果如下:
-
javascript中 for循环的应用
1.有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量 <script> var sum=0; //一 ...
-
CSS层叠
前面的话 层叠样式表CSS最基本的一个特性就是层叠.冲突的声明通过层叠进行排序,由此确定最终的文档表示.而这个过程的核心就是选择器及其相关声明的特殊性.重要性.来源及继承机制.本文将详细介绍CSS层叠 ...
-
C# 令某个窗体可跟着鼠标移动
/// <summary> /// 使窗口的中的指定控件支持运行时移动 /// TODO:运行时缩放 /// </summary> public class ControlMo ...
-
C#之桶中取黑白球问题
<编程之美>284页,问题4.6:桶中取黑白球. 有一个桶,里面有白球.黑球各100个,人们必须按照以下规则把球取出来: 1. 每次从桶中拿两个球: 2. 如果两球同色,再放入一个黑球: ...
-
多路径配置vlome group共享存储,VG的更新。
1. PV的概念: a) 一块物理磁盘一块物理硬盘在被LVM管理时被称为“物理卷”. b) 在LVM能对其进行管理之前需要在硬盘上产生一些特殊的数据结构,这个过程就是建立 ...
-
ecstore中kvstore之mongodb
mongodb安装 详细见 http://blog.csdn.net/motian06/article/details/17560067 mongodb扩展安装 详细见 http://blog.csd ...
-
python专题-爬虫功能
在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片鼠标右键的 ...