资源简介
内含源码(有详细注释) 以及 最后的实验报告成品
程序说明:
编写的是一个菜单驱动的学生成绩管理系统。
•能输入并显示n个学生的m门考试科目的成绩,总分和平均分。
•能按总分高低进行排序
•任意输入一个学号,能显示学生的姓名,各门功课的成绩
•在使用过程中,用户如有计算特定成绩的需要,程序中附有简易计算器可以使用
代码片段和文件信息
#include
#include
#include
#include
#define COURSENUM 20 /*科目数量的最大值*/
struct student
{
int number; /*定义每个学生的学号变量*/
char name[20]; /*定义每个学生的姓名变量*/
int score[COURSENUM]; /*定义每个学生m门成绩的变量*/
int sum; /*定义每个学生的总成绩变量*/
float aver; /*定义每个学生的平均成绩变量*/
struct student *next; /*指针的链域*/
};
typedef struct student STU; /*给struct student定义一个新名字 STU*/
int Menu(void); /*函数声明:输出菜单的函数*/
int Ascending(int aint b); /*函数声明:决定数据是否按升序排列(aint Descending(int aint b); /*函数声明:决定数据是否按降序排列(a>b为真)*/
void IntSwap(int *pt1int *pt2); /*函数声明:整型数据交换*/
void CharSwap(char *pe1char *pt2); /*函数声明:字符型数据交换*/
void FloatSwap(float *pt1float *pt2); /*函数声明:实型数据交换*/
STU *AppendNode(STU *headconst int m); /*函数声明:创建新的节点*/
STU *DeleteNode(STU *headint nodeNum); /*函数声明:找到要删除的节点并删除*/
STU *ModifyNode(STU *headint nodeNumconst int m); /*函数声明:找到要修改的数据对应的节点*/
STU *SearchNode(STU*headint nodeNum); /*函数声明:找到某个节点*/
STU *AppendScore(STU *headconst int m); /*函数声明:输入学生的成绩*/
void TotalScore(STU *headconst int m); /*函数声明:计算学生的平均成绩*/
void PrintScore(STU *headconst int m); /*函数声明:输出学生成绩*/
STU *DeleteScore(STU*headconst int m); /*函数声明:删除学生成绩*/
void ModifyScore(STU*headconst int m); /*函数声明:修改学生成绩*/
void SortScore(STU*headconst int mint (*compare)(int aint b)); /*函数声明:对学生成绩进行排序*/
void SearchScore(STU *headconst int m); /*函数声明:查找学生成绩*/
void DeleteMemory(STU *head); /*函数声明:释放内存*/
void caculator(void); /*函数说明:一款计算器*/
int main()
{
int ch; /*用户选择的数字*/
int m; /*科目的数量*/
STU *head=NULL; /*定义一个头指针并置空*/
printf(“以下为学生成绩管理程序的示例。我们将会为您展示菜单供您选择\n\n“);
printf(“please input course number(m<20):\t“);
/*提示输入科目数量*/
scanf(“%d“&m);
/*程序开始进行*/
while (1)
{
printf(“请您在菜单中选择选项“);
ch=Menu();
/*调用函数显示菜单并返回用户的选择值*/
switch(ch)
{
case 1:head=AppendScore(headm); /*调用成绩输入函数*/
TotalScore(headm); /*调用函数计算学生成绩的平均值*/
break;
case 2:PrintScore(headm); /*调用成绩显示函数*/
break;
case 3:head=DeleteScore(headm); /*调用成绩删除函数*/
printf(“\nAfter deleted“);
PrintScore(headm); /*成绩删除后显示结果*/
break;
case 4:ModifyScore(headm); /*调用成绩修改函数*/
TotalScore(headm); /*修改完后重新计算成绩平均值*/
printf(“\nafter modified\n“);
PrintScore(headm); /*输出修改后结果*/
break;
case 5:SearchScore(headm); /*调用修改成绩的函数*/
break;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 51687 2012-01-11 14:09 菜单驱动的学生成绩管理系统.docx
文件 24229 2012-01-07 23:37 菜单驱动的学生成绩管理系统.c
----------- --------- ---------- ----- ----
75916 2
- 上一篇:牛顿-柯特斯公式C++实现
- 下一篇:用普里姆(Prim)算法构造最小生成树
相关资源
- LCD驱动芯片ST7701SI SPI接口底层驱动配
- 显示屏操作(stm32f103c8t6(SAN))
- USB CAN Tool 源代码(LabVIEW 2011环境)
- Proteus 8.6仿真STM32F103C6
- atmega128 串口通讯(RS485.c)
- C语言嵌入式Modbus协议栈,支持主站和
- stm32 +w5500 裸机 远程升级 自动dns pi
- 永磁同步电机的FOC控制算法
- arduino I2C设备扫描并串口返回地址(
- OLED驱动源码
- Proteus仿真:LCD液晶屏显示.rar
- STM32 PCB封装库 全系列 全网不好找
- 基于STM32F407的W5500 tcpserver(官网例程
- 步进电机调速原理.c
- tm1650+stm32f103源码(board_tm1650.c)
- 颜色识别形状识别STM103嵌入式代码
- 基于STM32的音频信号采样与FFT分析
- 汽车电子编程规范(Unlock-MISRA C 2012)
- cheat engine 7.2源码
- 基于STM32F103C8T6主控板使用BH1750检测光
- cubeMX设计实现stm32f407上的CAN及485的通
- stm32 BootLoader程序(main.c)
- 新编Windows API参考大全.doc
- CrySearch内存搜索器源码
- com组件(共907页)
- WINcc与海康威视摄像头
- 获取pc上所有网卡信息
- WINCC-C脚本大全
- c#与西门子1500通讯
- json读取(json.c)
评论
共有 条评论