C语言学生信息管理系统(学生信息管理系统编程(c语言))

2024-05-05 18:20:06 :24

c语言学生信息管理系统(学生信息管理系统编程(c语言))

本篇文章给大家谈谈c语言学生信息管理系统,以及学生信息管理系统编程(c语言)对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

学生信息管理系统编程(c语言)

挺好的一个题目啊 但我可不愿意帮人写作业网上很多类似的,你可以参考下:#include 《stdio.h》#include 《string.h》 struct student { char name; float math; float chinese; float english; float average;}; int MenuChoice(void);int EnterAccount(void);void Enter(struct student *fst);void Amend(struct student *src);void Delete(struct student *next);void Print(struct student *out); main(){ struct student one = {0}, *look = one; int menu, t; while ((menu = MenuChoice()) != 0) if (menu 》= 1 && menu 《= 4 && (t = EnterAccount())) { look = one + t; switch (menu) { case 1: Enter(look); break; case 2: if (strcmp(look-》name, "")) printf("学号:%d\n姓名: %s\n语文成绩: %.1f\n数学成绩:%.1f\n英语成绩: %f\n平均"成绩:%.1f\n", t, look-》name, look-》chinese, look-》math, look-》english, look-》average); else printf("对不起,该学号不存在!\n"); break; case 3: Amend(look); break; case 4: Delete(look); break; } } else if (menu == 5) Print(one); else printf("错误的请求!\n"); return 0;} int MenuChoice(void) { int choice; printf("请选择:\n" "1 - 新建学生信息\n" "2 - 查找学生信息\n" "3 - 修改学生信息\n" "4 - 删除学生信息\n" "5 - 打印学生信息\n" "0 - 退出\n"); scanf("%d", &choice); return choice;} int EnterAccount(void){ int ret; printf("请输入学号:\n");scanf("%d", &ret); if (ret 》= 1 && ret 《= 100) return ret -1; return 0;} void Enter(struct student *fst){ printf("请输入学生姓名、语文成绩、数学成绩、英语成绩和平均成绩\n"); scanf("%s%f%f%f%f", fst-》name, &fst-》chinese, &fst-》math, &fst-》english, &fst-》average);} void Amend(struct student *src){ int t; printf("请选择:\n" "1 - 修改学生姓名\n" "2 - 修改学生语文成绩\n" "3 - 修改学生数学成绩\n" "4 - 修改学生英语成绩\n" "5 - 修改学生平均成绩\n"); scanf("%d", &t); switch (t) { case 1: printf("请输入学生的新名字\n"); scanf("%s", src-》name); break; case 2: printf("请输入学生新的语文成绩\n"); scanf("%f", &src-》chinese); break; case 3: printf("请输入学生新的数学成绩\n"); scanf("%f", &src-》math); break; case 4: printf("请输入学生新的英语成绩\n"); scanf("%f", &src-》english); break; case 5: printf("请输入学生新的平均成绩\n"); scanf("%f", &src-》average); break; } } void Delete(struct student *next){ strcpy(next-》name, ""); next-》math = next-》english = next-》chinese = next-》average = 0.0;} void Print(struct student *out){ struct student *up; for (up = out; out 《 &up; out++) if (strcmp(out-》name, "")) printf("学号:%d\n姓名: %s\n语文成绩: %.1f\n数学成绩:%.1f\n英语成绩: %.1f\n平均成绩:%.1f\n", out-up + 1, out-》name, out-》chinese, out-》math, out-》english, out-》average);}

如何用c语言制作一个学生信息管理系统,要求以文件形式保存

#include《stdio.h》

#include《stdlib.h》

#include《string.h》

//链表结点结构体声明

typedef struct subjects

{

char name;

float score;

}sub;

typedef struct student

{

int num;

char name;

sub  subject;

struct student* next;

}stu,*pstu;

#define SIZE sizeof(stu)

//函数申明

pstu LoadInfo();

void PrintMenu();

pstu AddStu(pstu );

pstu DeleStu(pstu );

pstu RwrStu(pstu );

void FindStu(pstu , char );

void Count(pstu ,char * ,float ,float );

void Rank(pstu ,char * );

void SaveQuit(pstu );

 //创建菜单,进入选择循环

while(1)

{

PrintMenu();

printf("请输入您的选择编号:");

scanf("%d",&n);

getchar();                      

switch(n)

{

case 1: 

{

system("cls");             

j=0;

while(4!=j)         

{

printf("欢迎进入信息管理版块!\n\n");

printf("\025 1、添加学生\n");

printf("\025 2、删除学生\n");

printf("\025 3、修改学生信息\n");

printf("\025 4、返回\n");

printf("请输入您的选择编号:\n");

scanf("%d",&j);

getchar();

if     ( 1 == j) head = AddStu(head);       

else if( 2 == j) head = DeleStu(head);      

else if( 3 == j) head = RwrStu(head);       

else if( 4 == j) ;

else printf("输入有误,请重新输入!\n");

}

case 2:

{

//信息查询

system("cls");

printf("欢迎进入信息查询版块!\n");

printf("请输入要查询的学生编号:");

scanf("%d",&j);

getchar();

//printf("%d\n",j);          //检测输入是否成功,调试程序用

FindStu(head,j);            //查询并输出

printf("\n请输入回车键返回主菜单!");

getchar();

system("cls");

break;

}

扩展资料:

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

C语言 学生管理系统

#include #include #include #include #define max 20 typedef struct student //学生 { char sno; // 学号 char sname; //姓名 char sex; //性别 char age; //年龄 char depart; //系 char classs; //班 char grade; //年级 struct student* next; } student; student* head; int LogOn() //登录模块,已实现输入密码不回显,如果中途发现输错某几位,可退格键重输 { char username; printf("\n请输入用户名:"); scanf("%s",username); printf("\n请输入密码(最多15位):"); //开始以不回显且支持退格方式获取输入密码 int i=0; while((i》=0)&&(password=getch())!=13)//条件i》=0是用于限制退格的范围 { if(password==’\b’)//对退格键的处理 { printf("%c%c%c",’\b’,’\0’,’\b’); i=i-2; } else printf("*"); } password=’\0’; //已获取密码。验证用户身份 if(!strcmp(username,"zhang")&&!strcmp(password,"8147086")) { printf("\n登录成功!"); return 1; } else return 0; } void regist() { char ch; student *s,*ptr; //s用来建新结点,ptr用来暂存头结点 do { s=(student*)malloc(sizeof(student)); // 新建一个学生结点 printf("\n开始注册..."); //开始注册 printf("\n请输入该学生的学号:"); scanf("%s",s-》sno); printf("\n请输入该学生的姓名:"); scanf("%s",s-》sname); printf("\n请输入该学生的性别:"); scanf("%s",s-》sex); printf("\n请输入该学生的年龄:"); scanf("%s",s-》age); printf("\n请输入该学生的系:"); scanf("%s",s-》depart); printf("\n请输入该学生所在的班:"); scanf("%s",s-》classs); printf("\n请输入该学生所在的年级"); scanf("%s",s-》grade); ptr=head; head=s;//将新结点插入队头 s-》next=ptr; fflush(stdin); printf("\n请问是否继续注册?(Y/N)"); scanf("%c",&ch); }while(ch==’Y’||ch==’y’); return; } void ElePrint(char str) //输出单个元素 { if(str==NULL) exit(0); printf("%s",str); for(unsigned int i=0;i《12-strlen(str);i++) printf(" ");//为了对齐输出,需插入一些空格 return; } int LinePrint(student *ptr) //输出一行 { if(ptr==NULL) //检查传进来的指针 return 0; printf("\n"); ElePrint(ptr-》sno); ElePrint(ptr-》sname); ElePrint(ptr-》age); ElePrint(ptr-》sex); ElePrint(ptr-》depart); ElePrint(ptr-》classs); ElePrint(ptr-》grade); return 1; } void print() //输出全部学生信息 { student *ptr=head; printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(ptr) { LinePrint(ptr); ptr=ptr-》next; } printf("\n"); return; } void search()//查询模块 { int method;//查询方式 char no; //用来接收查询关键字 while(1) { printf("\n请选择查询方式"); printf("\n1.按学号查询"); printf("\n2.按姓名查询"); printf("\n3.按所在系查询"); printf("\n4.按所在班级查询"); printf("\n5.按所在年级查询"); printf("\n6.打印全部学生信息"); printf("\n7.返回主菜单\n"); scanf("%d",&method); student *p=head,*temp; switch(method) { case 1: printf("\n请输入要查询的学号:"); scanf("%s",no); while(p) { if(!strcmp(p-》sno,no)) break; else { temp=p; p=p-》next; } } printf("\n学号 姓名 年龄 性别 系 班 年级 "); LinePrint(p); break; case 2: printf("\n请输入要查询的姓名:"); scanf("%s",name); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p-》sname,name)) LinePrint(p); p=p-》next; } break; case 3: printf("\n请输入学生所在的系:"); scanf("%s",departm); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p-》depart,departm)) LinePrint(p); p=p-》next; } break; case 4: printf("\n请输入学生所在的班:"); scanf("%s",clss); printf("\n请输入学生所在的年级:"); scanf("%s",grades); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p-》classs,clss)&&!strcmp(p-》grade,grades)) LinePrint(p); p=p-》next; } break; case 5: printf("\n请输入学生所在的年级:"); scanf("%s",grades); printf("\n学号 姓名 年龄 性别 系 班 年级 "); while(p) { if(!strcmp(p-》grade,grades)) LinePrint(p); p=p-》next; } break; case 6: print(); break; case 7: return; default: printf("很抱歉,暂无此查询方式!"); break; } } } void modify()//修改学生信息 { char num; student *p=head; printf("\n请输入要修改的学生的学号:"); scanf("%s",num); while(p) { if(!strcmp(p-》sno,num)) break; else p=p-》next; } if(p==NULL) { printf("\n错误:没有此学生的信息!\n"); return; } LinePrint(p); printf("\n请输入要修改的该学生的信息:"); printf("\n1.姓名"); printf("\n2.性别"); printf("\n3.年龄"); printf("\n4.所在的系"); printf("\n5.所在的班"); printf("\n6.所在的年级"); char name1; int select; fflush(stdin); scanf("%d",&select); printf("\n请输入新的信息:"); switch(select) { case 1: scanf("%s",name1); strcpy(p-》sname,name1); break; case 2: scanf("%s",sex1); strcpy(p-》sex,sex1); break; case 3: scanf("%s",age1); strcpy(p-》age,age1); break; case 4: scanf("%s",depart1); strcpy(p-》depart,depart1); break; case 5: scanf("%s",class1); strcpy(p-》classs,class1); break; case 6: scanf("%s",grade1); strcpy(p-》grade,grade1); break; default: printf("\nError!"); break; } LinePrint(p); return; } void del()// 删除某学生的信息 { student *p=head,*temp=head,*s; char num1; printf("\n请输入要删除的学生的学号:"); scanf("%s",num1); while(p)//查找该学生所在的结点 { if(!strcmp(p-》sno,num1)) break; else { temp=p; p=p-》next; } }//while if(!p) { printf("\n不存在此学生的信息."); return; } LinePrint(p);//输出该学生的信息 printf("\n请问真的要删除该学生的信息吗?(Y/N)"); char ch; fflush(stdin); scanf("%c",&ch); if(ch==’Y’||ch==’y’) { s=p-》next; temp-》next=s; free(p); printf("\n已经删除该学生的信息."); } return; } void sort() //排序模块。将学生记录按学号从小到大排列。用起泡排序算法实现 { student *ptr,*s=head,*p; int count=0,count1; while(s)//统计链表结点个数 { count++; s=s-》next; } for(int i=1;i《count;i++) { ptr=head; p=NULL; count1=count-i; //用来控制每轮起泡排序的终点,即每次把学号最小的结点移到倒数第i个结点 while(ptr&&ptr-》next&&(count1--)) { if(strcmp(ptr-》sno,ptr-》next-》sno)》0) { s=ptr-》next; ptr-》next=s-》next; if(p==NULL) //ptr处于队头时 head=s; else p-》next=s; s-》next=ptr; p=s; } else { ptr=ptr-》next; if(p==NULL) //ptr处于队头时 p=head; else p=p-》next; } } } return; } void quit() { char ch; printf("\n真的要退出?(Y/N)"); fflush(stdin); scanf("%c",&ch); if(ch==’Y’||ch==’y’) exit(0); return; } int main() { int option; printf("\nCopyright@2005 KongXinCai All rights reserved."); printf("\n欢迎使用学生信息管理系统!\n"); //登录模块 int icheck=0; while(icheck《3) { if(LogOn()==0) icheck++; else break; } if(icheck==3) { printf("\n连续登录三次不成功,退出!"); exit(0); } //系统界面 while(1) { printf("\n\n请选择需要的服务:"); printf("\n1.注册"); printf("\n2.查询"); printf("\n3.修改"); printf("\n4.删除"); printf("\n5.排序"); printf("\n7.求平均");printf("\n6.退出\n"); scanf("%d",&option); switch(option) { case 1: regist(); break; case 2: search(); break; case 3: modify(); break; case 4: del(); break; case 5: sort(); break; case 6: quit(); break; } } return 0; }

学生信息管理系统(C语言)

#include 《stdio.h》#include 《malloc.h》#include 《string.h》#include 《io.h》#define NULL 0#define LEN sizeof(struct student)#define FILE_DATA_PATH "c:\student.txt" struct student { long int num; char name; int age; char sex; char birthday; char address; long int tele_num; char E_mail; struct student *next;};int TOTAL_NUM = 0;struct student *head = NULL;void welcome();void mainmenu();void record();void insert(struct student *stu);void display(struct student *stu);void displayAll();void query();void query_by_num();void query_by_name();void readData();void writeData();void freeAll();void del();void change();void devise(struct student *p);int main(){ char userName; char userPWD; int i; welcome(); for(i = 0; i 《 3; i++) { printf("\n管理员初始用户名和密码均为admin\n"); printf("请输入您的用户名:"); scanf("%s", userName); printf("\n请输入您的密码:"); scanf("%s", userPWD); if ((strcmp(userName,"admin")==0) && (strcmp(userPWD,"admin")==0)) { //用户名和密码正确,显示主菜单 mainmenu(); break; } else { if (i 《 2) { //用户名或密码错误,提示用户重新输入 printf("用户名或密码错误,请重新输入!"); } else { //连续3次输错用户名或密码,退出系统。 printf("您已连续3次将用户名或密码输错,系统将退出!"); } } } return 0;}//显示欢迎信息void welcome(){ printf("+---------------------------+\n"); printf("| |\n"); printf("| 欢迎使用学生信息管理系统 |\n"); printf("| |\n"); printf("+---------------------------+\n");}//系统主菜单void mainmenu(){ int choice; choice = -1; readData(); printf("\n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n"); do { printf("\n\n\n"); printf("\t\t\t--------------------------------\n"); printf("\t\t\t+ 学生信息管理系统 |\n"); printf("\t\t\t--------------------------------\n"); printf("\t\t\t+ ----录入学生信息 |\n"); printf("\t\t\t+ ----浏览学生信息 |\n"); printf("\t\t\t+ ----查询学生信息 |\n"); printf("\t\t\t+ ----删除学生信息 |\n"); printf("\t\t\t+ ----修改学生信息 |\n"); printf("\t\t\t+ ----退出系统 |\n"); printf("\t\t\t+*·*·*·*·*·*·*·*·*·*·|\n"); printf("\t\t\t--------------------------------\n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) { case 0: writeData(); freeAll(); exit(0); case 1: record(); break; case 2: displayAll(); break; case 3: query(); break; case 4: del(); break; case 5: change(); break; default: printf("\n无效选项!"); break; } } while(choice != 0);}//录入学生信息void record(){ struct student *p0; p0 = (struct student *)malloc(LEN); printf("请输入学生的学号:"); scanf("%ld",&p0-》num); printf("请输入学生的姓名:"); scanf("%s",p0-》name); printf("请输入学生的年龄:"); scanf("%d",&p0-》age); printf("请输入学生的性别:"); scanf("%s",p0-》sex); printf("请输入学生的出生年月:"); scanf("%s",p0-》birthday); printf("请输入学生的地址:"); scanf("%s",p0-》address); printf("请输入学生的电话:"); scanf("%ld",&p0-》tele_num); printf("请输入学生的E-mail:"); scanf("%s",p0-》E_mail); insert(p0); printf("该学生的信息为:\n"); printf("-------------------------------------------------------------------------------"); printf("学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t电话\tE-mail\n"); display(p0);}void insert(struct student *stu){ struct student *p0, *p1, *p2; p1 = head; p0 = stu; if(head == NULL) { head = p0; p0-》next = NULL; } else { while((p0-》num 》 p1-》num)&&(p1-》next != NULL)) { p2 = p1; p1 = p1-》next; } if(p0-》num 《= p1-》num) { if(head == p1) head = p0; else p2-》next = p0; p0-》next = p1; } else { p1-》next = p0; p0-》next = NULL; } } TOTAL_NUM++;}void display(struct student *p){ printf("%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", p-》num, p-》name, p-》age, p-》sex, p-》birthday, p-》address, p-》tele_num, p-》E_mail);}//浏览学生信息void displayAll(){ struct student *p; printf("学生总数:%d\n", TOTAL_NUM); p = head; if(head != NULL) { printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n"); printf("-------------------------------------------------------------------------------"); do { display(p); p = p-》next; } while(p != NULL); } printf("\n");}//查询学生信息void query(){ int choice; choice = -1; do { printf("\n"); printf("+--------------------+\n"); printf("| 按学号查询 请按 1 |\n"); printf("| 按姓名查询 请按 2 |\n"); printf("| 取消 请按 0 |\n"); printf("+--------------------+\n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) { case 0: return; case 1: query_by_num(); break; case 2: query_by_name(); break; default: printf("\n无效选项!"); break; } } while(choice != 0);}//按学号查询学生信息void query_by_num(){ int num; struct student *p1; printf("请输入学生的学号:"); scanf("%ld", #); if(head==NULL) { printf("无学生记录!\n"); return; } p1=head; while(num!=p1-》num && p1-》next!=NULL) p1=p1-》next; if(num == p1-》num) { printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n"); printf("-------------------------------------------------------------------------------"); display(p1); } else printf("没有该学生记录,请核对!");}//按姓名查询学生信息void query_by_name(){ char name; struct student *p1; printf("请输入学生的姓名:"); scanf("%s", name); if(head==NULL) { printf("无学生记录!\n"); return; } p1=head; while(strcmp(name, p1-》name) && p1-》next!=NULL) p1=p1-》next; if(!strcmp(name, p1-》name)) { printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n"); printf("-------------------------------------------------------------------------------"); display(p1); } else printf("没有该学生记录,请核对!");}//写入文件void writeData(){ FILE* fp;//文件指针 struct student *p; fp = fopen(FILE_DATA_PATH, "w"); if (!fp) { printf("文件打开错误!"); return; } fprintf(fp,"%d\n", TOTAL_NUM); for(p = head; p!= NULL; p= p-》next) { fprintf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", p-》num, p-》name, p-》age, p-》sex, p-》birthday, p-》address, p-》tele_num, p-》E_mail); } fclose(fp); }void freeAll(){ struct student *p1, *p2; p1=p2=head; while(p1) { p2=p1-》next; free(p1); p1=p2; } }//读取文件void readData(){ FILE* fp;//文件指针 struct student *p1, *p2; fp = fopen(FILE_DATA_PATH, "r"); if (!fp) { printf("文件打开错误!"); return 0; } fscanf(fp,"%d\n", &TOTAL_NUM); head = p1 = p2 = (struct student *)malloc(LEN); fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", &p1-》num, p1-》name, &p1-》age, p1-》sex, p1-》birthday, p1-》address, &p1-》tele_num, p1-》E_mail); while(!feof(fp)) { p1 = (struct student *)malloc(LEN); fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", &p1-》num, p1-》name, &p1-》age, p1-》sex, p1-》birthday, p1-》address, &p1-》tele_num, p1-》E_mail); p2-》next = p1; p2 = p1; } p2-》next = NULL; fclose(fp);}//删除学生信息void del(){ struct student *p1, *p2; long int num; if(head == NULL) { printf("无学生记录!\n"); return; } printf("请输入您要删除的学生的学号:"); scanf("%ld", #); p1 = head; while(num != p1-》num && p1-》next != NULL) { p2 = p1; p1 = p1-》next; } if(num == p1-》num) { if(p1 == head) head = p1-》next; else p2-》next = p1-》next; free(p1); TOTAL_NUM--; } else printf("没有该学生记录,请核对!\n");}//修改学生信息void change(){ struct student *p1, *p2; long int num; if(head == NULL) { printf("无学生记录!\n"); return; } printf("请输入您要修改的学生的学号:"); scanf("%ld", #); p1 = head; while(num != p1-》num && p1-》next != NULL) { p2 = p1; p1 = p1-》next; } if(num == p1-》num) devise(p1); else printf("没有该学生记录,请核对!\n");}void devise(struct student *p){ int choice; choice = -1; do { printf("请选择您要修改的学生的信息内容:\n"); printf("+----------------------+\n"); printf("| 姓名 请按 1 |\n"); printf("| 年龄 请按 2 |\n"); printf("| 性别 请按 3 |\n"); printf("| 出生年月 请按 4 |\n"); printf("| 地址 请按 5 |\n"); printf("| 电话 请按 6 |\n"); printf("| E-mail 请按 7 |\n"); printf("| 取消 请按 0 |\n"); printf("+----------------------+\n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) { case 0: return; case 1: printf("请输入新姓名:"); scanf("%s", p-》name); break; case 2: printf("请输入新年龄:"); scanf("%d", &p-》age); break; case 3: printf("请输入新性别:"); scanf("%s", p-》sex); break; case 4: printf("请输入新出生年月:"); scanf("%s", p-》birthday); break; case 5: printf("请输入新地址:"); scanf("%s", p-》address); break; case 6: printf("请输入新电话:"); scanf("%ld", &p-》tele_num); break; case 7: printf("请输入新E-mail:"); scanf("%s", p-》E_mail); break; default: printf("\n无效选项!"); break; } } while(choice != 0);}

利用单链表实现学生信息的管理(用C语言描述)

太简单,懒得打了。自己把线性表好好看看,这是单链表。先定义一个结构体,初始化线性表,instlinklist,deletelinklist,searchlinklist。。。

关于c语言学生信息管理系统和学生信息管理系统编程(c语言)的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

c语言学生信息管理系统(学生信息管理系统编程(c语言))

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.