⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8.c

📁 C++开发的高校成绩管理
💻 C
📖 第 1 页 / 共 2 页
字号:
*                        软件课程设计  ->  学生成绩管理程序 
                    通信工程01 级 02 班   姓名: 罗宁      学号:01072054   完成 
日期:04.05.22 
   ┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄ 
┈┄┈┄┈┄┈┄┈┄┈┄┈ 
<实验目的> 
 1、复习大一时学过的 C 语言,与目前学习的 C++ 语言作比较,了解他们各自的优缺点; 
 2、培养查找资料,互相协作的精神。 
<实验参考资料> 
 1、《C++程序设计教程》 钱能 主编   清华大学出版社; 
 2、《C++语言程序设计》 郑丽 傅仕星 编著   清华大学出版社; 
 3、《C程序设计》第二版 谭浩强   清华大学出版社; 
<实验框架图> 
  















<运行环境> 
 本程序在 CPU:AMD Athlon 1700+ 主板:微星 KT3V   内存:现代兼容内存256M DDR  操 
作系统:Windows XP professional +SP1 
 下成功运行。 

<实验心得> 
1、    通过这次程序设计,我对C++有了一个新的认识。然而,从编程思想面的向过程转变到 
面向对象,不是短时间内可以做到的,因此,本程序中还是以 C 语言为主,以 C++ 语言为 
辅; 
2、    程序设计中用到了链表等新的知识,而这些知识过去在课堂上没有学过,因此带来了一 
定的困难。我通过到图书馆、Internet查资料,以及请问同学,基本上得到了解决; 
3、    团结协作的精神在开发程序中至关重要。一个人冥思苦想,不如把问题告诉身边的同学 
,大家一起来想。往往眼前的一个小小的错误,自己怎么都找不到,而身边的同学瞄一眼就能 
发现。经过这次软件设计,我深刻的明白了 1+1>2 的道理。 
*/ 


#include <conio.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <iostream.h> 
#include <stdio.h> 
#include <iomanip.h> 

#define M 1000                    //允许学生档案最大值 
#define N 5                      //学科数 

typedef struct 
  {char name[9];  
   char number[10];   
   float score[N];   
   float aves;   
  }FROMTO; 

void menu()                      //定义系统主菜单 
{ 
    cout<<endl<<endl 
        <<"                           SoQool 学生成绩管理系统                       "< 
<endl<<endl 
        <<"      ┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈┄┈   "< 
<endl<<endl 
        <<"        ① 新增学生档案                                  ★★    ★★    "< 
<endl 
        <<"                                                        ★      ★  ★   "< 
<endl 
        <<"          ② 学生成绩排序 和 及格率统计                   ★★  ★  ★   "< 
<endl 
        <<"                                                        ★  ★  ★  ★   "< 
<endl 
        <<"            ③ 查看学生成绩                              ★★    ★★    "< 
<endl 
        <<"                                                                         "< 
<endl 
        <<"          ④ 导入学生档案               ☆☆      ☆☆      ☆☆   ☆    "< 
<endl 
        <<"                                      ☆  ☆    ☆  ☆    ☆  ☆  ☆     "< 
<endl 
        <<"       ⑤ 学生成绩存档              ☆    ☆  ☆    ☆  ☆    ☆ ☆      "< 
<endl 
        <<"                                   ☆    ☆  ☆    ☆  ☆    ☆ ☆       "< 
<endl 
        <<"     ⑥ 关于本 系 统              ☆    ☆  ☆    ☆  ☆    ☆ ☆        "< 
<endl 
        <<"                                 ☆    ☆  ☆    ☆  ☆    ☆ ☆         "< 
<endl 
        <<"   ⑦ 删除学生档案              ☆    ☆  ☆    ☆  ☆    ☆ ☆          "< 
<endl 
        <<"                             ┄★┄┄★  ★ ┄ ★┄★┄┄★ ★┄┄       "< 
<endl 
        <<"  0 退 出  系 统              ☆  ☆☆  ☆  ☆    ☆  ☆  ☆            "< 
<endl 
        <<"                                ☆☆  ☆  ☆☆      ☆☆   ☆☆☆☆☆☆  "< 
<endl 
        <<endl<<endl; 
} 
  
char *st(int n) 
{ 
    char *ps,start[10]; 
    ps=start; 
    switch(n) 
    { 
        case 0: ps="   ◆ 单 片 机";break; 
        case 1: ps="   ◆ 通信原理";break; 
        case 2: ps="   ◆ 锁相技术";break; 
        case 3: ps="   ◆ 光纤通信";break; 
        case 4: ps="◆ C++程序设计";break; 
        default :ps="为之科目"; 
    } 
 return ps; 
} 
                                                       //新增学生成绩 
void input(FROMTO *p,int *n) 
{int i=0,j; 
 char t_str[20]; 
 if(*n) i=*n; 
 for(;i<M;i++) 
  { if (i>0) 
    { 
 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl 
          <<"            ╔══════════════════════╗"<<endl 
          <<"            ║       要继续增加新的成绩档案吗?(Y/N)?     ║"<<endl 
          <<"            ╚══════════════════════╝" 
          <<endl<<endl<<endl<<endl<<endl<<endl<<endl 
          <<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;  
 if (getch()!=121) break;} 
 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl 
          <<"            ┏━━━━━━━━━━━━━━━━━━━━━━┓"<<endl 
          <<"            ┃           正在增加第"<<setw(2)<<i+1<<"条成绩档案        
    ┃"<<endl 
          <<"            ┗━━━━━━━━━━━━━━━━━━━━━━┛" 
          <<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<< 
endl<<endl<<endl; 
   printf("                ◆ 请输入学生[%d]的姓名 : ",i); 
   gets(p[i].name); 
   printf("           ◆ 请输入学生<%s>的学号 : ",p[i].name); 
   gets(p[i].number); 
       for(j=0;j<N;j++) 
       { 
           printf("                         %s:",st(j)); 
           gets(t_str); 
           p[i].score[j]=(float)atoi(t_str); 
       } 
 } 
   *n=i; 
   cout<<endl<<"             ▼▽按任意键返回主菜单▽▼"<<endl; 
}   
           
void averdata(FROMTO *p,float *p1,int n)            //求平均成绩 
{ 
    int i,j; 
    float s_num; 
    float t[N]={0}; 
    if (!n); 
    else 
    { 
        for(i=0;i<n;i++) 
        { 
            s_num=0.0; 
            for(j=0;j<N;j++) 
            { 
                s_num+=p[i].score[j]; 
                t[j]+=p[i].score[j]; 
            } 
            p[i].aves=s_num/N; 
        } 
        for(i=0;i<N;i++) 
            p1[i]=t[i]/n; 
        cout<<"                                  "; 
 } 
} 
  
void potiscore(FROMTO *p,int n)             //名次排序 
{ 
    int i,j,k; 
    FROMTO temp; 
    if(!n) 
   cout<<"          ▲△ >非法操作< 没有任何数据,按任意键返回△▲"<<endl; 
 else 
 { 
     for(i=0;i<n;i++) 
     {k=i; 
     for(j=i+1;j<n;j++) 
         if(p[j].aves>p[i].aves) k=j; 
         temp=p[k];p[k]=p[i];p[i]=temp; 
     } 
     cout<<endl 
         <<"               █━━━━━━━━━━━━━━━━━━━━━█"<<endl 
         <<"               ┃┄┄┄┄┄┄  学生成绩排名  ┄┄┄┄┄┄┄┃"<<endl 
         <<"               ┃                                          ┃"<<endl; 
     for(i=0;i<n;i++) 
     cout<<"               ┃"<<setw(16)<<p[i].name<<" :  "<<setw(10)<<p[i].aves 
         <<"            ┃"<<endl; 
 } 
} 
  
                                           
void statdata(FROMTO *p,int n)           //统计及格程序  
{ 
    int i,a=0,b=0,c=0,d=0; 
    if(!n); 
    else 
    { 
        for(i=0;i<n;i++) 
        { 
            switch((int)(p[i].aves/10)) 
            { 
            case 10:a++;break; 
            case 9:a++;break; 
            case 8:b++;break; 
            case 7:c++;break; 
            case 6:c++;break; 
            default:d++;break; 
            } 
        } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -