重慶做網(wǎng)站微信的公司提高搜索引擎檢索效果的方法
目錄
一、項目要求
二、完整代碼實例
三、分文件編寫代碼實例
一、項目要求
1.系統(tǒng)運行,打開如下界面。列出系統(tǒng)幫助菜單(即命令菜單),提示輸入命令
2.開始時還沒有錄入成績,所以輸入命令 L 也無法列出成績。應(yīng)提示“成績表為空!請先使用命令 T 錄入學(xué)生成績
3.輸入命令 T,調(diào)用Type子函數(shù)錄入成績。界面提示輸入學(xué)生人數(shù)
輸入n提示輸入n名學(xué)生的3門課成績,列出成績單的表頭“學(xué)號 語文 數(shù)學(xué) 英語”,學(xué)號自動生成
4.輸入命令 L ,調(diào)用List子函數(shù)輸出成績表。List子函數(shù)調(diào)用結(jié)束,返回。提示輸入命令。
5.輸入命令 A ,調(diào)用Average子函數(shù)計算平均分,提示“平均分已計算。請使用命令L查看?!?Average子函數(shù)調(diào)用結(jié)束,返回。提示輸入命令。
6.輸入命令 P ,調(diào)用Sort子函數(shù)將各學(xué)生記錄按平均分由高到低排序,提示“完成排序。請使用命令L查看。” Sort子函數(shù)調(diào)用結(jié)束,返回。提示輸入命令。
7.輸入命令 S ,調(diào)用Search子函數(shù)查詢學(xué)生成績,提示“輸入要查詢的學(xué)生學(xué)號”。輸入n,找到n號學(xué)生的成績并輸出。Search子函數(shù)調(diào)用結(jié)束,返回。提示輸入命令。
8.輸入命令C, 執(zhí)行清屏函數(shù)語句system("clear");
9.輸入命令H,調(diào)用Help子函數(shù)顯示幫助菜單。Help子函數(shù)調(diào)用結(jié)束,返回。提示輸入命令。
10.輸入命令Q,?則退出系統(tǒng)。
注意:
(1)輸出數(shù)組元素時,要將學(xué)號單獨處理,輸出為整數(shù)(即保留0位小數(shù))。同理,在計算成績時也要將第1列的學(xué)號撇開,只計算第2列之后的。成績保留1位小數(shù)。
(2)學(xué)生人數(shù)n貫穿始終,通過n的值判斷當(dāng)前命令的子函數(shù)是否能夠調(diào)用執(zhí)行。例如:當(dāng)n=0時,說明還沒有錄入成績。而一旦輸入命令T,也即調(diào)用Type子函數(shù)錄入了成績,則n的值就不再是0。當(dāng)n!=0時,就可以進行其他的成績操作,但不能再執(zhí)行錄用成績的操作。所以當(dāng)用戶輸入的命令無法執(zhí)行時,應(yīng)當(dāng)給出提示。
二、完整代碼實例
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
typedef struct
{int id;float chinese;float math;float english;float average;
} Student;Student students[MAX];int num = 0;void Type();
void List();
void Average();
void Sort();
void Search();
void ClearScreen();
void Help();int main()//主函數(shù)
{char c;printf("****************************************\n");printf("*\t學(xué)生成績管理系統(tǒng)——幫助菜單\t*\n");printf("****************************************\n");printf(" *\tH = 顯示幫助菜單\n");printf(" *\tT = 成績錄入\n");printf(" *\tA = 計算學(xué)生平均分\n");printf(" *\tL = 列出成績表\n");printf(" *\tP = 按平均成績由高到低排序\n");printf(" *\tS = 按學(xué)號查詢學(xué)生成績\n");printf(" *\tC = 清屏\n");printf(" *\tQ = 退出系統(tǒng)\n");printf("****************************************\n");while (1){printf("請輸入命令:");scanf("%c", &c);getchar();switch (c){case 'T':Type();break;case 'L':List();break;case 'A':Average();break;case 'P':Sort();break;case 'S':Search();break;case 'C':ClearScreen();break;case 'H':Help();break;case 'Q':printf("退出系統(tǒng)。\n");return 0;}}return 0;
}
void Type()//輸入學(xué)生人數(shù)和信息
{if (num != 0){printf("成績表不為空,無法錄入學(xué)生成績。\n");return;}printf("請輸入學(xué)生人數(shù):");scanf("%d", &num);getchar();printf("請輸入%d名學(xué)生的三門課成績:\n", num);printf("學(xué)號\t語文\t數(shù)學(xué)\t外語\n");for (int i = 0; i < num; i++){students[i].id = i + 1;printf("%d\t", students[i].id);scanf("%f\t%f\t%f", &students[i].chinese, &students[i].math, &students[i].english);getchar();}
}void List()//展示學(xué)生成績信息
{if (num == 0){printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}printf("學(xué)號\t語文\t數(shù)學(xué)\t英語\t平均分\n");for (int i = 0; i < num; i++){printf("%d\t%.1f\t%.1f\t%.1f\t%.1f\n", students[i].id, students[i].chinese, students[i].math, students[i].english, students[i].average);}
}void Average()//求平均分
{if (num == 0){printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}for (int i = 0; i < num; i++){students[i].average = (students[i].chinese + students[i].math + students[i].english) / 3.0;}printf("平均分已計算。請使用命令 L 查看。\n");
}void Sort()//按平均分由大到小排序
{if (num == 0){printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}for (int i = 0; i < num - 1; i++){for (int j = 0; j < num - 1 - i; j++){if (students[j].average < students[j + 1].average){Student t = students[j];students[j] = students[j + 1];students[j + 1] = t;}}}printf("完成排序。請使用命令 L 查看。\n");
}void Search()//查詢學(xué)生成績信息
{if (num == 0){printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}int sid;printf("輸入要查詢的學(xué)生學(xué)號:");scanf("%d", &sid);getchar();for (int i = 0; i < num; i++){if (students[i].id == sid){printf("學(xué)號:%d\t語文:%.1f\t數(shù)學(xué):%.1f\t英語:%.1f\t平均分:%.1f\n", students[i].id, students[i].chinese, students[i].math, students[i].english, students[i].average);return;}}printf("未找到該學(xué)生的成績。\n");
}void ClearScreen()//清屏
{system("clear");
}void Help()//幫助菜單
{printf("****************************************\n");printf("*\t學(xué)生成績管理系統(tǒng)——幫助菜單\t*\n");printf("****************************************\n");printf(" *\tH = 顯示幫助菜單\n");printf(" *\tT = 成績錄入\n");printf(" *\tA = 計算學(xué)生平均分\n");printf(" *\tL = 列出成績表\n");printf(" *\tP = 按平均成績由高到低排序\n");printf(" *\tS = 按學(xué)號查詢學(xué)生成績\n");printf(" *\tC = 清屏\n");printf(" *\tQ = 退出系統(tǒng)\n");printf("****************************************\n");
}
三、分文件編寫代碼實例
頭文件head.h
#ifndef _HEAD_H_
#define _HEAD_H_
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
typedef struct
{int id;float chinese;float math;float english;float average;
} Student;extern int num;Student students[MAX];
void Type();
void List();
void Average();
void Sort();
void Search();
void ClearScreen();
void Help();#endif
主函數(shù)main.c
#include "head.h"
int num = 0;
int main()
{char c;printf("****************************************\n");printf("*\t學(xué)生成績管理系統(tǒng)——幫助菜單\t*\n");printf("****************************************\n");printf(" *\tH = 顯示幫助菜單\n");printf(" *\tT = 成績錄入\n");printf(" *\tA = 計算學(xué)生平均分\n");printf(" *\tL = 列出成績表\n");printf(" *\tP = 按平均成績由高到低排序\n");printf(" *\tS = 按學(xué)號查詢學(xué)生成績\n");printf(" *\tC = 清屏\n");printf(" *\tQ = 退出系統(tǒng)\n");printf("****************************************\n");while (1){printf("請輸入命令:");scanf("%c", &c);getchar();switch (c){case 'T':Type();break;case 'L':List();break;case 'A':Average();break;case 'P':Sort();break;case 'S':Search();break;case 'C':ClearScreen();break;case 'H':Help();break;case 'Q':printf("退出系統(tǒng)。\n");return 0;}}return 0;
}
輸入學(xué)生人數(shù)和成績的type.c
#include "head.h"void Type()
{if (num != 0){printf("成績表不為空,無法錄入學(xué)生成績。\n");return;}printf("請輸入學(xué)生人數(shù):");scanf("%d", &num);getchar();printf("請輸入%d名學(xué)生的三門課成績:\n", num);printf("學(xué)號\t語文\t數(shù)學(xué)\t外語\n");for (int i = 0; i < num; i++){students[i].id = i + 1;printf("%d\t", students[i].id);scanf("%f\t%f\t%f", &students[i].chinese, &students[i].math, &students[i].english);getchar();}
}
顯示學(xué)生成績信息的list.c
#include "head.h"
void List()
{if (num == 0){printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}printf("學(xué)號\t語文\t數(shù)學(xué)\t英語\t平均分\n");for (int i = 0; i < num; i++){printf("%d\t%.1f\t%.1f\t%.1f\t%.1f\n", students[i].id, students[i].chinese, students[i].math, students[i].english, students[i].average);}
}
求平均成績的average.c
#include "head.h"
void Average()
{if (num == 0){printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}for (int i = 0; i < num; i++){students[i].average = (students[i].chinese + students[i].math + students[i].english) / 3.0;}printf("平均分已計算。請使用命令 L 查看。\n");
}
按照平均成績由大到小排序的sort.c(冒牌排序)
#include "head.h"
void Sort()
{if (num == 0){printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}for (int i = 0; i < num - 1; i++){for (int j = 0; j < num - 1 - i; j++){if (students[j].average < students[j + 1].average){Student t = students[j];students[j] = students[j + 1];students[j + 1] = t;}}}printf("完成排序。請使用命令 L 查看。\n");
}
查詢學(xué)生成績信息的search.c
#include "head.h"
void Search()
{if (num==0) {printf("成績表為空!請先使用命令 T 錄入學(xué)生成績。\n");return;}int sid;printf("輸入要查詢的學(xué)生學(xué)號:");scanf("%d",&sid);getchar();for(int i=0;i<num;i++){if(students[i].id==sid){printf("學(xué)號:%d\t語文:%.1f\t數(shù)學(xué):%.1f\t英語:%.1f\t平均分:%.1f\n",students[i].id,students[i].chinese,students[i].math,students[i].english,students[i].average);return;}}printf("未找到該學(xué)生的成績。\n");
}
清屏的clearscreen.c
#include "head.h"
void ClearScreen()
{system("clear");
}
顯示幫助菜單的help.c
#include "head.h"
void Help()
{printf("****************************************\n");printf("*\t學(xué)生成績管理系統(tǒng)——幫助菜單\t*\n");printf("****************************************\n");printf(" *\tH = 顯示幫助菜單\n");printf(" *\tT = 成績錄入\n");printf(" *\tA = 計算學(xué)生平均分\n");printf(" *\tL = 列出成績表\n");printf(" *\tP = 按平均成績由高到低排序\n");printf(" *\tS = 按學(xué)號查詢學(xué)生成績\n");printf(" *\tC = 清屏\n");printf(" *\tQ = 退出系統(tǒng)\n");printf("****************************************\n");
}
使用Make進行編譯:
makefile文件
CC=gcc
CFLAGS=-c -g -Wall
OBJS=main.o type.o list.o average.o sort.o search.o clearscreen.o help.o xscjglxt:$(OBJS)$(CC) $^ -o $@
%.o:%.c$(CC) $(CFLAGS) $< -o $@.PHONY:clean
clean:$(RM) *.o xscjglxt
?B站講解視頻
http://【C基礎(chǔ)(學(xué)生成績管理系統(tǒng))】 https://www.bilibili.com/video/BV1gTi7eUEc3/?share_source=copy_web&vd_source=f25867d1b9870033386a3e5ea1bbca6e