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)——学生管理系统”数组“实现的更多相关文章

  1. Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案

    1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...

  2. C程序范例(2)——学生管理系统”链表“实现

    1.对于学生管理系统,能够实现的方法有许多,但是今天我们用链表的方法来实现.虽然初学者很可能看不懂,但是不要紧,这是要在整体的系统的学习完C语言之后,我才编写出的程序.所以大家不必要担心.在这里与大家 ...

  3. Android For JNI(四)——C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统

    Android For JNI(四)--C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统 好几天每写JNI了,现在任务也越来越重了,工作的强度有点高,还有好几个系列的博客要等着更新,几本 ...

  4. Java 9天入门(黑马程序员) 课程收尾 ------学生管理系统 (9.13)

    1 实现功能 2 结构概述 分为两个包,各自一个类 Student.java 为学生类,目的是储存学生信息 StudentManager.java 是主程序的代码 3 Student.java 的代码 ...

  5. 【IOS开发笔记02】学生管理系统

    端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...

  6. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  7. JDBC-简单的学生管理系统-增删改查

    结构:三层架构--mvc 三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑. 比如将数据库操作代码封装到一层中,提供一些方法根据参数直 ...

  8. Java写一个简单学生管理系统

    其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...

  9. 使用C++实现学生管理系统

    我在前面的博客中分别使用C语言的动态数组和链表实现了学生成绩管理系统.近期正好在学习C++,于是我便使用C++实现了学生成绩管理系统.算法和前面的C语言的动态数组实现的学生成绩管理系统几乎相同,仅仅是 ...

随机推荐

  1. EDM制作要点

    EDM是Email Direct Marketing的缩写,虽然也是html,但是和我们在网页上使用的html不同,因为安全原因,各大邮箱服务商级邮件客户端都会对邮件内容进行一定程度上的处理,不会按照 ...

  2. 有一个团队协同工具,叫Worktile

    项目管理,本是一个老生常谈的话题,曾几何时大碗云集在这个市场,其中不乏出现像微软.SAP.IBM.用友这样的名字.复杂而又冗繁的流程控制,让人们划分成两类人,一类是会使用这些工具和系统的人,另一类是不 ...

  3. C语言 · 送分啦

    问题描述 这题想得分吗?想,请输出"yes":不想,请输出"no". 输出格式 输出包括一行,为"yes"或"no". ...

  4. Hadoop学习笔记——搭建

    一搭建环境列表 操作系统:centos6.5 64位 JDK环境:jdk1.7.0_71 hadoop版本:社区版本2.7.2,hadoop-2.7.2-src.tar.gz 主机名 ip 角色 用户 ...

  5. 史上最全的 Redux 源码分析

    前言 用 React + Redux 已经一段时间了,记得刚开始用Redux 的时候感觉非常绕,总搞不起里面的关系,如果大家用一段时间Redux又看了它的源码话,对你的理解会有很大的帮助.看完后,在回 ...

  6. Security9:查询Login被授予的权限

    在给一个Login授予权限时,发现该Login已经存在,其对应的User也存在于指定的DB中,查看该Login在指定DB中已被授予的权限. 1,查看Login的Server PrincipalID s ...

  7. Transaction Replication6:Transaction cleanup

    distribution中暂存的Transactions和Commands必须及时cleanup,否则,distribution size会一直增长,最终导致数据更新耗时增加,影响replicatio ...

  8. 小谈MVC 模式

    MVC (Modal View Controler) 本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使 ...

  9. AngularJS之Scope及Controller(一)

    前言 之前有接触过基本的AngularJS,未过多涉及,于是乎本系列我们来着重讲讲AngularJS,对AngularJS中重要的几大内容进行梳理并进行一些小的例子的书写.在之前项目过程中用到过ava ...

  10. golang操作文件

    1.读取文件信息: /* 读取文件信息 */ func readFile(path string) string { fi, err := os.Open(path) if err != nil { ...