




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、X X 師 范 大 學 實 驗 報 告課 程 C語言課程設計 任課老師 學 號 姓 名 院 系 _年_月至_年_月 注意事項1. 使用C語言,代碼已在vs中運行過,可以運行(主要功能都能實現)2. 需求分析,前期設計都沒寫,請同學們自己完成3. 附帶有 student.txt 文件,將其移動至 F:stu 文件夾中,運行程序時可直接選 6號指令,從中讀取學生信息。如果沒有該txt文件(可能會在上傳過程中丟失),仍需在F盤下新建stu文件夾,各文件將保存于該文件夾中4. 按word格式輸出尚未設計好,有興趣可自己完成5. 按excel格式輸出,完成后需自行調整相應列寬(拉寬),使內容美觀6. 從
2、下一頁開始,復制余下全文,粘貼即可運行#include<stdio.h>#define M 30 /班級總人數,暫定30,可修改#define N 3 /課程成績門數,暫定3,可修改 int inputstu(struct student stu, int m, int n);void prinstu(struct student stu, int m, int n);int sortsno(struct student stu, int m);int sortage(struct student stu, int m);int sortmark(struct student st
3、u,int sm, int m, int n);void prinsort(struct student stu, int m, int n);int writefile(struct student stu, FILE *fp, int m, int n);int readfile(struct student stu, FILE *fp, int m, int n);int fprinword(struct student stu, FILE *fp, int m, int n);int fprinexcel(struct student stu, FILE *fp, int m, int
4、 n);int seachsno(struct student stu,long sno, int m,int n);int seachsname(struct student stu,char sname, int m, int n);int desno(struct student stu, long sno, int m);int desname(struct student stu, char sname, int m);int cutin(struct student stu, int m, int n); struct student int turn; long sno; cha
5、r sname20; char sgrade10; char sbirth10; int smarkN; void main() int i = 0; int con1 = 0; int con2 = 0; long sno; char sname20; FILE *fp = NULL; struct student stuM; for (i = 0; i < M; i+) stui.turn = -1; do printf("nn*n"); printf(" n * 學生信息管理系統 *nn"); printf(" * 請按提示輸入相應
6、命令: *nn"); printf(" 1 鍵盤輸入所有學生的基本信息n"); printf(" 2 屏幕輸出所有學生的基本信息n"); printf(" 3 子菜單:按一定順序對學生進行排序n"); printf(" 4 按順序屏幕輸出學生信息n"); printf(" 5 保存學生信息(二進制文件)n"); printf(" 6 從上次保存的二進制文件中讀取學生信息n"); printf(" 7 子菜單:將學生信息保存為文本文檔(人工閱讀)n"
7、;); printf(" 8 子菜單:對單個學生的插入刪除查詢修改n"); printf(" -1 退出系統n"); scanf("%d", &con1); switch (con1) case 1: printf("n* 注意! *n"); printf(" 繼續進行輸入會覆蓋原數據!n"); printf(" 第一次使用本軟件或需重新寫信息請繼續:n "); printf(" 1 繼續n"); printf(" -1 返回n"
8、;); scanf("%d", &con2); if (con2 = 1) inputstu(stu, M, N); break; case 2:prinstu(stu, M, N); break; case 3: do printf("n*n"); printf(" 1 按學號順序進行排序n"); printf(" 2 按年齡從小到大排序n"); printf(" 3 按總成績由高到低排序n"); printf(" -1 返回上一級菜單n"); scanf(&quo
9、t;%d", &con2); switch (con2) case 1: sortsno(stu, M); con2 = 0; break; case 2: /sortage(stu, M); break; case 3: int smM; sortmark(stu, sm, M, N); break; case -1:break; default: printf("二級命令輸入錯誤,請重試!n"); fflush(stdin); while (con2 != -1); break; case 4:prinsort(stu, M, N); break; c
10、ase 5:writefile(stu, fp, M, N); break; case 6:readfile(stu, fp, M, N); break; case 7: printf("n*n"); printf(" 1 將學生信息輸出為txt文檔,路徑:F:stustudent.txtn"); printf(" 2 將學生信息輸出為word文檔, 路徑:F:stustudent.doc n"); printf(" 3 將學生信息輸出為excel文檔, 路徑:F:stustudent.xls n"); print
11、f(" -1 返回上一級菜單n"); scanf("%d", &con2); switch (con2) case 1: break; case 2: fprinword(stu, fp, M, N); break; case 3: fprinexcel(stu, fp, M, N); break; break; case 8: do printf("n*nn"); printf(" 1 按學號查詢單個學生n"); printf(" 2 按姓名查詢單個學生n"); printf(&quo
12、t; 3 按學號刪除單個學生n"); printf(" 4 按姓名刪除單個學生n"); printf(" 5 插入單個學生信息n"); printf("-1 返回主菜單n"); scanf("%d", &con2); switch (con2) case 1: printf("請輸入單個學號:n"); scanf("%10ld", &sno); seachsno(stu, sno, M, N); break; case 2: printf("
13、;請輸入單個學生姓名:n"); scanf("%20s",sname); seachsname(stu, sname, M, N); break; case 3: printf("請輸入單個學號:n"); scanf("%10ld",&sno); desno(stu, sno, M); break; case 4: printf("請輸入單個學生姓名:n"); scanf("%s", sname); desname(stu, sname, M); break; case 5:
14、cutin(stu, M, N); break; default: printf("二級指令錯誤,請重新輸入!n"); break; while (con2 != -1); case -1:printf("感謝使用本系統!n"); break; default: printf("一級命令輸入錯誤,請重試"); fflush(stdin); break; while (con1 != -1); /輸入學生的基本信息int inputstu(struct student stu,int m,int n)int i = 0;int j =
15、0;printf("請按說明輸入學生信息:n");while (i < m)printf("請輸入第%d個學生的學號,姓名,班級,出生日期:n", i + 1);scanf("%10ld%20s%10s%10s", &stui.sno, &stui.sname, &stui.sgrade, &stui.sbirth);for (j = 0; j < n; j+)printf("請輸入第%d個學生的第%d門成績n",i+1,j+1);scanf("%d"
16、, &stui.smarkj);i+;return i;/屏幕輸出學生信息void prinstu(struct student stu, int m, int n)int i = 0;int j = 0;printf("*n");printf("學生基本信息如下:n");printf(" 學號 姓名 班級 出生年月 成績1 成績2 成績3n");while (i < m) if (stui.sno = 0)i+;continue;printf("%10ld %20s%10s %10s ", stui
17、.sno, stui.sname, stui.sgrade, stui.sbirth);for (j = 0; j < n; j+)printf(" %d ", stui.smarkj);printf("n");i+;/按學號順序進行排序int sortsno(struct student stu,int m)int i = 0;int j = 0;int s;long snoM;for (i = 0; i < M; i+)snoi = stui.sno;for (i = 0; i < m; i+)for (j = i+1; j <
18、; m; j+)s = snoi;if (s >snoj)s = snoj;snoj = snoi;snoi = s;for (i = 0; i < m; i+)for (j = 0; j < m; j+)if (stuj.sno = snoi)stuj.turn = i;return i;/按年齡對學生進行排序;int sortage(struct student stu, int m)/按總成績由高到低排序int sortmark(struct student stu,int sm, int m,int n)int i = 0;int j = 0;int s = 0;fo
19、r (i = 0; i < m; i+)smi = 0;for (i = 0; i < m; i+)for (j = 0; j < n; j+)smi = smi + stui.smarkj;for (i = 0; i < m; i+)for (j = i + 1; j < m; j+)s = smi;if (s <smj)s =j;sms = 0;stus.turn = i;return i;/按順序屏幕輸出void prinsort(struct student stu,int m,int n)int i = 0;int j = 0;int k = 0;
20、printf("n*n");printf("按排序,學生基本信息如下:n");printf(" 學號 姓名 班級 出生年月 成績1 成績2 成績3n");while (k < m)if (stui.sno = 0)continue;for (i = 0; i < m; i+)if (stui.turn = k)printf("%10ld %20s%10s %10s ", stui.sno, stui.sname, stui.sgrade, stui.sbirth);for (j = 0; j <
21、n; j+)printf(" %d ", stui.smarkj);printf("n");k+;/寫數據進二進制文件 int writefile(struct student stu,FILE *fp,int m,int n)int i = 1;fp = fopen("f:stustudent.txt", "wb");if (fp = NULL)printf("打開文件失敗!n");exit(0);fwrite(&stu0,sizeof(struct student),m,fp);i
22、= fclose(fp);return i;/從二進制中讀取學生信息int readfile(struct student stu, FILE *fp, int m, int n)int i = 1;fp = fopen("f:stustudent.txt", "rb");if (fp = NULL)printf("打開文件失敗!n");exit(0);fread(&stu0, sizeof(struct student), m, fp);i = fclose(fp);return i;/將學生信息寫入word文檔,保存于 F
23、:stustudent.doc int fprinword(struct student stu, FILE *fp, int m, int n)int i = 0;int j = 0;fp = fopen("F:stustudent.doc","w");if (fp = NULL)printf("文件打開失敗!");exit(0);while (i < m)if (stui.sno = 0);continue;fprintf(fp,"%10ld %20s%10s%10s", stui.sno, stui.s
24、name, stui.sgrade, stui.sbirth);for (j = 0; j < n; j+)fprintf(fp," %d ", stui.smarkj);printf("n");i+;fclose(fp);return i;/將學生信息寫入excel文檔,保存于 F:stustudent.xls int fprinexcel(struct student stu, FILE *fp, int m, int n)int i = 0;int j = 0;char t = 't'char lin20="成績&q
25、uot;char str420;strcpy(str0, " 學號");strcpy(str1, " 姓名");strcpy(str2, " 班級");strcpy(str3, " 生日");fp = fopen("F:stustudent.xls", "w");if (fp = NULL)printf("文件打開失敗!");exit(0);fprintf(fp, "%s%c%s%c%s%c%s", str0, t, str1, t,
26、str2, t, str3);for (i = 0; i < n; i+)fprintf(fp, "%c %s%d", t, lin, i+1);fprintf(fp, "n");i = 0;while (i < m)if (stui.sno = -1)continue;fprintf(fp, "%10ld%c%20s%c%10s%c%10s", stui.sno,t, stui.sname,t, stui.sgrade,t, stui.sbirth);for (j = 0; j < n; j+)fprintf(fp
27、, "%c%d", t,stui.smarkj);fprintf(fp,"n");i+;fclose(fp);return i;/按學號查詢單個學生int seachsno(struct student stu,long sno,int m,int n)int i = 0;int j = 0;for (i = 0; i < m; i+)if (stui.sno = sno)printf("按學號查詢到的學生基本信息如下:n");printf(" 學號 姓名 班級 出生年月 成績1 成績2 成績3n");pri
28、ntf("%10ld %20s%10s %10s ", stui.sno, stui.sname, stui.sgrade, stui.sbirth);for (j = 0; j < n; j+)printf(" %d ", stui.smarkj);printf("n");break;return i;/按姓名查詢單個學生int seachsname(struct student stu,char sname, int m, int n)int i = 0;int j = 0;int s = -1;for (i = 0; i < m; i+)s = strcmp(stui.sname, sname);if (s = 0)printf("按姓名查詢到的學生基本信息如下:n");printf(" 學號 姓名 班級 出生年月 成績1 成績2 成績3n")
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 評價隋唐地方管理制度
- 訴訟檔案借閱管理制度
- 診所消毒隔離管理制度
- 試乘試駕基地管理制度
- 財政單據核銷管理制度
- 貨物入庫餐飲管理制度
- 貨物進出單據管理制度
- 貨車司機行為管理制度
- 過橋貸款協議書范本
- 水廠投資合同協議書范本
- 江西省九江市外國語學校2025屆英語八下期末學業質量監測試題含答案
- 2025年全國統一高考語文試卷(全國一卷)含答案
- 四川體彩銷售員考試試題及答案
- 2025年河北省萬唯中考定心卷生物(二)
- 廠區物業維修管理制度
- 2025年福建省高中自主招生模擬數學試卷試題(含答案)
- 瀘州理綜中考試題及答案
- 餐飲運營餐飲管理流程考核試題及答案在2025年
- 內鏡室患者服務專員職責與流程
- 2025龍巖市上杭縣藍溪鎮社區工作者考試真題
- 2025建設銀行ai面試題目及最佳答案
評論
0/150
提交評論