#004 C语言大作业学生管理系统试着做
链表不会用
文件不会使
在这种情况下就边写边做
希望这个月能做完这个作业
#include<stdio.h>
#include<stdlib.h>
#include<string.h> #define StuIdlen 12//学生学号长度
#define StuNamelen 12//学生姓名长度
typedef struct Stu
{
char StuName[StuNamelen];
char StuId[StuIdlen];
int score;
struct Stu* pNext;//下一个指针
}Stu_data; //学生数据类型
//声明链表的头和尾
Stu_data* g_pHead =NULL;
Stu_data* g_pEnd =NULL; //初始化0 //清空列表
void FreeLinkData();
//打印数据
void showStu_data();
//链表头添加一个节点
void HeadAddStu( char *iStuName,char *iStuId,int iscore);//添加学生信息
//查找指定学生
Stu_data* FindStu(char* iStuId);
void insert();
int main()
{
void show_main();//展示功能面板 声明
void AddStu( char *iStuName,char *iStuId,int iscore);//添加学生信息 int chose;
int run =;//永真run
show_main();//调用
while(run)//永真执行操作
{
scanf("%d",&chose);
switch(chose)
{
case :
printf("*****************1.增加学生信息***************************\n");
char iStuName[StuNamelen];
char iStuId[StuIdlen];
int iscore;
printf("输入学生姓名:");
scanf("%s",iStuName);
getchar();
printf("输入学生学号:");
scanf("%s",iStuId);
printf("输入学生成绩:");
scanf("%d",&iscore);
AddStu(iStuName,iStuId,iscore);
printf("*******************增加信息成功***************************\n"); break;
case :
printf("*****************11.增加学生信息(头添加)******************\n");
/*char iStuName[StuNamelen];
char iStuId[StuIdlen];
int iscore;
*/
printf("输入学生姓名:");
scanf("%s",iStuName);
getchar();
printf("输入学生学号:");
scanf("%s",iStuId);
printf("输入学生成绩:");
scanf("%d",&iscore);
HeadAddStu(iStuName,iStuId,iscore);
printf("*******************增加信息成功***************************\n");
//头添加
break;
case :
{ Stu_data* pTemp =NULL;
printf("输入指定学号");
scanf("%s",iStuId);
pTemp=FindStu(iStuId);
if(NULL==pTemp)
{ }
}
case :
printf("*****************9.显示所有的学生的信息*******************\n");
showStu_data();
printf("*******************信息显示成功***************************\n");
break;
case :
printf("*****************0.退出系统*******************************\n");
run=;
break;
case :
show_main();//调用
break;
default:
printf("*****************!.输入错误*******************************\n");
break;
} }
FreeLinkData();
system("PAUSE");
return ;
} void show_main()//展示功能面板 定义
{
printf("*******************学生管理系统***************************\n");
printf("*******************系统功能如下***************************\n");
printf("*****************1.增加学生信息(尾添加)*******************\n");
printf("*****************11.增加学生信息(头添加)******************\n");
printf("*****************111.增加学生信息(指定位置添加)***********\n");
printf("*****************2.查找指定的学生信息*********************\n");
printf("*****************3.修改指定的学生信息*********************\n");
printf("*****************4.保存业主的信息到文件中*****************\n");
printf("*****************5.读取文件中的业主的信息*****************\n");
printf("*****************6.删除指定的学生的信息*******************\n");
printf("*****************7.恢复删除的学生的信息*******************\n");
printf("*****************9.显示所有的学生的信息*******************\n");
printf("*****************10.查看面板******************************\n");
printf("*****************0.退出系统*******************************\n");
printf("**********************************************************\n"); }
void AddStu(char *iStuName,char *iStuId,int iscore)
{ //检验合法性质
if(NULL == iStuName||NULL == iStuId||iscore<)
{
printf("输入学生信息错误");
return ;
}
//逻辑判断-
//创建一个节点 Stu_data* pTemp=malloc(sizeof(Stu_data));
//节点成员附初始值
strcpy(pTemp->StuName,iStuName);
strcpy(pTemp->StuId,iStuId); pTemp->score=iscore;
pTemp->pNext=NULL;
// 接在链表上
if(g_pHead==NULL||g_pEnd==NULL)
{
g_pHead =pTemp;//link
g_pEnd =pTemp;//向后移动
}
else
{
g_pEnd->pNext = pTemp;
g_pEnd=pTemp;
} }
void FreeLinkData() //清空列表
{
Stu_data* pTemp = g_pHead;//记录节点
while(g_pHead !=NULL)
{
g_pHead=g_pHead->pNext;//向后移动了一个 free(pTemp);//删除节点 }
}
void showStu_data()//展示链表 showStu_data();
{
Stu_data* pTemp = g_pHead;
while(pTemp != NULL)
{
printf("学号:%s,姓名:%s,分数:%d\n",pTemp->StuName,pTemp->StuId,pTemp->score);
pTemp=pTemp->pNext;//向后移动了一个
}
}
//链表头添加一个节点
void HeadAddStu( char *iStuName,char *iStuId,int iscore)//添加学生信息
{
//检测合法性
if(NULL == iStuName||NULL == iStuId||iscore < )
{
printf("学生信息输入错误");
return ;
}
//创建一个节点
Stu_data* pTemp = malloc(sizeof(Stu_data));
//成员赋值
strcpy(pTemp->StuName,iStuName);
strcpy(pTemp->StuId,iStuId);
pTemp->score = iscore;
pTemp->pNext = NULL;
if(NULL == g_pHead||NULL == g_pEnd)
{//链表为空
g_pHead = pTemp;
g_pEnd =pTemp; }
else
{
//新节点的下一个指向头先连后断
pTemp->pNext = g_pHead;
g_pHead=pTemp;
}
}
//查找指定学生
Stu_data* FindStu(char* iStuId)//201801013 12356
{
//检测参数合法性
if(NULL == iStuId)
{
printf("学号输入错误");
return NULL;
}
//遍历链表
Stu_data* pTemp=g_pHead;
while(pTemp)
{
if(==strcmp(pTemp->StuId,iStuId))
{
return pTemp;
}
pTemp=pTemp->pNext;
}
printf("查无此节点");
return NULL;
}
#004 C语言大作业学生管理系统试着做的更多相关文章
- #006 C语言大作业学生管理系统第三天
还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...
- #007 C语言大作业学生管理系统第四天
第四天还差恢复已删除学生功能 对于我来说,已经开始很复杂了. 小细节太重要了,边写边出错 1 #include<stdio.h> #include<stdlib.h> #inc ...
- 【C】C语言大作业——学生学籍管理系统
文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...
- C语言大作业---学生信息管理系统
xxxx信息管理系统 简介 因为大作业规定的踩分项就那么多,为了不浪费时间 + 得分,就写成这样.现在看看,命名不规范,书写风格糟糕,全塞在一个源代码中······ 不过,应付大作业是没问题的 实验报 ...
- BMP图像直方图均衡算法(C语言大作业)
万丈高楼平地起 C语言大作业 一.学习笔记篇 1.学习MarkDown MarkDown注重写作本身,而非花俏的界面 编辑器:vscode 插件:Markdown,Markdown Preview 2 ...
- 从零开始的C程序设计大作业——学生成绩管理系统
前言 学生成绩管理系统可以说是C语言程序设计的结课的必备大作业了.花了些时间,费了些头发肝了下,完成了两个系统,一个是控制台版本的,另一个用easyx图形库进行了优化. 先放出完成后的演示图片占个坑. ...
- C++项目作业 学生管理系统
/*Student.h*/#pragma once #include<string.h> using namespace std; #include<string> class ...
- 大一上C语言期末大作业-成绩管理系统
都过了半年的作业了,觉得做过去得留下点什么,所以整理了代码发一下博客. 声明:程序在DevC++下用c文件模式可以正常编译使用.(控制台程序) 程序结构:
- c++大作业--学籍管理系统--
1.题目描写叙述 学籍管理系统: 依据信息管理系统的业务流程.要求以及所要实现的目标,完毕下面功能: (1)建立学生档案的管理和维护.实现计算机自己主动化管理体制. (2)建立学生成绩管理机制,在计算 ...
随机推荐
- linux 常用命令集合-命令导图
这几天画了几张导图,自己熟悉命令,并记录总结一下,还有很多没写上去,在慢慢完善把. 1.帮助命令 2.文件搜索命令 3.用户管理 4.权限管理 5.文件处理类 6.压缩解压 7.网络配置类 8.关机重 ...
- python模块之xml
xml模块 xml结构 xml是种实现不同语言或程序之间进行数据交换的协议,跟json差不多,但没json使用简单.但是因为历史遗留问题,至今很多行业依然使用xml这种数据格式. xml的格式如下,是 ...
- C#通过虚方法实现方法重写—多态。
class Program { //希望person存的是哪个类的对象就调用哪个类的方法 //第一步 将父类中对应方法家virtual关键字 变为虚方法(子类可重写) //子类中方法用override ...
- redirection in linux
2>&1 # Redirects stderr to stdout. # Error messages get sent to same place as standard output ...
- virtualbox中 Ubuntu挂载共享文件夹
1. 进入 /mnt 目录 2. 新建目录 share 3. sudo mount -t vboxsf share /mnt/share(其中的第一个share是共享文件夹的名字) 4. 成功
- 使用EF保存数据时 提示: 其他信息: 对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。
错误提示: 解决方法: →使用try...catch捕获→在catch所在行打上断点,运行,对ex添加监视或者运行到ex的时候 按Shift+f9天假快速监视→在EntityValidationEr ...
- laravel表单验证
效果展示: 代码 实现: 后台: use Validator; public function login() { if($input = Input::all()){ //验证提交的 ...
- Django-Oscar小记:如何使用高版本Django开发网页的SEO模块
在使用Google搜索Django的SEO插件时,很多插件都没有更新到Python3.x,有的插件更新到了Python的高版本,但是不适用于Django的2.x. Django在升级到版本2.x的时候 ...
- loj#6031. 「雅礼集训 2017 Day1」字符串(SAM 广义SAM 数据分治)
题意 链接 Sol \(10^5\)次询问每次询问\(10^5\)个区间..这种题第一感觉就是根号/数据分治的模型. \(K\)是个定值这个很关键. 考虑\(K\)比较小的情况,可以直接暴力建SAM, ...
- Android项目实战(四十):Andoird 7.0+ 安装APK适配
首先看一下安装apk文件的代码 /** * 通过隐式意图调用系统安装程序安装APK */ public static void install(Context context) { Intent in ...