當前位置:首頁 » 編程軟體 » 績點的編程

績點的編程

發布時間: 2022-07-06 06:21:43

⑴ 求C++題或代碼

9、大數的乘法
Time Limit:1000MS Memory Limit:32768KDescription:給出一些整數對,一個為可能接近100位的大數,另一個為1位數,求這些數對的乘積。 Sample Input:1 1123 012345678910 7Sample Output: 十、按長度排序
Time Limit:1000MS Memory Limit:32768KDescription:是一些整數,它的結構是:第一行為一個整數N,表示後面有N個整數需要排序輸出,先按長度排,如長度一樣則按大小排,若遇到N等於零,則運行結束。 Sample Input: Output:121233333 11000000000000000 十一、排列學生成績
Time Limit:1000MS Memory Limit:32768KDescription:一些向量數據,表示許多學生的各門成績。編程,從中挑出平均分數在60分以上的學生進行排序輸出。 Sample Input:Zhangsan 90 85 77 25 63Lisi 58 73 66 85 90Wangwu 70 80 90 51 52Qianliu 80 63 58 52 50Chenqi 90 28 38 48 58Zhouba 40 70 70 33 55Sample Output:1 Lisi2 Wangwu3 Zhangsan 12、十二、倒置排序
Time Limit:1000MS Memory Limit:32768KDescription:將一些整數按倒置值排序後輸出. 所謂倒置,是指把整數各位倒過來構成一個新數,例如:13倒置成了31. Input:第一行的整數N表示後面列出的組數。每組數的第一個整數n表示後面將有n個整數。(每組數據量不超80) Output:將每組數按倒置值進行排序輸出.其每組數的結果佔一行.行末無空格. Sample Input:24 83 13 24 364 99 100 123 12345Sample Output:13 83 24 36100 99 123 12345 十三、績點計算
Time Limit:1000MS Memory Limit:32768KDescription:有一些班級學生的三門課程成績,編程計算其績點,並按績點分數的高低排列。績點計算公式為:(成績小於60分,則該門課程的績點為0) [(課程1 – 50)÷10×3 +(課程2 – 50)÷10×3 +(課程3 – 50)÷10×4]÷10 Sample Input:張三 89 62 71李四 98 50 80王五 67 88 91Sample Output:王五 67 88 91李四 98 50 80張三 89 62 71 十四、按日期排序
Time Limit:1000MS Memory Limit:32768KDescription:有一些日期,日期格式為「MM/DD/YYYY」。編程將其按日期大小排列。 Sample Input:12/31/200510/21/200302/12/200415/12/199910/22/200311/30/2005Sample Output:15/12/199910/21/200310/22/200302/12/200411/30/200512/31/2005 十五、按1的個數排序
Time Limit:1000MS Memory Limit:32768KDescription:有一些01字串,將其按1的個數的多少的順序進行輸出。 Sample Input: Output:01110000001101101010110011111 十六、注釋
Time Limit:1000MS Memory Limit:32768KDescription:給出一個C++源程序代碼。請將其中的注釋去掉。 Sample Input://====================== // simplest program //======================#include<iostream>using namespace std;//----------------------int main(){cout<<」hello world!\n」;}//--------------------- Sample Output:#include<iostream>using namespace std;int main(){cout<<」hello world!\n」;} 十七、最短距離的點
Time Limit:1000MS Memory Limit:32768KDescription:給出一些整數對,它們表示一些平面上的坐標點,給定一個點,求所有那些點到該點最短距離的點。結構為:第一個整數對為所給定的點,後面的整數對為所有其他的點。 Sample Input:9 21 01 10 01 22 1Sample Output:2 1 十八、最短距離的兩點
Time Limit:1000MS Memory Limit:32768KDescription:給出一些整數對,它們表示平面上的點,求所有這些點中距離最近的兩個點。結構為:每組數據的第一行只有一個整數N,表示後面有N個點。求這些點中的兩點,以表明該兩點是所有點中距離最短的。若N為0,則表示輸入結束。 Sample Input:41 20 03 67 231 33 10 00Sample Output:(1,2) (0,0)(1,3) (3,1) 十九、到直線的最長距離
Time Limit:1000MS Memory Limit:32768KDescription:給定一根直線,給出一些坐標點,求這些坐標點到直線的最大距離。第一行有兩個整數對,表示直線的兩點,後面有一些整數對,那是給出的坐標點。結果保留三位小數。 Sample Input:1 2 3 43 810 107 2900 1Sample Output:636.396 二十、計算矩形面積
Time Limit:1000MS Memory Limit:32768KDescription:兩個坐標點能確定一個矩形,請按矩形的面積大小進行排序輸出。每一行給出兩個坐標點,表示一個矩形。請按要求輸出面積。 Sample Input:1 2 3 41 0 2 32 1 3 12 8 7 1Sample Output:03435註:ACM比賽非常注重輸出格式。若輸出格式錯誤則全題不能得分。 以下幾個題訓練基本輸出語句的使用。二十一、粘牆「三角形」
Time Limit:1000MS Memory Limit:32768KDescription:輸入一些正整數(≤26),編程輸出以這些正整數為邊長的附著牆而立的字母三角形。 Sample Input:37Sample Output:a aa abaabc a aa aba abca abcda abcdea abcdefaabcdefg 二十二、山形圖
Time Limit:1000MS Memory Limit:32768KDescription:輸入中含有若干組數據,每組數都包含一個字元c和一個正整數n(n≤50),表示邊長為n圖案為c的山形字元圖。一個緊挨一個地列印所有這些山形字元圖。 Sample Input:A 3M 9Sample Output: A AAAAAAAA M MMM MMMMM MMMMMMM MMMMMMMMM MMMMMMMMMMM MMMMMMMMMMMMM 二十三、織花紋布
Time Limit:1000MS Memory Limit:32768KDescription:輸入中含有若干組數據,每組數據由四部分組成,第一個是花紋字元,後面三個是整數,分別表示寬度(<80的奇數),高度(≤40)和重復度(≤20)。請編程畫出該花紋。 Sample Input:W 9 17 1E 15 6 2Sample Output:WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W WWWWWWWWWW EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEEE E E E E E E E EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEE E E E E E E E EEEEEEEEEEEEEEEE 二十四、倚直線畫圈
Time Limit:1000MS Memory Limit:32768KDescription:魯迅先生筆下的阿Q連圈都畫不好,現在我們藉助編程手段,可以對準直線自動地按要求畫圈,不亦樂乎?文本字元的圈雖然看上去有些粗糙,不過沒有關系,只要是上下左右對稱,粗細均勻,而且封閉就行。 Input:圈的內部總是一個正方形,外部包圍著一定粗細的線條,角部不用畫出來。給定的數據,每行為一組,包括用的字元筆,筆的粗細和圈內正方形的高度。如果輸入數據中筆粗和高度都為0,則結束處理。 Output:每個圈應倚著邊上一直線,直線字元為B,每個圈之間有一個空行,第一個圈前面無空行。 Sample Input:A 1 3F 3 5A 0 0 Sample Output:B AAABA ABA ABA AB AAA B FFFFFB FFFFFB FFFFFBFFF FFFBFFF FFFBFFF FFFBFFF FFFBFFF FFFB FFFFFB FFFFFB FFFFF 二十五、支票保護
Time Limit:1000MS Memory Limit:32768KDescription:計算機經常用於工資和帳號支付應用等支票寫入系統。許多怪事常常出現。如每月工資支票上錯誤的多寫一百萬美元。由於人和機器的錯誤,使支票寫入系統寫出不正常數值。系統設計人員在系統中建立控制,防止發生出這種錯誤支票。另一個嚴重的問題是有些人故意改變支票金額,想竊取錢財。要防止改變支票金額,大多數支票寫入系統採用支票保護(Check Protection)技術。一個常用的安全方法是寫出支票金額的大寫,即使支票的數字好改,大寫金額也難篡改。編寫一個程序,輸入數字金額,輸出大寫金額。如112.43寫成ONE HUNDRED TWELVE Dollars and 43/100。 Input:輸入數據有若干,數據范圍在0.00到999.99。 Output:對於每個數據輸出其大寫的英語表示。如12.45寫成TWELVE Dollars and 45/100。如果是整數部分是零或一美元,則Dollar不加s。如果沒有角分,則角分不用輸出。 Sample Input:0.453456.89Sample Output:ZERO Dollar and 45/100THIRTY FOUR DollarsFIFTY SIX Dollars and 89/100 二十六、單詞統計
Time Limit:1000MS Memory Limit:32768KDescription:你需要設計一個程序,將一篇文章中的所有單詞分組並統計。

一篇文章是一連串的單詞,每個單詞佔一行。當且僅當w中的字元通過某種重排列與v相同時,單詞w和單詞v屬於同一個組。找出個數最多的5個組。

Input
輸入包含許多由小寫字母構成的單詞,每行一個。
以EOF終止。

Output
輸出個數最多的5組單詞。如果少於5組,則把它們全部輸出。
組與組之間,按單詞數遞減排序,若單詞數相等,比較組內字典序最小的單詞,字典序小的在先。
對每組,先輸出組內單詞數,再按字典序遞增依次輸出各單詞,相同單詞只輸出一次。 Sample Input: Output:Group of size 8: caret carte cater crate trace .Group of size 4: abet bate beat beta .Group of size 4: ate eat eta tea .Group of size 1: displayed .Group of size 1: singleton . 二十七、統計天數
Time Limit:1000MS Memory Limit:32768KDescription:根據一些日期,以及日期上所做的標記,按條件統計其天數。 Input:輸入數據含有不多於50個的具有格式「Mon. DD YYYY」的日期,有些日期後面可能標有*,每個日期佔一行。 Output:統計任何月份中凡是25號的日期數,如果25號這一天後面標有*,則該天應加倍計算。 Sample Input:Oct. 25 2003Oct. 26 2003Sep. 12 2003*Juy. 25 2002*Sample Output:3Source:qianneng 二十八、艱辛的突圍
Time Limit:1000MS Memory Limit:32768KDescription:在一場戰役中,一隊我方的士兵落入了敵人的包圍圈,他們決定冒死突圍出去,在突圍的任意時刻,總會有一個士兵沖在最前面,引導著隊伍前進。在突圍的過程中,他們肯定要不斷受到敵方的攻擊,尤其沖在最前面的士兵受到的傷害最大。我們以一分鍾為單位,最開始每個士兵都有相同的能量值E,突圍路線的總長度D。士兵每分鍾受到的傷害跟隊伍的突圍速度有關。假定隊伍在某一分鍾內突圍的速度為v,那麼沖在最前面的士兵在這一分鍾里受到的總傷害為v2,而其他士兵受到的總傷害均為v。而且我們可以在每分鍾開始的時候瞬時替換掉沖在最前面的士兵,讓另一個士兵沖上去,其它的中間時刻是不允許調換的。 對於特定的某一分鍾里,隊伍的突圍速度是穩定的,由此時沖在最前面的士兵決定,他可以任意選擇一個速度v前進,但是要保證自己在這一分鍾開始的時候剩餘的能量e>=v2。現要你安排一種最優的調度方案,使得隊伍突圍出去的時間最少,當然在這個過程中可能會有些士兵會死掉,也許全部死掉。 Input:包含多組測試數據。每組測試數據包含三個整數N、E、D。分別表示士兵的個數、每個士兵初始的能量值和突圍路線的總長度。 1<=N<=20,1<=E<=100,1<=D<=100。 Output:針對每組測試數據,輸出最短需要多少時間才能突圍出去,如果所需的最小時間是個浮點數,則向上取整。萬一突圍不出去,就直接輸出0. Sample Input:2 17 7Sample Output:2 二十九、大整數加法
Time Limit:1000MS Memory Limit:32768KDescription:給定一些大數,請計算其和。 Input:輸入數據中含有一些數據組(數量≤100),每組數據由一個整數n(n≤100)領銜,後跟n個大整數(0≤大數,大數位數≤200),若n=0則表示輸入結束。 Output:輸出每組數據所計算的大數和,每個結果單獨佔一行。 Sample Input: Output:5652057111507 三十、大整數乘法
Time Limit:5000MS Memory Limit:32768KDescription:給定一些大數,請計算其積。 Input:輸入數據中含有一些整數對(對數≤1000),若某對整數(整數位數≤200)的值為0 0,則表示輸入結束。 Output:每對整數對應一個乘法計算結果,輸出該結果,每個結果輸出完後應回車。 Sample Input:2 312 340 0Sample Output:6408 三十一、(1998年北美區ACM選拔賽試題)DNA SortingTime Limit:1000MS Memory Limit:32768KProblem: DNA排序 在一個序列中,「沒排序」的一個尺度是無序對的總數。例如,在字母序列「DAABEC」中,「沒排序」的尺度是5,因為D比它右邊的4個字母大,而E比它右邊的1個字母大。這個尺度被稱為序列的倒位數量。序列「AACEDGG」只有一個倒位(E和D)――即它幾乎是有序的――然而,序列「ZWQM」則有6個倒位(其序正好完全相反)。 你負責編排DNA字元串的序列(系列中只包含A,C,G和T四個字元)。然而,不是根據字母表順序來編排,而是根據「沒排序」程度即倒位數量來編排,從「排序最好」到「排序最不好」的順序來編排。所有的字元串長度相同。問題包含多個測試案例! 多個測試案例前是一個正整數N,然後是一行空行,接下去是N個輸入塊。每個輸入塊的格式在問題中描述了。輸入塊之間用空行隔開。 2、輸入描述 每個輸入塊的第一行包含兩個整數:正整數n (0 < n <= 50),表示字元串的長度;另一個正整數m (1 < m <= 100),表示字元串的數目。下面就是m行,每行是一個長為n的字元串。 3、輸出描述 輸出輸入數據中的字元串,按從「排序最好」到「排序最不好」的順序排列。如果兩個字元串的倒位數量相同,那麼按它們在輸入文件中的先後順序輸出。 4、輸入樣例 1 10 5、輸出樣例

⑵ 學計算機專業的(偏向編程),績點不高,打算畢業工作。應該考一點什麼證好嗎

如果想機會更多一點,考個程序員或者軟體工程師,這些是國家認證的。

⑶ 高分求VB編程關於學分計算

我來做吧
hi me

Private Sub Command1_Click()
'高分求VB精英編程關於學分計算 輸入成績能夠得出所對應的績點
Dim x As Integer, y As Single
x = InputBox("Please input your score:")
If x < 60 Or x > 99 Then Exit Sub
Select Case x
Case 60 To 62: y = 1
Case 63 To 64: y = 1.2
Case 65 To 67: y = 1.5
Case 68 To 69: y = 1.8
Case 70 To 72: y = 2
Case 73 To 74: y = 2.2
Case 75 To 77: y = 2.5
Case 78 To 79: y = 2.8
Case 80 To 82: y = 3
Case 83 To 84: y = 3.2
Case 85 To 87: y = 3.5
Case 88 To 89: y = 3.8
Case 90 To 92: y = 4
Case 93 To 94: y = 4.2
Case 95 To 97: y = 4.5
Case 98 To 99: y = 5
End Select
MsgBox "績點=" & y
End Sub

搞定了

⑷ matlab編程,學生學分,學分績點計算程序編制

出國留學,很多院校的申請的條件之一是個人的學分績點,有些院校有最低學分績點要求。沒有達到最低要求的申請者就不考慮了。計算:績點的計算,是將學生修過的每一門課程(包括重修的課程)的課程績點乘以該門課程的學分,累加後再除以總學分。平均學分績點可以作為學生學習能力與質量的綜合評價指標之一。能方便地與美國的GPA制掛鉤。想出國留學的中國本科生應該引以為重。國內大部分高校通用的計算方法是:績點=分數/10-5,學分績點=學分×績點=學分×(分數/10-5)

⑸ c編程 試編程統計某班n個同學在m門必修課上的學分績點,並按從高到低排序。

哈哈剛剛差點上的地方方法

⑹ 怎樣用Excel算 平均學分績點=∑(每一科成績績點*課程學分)/總學分。

只要輸入函數=sumproct(d2:20,e2:e20)/sum(e2:e20)即可。

⑺ VB編程中平均績點問題。

你發過圖後,自己就不看看嗎,這能看清楚嗎?
以後發代碼,不要發圖片,拒絕一拍完事的做法。

⑻ CS專業大學生怎樣平衡績點和編程能力

只能說但願個人都能找到適合自己的學習方法吧。

編程和學習也並不矛盾,尤其是專業課。比如計算機組成原理,實現一個流水線的mips指令集的cpu,編譯原理,寫編譯器,網路課可以嘗試NAT打洞嘛,操作系統課抄一個 unix V6 那樣的系統出來~ 圖形學可以做軟體渲染器。邊學邊嘗試,在學校基本都需要幾個月才能完成。

⑼ 在c語言編程中,給出一個百分製成績,要求輸出成績等級

#include <stdio.h>

int main()

{

int score, m;

scanf("%d", &score);

while (score < 0 || score > 100){

printf("Error! Retry! ");

scanf("%d", &score);

}

m= score / 10;

if (m>= 9)

printf("Grade is A! ");

switch(m){

case 0: printf("Grade is E! "); break;

case 1: printf("Grade is E! "); break;

case 2:printf("Grade is E! "); break;

case 3:printf("Grade is E! "); break;

case 4:printf("Grade is E! "); break;

case 5: printf("Grade is E! "); break;

case 6: printf("Grade is D! "); break;

case 7: printf("Grade is C! "); break;

case 8: printf("Grade is B! "); break;

}

return 0;

}

(9)績點的編程擴展閱讀

其他實現輸出成績等級『A'、』B『、'C'、『D'、'E』。90分以上為A,80~89分為B,70~79分為C,60~69分為D,60分一下為E的方法:

#include <stdio.h>

int main()

{

int score;

scanf("%d", &score);

while (score < 0 || score >100){

printf("Error! Retry! ");

scanf("%d", &score);

}

if (score < 60)

printf("Grade is E! ");

else if (score >= 60 && score < 70)

printf("Grade is D! ");

else if (score >= 70 && score < 80)

printf("Grade is C! ");

else if (score >=80 && score < 90)

printf("Grade is B! ");

else

printf("Grade is A! ");

return 0;

}

⑽ c語言編程 實現簡單的學生成績管理系統

出密碼模塊外其他的都可以!我也想添個密碼的!
後來覺得沒用,先做好功能模塊再說!
密碼模塊設計不好的話,很容易被破解的!
#ifndef H_STUDENT_HH /*xxx如果沒有定義xxx*/
#define H_STUDENT_HH /*xxx定義xx*/

#include "stdio.h"
#include "string.h"
#include "malloc.h"

#define LEN sizeof(struct message_student) /*一個結構體數組元素的長度*/
#define numsubs 5 /*學科數目*/
typedef struct message_student /*結構體定義*/
{
char number[6];
char name[20];
char sex[4];
float subject[numsubs];
float score;
float average;
int index;
}student;

extern int numstus; /*學生數目*/
extern student *pointer; /*指向結構體數組*/
extern int lens;

int menu_select(); /*函數聲明*/
int openfile(student stu[]);
int findrecord(student stud[]);
int writetotext(student stud[]);
void welcome();
void display1();
void showtable();
void sort(student stu[]);
void deleterecord(student stu[],int i);
void addrecord(student stud[]);
void display(student stud[],int n1,int n2);
void amendrecord(student stud[]);
void count(student stud[]);
void sortnum(student stud[]);
void sortnum2(student stud[]);
void sortname(student stud[]);
void sortname2(student stud[]);
void sortcount(student stud[]);
void sortcount2(student stud[]);
void statistic(student stud[]);
void display1();

#endif

#include "stdio.h"
int menu_select()
{
char c;
printf("\n\n");
printf(" | 1. 增加學生記錄 5.統計信息 |\n");
printf(" | 2. 查詢學生記錄 6.打開文件 |\n");
printf(" | 3. 修改學生記錄 7.保存文件 |\n");
printf(" | 4. 學生紀錄排序 8.顯示記錄 |\n");
printf(" | 0.退出系統 |\n");
printf("\n\n");
printf("請選擇(0-8):");
c=getchar();
getchar();
return (c-'0');
}

#include "stdio.h"
int findrecord(student stud[]) /*查找信息*/
{
char str[2];
int i,num;
if(numstus==0)
{
printf("沒有可被查找的記錄\n");
return -1;
}
else
{
printf("以何種方式查找?\n1.學號\t2.姓名\t3.名次\n");
gets(str);
if(str[0]=='1') /*按學號查找*/
{
printf("請輸入學號:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i].number)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='2') /*按姓名查找*/
{
printf("請輸入姓名:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i].name)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='3') /*按名次查找*/
{
printf("請輸入名次:");
scanf("%d",&num);
getchar();
for(i=0;i<=numstus;i++)
if(num==stud[i].index)
{
display(stud,i,i);
break;
}
else continue;
}
if(i>numstus)
{
printf("沒有查找所要的信息。\n");
return -1;
}
return i;
}
}

#include"stdio.h"
int openfile(student stu[])
{
int i=0,j;
FILE *fp;
char filename[20],str[2];
if(numstus!=0)
{
printf("已經有記錄存在,是否保存?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(stu);
}
printf("請輸入文件名:");
gets(filename);
numstus=0;
if((fp=fopen(filename,"rb+"))==NULL)
{
printf("無法打開該文件\n");
return(-1);
}
fscanf(fp,"%d",&numstus);
fgetc(fp);
while(i<numstus)
{
fscanf(fp,"%s",stu[i].number);
fscanf(fp,"%s",stu[i].name);
fscanf(fp,"%s",stu[i].sex);
for(j=0;j<numsubs;j++)
fscanf(fp,"%f",&stu[i].subject[j]);
fscanf(fp,"%f",&stu[i].score);
fscanf(fp,"%f",&stu[i].average);
fscanf(fp,"%d",&stu[i].index);
i++;
}
fclose(fp);
printf("文件讀取成功\n");
printf("是否顯示紀錄?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
display(stu,0,numstus-1);
return(0);
}
#include "stdio.h"
void sort(student stud[])
{
int i,j=0;
char str[5];
student *p;
p=stud;
if(numstus==0)
{
printf("沒有可供查詢的記錄!");
}
while(1)
{
for(i=0;;i++)
{
printf(" 請輸入查詢方式:");
printf("(直接輸入回車則結束查詢操作)\n");
printf("1.按照學號\t");
printf("2.按照姓名\t");
printf("3.按照名次\n");
gets(str);
if(strlen(str)==0) break;
if(str[0]=='1')
{
printf("請輸入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortnum2(p);
else
sortnum(p);
display(stud,0,numstus-1);
}
else if(str[0]=='2')
{
printf("請輸入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortname2(p);
else
sortname(p);
display(stud,0,numstus-1);
}
else if(str[0]=='3')
{
printf("請輸入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortcount2(p);
else
sortcount(p);
display(stud,0,numstus-1);
}
else printf("請輸入1~3");
printf("是否退出排序?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') break;
}
return;
}
}
void sortnum(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1].number,stud[j].number)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortnum2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j].number,stud[j+1].number)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortname(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1].name,stud[j].name)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortname2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j].name,stud[j+1].name)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortcount(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j+1].index>stud[j].index)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortcount2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j].index>stud[j+1].index)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
#include"stdio.h"
void statistic(student stud[]) /*新增功能,輸出統計信息*/
{
int i,j=0,k=0;
char c1,str[2];
float average[numsubs],sum=0;
if(numstus==0)
printf("沒有可被查找的記錄\n");
else
{
while(1)
{
printf("下面將統計考試成績\n");
printf("請選擇你要統計哪科的成績 1.A\t2.B\t3.C\t4.D\t5.E\n");
c1=getchar();
printf("\t一共有個%d記錄\n",numstus); /*總共記錄數*/
switch(c1)
{
case '1':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[0];
if(stud[k].subject[0]>stud[i].subject[0]) k=i;
if(stud[j].subject[0]<stud[i].subject[0]) j=i;
}
average[0]=sum/numstus;
printf("\t科目A的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[0]);
printf("\t科目A的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[0]);
printf("\t科目A的平均分是 %5.2f\n",average[0]); /*平均分*/
break;
case '2':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[1];
if(stud[k].subject[1]>stud[i].subject[1]) k=i;
if(stud[j].subject[1]<stud[i].subject[1]) j=i;
}
average[1]=sum/numstus;
printf("\t科目B的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[1]);
printf("\t科目B的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[1]);
printf("\t科目B的平均分是 %5.2f\n",average[1]); /*平均分*/
break;
case '3':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[2];
if(stud[k].subject[2]>stud[i].subject[2]) k=i;
if(stud[j].subject[2]<stud[i].subject[2]) j=i;
}
average[2]=sum/numstus;
printf("\t科目C的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[2]);
printf("\t科目C的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[2]);
printf("\t科目C的平均分是 %5.2f\n",average[2]); /*平均分*/
break;
case '4':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[3];
if(stud[k].subject[3]>stud[i].subject[3]) k=i;
if(stud[j].subject[3]<stud[i].subject[3]) j=i;
}
average[3]=sum/numstus;
printf("\t科目D的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[3]);
printf("\t科目D的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[3]);
printf("\t科目D的平均分是 %5.2f\n",average[3]); /*平均分*/
break;
case '5':
for(i=0;i<numstus;i++) /*循環輸入判斷*/
{
sum+=stud[i].subject[4];
if(stud[k].subject[4]>stud[i].subject[4]) k=i;
if(stud[j].subject[4]<stud[i].subject[4]) j=i;
}
average[4]=sum/numstus;
printf("\t科目E的最高分:\n"); /*最高分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[4]);
printf("\t科目E的最低分是:\n"); /*最低分*/
printf("\t\t學號:%s 姓名:%s 分數:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[4]);
printf("\t科目E的平均分是 %5.2f\n",average[4]); /*平均分*/
break;
default:printf("輸入錯誤!請輸入1~5之間的數\n");
}
sum=0;
getchar();
printf("是否繼續進行統計?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') ;
else break;
}
}
}

#include"stdio.h"
int writetotext(student stud[]) /*將所有記錄寫入文件*/
{
int i=0,j;
FILE *fp;
char filename[20];
printf("輸入文件名稱:");
gets(filename);
fp=fopen(filename,"w");
fprintf(fp,"%d\n",numstus);
while(i<numstus)
{
fprintf(fp,"%s %s %s ",stud[i].number,stud[i].name,stud[i].sex);
for(j=0;j<numsubs;j++)
fprintf(fp,"%f ",stud[i].subject[j]);
fprintf(fp,"%f %f %d ",stud[i].score,stud[i].average,stud[i].index);
i++;
}
fclose(fp);
printf("已成功存儲!\n");
display(stud,0,numstus-1);
numstus=0;
return 0;
}

#include"stdio.h"
void welcome()
{
printf("\t*************************************************************\n");
printf("\t\t\t\t歡迎進入學生成績管理系統\t\t\t\t\t\t\t\t 曉 歡迎使用!\n");
printf("\t*************************************************************\n");
printf("\t\t\t\t\t\t本系統由「曉」一組親情製作\n\n");
printf("\t\t\t\t\t\t製作人員列表: \n");
printf("\t\t\t\t\t\t吳彥兵 黃進 汪紅波\n\t\t\t\t\t\t劉玉蕭 楊超 章耀\n");
printf("輸入回車進入菜單欄:\n");
printf("\n\n");
getchar();
}

void showtable()
{
printf("-------------------------------------------------------------------------------\n");
printf("學號\t姓名\t性別\tA\tB\tC\tD\tE 總分 平均分 名次\n");
printf("-------------------------------------------------------------------------------\n");
}

void display(student stud[],int n1,int n2)
{
int i;
showtable(); /*顯示表頭*/
for(i=n1;i<=n2;i++)
printf("%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f %.1f %.1f %d\t\n",stud[i].number,stud[i].name,stud[i].sex,stud[i].subject[0],stud[i].subject[1],stud[i].subject[2],stud[i].subject[3],stud[i].subject[4],stud[i].score,stud[i].average,stud[i].index);
/*通過循環輸出數據*/

}
void display1()
{
printf("\t\t本系統由曉一組親情製作\n\n");
printf("\t\t製作人員列表: \n");
printf("\t\t\t\t\t\t吳彥兵 黃進 汪紅波\n\t\t\t\t\t\t劉玉蕭 楊超 章耀\n");
printf("\t\t\t=========歡迎下次使用=========");
printf("\n\n");
getchar();
}

#include"stdio.h"
#include<string.h>
void amendrecord(student stud[])
{
char str[5]; /*供用戶輸入*/
int i=-1,j;

if(numstus==0) /*沒有記錄返回*/
printf("沒有可供修改的記錄!");
while(i<0)
{
i=findrecord(stud);
if(i>=0)
{
printf("要刪除這個學生的信息嗎?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{
deleterecord(stud,i);
count(stud);
}
else
{
printf("確定要修改這個學生的信息嗎?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{

printf("下面請重新輸入學生的信息:\n");
printf("請輸入學號:");
gets(stud[i].number);
printf("請輸入姓名:");
gets(stud[i].name);
printf("請輸入性別(男/女 1/0):");
gets(str);
if(str[0]=='0')
strcpy(stud[i].sex,"女");
else
strcpy(stud[i].sex,"男");
stud[i].score=0;
printf("請按順序輸入成績:");
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i].subject[j]);
stud[i].score+=stud[i].subject[j];
}
getchar();
stud[i].average=stud[i].score/numsubs;
}
count(stud);
}
display(stud,0,numstus-1);
}
printf("是否繼續進行其他修改?(y/n)\n");
gets(str);
if(str[0]=='y'||str[0]=='Y')
i=-1;
else i=1;
}
}

void deleterecord(student stu[],int i) /*刪除信息*/
{
int j;

while(i>=0)
{
for(j=i;j<numstus;j++)
stu[j]=stu[j+1];
numstus--;
printf("刪除成功!\n");

}
}

void count(student stud[])
{
int i,j;
for(i=0;i<numstus;i++)
{
stud[i].index=1;
for(j=0;j<numstus;j++)
if(stud[j].score>stud[i].score)
stud[i].index++;
}
}

#include "stdio.h"
void addrecord(student stud[])
{
int i=0,j,num;
char str[5];
if(numstus!=0)
{
printf("已有記錄存在是否覆蓋?(y/n)\n");
gets(str);
if(str[0]=='Y'||str[0]=='y')
i=0;
else i=numstus;
}

printf("請輸入增加的學生信息條目數:");
scanf("%d",&num);
if(i==0)
numstus=num;
else numstus+=num;
if(numstus>lens)
{
lens+=50;
pointer=(student *)realloc(pointer,lens*LEN);
}
printf("請輸入學生信息:\n");
for(;i<numstus;i++)
{
getchar();
printf("請輸入學號:");
gets(pointer[i].number);
printf("請輸入姓名:");
gets(pointer[i].name);
printf("請輸入性別(男/女 1/0):");
gets(pointer[i].sex);
if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女");
else strcpy(pointer[i].sex,"男");
printf("請輸入各科成績:(按ABCDE的順序):");
stud[i].score=0;
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i].subject[j]); /*計算總分*/
stud[i].score+=stud[i].subject[j];
}
stud[i].average=stud[i].score/numsubs; /*計算平均分*/
}
count(stud); /*附名次*/
display(stud,0,numstus-1);
getchar();
}
#include "stdio.h"
int numstus;
int lens;
student *pointer;
void main()
{
int i=1;
char str[2];
lens=100;
pointer=(student *)malloc(lens*LEN); /*分配內存*/
numstus=0;
welcome(); /*歡迎界面*/
while(i>0)
{
i=menu_select(); /*控制菜單*/
switch(i)
{
case 1:addrecord(pointer);break; /*增加學生信息*/
case 2:findrecord(pointer);break; /*查詢學生信息*/
case 3:amendrecord(pointer);break; /*修改學生信息*/
case 4:sort(pointer);break; /*學生信息排序*/
case 5:statistic(pointer);break; /*統計信息*/
case 6:openfile(pointer);break; /*打開文件*/
case 7:writetotext(pointer);break; /*保存文件*/
case 8:display(pointer,0,numstus-1);break; /*顯示記錄*/
case 0:
if(numstus!=0) printf("是否保存當前記錄?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(pointer);
i=-1;break; /*退出系統*/
default:printf("請輸入數字0~8:\n");i=1; /*輸入錯誤*/
}
}
printf("\t\t======歡迎再次使用本系統======= \n");
display1();
}

熱點內容
非加密公章 發布:2025-02-10 09:09:52 瀏覽:620
京東登錄密碼如何清除 發布:2025-02-10 09:07:41 瀏覽:689
dns伺服器地址192 發布:2025-02-10 09:07:39 瀏覽:661
redis緩存實現 發布:2025-02-10 09:01:26 瀏覽:710
後台登錄腳本 發布:2025-02-10 08:56:11 瀏覽:658
我的辣雞賬號和密碼是多少 發布:2025-02-10 08:55:37 瀏覽:690
超父演算法 發布:2025-02-10 08:43:05 瀏覽:910
電腦主機配置需要哪些硬體 發布:2025-02-10 08:22:52 瀏覽:706
平板太卡換存儲卡有用嗎 發布:2025-02-10 08:14:16 瀏覽:828
台北伺服器搭建 發布:2025-02-10 08:13:33 瀏覽:273