當前位置:首頁 » 課程大全 » c語言課程設計代碼

c語言課程設計代碼

發布時間: 2020-11-29 14:13:04

① C語言課程設計,求幫忙寫完代碼

#include "operater.h" void Operater::welcome()
{
cout<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<" 歡 迎 進 入 學 生 信 息 系 統 "<<endl<<endl<<endl<<endl;
cout<<" 製作人:***"<<endl<<endl<<endl<<endl;
cout<<" 請輸入密碼或輸入A退出:\n\n\n ";
}
void Operater::display()
{
cout<<endl<<endl;
cout<<"**************************** 學生管理系統 **************************"<<endl;
cout<<"1: 添加一個學生信息"<<endl;
cout<<"2: 刪除一個學生信息"<<endl;
cout<<"3: 顯示所有學生的姓名"<<endl;
cout<<"4: 根據姓名顯示單個學生所有信息"<<endl;
cout<<"5: 根據姓名對單個學生進行編輯"<<endl;
cout<<"6: 幫助菜單"<<endl;
cout<<"7: 保存數據"<<endl;
cout<<"0: 退出系統"<<endl;
cout<<"********************************************************************"<<endl;
}
void Operater::Loop()
{
List L1; //List 對象
char ch[20];
nodetype *p, *head;
int i; //存放節點序號

p=L1.load(); //初始化:從外部讀入數據創建鏈表

head=p;
display();

while(1)
{
cout<<endl<<endl;
cout<<"請輸入選擇(幫助選項--> 6 ): "<<endl;
cin>>ch;

system("cls");
if(L1.check(ch, "1"))
{
p=L1.insnode(0);
head=p;

system("cls");
cout<<endl;
cout<<"************** 添加一個學生信息 ******************"<<endl;
cout<<"下面輸入個人信息: "<<endl;
L1.editperson(p);
cout<<"下面輸入學科成績: "<<endl;
L1.editscore(p);
cout<<"下面輸入聯系方式: "<<endl;
L1.edittelephone(p);
}

if(L1.check(ch, "2"))
{
system("cls");
cout<<endl;
cout<<"************** 刪除一個學生信息 ******************"<<endl;
L1.dispname();
cout<<"請輸入學生姓名: "<<endl;
cin>>ch;
i=L1.find2(ch);
L1.delnode(i);
}

if(L1.check(ch, "3"))
{
system("cls");
cout<<endl;
cout<<"************** 顯示所有學生姓名 ******************"<<endl;
L1.dispname();
}

if(L1.check(ch, "4"))
{
system("cls");
cout<<endl;
cout<<"************** 根據姓名顯示單個學生所有信息 ******************"<<endl;
L1.dispname();
cout<<"請輸入學生姓名: "<<endl;
cin>>ch;
p=L1.find(ch);
L1.dispnode(p);

}
if(L1.check(ch, "6"))
{
display();
}

if(L1.check(ch, "7")) //保存數據
{
FILE *fp;
if((fp=fopen("student.txt", "w"))==NULL)
{
cout<<"打開文件失敗"<<endl;
return;
}

int i;
char t[255];

//將 L1.listlen() 賦予字元串中的數字
sprintf(t, "The Length Of Link: %d\n", L1.listlen());

fputs(t, fp);
strcpy(t, "\n");
fputs(t, fp);

p=L1.findnode(1); //將鏈表頭指針賦予 p

for(i=0; i<L1.listlen(); i++)
{
fputs(p->address, fp); //輸出地址
fputs(p->birthday, fp); //輸出生日
fputs(p->pe.num, fp); //輸出學號
fputs(p->sc.english, fp); //輸出英語成績
fputs(p->sc.vc, fp); //輸出C++成績

fputs(p->sc.math, fp); //輸出數學成績
fputs(p->sc.vb, fp); //輸出vb成績
fputs(p->pe.name, fp); //輸出姓名
fputs(p->pe.sex, fp); //輸出性別
fputs(p->pe.GJ, fp); //輸出國籍
fputs(p->pe.MZ, fp); //輸出民族
fputs(p->pe.XL, fp); //輸出學歷
fputs(p->te.SJ, fp); //輸出手機
fputs(p->te.JD, fp); //輸出家庭電話
fputs(p->te.XD, fp); //輸出學校電話
fputs(t, fp);
p=p->next;
}
p=head;
fclose(fp);
}

if(L1.check(ch, "5"))
{
char c[20];
system("cls");
cout<<endl;
cout<<"************** 根據姓名對單個學生進行編輯 ******************"<<endl;
L1.dispname();
cout<<"請輸入學生姓名: "<<endl;
cin>>c;
p=L1.find(c);

system("cls");
cout<<endl<<endl;
cout<<"*********************************************************"<<endl;
cout<<"1: 編輯個人信息"<<endl;
cout<<"2: 編輯學科成績"<<endl;
cout<<"3: 編輯聯系方式"<<endl;
cout<<"4: 顯示個人信息"<<endl;
cout<<"5: 顯示學科成績"<<endl;
cout<<"6: 顯示聯系方式"<<endl;
cout<<"7: 顯示該學生所有信息"<<endl;
cout<<"8: 幫助菜單"<<endl;
cout<<"9: 返回上一級菜單"<<endl;
cout<<"*********************************************************"<<endl;

while(1)
{
cout<<endl<<endl;
cout<<"請輸入選擇(幫助選項--> 6 ): "<<endl;
cin>>c;
system("cls");

if(L1.check(c, "1"))
{
system("cls");
cout<<endl;
cout<<"************** 編輯個人信息 ******************"<<endl;
L1.editperson(p);
}
else if(L1.check(c, "2"))
{
system("cls");
cout<<endl;
cout<<"************** 編輯學科成績 ******************"<<endl;
L1.editscore(p);
}

else if(L1.check(c, "3"))
{
system("cls");
cout<<endl;
cout<<"************** 編輯聯系方式 ******************"<<endl;
L1.edittelephone(p);
}

else if(L1.check(c, "4"))
{
system("cls");
cout<<endl;
cout<<"************** 顯示個人信息 ******************"<<endl;
L1.dispperson(p);
}
else if(L1.check(c, "5"))
{
system("cls");
cout<<endl;
cout<<"************** 顯示學科成績 ******************"<<endl;
L1.dispscore(p);
}

else if(L1.check(c, "6"))
{
system("cls");
cout<<endl;
cout<<"************** 顯示聯系方式 ******************"<<endl;
L1.disptelephone(p);
}

else if(L1.check(c, "7"))
{
system("cls");
cout<<endl;
cout<<"7: 顯示該學生所有信息"<<endl;
L1.dispnode(p);
}

else if(L1.check(c, "8"))
{
cout<<"8: 幫助菜單"<<endl;
cout<<endl;
system("cls");
L1.help();
}

else if(L1.check(c, "9"))
{
cout<<"9: 返回上一級菜單"<<endl;
cout<<endl;
display();
break; //用 break 跳出本循環,不要用 return ,return 是退出程序
}
}
}

else if(L1.check(ch, "0"))
return;
}
return;
}

"operater.h"
#include <iostream.h> // cin 及 cout
#include <string.h> // strcpy(): 字元串復制
#include <stdlib.h> // system("cls")
#include <stdio.h> // 文件操作
#include "list.h" // 我們要創建類 List 的對象和節點指針,所以要把類的頭文件包含進來

class Operater
{
List L1;
public:
void welcome();//歡迎登錄界面
void display();//顯示菜單
void Loop(); //主循環

};
"List.cpp"
#include "list.h"
List::List()
{
head = NULL;
}

bool List::check(char *a, char *b) //對比兩個字元串是否相等
{
int i;
int j=strlen(b);
for(i=0; i<j; i++)
{
if(*a==*b)
{
a++;
b++;
}
else
return 0;
}
return 1;
}
nodetype* List::creatlist (int n) //創建鏈表
{
nodetype *h=NULL, *s, *t;
int i=1;

for(int j=0; j<n; j++)
{
if(i==1) //創建第一個節點
{
h=(nodetype*)malloc(sizeof(nodetype));
h->next=NULL;
t=h;
}
else //創建其餘節點
{
s=(nodetype*)malloc(sizeof(nodetype));
s->next=NULL;
t->next=s;
t=s; //t 始終指向生成的單鏈表的最後一個節點
}

i++;
}
head=h;
return h;
}
void List::readstr(FILE *f,char *string)
{
do
{
// 先讀入一行文本
fgets(string, 255, f); //fgets(): 從文件 f 讀入長度為 255-1 的字元串
// 並存入到 string 中
} while ((string[0] == '/') || (string[0] == '\n'));

return;
}
nodetype* List::load()
{
FILE *fp;
nodetype *p;
char c[255];
int num;
if((fp=fopen("student.txt", "r"))==NULL)
{
cout<<"打開文件失敗"<<endl;
return 0;
}
readstr(fp, c);
sscanf(c, "The Length Of Link: %d", &num); //獲取鏈表長度

p=creatlist(num); //創建鏈表

for(int i=0; i<num; i++)
{
readstr(fp, c);
strcpy(p->address, c);
readstr(fp, c);
strcpy(p->birthday, c);
readstr(fp, c);
strcpy(p->pe.num, c);
readstr(fp, c);
readstr(fp, c);
strcpy(p->sc.vc, c);
readstr(fp, c);
strcpy(p->sc.english, c);
readstr(fp, c);
strcpy(p->sc.math, c);
readstr(fp, c);
strcpy(p->sc.vb, c);
strcpy(p->pe.name, c);
readstr(fp, c);
strcpy(p->pe.sex, c);
readstr(fp, c);
strcpy(p->pe.GJ, c);
readstr(fp, c);
strcpy(p->pe.MZ, c);
readstr(fp, c);
strcpy(p->pe.XL, c);
readstr(fp, c);
strcpy(p->te.SJ, c);
readstr(fp, c);
strcpy(p->te.JD, c);
readstr(fp, c);
strcpy(p->te.XD, c);
p=p->next;
}
fclose(fp);
return p;
}
void List::dispnode(nodetype* p) //顯示一個學生的所有信息
{
if(p!=NULL)
{
dispperson(p);
dispscore(p);
disptelephone(p);
}
}
void List::dispname() //顯示所有學生姓名
{
nodetype* p=head;
cout<<"現有的學生: "<<endl;
if(p==NULL)
cout<<"沒有任何學生數據"<<endl;
while(p!=NULL)
{
cout<<"姓名: "<<p->pe.name;

p=p->next;
}
}
int List::listlen() //返回鏈表長度
{
int i=0;
nodetype* p=head;
while(p!=NULL)
{
p=p->next;
i++;
}
return i;
}
nodetype* List::findnode (int i) //通過查找序號返回節點的指針
{
nodetype* p=head;
int j=1;
if( i>listlen()||i<=0 ) // i 上溢或下溢
return NULL;
else
{
while( p!=NULL && j<i ) //查找第 i 個節點並由 p 指向該節點
{
j++;
p=p->next;
}
return p;
}
}
nodetype* List::find(char c[]) //通過查找姓名返回節點的指針
{
nodetype* p=head;
int j=1;
strcat(c, "\n"); //從外部讀入的字元串末尾都帶了一個換行符
while( p!=NULL && !(check(c, p->pe.name))) //查找第 i 個節點並由 p 指向該節點
{
j++;
p=p->next;
}
return p;
}
int List::find2(char c[]) //通過查找姓名返回節點的序號
{
nodetype* p=head;
int j=1;
strcat(c, "\n"); //從外部讀入的字元串末尾都帶了一個換行符
while( p!=NULL && !(check(c, p->pe.name))) //查找第 i 個節點並由 p 指向該節點
{
j++;
p=p->next;
}
return j;
}
nodetype* List::insnode(int i)
{
nodetype *h=head, *p, *s;
s=(nodetype*)malloc(sizeof(nodetype)); //創建節點 s
s->next=NULL;
if(i==0) //i=0 時 s 作為該單鏈表的第一個節點
{
s->next = h;
h=s; //重新定義頭節點
}
else
{
p=findnode(i); //查找第 i 個節點,並由 p 指向該節點
if(p!=NULL)
{
s->next=p->next;
p->next=s;
}
else cout<<"輸入的 i 值不正確"<<endl;
}
head=h;

return s;
}
void List::delnode(int i) //刪除第 i 個節點
{
nodetype *h=head, *p=head, *s;
int j=1;
if(i==1) //刪除第一個節點
{
h=h->next;
free(p);
}
else
{
p=findnode(i-1); //查找第 i-1 個節點,並由 p 指向這個節點
if(p!=NULL && p->next!=NULL)
{
s=p->next; // s 指向要刪除的節點
p->next=s->next;
free(s);
}
else
cout<<"輸入的 i 值不正確"<<endl;
}
head=h;
}
void List::editperson(nodetype* p)
{
char c[100];
cout<<"請輸入學號: "<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->pe.num, c);
cout<<"請輸入姓名: "<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->pe.name, c);
cout<<"請輸入性別:"<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->pe.sex, c);
cout<<"請輸入生日(格式舉例:2007-6-1): "<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->birthday, c);
cout<<"請輸入民族:"<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->pe.MZ, c);
cout<<"請輸入國籍:"<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->pe.GJ, c);
cout<<"請輸入學歷:"<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->pe.XL, c);

cout<<"請輸入家庭住址(例如:河南洛陽市洛龍路71號"<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->address, c);

cout<<"編輯個人信息完成!"<<endl;

dispperson(p);
}
void List::editscore(nodetype* p)
{
char a[50];

cout<<"請輸入vc成績: "<<endl;
cin>>a;
strcat(a, "\n");
strcpy(p->sc.vc, a);

cout<<"請輸入英語成績: "<<endl;
cin>>a;
strcat(a, "\n");
strcpy(p->sc.english, a);

cout<<"請輸入數學成績: "<<endl;
cin>>a;
strcat(a, "\n");
strcpy(p->sc.math, a);

cout<<"請輸入vb成績: "<<endl;
cin>>a;
strcat(a, "\n");
strcpy(p->sc.vb, a);

cout<<"編輯學科成績完成!"<<endl;

dispscore(p);
}
void List::edittelephone(nodetype* p)
{
char c[50];
cout<<"請輸入手機號碼: "<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->te.SJ, c);

cout<<"請輸入家庭電話號碼: "<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->te.JD, c);

cout<<"請輸入學校電話號碼: "<<endl;
cin>>c;
strcat(c, "\n");
strcpy(p->te.XD, c);

cout<<"編輯聯系方式完成!"<<endl;

disptelephone(p);
}
void List::dispperson(nodetype* p)
{
cout<<"姓名: "<<p->pe.name;
cout<<"性別: "<<p->pe.sex;
cout<<"民族: "<<p->pe.MZ;
cout<<"國籍: "<<p->pe.GJ;
cout<<"學歷: "<<p->pe.XL;
cout<<"出生日期: "<<p->birthday;
cout<<"家庭住址: "<<p->address;
}
void List::dispscore(nodetype* p)
{

cout<<"vc成績: "<<p->sc.vc;
cout<<"英語成績: "<<p->sc.english;
cout<<"數學成績: "<<p->sc.math;
cout<<"vb成績: "<<p->sc.vb;
}
void List::disptelephone(nodetype* p)
{
cout<<"手機號碼是: "<<p->te.SJ;
cout<<"家庭電話是: "<<p->te.JD;
cout<<"學校電話是: "<<p->te.XD;
}
void List::help()
{
cout<<endl<<endl;
cout<<"*********************************************************"<<endl;
cout<<"1: 編輯個人信息"<<endl;
cout<<"2: 編輯學科成績"<<endl;
cout<<"3: 編輯聯系方式"<<endl;
cout<<"4: 顯示個人信息"<<endl;
cout<<"5: 顯示學科成績"<<endl;
cout<<"6: 顯示聯系方式"<<endl;
cout<<"7: 顯示該學生所有信息"<<endl;
cout<<"8: 幫助菜單"<<endl;
cout<<"9: 返回上一級菜單"<<endl;
cout<<"*********************************************************"<<endl;
}
List::~List()
{
nodetype *pa=head, *pb;
if(pa!=NULL)
{
pb=pa->next;
if(pb==NULL)
free(pa);
else
{
while(pb!=NULL)
{
free(pa);
pa=pb;
pb=pb->next;
}
free(pa);
}
}
}
"List.h"
// List.h: 類的所有成員都在頭文件里聲明
#include <iostream.h>
#include <malloc.h> // 用到申請內存函數 malloc() 和釋放內存函數 free()
#include <string.h> // 字元串處理
#include <stdio.h> // 文件操作
#include <stdlib.h> // system("cls")

class address //家庭地址
{
public:
char city[10]; //城市
char town[10]; //縣城
char village[10]; //鄉鎮
};

class telephone //聯系方式
{
public:
char SJ[50]; //手機
char JD[30]; //家庭電話
char XD[30]; //學校電話
};
class person //個人信息
{
public:
char name[20]; //名字
char num[20]; //學號
char sex[10] ; //性別
char MZ[16]; //民族
char GJ[17]; //國籍
char XL[19]; //學歷
};
struct score //成績
{
char english[20];
char vc[20];
char math[20];
char vb[20];
};

//定義節點的類型
typedef class linknode
{
public:
char address[100]; //地址
char birthday[100]; //出生日期
class person pe;//個人信息
struct score sc;
class telephone te; //聯系方式
bool flag;
class linknode* next;
}nodetype;

class List
{
nodetype* head;

public:
List();
List::~List();

linknode* creatlist(int); //創建鏈表
int listlen(); //返回鏈表長度
nodetype* findnode(int); //通過查找序號返回節點的指針
nodetype* find(char c[]); //通過查找姓名返回節點的指針
int find2(char c[]); //通過查找姓名返回節點的序號
nodetype* insnode(int); //插入節點
void delnode(int); //刪除節點
nodetype* load(); //初始化:從外部讀入數據
void readstr(FILE *f,char *string); //讀行函數
bool check(char *a, char *b); //對比兩個字元串是否相等
void help(); //顯示幫助菜單

void editperson(nodetype*); //編輯個人說明
void editscore(nodetype*); //編輯學科成績
void edittelephone(nodetype*); //編輯聯系方式
void dispname(); //顯示所有學生姓名
void dispnode(nodetype* p); //顯示一個學生的所有信息
void dispperson(nodetype*); //顯示一個學生的個人說明
void dispscore(nodetype*); //顯示一個學生的學科成績
void disptelephone(nodetype*); //顯示一個學生的聯系方式

② c語言課程設計 跪求代碼

我有代碼 q我

③ 求C語言課程設計源代碼 急~!!

#include "stdio.h"
#define MAX 100 /*定義輸入數據的最大長度*/

void countmax(int a[MAX],int N){ /*計算最值的函數*/
int minn=a[0],maxx=a[0]; /*minn表最小值,maxx表最大值*/
for(int i=0;i<=N;i++){ /*N是實際輸入數組的長度*/
if(a[i]<minn) /*循環求最值*/
minn=a[i];
else
if(a[i]>maxx)
maxx=a[i];
}
printf("\n最小值:%d\n最大值:%d\n",minn,maxx);
printf("\n————————————————————————\n");
}

void found(int a[MAX],int N){ /*查找函數*/
int Flag = 1,x; /*Flag用來標記是否查找成功,0表成功,1表未成功*/
printf("請輸入你要查找的數: ");
scanf("%d",&x); /*x是待查找的數*/
for(int i=0;i<=N;i++){
if(a[i]==x){
printf("所找的數在數組中的位置是第 %d 位\n",i+1);
Flag = 0;
break;
}
}
if(Flag == 1)
printf("Not Found!\n");
printf("————————————————————————\n");
}

void deletedata(int a[MAX],int N){ /*刪除操作函數*/
int Flag = 1,x,pos; /*Flag用來標記是否刪除成功,0表成功,1表未成功,pos用來記錄刪除的位置*/
printf("請輸入你要刪除的數: ");
scanf("%d",&x);
for(int i = 0;i <= N;i++){ /*在數組中循環查找所要刪除的數*/
if(a[i]==x){
for(int j=i;j<=N;j++) /*刪除位置後的數全部向前移動一位*/
a[j]=a[j+1];
Flag = 0;
N--; /*數組長度減1*/
pos = i; /*記錄刪除位置*/
break;
}
}
if(Flag==1)
printf("Not Found!");
else{
printf("刪除成功!\n");
printf("所刪除的數在數組中的位置是第 %d 位\n",pos+1);
}
printf("刪除操作後的數據為:\n");
for(int j=0;j<=N;j++)
printf("%d ",a[j]);
printf("\n————————————————————————\n");
}

void sumdata(int a[MAX],int N){ /*求奇數和偶數函數*/
int SUM1=0,SUM2=0,N1=0,N2=0;
/*SUM1表示偶數之和,N1表偶數個數
**SUM2表示奇數之和,N2表奇數個數
*/
for(int i=0;i<=N;i++){
if(a[i]%2==0){
N1++;
SUM1 = SUM1 + a[i];
}
else{
N2++;
SUM2 = SUM2 + a[i];
}

}
printf("數據中的偶數個數為: %d 個,平均值為: %d\n",N1,SUM1/N1);
printf("數據中的奇數個數為: %d 個,平均值為: %d\n",N2,SUM2/N2);
printf("————————————————————————\n");
}

int main(){

int i=0,k,N,a[MAX],data;
/*k用來標記所選擇的操作,data表示輸入的數據,a數組用來存儲輸入的數據*/
printf("請輸入數據:\n");
scanf("%d",&data);
while(data!=0){
a[i]=data;
scanf("%d",&data);
N=i++;
}
printf("\n您輸入了%d個數據,如下所示:\n",N+1);
for(i=0;i<=N;i++)
printf("%d ",a[i]);

printf("\n————————————————————————");
printf("\n\n請選擇下面的一個項目:\n");
printf("1、求最值\n2、查找\n3、刪除\n4、統計及平均\n5、退出\n");
printf("————————————————————————\n");
scanf("%d",&k);
switch(k){
case 1:
countmax(a,N);
break;
case 2:
found(a,N);
break;
case 3:
deletedata(a,N);
break;
case 4:
sumdata(a,N);
break;
case 5:
break;
default:
break;
}
return 0;
}

④ 有沒有300行左右的C語言課程設計的源代碼

#include<stdio.h>
#include<stdlib.h>
#include"windows.h"
#include"string.h"

#defineS_MAX50

intuser_count=0;//用戶信息的總數
intbook_count=0;
charini_path[100]={""};//數據文件的絕對路徑
charuser_path[100]={""};//用戶數據文件的絕對路徑
charbook_path[100]={""};
intbook_pos=0;//book數組的計數
intuser_pos=0;

structuser_data
{
charname[10];
charbook_name[50];
}user[S_MAX];

structbook_data
{
charno[10];
charname[50];
charauthor[30];
charmoney[10];
charin_or_out[10];
charuser_name[10];
}book[S_MAX];

voidread_file()//從文件讀取數據
{
user_pos=0;
inti;
for(i=0;i<S_MAX;i++)
{
memset(user[i].name,'',10);
memset(user[i].book_name,'',50);

memset(book[i].no,'',10);
memset(book[i].name,'',50);
memset(book[i].author,'',30);
memset(book[i].money,'',10);
memset(book[i].in_or_out,'',10);
memset(book[i].user_name,'',10);
}
user_count=GetPrivateProfileInt("USER","user_count",0,user_path);
book_count=GetPrivateProfileInt("book","book_count",0,book_path);

for(i=0;i<user_count;i++)
{
chart[5]={""};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"name","",user[i].name,10,user_path);
GetPrivateProfileString(t,"book_name","",user[i].book_name,50,user_path);
user_pos++;
}
for(i=0;i<book_count;i++)
{
chart[5]={""};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"no","",book[i].no,10,book_path);
GetPrivateProfileString(t,"name","",book[i].name,50,book_path);
GetPrivateProfileString(t,"author","",book[i].author,30,book_path);
GetPrivateProfileString(t,"money","",book[i].money,10,book_path);
GetPrivateProfileString(t,"in_or_out","",book[i].in_or_out,10,book_path);
GetPrivateProfileString(t,"user_name","",book[i].user_name,10,book_path);
book_pos++;
}
}

voidwrite_file()
{
inti;
for(i=0;i<user_count;i++)
{
chart[5]={""};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",NULL,user_path);
WritePrivateProfileString(t,"book_name",NULL,user_path);

WritePrivateProfileString(t,"no",NULL,book_path);
WritePrivateProfileString(t,"name",NULL,book_path);
WritePrivateProfileString(t,"author",NULL,book_path);
WritePrivateProfileString(t,"money",NULL,book_path);
WritePrivateProfileString(t,"in_or_out",NULL,book_path);
WritePrivateProfileString(t,"user_name",NULL,book_path);
}
chartemp[5]={""};
inttemp_count=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,"")==0)
{
continue;
}
chart[5]={""};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",user[i].name,user_path);
WritePrivateProfileString(t,"book_name",user[i].book_name,user_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("USER","user_count",temp,user_path);

temp_count=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,"")==0)
{
continue;
}
chart[5]={""};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"no",book[i].no,book_path);
WritePrivateProfileString(t,"name",book[i].name,book_path);
WritePrivateProfileString(t,"author",book[i].author,book_path);
WritePrivateProfileString(t,"money",book[i].money,book_path);
WritePrivateProfileString(t,"in_or_out",book[i].in_or_out,book_path);
WritePrivateProfileString(t,"user_name",book[i].user_name,book_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("BOOK","book_count",temp,book_path);
}

voidsearch_user_name()//按借書人姓名查詢
{
system("cls");
charsearch_key[10]={""};
printf("請輸入要查詢圖書借書人:");
scanf("%s",search_key);
inti;
ints[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
ints_i=0;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].user_name,search_key)==0)
{
find=1;
s[s_i]=i;
s_i++;
printf(" 編號:%s",book[i].no);
printf(" 名稱:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金額:%s",book[i].money);
printf(" 狀態:%s",book[i].in_or_out);
printf(" 借書人:%s ",book[i].user_name);
}
}
if(find==0)
{
printf(" 未找到符合條件的信息!");
}
else
{
for(i=0;i<s_i;i++)
{
printf(" 第%d本書:%s",i+1,book[i].name);
}
printf(" 共%d本",i);
}
fflush(stdin);
getchar();
}

voidsearch_book_author()//按圖書作者查詢
{
system("cls");
charsearch_key[50]={""};
printf("請輸入要查詢圖書的作者:");
scanf("%s",search_key);
inti;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].author,search_key)==0)
{
find=1;
printf(" 編號:%s",book[i].no);
printf(" 名稱:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金額:%s",book[i].money);
printf(" 狀態:%s",book[i].in_or_out);
printf(" 借書人:%s ",book[i].user_name);
break;
}
}
if(find==0)
{
printf(" 未找到符合條件的信息!");
}
fflush(stdin);
getchar();
}

voidsearch_book_name()//按圖書名稱查詢
{
system("cls");
charsearch_key[50]={""};
printf("請輸入要查詢圖書的名稱:");
scanf("%s",search_key);
inti;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,search_key)==0)
{
find=1;
printf(" 編號:%s",book[i].no);
printf(" 名稱:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金額:%s",book[i].money);
printf(" 狀態:%s",book[i].in_or_out);
printf(" 借書人:%s ",book[i].user_name);
break;
}
}
if(find==0)
{
printf(" 未找到符合條件的信息!");
}
fflush(stdin);
getchar();
}

voidsearch_book_no()//按圖書編號查詢
{
system("cls");
charsearch_key[10]={""};
printf("請輸入要查詢圖書的編號:");
scanf("%s",search_key);
inti;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,search_key)==0)
{
find=1;
printf(" 編號:%s",book[i].no);
printf(" 名稱:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金額:%s",book[i].money);
printf(" 狀態:%s",book[i].in_or_out);
printf(" 借書人:%s ",book[i].user_name);
break;
}
}
if(find==0)
{
printf(" 未找到符合條件的信息!");
}
fflush(stdin);
getchar();
}
voidsearch_all_book()//查詢所有圖書
{
system("cls");
if(book_pos==0)
{
printf("真TM窮,一本書都沒有");
}
else
{
inti;
printf("共有%d本書 ",book_pos);
for(i=0;i<book_pos;i++)
{
printf(" 編號:%s名稱:%s作者:%s金額:%s狀態:%s",book[i].no,book[i].name,book[i].author,book[i].money,book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf("借書人:%s",book[i].user_name);
}
}
}
fflush(stdin);
getchar();
}

voidsearch_all_user()//查詢所有用戶
{
system("cls");
if(user_pos==0)
{
printf("要倒閉了?一個人都沒有!");
}
else
{
inti;
printf("共有%d個用戶 ",user_pos);
for(i=0;i<user_pos;i++)
{
printf(" 用戶名稱:%s借書名稱:",user[i].name);
if(strcmp(user[i].book_name,"")!=0)
{
printf("%s",user[i].book_name);
}
else
{
printf("未借書");
}
}
}
fflush(stdin);
getchar();
}

voidNo7()//查詢
{
intf=1;
intsel;
while(f)
{
system("cls");
printf("********************************* ");
printf("** ");
printf("*圖書管理系統--查詢* ");
printf("** ");
printf("*1.按圖書編號查詢* ");
printf("** ");
printf("*2.按圖書名稱查詢* ");
printf("** ");
printf("*3.按作者查詢* ");
printf("** ");
printf("*4.按借書人姓名查詢* ");
printf("** ");
printf("*5.查詢所有圖書* ");
printf("** ");
printf("*6.查詢所有用戶* ");
printf("** ");
printf("*0.返回主菜單* ");
printf("** ");
printf("********************************* ");
printf("請選擇:(1,2,3,4,5,6,0)");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case1:
search_book_no();

break;
case2:
search_book_name();

break;
case3:
search_book_author();

break;
case4:
search_user_name();

break;
case5:
search_all_book();
break;
case6:
search_all_user();
break;
case0:

f=0;
break;
default:
break;
}
}
}

voidNo6()//用戶信息刪除
{
system("cls");
chardel_key[10]={""};
printf("請輸入要刪除的用戶名稱:");
scanf("%s",del_key);
inti,del_pos;
intfind=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,del_key)==0)
{
find=1;
printf(" 姓名:%s",user[i].name);
if(strlen(user[i].book_name)>0)
{
printf(" 所借書籍:%s",user[i].book_name);
}
del_pos=i;
break;
}
}
if(find==0)
{
printf(" 未找到符合條件的信息!");
fflush(stdin);
getchar();
return;
}

while(1)
{
fflush(stdin);
printf(" 確認要刪除該記錄嗎?(y/n):");
chart;
scanf("%c",&t);
if(t=='y'||t=='Y')
{
if(strlen(user[del_pos].book_name)>0)
{
printf(" 該用戶尚有書籍未歸還,不能刪除!");
fflush(stdin);
getchar();
return;
}
strcpy(user[del_pos].name,"");
strcpy(user[del_pos].book_name,"");
write_file();
printf(" 刪除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
elseif(t=='N'||t=='n')
{
printf(" 你選擇了不刪除,按任意鍵返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}

voidNo5()//圖書刪除
{
system("cls");
chardel_key[10]={""};
printf("請輸入要刪除的圖書的名稱或編號:");
scanf("%s",del_key);
inti,del_pos;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,del_key)==0||strcmp(book[i].no,del_key)==0)
{
find=1;
printf(" 編號:%s",book[i].no);
printf(" 名稱:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金額:%s",book[i].money);
printf(" 狀態:%s ",book[i].in_or_out);
del_pos=i;
break;
}
}
if(find==0)
{
printf(" 未找到符合條件的信息!");
fflush(stdin);
getchar();
return;
}

while(1)
{
fflush(stdin);
printf(" 確認要刪除該記錄嗎?(y/n):");
chart;
scanf("%c",&t);
if(t=='y'||t=='Y')
{
if(strcmp("out",book[del_pos].in_or_out)==0)
{
printf(" 圖書已經借出,不能刪除!");
fflush(stdin);
getchar();
return;
}
strcpy(book[del_pos].no,"");
strcpy(book[del_pos].name,"");
strcpy(book[del_pos].money,"");
strcpy(book[del_pos].author,"");
strcpy(book[del_pos].in_or_out,"in");
strcpy(book[del_pos].user_name,"");
write_file();
printf(" 刪除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
elseif(t=='N'||t=='n')
{
printf(" 你選擇了不刪除,按任意鍵返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}

voidNo4()//用戶信息錄入
{
system("cls");
charname[10]={""};
printf("請輸入新增用戶信息: ");
printf("名稱:");
scanf("%s",name);
strcpy(user[user_pos].name,name);
user_pos++;
write_file();//寫入信息文件

printf(" 信息錄入成功!");
fflush(stdin);
getchar();
}

voidNo3()//圖書信息錄入
{
system("cls");
charno[10]={""};
charname[50]={""};
charauthor[30]={""};
charmoney[10]={""};
charin_or_out[10]={""};
charuser_name={""};
printf("請輸入新增圖書信息: ");
printf("編號:");
scanf("%s",no);
printf("名稱:");
scanf("%s",name);
printf("作者:");
scanf("%s",author);
printf("價格:");
scanf("%s",money);

strcpy(book[book_pos].no,no);
strcpy(book[book_pos].name,name);
strcpy(book[book_pos].author,author);
strcpy(book[book_pos].money,money);
book_pos++;
write_file();//寫入信息文件

printf(" 信息錄入成功!");
fflush(stdin);
getchar();
}

voidNo2()//圖書還回
{
system("cls");
printf(" 請輸入還回圖書的編號或名稱:");
chartemp[50]={""};
scanf("%s",temp);
inti;
intbook_i=-1;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0||strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf(" 編號:%s",book[i].no);
printf(" 名稱:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金額:%s",book[i].money);
printf(" 狀態:%s",book[i].in_or_out);

printf(" 按任意鍵進行還回操作");
fflush(stdin);
getchar();
intj;
strcpy(book[i].in_or_out,"in");
for(j=0;j<user_pos;j++)
{
if(strcmp(book[i].user_name,user[j].name)==0)
{
strcpy(user[j].book_name,"");
write_file();//寫入信息文件
break;
}
}
strcpy(book[i].user_name,"");
if(j>=user_pos)
{
printf(" 數據出錯");
}
else
{
printf(" 圖書還回成功");
fflush(stdin);
getchar();
return;
}
}
}
if(find==0)
{
printf(" 未找到符合條件的信息!");
fflush(stdin);
getchar();
return;
}
}

voidNo1()//圖書借出
{
system("cls");
printf(" 請輸入出借圖書的編號或名稱:");
chartemp[50]={""};
scanf("%s",temp);
inti;
intbook_i=-1;
intfind=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0||strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf(" 編號:%s",book[i].no);
printf(" 名稱:%s",book[i].name);
printf(" 作者:%s",book[i].author);
printf(" 金額:%s",book[i].money);
printf(" 狀態:%s",book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf(" 該圖書已經借出! ");
fflush(stdin);
getchar();
return;
}
printf(" 請輸入借書人姓名:");
charname[10]={""};
scanf("%s",name);
intj,user_i=-1;
for(j=0;j<user_pos;j++)
{
if(strcmp(name,user[j].name)==0)
{
user_i=j;
break;
}
}
if(j>=user_pos)
{
printf(" 找不到該借書人信息,已自動添加");
strcpy(user[user_pos].name,name);
strcpy(user[user_pos].book_name,"");
user_i=user_pos;
user_pos++;
fflush(stdin);
getchar();
}
strcpy(user[user_i].book_name,book[book_i].name);
strcpy(book[book_i].user_name,name);
strcpy(book[book_i].in_or_out,"out");
printf(" 圖書借出成功");
write_file();//寫入信息文件
fflush(stdin);
getchar();
return;
}
}
if(find==0)
{
printf(" 找不到該圖書信息 ");
fflush(stdin);
getchar();
return;
}
}

intflag_exit=0;

voida88()
{
system("cls");
while(1)
{
fflush(stdin);
printf(" 真的要退出嗎?(y/n):");
chart;
scanf("%c",&t);
if(t=='y'||t=='Y')
{
flag_exit=1;
break;
}
elseif(t=='N'||t=='n')
{
flag_exit=0;
return;
}
else
{
continue;
}
}
system("cls");
printf("ooooooooooooooooooooooooooooo ");
printf("ooooooooooooooooooooooooooooo ");
printf("oooooo ");
printf("oooooooooooooooooo ");
printf("oooooooooooooooooo ");
printf("oooooooooooo ");
printf("oooooooooooooooooo ");
printf("oooooooooooo ");
printf("oooooooooooo ");
printf("oooooooooooooooooooo ");
printf("ooooooooooooooooooooo ");
printf("ooooooooooo ");
printf("oooooooooooooooooooo ");
printf("ooooooooooooo ");
fflush(stdin);
getchar();
}

voidtitle()
{
intf=1;
intsel;
while(f)
{
system("cls");
printf("******************************* ");
printf("** ");
printf("*圖書管理系統* ");
printf("** ");
printf("*1.圖書借出* ");
printf("** ");
printf("*2.圖書還回* ");
printf("** ");
printf("*3.圖書錄入* ");
printf("** ");
printf("*4.用戶錄入* ");
printf("** ");
printf("*5.圖書刪除* ");
printf("** ");
printf("*6.用戶刪除* ");
printf("** ");
printf("*7.查詢* ");
printf("** ");
printf("*0.退出* ");
printf("** ");
printf("******************************* ");
printf("請選擇:(1,2,3,4,5,6,7,0)");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case1:
No1();

break;
case2:
No2();

break;
case3:
No3();

break;
case4:
No4();

break;
case5:
No5();

break;
case6:
No6();

break;
case7:
No7();

break;
case0:
a88();
if(flag_exit==1)
system("exit");
else
{
break;
}
f=0;
break;
default:
break;
}
}
}

intmain(intargc,char*argv[]){
_getcwd(ini_path,100);//取得當前程序的絕對路徑
strcpy(user_path,ini_path);
strcat(user_path,"\user.ini");
strcpy(book_path,ini_path);
strcat(book_path,"\book.ini");
if(!access(user_path,0))
{

}
else
{
printf(" 用戶數據文件不存在,按任意鍵將創建文件");
getchar();
FILE*fp;
fp=fopen(user_path,"wb");
intre=fputs("[USER] user_count=0",fp);
if(re>=0)
{
printf(" 用戶數據文件創建成功!");
}
else
{
printf(" 用戶數據文件創建失敗!");
}
getchar();
fclose(fp);
}
if(!access(book_path,0))
{

}
else
{
printf(" 圖書數據文件不存在,按任意鍵將創建文件");
getchar();
FILE*fp;
fp=fopen(book_path,"wb");
intre=fputs("[BOOK] book_count=0",fp);
if(re>=0)
{
printf(" 圖書數據文件創建成功!");
}
else
{
printf(" 圖書數據文件創建失敗!");
}
getchar();
fclose(fp);
}
read_file();
title();
return0;
}

⑤ 什麼是c語言課程設計原代碼

用C語言進行單片機程序設計是單片機開發與應用的 ... 從大三會開始接觸到一些專業課程,電子相關專業會開設相關的 ... SRAM中;完成代碼的重映射;配置中斷句柄,連接到C語言入口。
www.21ic.com/jichushi/mcu/questions/2013-03-07/159998.html

⑥ 求C語言課程設計的源代碼

課程設計報告內容 報告應包括以下內容: 摘要(300~400字) 目錄 1. 概述 2. 課程設計任務及要求 2.1 設計任務 2.2 設計要求 3. 理論設計 3.1方案論證 3.2 系統設計 3.2.1 結構框圖及說明 3.2.2 系統原理圖及工作原理 3.3 單元電路設計 3.3.1單元電路工作原理

⑦ c語言課程設計怎麼寫

1 軟體開發平台
2 軟體功能說明
2.1 功能分析說明圖.
2.2 各項功能說明
3。軟體設計詳細內容
3.1 採用的主要數據結構類型
3.2 流程圖
4 軟體測試
4.1 軟體測試用例
4.2 軟體測試報告
5 總結和致謝
6 附錄
6.1 軟體使用說明
6.2 源碼
6.3 參考文獻

⑧ 求C語言課程設計的源代碼和流程圖

YT

⑨ C語言課程設計

學生成績的太多了,幫你找了一個圖書管理的,希望能幫上忙,代碼如下:

#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define LEN sizeof(struct booklist)
#define LEN2 sizeof(struct memberlist)
#define LEN3 sizeof(struct readers)
typedef struct readers//借書信息結構體
{
char name[30];//借書人的姓名
struct readers *next2;
}reader;

//書本信息結構體
typedef struct booklist
{
char num[20]; //書號
char name[30]; //書名
char concern[50];//出版社
char date[20];//出版日期
char author[20];//作者
int page;//頁數
int price;//價格
int imformation;//圖書剩餘數量
reader *a;//借閱人
struct booklist *next;
}Book;
void creatlist();//創建新的書本信息
void print(Book *head);//列印書本信息
void save(Book *head);//儲存書本信息
void AddBook();//添加書本信息
void DelBook();//刪除書本信息
Book *read();//讀取書本信息
void manager();//管理員操作
void Bookconsult(); //圖書查詢
int Borrow();//借書
int Return();//還書
Book *sort(Book *head);//書本信息按書號排序
void imformation();//系統信息

Book *head=NULL,*p1=NULL,*p2=NULL;

//創建新的書本信息
void creatlist()
{
int i,n;
printf("要創建的書本數目");
scanf("%d",&n);
p2=head=(Book *)malloc(LEN); //創建帶有頭結點的鏈表
p2->a=(reader *)malloc(LEN3);
p2->a->next2=NULL;
p2->next=NULL;
printf("請輸入書的信息:\n");
for(i=1;i<=n;i++)
{
p1=(Book *)malloc(LEN);
printf("書號: "); scanf("%s",p1->num);
printf("書名: "); scanf("%s",p1->name);
printf("出版社: "); scanf("%s",p1->concern);
printf("出版日期: "); scanf("%s",p1->date);
printf("作者: "); scanf("%s",p1->author);
printf("書本頁數: "); scanf("%d",&p1->page);
printf("書本價格(元): "); scanf("%d",&p1->price);
p1->a=(reader *)malloc(LEN3);
p1->a->next2=NULL;
p1->imformation=10;
p1->next=NULL;
p2->next=p1;
p2=p1;
if(i<n) printf("下一本:\n");
}
head=sort(head);
save(head);
print(head);
}

//列印書本信息
void print(Book *head)
{
Book *p=NULL;
reader *p0=NULL;
p=head->next;
printf("*******************************************************************************\n");
while(p!=NULL)
{
printf("書號: %s\n書名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n書本頁數(頁) : %d\n書本價格(元) : %d\n剩餘數量 : %d\n",p->num,p->name,p->concern,p->date,p->author,p->page,p->price,p->imformation);
printf("借閱圖書的人:");
if(p->a->next2==NULL) printf("------------暫無借閱人!");
else
{
for(p0=p->a->next2;p0!=NULL;p0=p0->next2)
{
printf("%s ",p0->name);
}
}
p=p->next; /* p後移一個結點 */
printf("\n");
printf("\n");
}
}
//書本信息按書號排序
Book *sort(Book *head)
{
Book *p1=NULL,*p2=NULL,*p3=NULL,*min=NULL,*min2=NULL,*head2=head->next;
p1=head2;
while(p1->next!=NULL)
{
min=p2=p1; /*把首結點作為最小值*/
while(p2->next!=NULL)
{
if(strcmp(min->num,p2->next->num)>0) /*首結點與下一結點比較*/
{
min2=p2;
min=p2->next;
}
p2=p2->next;
}
if(min!=p1)
{
min2->next=min->next; /*刪除最小結點*/
min->next=p1; /*插入最小結點*/
if(p1==head2) head2=min;
else p3->next=min; /*p3為min前的結點指針*/
p3=min;
}
else
{
p3=p1;
p1=p1->next;
}
}
head->next=head2;
return(head);
}
//儲存書本信息
void save(Book *head)
{
FILE *fp,*fp2;
Book *p=NULL;
reader *q=NULL;
fp=fopen("書本信息.txt","wb"); //printf("不能打開文件!\n");
fp2=fopen("借閱信息.txt","wb"); //printf("不能打開文件!\n");
p=head;
while(p!=NULL)
{
fwrite(p,LEN,1,fp); /*逐個結點寫文件*/
for(q=p->a;q!=NULL;q=q->next2)

p=p->next;
}
fclose(fp);
fclose(fp2);
}
//添加書本信息
void AddBook()
{
FILE *fp,*fp2;
Book *addbook=NULL;
reader *p0=NULL;
fp=fopen("書本信息.txt","ab"); //追加方式打開文件
fp2=fopen("借閱信息.txt","ab");
addbook=(Book *)malloc(LEN);
printf("輸入書本信息:\n");
printf("書號: "); scanf("%s",addbook->num);
printf("書名: "); scanf("%s",addbook->name);
printf("出版社: "); scanf("%s",addbook->concern);
printf("出版日期: "); scanf("%s",addbook->date);
printf("作者: "); scanf("%s",addbook->author);
printf("書本頁數: "); scanf("%d",&addbook->page);
printf("書本價格(元): "); scanf("%d",&addbook->price);
p0=(reader *)malloc(LEN3);
p0->next2=NULL;
addbook->a=p0;
addbook->imformation=10;
addbook->next=NULL;
fwrite(addbook,LEN,1,fp); /*塊寫*/
fwrite(p0,LEN3,1,fp2);
fclose(fp);
fclose(fp2);
}
//讀取書本信息
Book *read()
{
FILE *fp,*fp2;
Book *p=NULL,*p1=NULL,*head=NULL;
reader *p0=NULL,*p2=NULL;
if((fp=fopen("書本信息.txt","rb"))==NULL) printf("不能打開文件或文件不存在!\n");
if((fp2=fopen("借閱信息.txt","rb"))==NULL) printf("不能打開文件或文件不存在!\n");
head=(Book *)malloc(LEN);
fread(head,LEN,1,fp);
p1=head;
p0=(reader *)malloc(LEN3);
fread(p0,LEN3,1,fp2);
p0->next2=NULL;
head->a=p0;
head->next=NULL;
p=(Book *)malloc(LEN);
while(fread(p,LEN,1,fp)) /*逐個結點讀取*/
{
p1->next=p;
p1=p1->next;
p0=(reader *)malloc(LEN3);
p1->a=p0;
while(fread(p0,LEN3,1,fp2))
{
if(p0->next2==NULL)
{
p2=p0;
p0=(reader *)malloc(LEN3);
break;
}

p2=p0;
p0=(reader *)malloc(LEN3);
p2->next2=p0;
}
free(p0);
p2->next2=NULL;
p=(Book *)malloc(LEN);
}
p1->next=NULL;
free(p);
fclose(fp);
fclose(fp2);
head=sort(head);
if(head!=NULL) return(head);
else
{
printf("文件為空!\n");
return 0;
}
}
//刪除書本信息
void DelBook()
{
Book *head=NULL,*p=NULL,*q=NULL;
char bookname[30];
head=read();
printf("輸入要刪除的書名: ");
scanf("%s",bookname);
p=head;
while(p!=NULL)/*按名字查找要刪除的圖書*/
{
if(strcmp(p->name,bookname)==0)
{
if(p==head)
{
head=head->next;
break;
}
else
{
q->next=p->next;
break;
}
}
q=p;
p=p->next;
}
save(head);
}
//管理員操作
void manager()
{
int n,i=0,k=1;
while(k==1)
{
printf("********************************************************************************\n");
printf(" 請選擇你需要的操作\n");
printf(" ◎ 1.建立新的書本信息\n");
printf(" ◎ 2.插入書本信息\n");
printf(" ◎ 3.刪除書本信息\n");
printf(" ◎ 4.讀取所有書本信息\n");
printf(" ◎ 5.讀取指定書本信息\n");
printf(" ◎ 6.返回到上級目錄\n");
printf(" ◎ 7.保存並退出\n");
printf("請輸入:");
scanf("%d",&n);
switch(n)
{
case 1: creatlist();break;
case 2: AddBook();break;
case 3: DelBook();break;
case 4: head=read();system("CLS");print(head);break;
case 5: system("CLS");Bookconsult();break;
case 6: k=0;break;
default: k=0;break;
}
}
}

//圖書查詢
void Bookconsult()
{
int n,m=1,sign=0;
Book *p=NULL,*p1=NULL,*p0=NULL,*head=NULL;
reader *p2=NULL;
char a[30],b[20],c[20];
head=read();
while(m==1)
{
printf(" 請選擇你查詢書本的方式: 1.按書名 2.按書的編號 3.按書的作者 4.退出查詢\n");
printf("輸入=");
scanf("%d",&n);
switch(n)
{
case 1: printf("請輸入書名:");
scanf("%s",a);
p0=head;
while(p0!=NULL)
{
if(strcmp(a,p0->name)==0)
{
printf("*******************************************************************************\n");
printf("書號: %s\n書名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n書本頁數(頁) : %d\n書本價格(元) : %d\n剩餘數量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);
printf("借閱圖書的人:");
if(p0->a->next2==NULL) printf("------------暫無借閱人!\n");
else
{
for(p2=p0->a;(p2=p2->next2)!=NULL;)

}
printf("\n");
sign=1;
p0=p0->next;
}
else p0=p0->next;
}
if(sign==0) printf("沒有這本書的信息.\n");
break;
case 2: printf("請輸入書的編號:");
scanf("%s",b);
p0=head;
while(p0!=NULL)
{
if(strcmp(b,p0->num)==0)
{
printf("*******************************************************************************\n");
printf("書號: %s\n書名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n書本頁數(頁) : %d\n書本價格(元) : %d\n剩餘數量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);
printf("借閱圖書的人:");
if(p0->a->next2==NULL) printf("------------暫無借閱人!\n");
else
{
for(p2=p0->a;(p2=p2->next2)!=NULL;)

}
printf("\n");
break;
}
else p0=p0->next;
}
if(p0==NULL) printf("沒有這本書的信息.\n");
break;
case 3: printf("請輸入書的作者:");
scanf("%s",c);
p0=head;
while(p0!=NULL)
{
if(strcmp(c,p0->author)==0)
{
printf

("*******************************************************************************\n");
printf("書號: %s\n書名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n書本頁數(頁) : %d\n書本價格(元) %d\n剩餘數量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);
printf("借閱圖書的人:");
if(p0->a->next2==NULL) printf("------------暫無借閱人!\n");
else
{
for(p2=p0->a;(p2=p2->next2)!=NULL;)

}
printf("\n");
sign=1;
p0=p0->next;
}
else p0=p0->next;
}
if(sign==0) printf("沒有這本書的信息.\n");
break;
default: m=0;break;
}
}
}

//借書
int Borrow()
{
char a[30],b[30],c;
Book *p0=NULL,*head=NULL;
reader *p2=NULL,*p3=NULL;
head=read();
printf("請輸入要借的書的書號:");
scanf("%s",a);
p0=head->next;
while(p0!=NULL)
{
if((strcmp(a,p0->num))==0)
{
if(p0->imformation>0)
{
printf("圖書在館,可以借出,是否確定借出?'y'or'n'\n");
c=getchar();
scanf("%c",&c);
if(c=='y')
{
printf("請再次輸入你的用戶名:");
scanf("%s",b);
p3=(reader *)malloc(LEN3);
strcpy(p3->name,b);
if(p0->a->next2==NULL)
{
p0->a->next2=p3;
p3->next2=NULL;
}
else
{
for(p2=p0->a;p2->next2!=NULL;p2=p2->next2);
p2->next2=p3;
p3->next2=NULL;
}
--p0->imformation;
save(head);
printf("操作完成,可以帶走圖書。\n");
return 1;
break;
}
else
{
return 0;
break;
}
}
else printf("很抱歉,該圖書不在館.\n");return 0;break;
}
else p0=p0->next;
}
if(p0==NULL)
{
printf("很抱歉,沒有這本書。\n");
return 0;
}
else return 2;
}

//還書
int Return()
{
Book *p0=NULL,*head=NULL;
reader *p2=NULL,*p3=NULL;
char c[20],b[30];
head=read();
printf("請輸入要還的書的書號:");
scanf("%s",&c);
p0=head->next;
while(p0!=NULL)
{
if((strcmp(c,p0->num))==0)
{
printf("請輸入你的用戶名:");
scanf("%s",&b);
if(p0->a->next2==NULL)
else
{
p3=p0->a;
p2=p3->next2;
while(p2!=NULL)
{
if(strcmp(p2->name,b)==0)
{
if(p2->next2==NULL)
else
{
p3->next2=p2->next2;
free(p2);
break;
}
}
else
{
p3=p2;
p2=p2->next2;
}
}
if(p2==NULL) printf("你沒有借這本書!\n");
}
++p0->imformation;
save(head);
printf("書已歸館,操作完成。\n");
return 1;
break;
}
else p0=p0->next;
}
if(p0==NULL)
{
printf("沒有這本書。\n");
return 0;
}
else return 2;
}
//借書信息
void imformation()
{
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※ 歡迎你使用我們的圖書管理系統!以下是本系統的有關說明: ※\n");
printf("※本系統主要功能是進行圖書的有關管理,你可以進行圖書信息的創建、插入、刪除、 ※\n");
printf("※查詢;在操作中主要是以阿拉伯數字來選擇相應的菜單功能,在選擇時以'y'表示 '是' ※\n");
printf("※以'n'表示'不是'。在你操作的時候就會有相應的操作提示。 ※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
}

main()

{
int n,k=1;
printf("********************************************************************************\n");
printf("\n\n");
printf(" 歡迎進入我們的圖書管理系統! \n");
printf("\n\n");
printf("********************************************************************************\n");
while(k==1)
{
printf(" 請選擇你的操作: 1.管理員操作 2.系統信息 3.退出系統\n");
printf("********************************************************************************\n");
printf(" 你的選擇是:");
scanf("%d",&n);
system("CLS");
switch(n)
{
case 1: manager();break;
case 2: imformation();break;
default: printf("+++++++++++++++++++++++++++歡迎你再次使用我們的系統!++++++++++++++++++++++++++++\n");k=0;break;
}
}

}

⑩ c語言課程設計

//數據文件放在D盤下,名稱為1.txt
//格式為:學號姓名C語言成績數學成績物理成績
//例如:
//001趙日天958892
//002劉斬仙596273

#include<stdio.h>
#include<stdlib.h>

typedefstruct
{
charnum[8];
charname[10];
intcgrade;
intmgrade;
intphysics;
floatave;
}STUDENT;

intmain()
{
STUDENTs[50];
intcount=0;
FILE*fp;
charbuf[100];
if((fp=fopen("d:\1.txt","r"))==NULL)
{
printf("Openfilefalied!");
return-1;
}
while(!feof(fp))
{
fgets(buf,100,fp);
sscanf(buf,"%s%s%d%d%d",s[count].num,s[count].name,&s[count].cgrade,&s[count].mgrade,&s[count].physics);
s[count].ave=(s[count].cgrade+s[count].mgrade+s[count].physics)/3.0;
count++;
}
fclose(fp);
printf("共有%d人 ",count);
inti,j;
for(i=0;i<count;i++)
{
printf("%-5s%-6s%-3d%-3d%-3d%-5.2f ",s[i].num,s[i].name,s[i].cgrade,s[i].mgrade,s[i].physics,s[i].ave);
}

intmax[3]={0,0,0},min[3]={100,100,100},sum[3]={0,0,0};
floatave[3]={0.0};
intgood[3]={0,0,0},pass[3]={0,0,0},unpass[3]={0,0,0};

for(i=0;i<count;i++)
{
sum[0]+=s[i].cgrade;
sum[1]+=s[i].mgrade;
sum[2]+=s[i].physics;

if(max[0]<s[i].cgrade)max[0]=s[i].cgrade;
if(max[1]<s[i].mgrade)max[1]=s[i].mgrade;
if(max[2]<s[i].physics)max[2]=s[i].physics;

if(min[0]>s[i].cgrade)min[0]=s[i].cgrade;
if(min[1]>s[i].mgrade)min[1]=s[i].mgrade;
if(min[2]>s[i].physics)min[2]=s[i].physics;

if(s[i].cgrade>=90)good[0]++;
elseif(s[i].cgrade>=60)pass[0]++;
elseunpass[0]++;

if(s[i].mgrade>=90)good[1]++;
elseif(s[i].mgrade>=60)pass[1]++;
elseunpass[1]++;

if(s[i].physics>=90)good[2]++;
elseif(s[i].mgrade>=60)pass[2]++;
elseunpass[2]++;
}
ave[0]=(float)sum[0]/(float)count;
ave[1]=(float)sum[1]/(float)count;
ave[2]=(float)sum[2]/(float)count;
printf(" C語言成績: ");
printf("最高分:%d最低分:%d平均分:%.2f",max[0],min[0],ave[0]);
printf(" 優秀:%d及格:%d不及格:%d",good[0],pass[0],unpass[0]);
printf(" 數學成績: ");
printf("最高分:%d最低分:%d平均分:%.2f",max[1],min[1],ave[1]);
printf(" 優秀:%d及格:%d不及格:%d",good[1],pass[1],unpass[1]);
printf(" 物理成績: ");
printf("最高分:%d最低分:%d平均分:%.2f",max[2],min[2],ave[2]);
printf(" 優秀:%d及格:%d不及格:%d",good[2],pass[2],unpass[2]);

int*all_score;
all_score=(int*)malloc(sizeof(int)*count);
for(i=0;i<count;i++)
{
all_score[i]=s[i].cgrade+s[i].mgrade+s[i].physics;
}
//排序
intt;
for(i=0;i<count-1;i++)
{
for(j=0;j<count-1-i;j++)
{
if(all_score[i]<all_score[i+1])
{
i=all_score[i];
all_score[i]=all_score[i+1];
all_score[i+1]=i;
}
}
}
printf(" 總成績最高到低為: ");
for(i=0;i<count;i++)
{
printf("%d",all_score[i]);
}

return0;
}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919