用C语言编写学生信息管理程序(给出五个主要函数就OK啦!)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言编写学生信息管理程序(给出五个主要函数就OK啦!)相关的知识,希望对你有一定的参考价值。

1. 学生信息表的初始化,即能对学生信息进行输入。
2. 能显示信息表中所有学生的记录信息
3. 能查找表中的每一学生记录
4. 能够删除表中的某一学生记录
5. 能够在表中插入某一学生记录

#include<stdio.h>
#define M 2/*容量*/
struct _674

long num;
char name[20];
char add[20];
long tel;
A[M],B[1];
void input()

int i=1;
char a=\'y\';
while(a==\'y\')

if(i<=M)

printf("请输入你要输入的学生学号\\n");
scanf("%d",&A[i].num);
for(int j=1;j<i;j++)
if(A[j].num==A[i].num)

printf("你输入的学号已存在\\n");continue;

printf("请输入你要输入的学生姓名\\n");
scanf("%s",&A[i].name);
printf("请输入你要输入的学生地址\\n");
scanf("%s",&A[i].add);
printf("请输入你要输入的学生电话\\n");
scanf("%d",&A[i].tel);
i++;
printf("退出请任意输入,继续请输入y\\n");
getchar();
scanf("%c",&a);

else

printf("你的空间已满\\n");break;



void output()

for(int i=1;i<=M;i++)
printf("学号:%d姓名:%s地址:%s电话:%d\\n",A[i].num,A[i].name,A[i].add,A[i].tel);

void seek()

int a,f=0;
printf("请输入你要查找学生的学号\\n");
scanf("%d",&a);
for(int i=1;i<=M;i++)
if(a==A[i].num)

printf("学号:%d姓名:%s地址:%s电话:%d\\n",A[i].num,A[i].name,A[i].add,A[i].tel),f=0;break;

else
f=1;
if(f==1)
printf("查无此人\\n");

void del()

int a;
printf("请输入你要删除的学生学号\\n");
scanf("%d",&a);
for(int i=1;i<=M;i++)
if(a==A[i].num)

for(;i<M;i++)
A[i]=A[i+1];


void insert()

printf("请输入你要输入你要插入的学生学号\\n");
scanf("%d",&B[1].num);
for(int j=1;j<=M;j++)
if(B[1].num==A[j].num)

printf("你要插入的学号已存在\\n");break;

printf("请输入你要插入的学生姓名\\n");
scanf("%s",&B[1].name);
printf("请输入你要插入的学生地址\\n");
scanf("%s",&B[1].add);
printf("请输入你要插入的学生电话\\n");
scanf("%d",&B[1].tel);

void main()

input();
output();
seek();
del();
insert();

不好意思
自己也是刚学的
有不足之处还请谅解
很多地方还需要根据你的需要适当修改
最后希望我们能相互讨论学习共同进步
参考技术A /*本人的作品,去年应付期末考试的*/
/*在Microsoft Visual C++ 6.0下完成调试*/
/****
实验题目:
输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。(已用sort函数实现)
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。(已用view函数实现)
3)按实验报告电子模板格式填写实验内容。
****/
/*数据结构:单向动态链表*/

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

#define PAUSE system("pause")
#define CLS system("cls")
#define FFLUSH fflush(stdin)
#define LEN sizeof(struct Student) /*结构体Student的长度*/
#define SWAP(x,y) x+=y;y=x-y;x-=y; /*用于交换两个变量的宏*/

struct Score/*结构体Score的定义*/

float math;
float english;
float computer;
float total;
float average;
;

struct Student /*结构体Student的定义*/

long num;/*学号*/
struct Score score;/*成绩(结构体)*/
char grade;/*等级*/
struct Student *next;/*指向下一个链表结点的指针*/
;

char college[30];grade[30];classname[30];/*college,学院名 grade,年级 classname,专业和班级*/
int len=0; /*控制链表长度的全局变量*/

struct Student *create(); /*create函数声明,功能:创建单向动态链表*/
struct Student *del(struct Student *head,long del_num); /*del函数声明,功能:从现有链表中删除一个结点*/
struct Student *insert(struct Student *head,struct Student *new_student); /*insert函数声明,功能:实现向现有链表中插入一个结点或覆盖相同学号的数据*/
struct Student *sort(struct Student *head); /*sort函数声明,功能:对链表中的数据按照平均分高低排序*/
void view(struct Student *head); /*view函数声明,功能:实现显示现有链表的全部数据*/
void writeDat(struct Student *head); /*readDat函数声明,功能:实现将输入的学生成绩写入到文件中保存*/
struct Student *readDat(); /*writeDat函数声明,功能:从文本文件Student.txt中导入已有学生成绩*/
char mark_grade(struct Student *p); /*mark_grade函数声明,功能:根据平均分给出等级评定*/
void total_and_aver(struct Student *p); /*total_and_aver函数声明,功能:计算总分和平均分*/

int main()

struct Student *head,*new_student;
long del_num;
int debug_i=0;
char control1,control2;
system("@title 学生成绩统计程序");
system("@color 1F");
printf("这个程序用于输入和编辑学生成绩\n");
does1:
printf("\n下面请选择:\n如果要打开已有的数据文件来查看或继续编辑,输入:1\n要建立一个新的数据文件,输入:2\n退出,输入:3\n");
control1=getchar();
FFLUSH;
switch (control1)

case '1':head=readDat();PAUSE;break;
case '2':head=create();break;
case '3':PAUSE;return 0;exit(0);
default:puts("输入错误,请重试。\n");PAUSE;CLS;goto does1;

view(head);PAUSE;CLS;
for(FFLUSH;;FFLUSH)

CLS;
puts("下面要进行什么操作?\n要查看现在的全部数据,输入:1\n要删除其中某学生的数据,输入:2\n要插入新的学生数据或修改已有学生的数据,输入:3\n把现有的数据写入文件Student.txt保存,输入:4\n不进行任何操作,退出,输入:5\n");
control2=getchar();
switch (control2)

case '1':view(head);PAUSE;continue;
case '2':puts("输入要删除的学生的学号:\n");scanf("%ld",&del_num);head=del(head,del_num);PAUSE;continue;
case '3':new_student=(struct Student *)malloc(LEN);puts("输入要插入新的学生的学号或要修改的学生的学号:\n");scanf("%ld",&new_student->num);puts("输入此学生成绩:\n英语:");scanf("%f",&new_student->score.english);puts("数学:");scanf("%f",&new_student->score.math);puts("计算机:");scanf("%f",&new_student->score.computer);total_and_aver(new_student);head=insert(head,new_student);PAUSE;continue;
case '4':writeDat(head);PAUSE;continue;
case '5':PAUSE;return 0;exit(0);
default:puts("输入错误,请重试。\n");PAUSE;continue;


puts("\n任务完成,程序即将退出\n");
PAUSE;
return 0;


/*接下一楼*/
参考技术B 循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习

php观

php主要用于三个领域

1、服务器端脚本

这是php最传统,最主要的目标领域。可以用来完成其他CGI程序能够完成的工作。如:收集表单数据、生成动态网页或者发送/接收Cookies。

2、命令行脚本

可以编写一个脚本,并且不需要任何服务器或浏览器来运行它,通过这种方式,仅仅只需要php解析器来执行。这种用法对于依赖cron(UNIX或者Linux环境)或者Task Scheduler(Windows环境)的日常运行的脚本来说是理想的选择,这些脚本也可以用来处理简单的文本。

3、编写桌面程序

可以利用PHP-GTK来编写,这是PHP的一个扩展,在通常发布的PHP包中并不包含它。

 

php支持很大范围的数据库:Adabas D、dBase、Empress、FilePro(只读)、Hyperwave、IBM DB2、Informix、Ingres、InterBase、FrontBase、mSQL、Direct MS-SQL、MySQL、ODBC、Oracle(OCI7和OCI8)、Ovrimo、PostgreSQL、SQLite、Soild、Sybase、Velocis、UNIX dbm

同时还有一个DBX扩展库,使得可以自由地使用该扩展库支持的任何数据库。另外,php还支持ODBC,可以连接任何其他支持该世界标准的数据库。

 

php支持的协议服务:LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(windows环境)等不计其数的协议服务。还可以开放原始网络端口,使得任何其他的协议能够协同工作。Php支持和所有Web开发语言之间的WDDX复杂数据交换。关于相互连接,PHP已经支持了对Java对象的即时连接,并且可以将它们自由地用作PHP对象。甚至可以用我们的CORBA扩展库来访问远程对象。

 

php具有极其有效的文本处理特性,支持从POSIX扩展或者Perl正则表达式到XML文档解析。为了解析和访问XML文档,PHP4支持SAX和DOM标准,也可以使用XSLT扩展库来转换xml文档。php5基于强健的libxm2标准化了所有的XML扩展,并添加了SimpleXml和XMLReader支持,扩展了其在XML方面的功能。

 

如果将PHP用于电子商务领域,会发现其中的Cybercash支付、CyberMUT、VeriSign Payflow Pro,以及MCVE函数对于在线交易程序来说是非常有用的。另外,还有许多其他有趣的扩展库。如,mnoGoSearch搜索引擎函数、IRC网关函数、多种压缩工具(gzip、bz2)、日历转换、翻译等。

 

以上是关于用C语言编写学生信息管理程序(给出五个主要函数就OK啦!)的主要内容,如果未能解决你的问题,请参考以下文章

C语言学生管理系统中有点疑问

用C语言编写

php观

一个简单的SOCKET程序的数据包结构和封解包函数

用c语言程序设计一个学生通讯录系统

科技论文中缩略语的用法