问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言设计 学生学籍系统

发布网友 发布时间:2022-04-15 20:32

我来回答

2个回答

热心网友 时间:2022-04-15 22:01

#include "stdio.h" 
#include "stdlib.h" 
#include "string.h" 
int shoudsave=0; /* */ 
struct student 

char num[10];/* 学号 */ 
char name[20]; 
char sex[4]; 
char yuan; 
int ban; 
char neartime[10];/* 最近更新时间 */ 
}; 

typedef struct node 

struct student data; 
struct node *next; 
}Node,*Link; 

void menu() 

printf("********************************************************************************"); 
printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n"); 
printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n"); 
printf("\t5保存学生资料\t\t\t\t\t0退出系统\n"); 
printf("********************************************************************************\n"); 


void printstart() 

printf("-----------------------------------------------------------------------\n"); 

void Wrong() 

printf("\n=====>提示:输入错误!\n"); 


void Nofind() 

printf("\n=====>提示:没有找到该学生!\n"); 


void printc() /* 本函数用于输出中文 */ 

printf("学号\t   姓名        性别   学院      班级\n"); 


void printe(Node *p)/* 本函数用于输出英文 */ 

printf("%-12s%s\t%s\t%c\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.yuan,p->data.ban); 


Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */ 

Node *r; 
if(strcmp(nameornum,"num")==0) /* 按学号查询 */ 

r=l->next; 
while(r!=NULL) 

if(strcmp(r->data.num,findmess)==0) 
return r; 
r=r->next; 


else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */ 

r=l->next; 
while(r!=NULL) 

if(strcmp(r->data.name,findmess)==0) 
return r; 
r=r->next; 


return 0; 


void Add(Link l) /* 增加学生 */ 

Node *p,*r,*s; 
char num[10]; 
r=l; 
s=l->next; 
while(r->next!=NULL) 
r=r->next; /* 将指针置于最末尾 */ 
while(1) 

printf("请你输入学号(以'0'返回上一级菜单:)"); 
scanf("%s",num); 
if(strcmp(num,"0")==0) 
break; 
while(s) 

if(strcmp(s->data.num,num)==0) 

printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num); 
printstart(); 
printc(); 
printe(s); 
printstart(); 
printf("\n"); 
return; 

s=s->next; 


p=(Node *)malloc(sizeof(Node)); 

strcpy(p->data.num,num); 
printf("请你输入姓名:"); 
scanf("%s",p->data.name); 
getchar(); 
printf("请你输入性别:"); 
scanf("%s",p->data.sex); 
getchar(); 
printf("请你输入学院:"); 
scanf("%c",&p->data.yuan); 
getchar(); 
printf("请你输入班级:"); 
scanf("%d",&p->data.ban); 
getchar(); 
/* 信息输入已经完成 */ 
p->next=NULL; 
r->next=p; 
r=p; 
shoudsave=1;  } 



void Qur(Link l) /* 查询学生 */ 

int sel; 
char findmess[20]; 
Node *p; 

if(!l->next) 

printf("\n=====>提示:没有资料可以查询!\n"); 
return; 


printf("\n=====>1按学号查找\n=====>2按姓名查找\n"); 
scanf("%d",&sel); 
if(sel==1)/* 学号 */ 

printf("请你输入要查找的学号:"); 
scanf("%s",findmess); 
p=Locate(l,findmess,"num"); 
if(p) 

printf("\t\t\t\t查找结果\n"); 
printstart(); 
printc(); 
printe(p); 
printstart(); 

else 
Nofind(); 

else if(sel==2) /* 姓名 */ 

printf("请你输入要查找的姓名:"); 
scanf("%s",findmess); 
p=Locate(l,findmess,"name"); 
if(p) 

printf("\t\t\t\t查找结果\n"); 
printstart(); 
printc(); 
printe(p); 
printstart(); 

else 
Nofind(); 

else 
Wrong(); 


void Del(Link l) /* 删除 */ 

int sel; 
Node *p,*r; 
char findmess[20]; 
if(!l->next) 

printf("\n=====>提示:没有资料可以删除!\n"); 
return; 

printf("\n=====>1按学号删除\n=====>2按姓名删除\n"); 
scanf("%d",&sel); 
if(sel==1) 

printf("请你输入要删除的学号:"); 
scanf("%s",findmess); 
p=Locate(l,findmess,"num"); 
if(p) 

r=l; 
while(r->next!=p) 
r=r->next; 
r->next=p->next; 
free(p); 
printf("\n=====>提示:该学生已经成功删除!\n"); 
shoudsave=1; 

else 
Nofind(); 

else if(sel==2) 

printf("请你输入要删除的姓名:"); 
scanf("%s",findmess); 
p=Locate(l,findmess,"name"); 
if(p) 

r=l; 
while(r->next!=p) 
r=r->next; 
r->next=p->next; 
free(p); 
printf("\n=====>提示:该学生已经成功删除!\n"); 
shoudsave=1; 

else 
Nofind(); 

else 
Wrong(); 


void Modify(Link l) 

Node *p; 
char findmess[20]; 
if(!l->next) 

printf("\n=====>提示:没有资料可以修改!\n"); 
return; 

printf("请你输入要修改的学生学号:"); 
scanf("%s",findmess); 
p=Locate(l,findmess,"num"); 
if(p) 

printf("请你输入新学号(原来是%s):",p->data.num); 
scanf("%s",p->data.num); 
printf("请你输入新姓名(原来是%s):",p->data.name); 
scanf("%s",p->data.name); 
getchar(); 
printf("请你输入新性别(原来是%s):",p->data.sex); 
scanf("%s",p->data.sex); 
printf("请你输入新的学院:",p->data.yuan); 
scanf("%c",&p->data.yuan); 
getchar(); 
printf("请你输入新的班级(原来是%d):",p->data.ban); 
scanf("%d",&p->data.ban); 
getchar(); 
printf("\n=====>提示:资料修改成功!\n"); 
shoudsave=1; 

else 
Nofind(); 



void Save(Link l) 

FILE* fp; 
Node *p; 
int flag=1,count=0; 
fp=fopen("c:\\student","wb"); 
if(fp==NULL) 

printf("\n=====>提示:重新打开文件时发生错误!\n"); 
exit(1); 

p=l->next; 

while(p) 

if(fwrite(p,sizeof(Node),1,fp)==1) 

p=p->next; 
count++; 

else 

flag=0; 
break; 


if(flag) 

printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count); 
shoudsave=0; 

fclose(fp); 


void main() 

Link l;/* 连表 */ 
FILE *fp; /* 文件指针 */ 
int sel; 
char ch; 
char jian; 

int count=0; 
Node *p,*r; 
printf("\t\t\t\t学生成绩管理系统\n\t\t\t\t-------建筑电气及智能化0801\n"); 
l=(Node*)malloc(sizeof(Node)); 
l->next=NULL; 
r=l; 

fp=fopen("C:\\student","rb"); 
if(fp==NULL) 

printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n"); 
scanf("%c",&jian); 
if(jian=='y'||jian=='Y') 
fp=fopen("C:\\student","wb"); 
else 
exit(0); 

printf("\n=====>提示:文件已经打开,正在导入记录......\n"); 

while(!feof(fp)) 

p=(Node*)malloc(sizeof(Node)); 
if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */ 

p->next=NULL; 
r->next=p; 
r=p; /* 将该接点挂入连中 */ 
count++; 



fclose(fp); /* 关闭文件 */ 
printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count); 

while(1) 

menu(); 
printf("请你选择操作:"); 
scanf("%d",&sel); 

if(sel==0) 

if(shoudsave==1) 
{ getchar(); 
printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n"); 
scanf("%c",&ch); 
if(ch=='y'||ch=='Y') 
Save(l); 

printf("\n=====>提示:你已经退出系统,再见!\n"); 
break; 

switch(sel) 

case 1:Add(l);break; /* 增加学生 */ 
case 2:Del(l);break;/* 删除学生 */ 
case 3:Qur(l);break;/* 查询学生 */ 
case 4:Modify(l);break;/* 修改学生 */ 
case 5:Save(l);break;/* 保存学生 */ 
case 9:printf("\t\t\t==========帮助信息==========\n");break; 
default: Wrong();getchar();break; 


}

热心网友 时间:2022-04-15 23:19

#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
void look(); /*声明查看函数*/
void save(); /*声明保存函数*/
void search_name(); /*声明按姓名查看函数*/
void search_number(); /*声明按学号查看函数*/
void order(); /*声明排序函数*/
void del(); /*声明删除函数*/
int openl(); /*声明打开函数*/
void welcome(); /*声明我的个人信息函数*/
void type(); /*声明输入函数*/
void see(); /*声明打开并查看文件函数*/
struct student /*定义学生信息的结构体类型*/
{
char num[15]; /*学号*/
char name[20]; /*姓名*/
char sex[4]; /*性别*/
int english; /*英语成绩*/
int math; /*数学成绩*/
int chinese; /*语文成绩*/
float aver; /*平均成绩*/
float sum; /*总成绩*/
}stu[100];
int n; /*声明一个全局变量*/
void main() /*主函数即用户的操作界面*/
{
system("color 1E"); /*设计文本颜色*/
int b,flag=0; /*声明局部变量*/
while(1) /*循环输出以下信息*/
{追问只是一部分么

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何在win10下安装docker? windows(win10)上的docker使用:安装(国内镜像)、操作 win10安装dockerWin10下Docker安装和使用 关于安装配置docker,找不到Hyper-V(win10 家庭版需要配置,专业版不需要... 怎么把微信上的聊天记录转到新手机 怎么把聊天记录转到另一个手机 快递被别人冒领,快递公司有没有责任 洋葱汤洋葱汤 一颗洋葱汤怎么做 一颗洋葱汤怎么做好吃 吉林市医保单位网上申报系统 吉林省国税网上报税报表怎么下载 吉林省国家税务局网上申报纳税人识别号有什么要求 关于吉林省国税网上报税的USBkey驱动安装的问题 进入到吉林省国家税务局网上申报系统的页面之后 222.161.58.86:8080 后面是什么 吉林省国家税务局网上申报期限 没放任何配料的车仔面有酸味,是变质了么? 吉林省地方税务局网上申报.扣款超时怎么办 现在吉林省国家税务局网上申报系统为什么上不去 7—11的车仔面吃上去会不会有酸味? 吉林省国家税务局网上申报的问题 指导小学生哪些识字方法,效果如何 没有放配料的车仔面为什么会有酸味?是变质了吗? 小规模纳税人网上申报流程,吉林省的。 新天籁cd蓝牙pin码怎么匹配 识字写字教学设计怎么制定 手机蓝牙链接车载蓝牙时有ple什么意思 小学二年级的识字应该怎么教会孩子呢? 矮小和微胖体型的女生适合穿哪种韩版衣服 小个子女生穿韩版衣服好不好看 硬盘紧挨着机箱共振声音过大如何解决 普通南孚电池可以再充电继续使用吗? 硬盘跟机箱共振,嗡嗡的响,求解决办法。 医院里iuc是什么吗 南孚可以循环用吗? 普通南孚电池可以再次充电使用吗?谢谢了,大神帮忙啊两个电池要充多少分钟 IUC是什么意思? 南孚电池是否可以用6次? 刚买了一个南孚电池,现在要把里面的电用完再充,还是充满了再用 普通南孚电池可以再次充电使用吗?求大神帮助 ICU什么意思?胃出血拉血意思是大便时发现粪便里有血就去医院检查,医生... 一节5号南孚电池,怎么让它持续放电。 南孚电池在什么上面用过后可以再用 南孚电池如何二次充电?操作流程? 普通南孚电池可以再次充电使用吗?谢谢了,大神帮忙啊 2022年三支一扶报考条件是什么? 三支一扶中支教有什么要求? 报考2021年安徽三支一扶考试,需要满足哪些条件? 计算机专业技能怎么写啊 应聘简历中计算机技能怎么写?